How is the Computer Science Major Like


Recommended Posts

As a hiring manager for IT positions of all types, and an ex computer science (switched over to management info systems later on) major, here's what I can tell you...

First, if you become a programmer you have to love coding. You can learn to code without going to university (college) but you can't learn to program properly. Yes, there's a difference, and it always shows when I review a coder's work (no university) or a programmer's work. You'll find also, that proper university training may not teach you the latest and greatest languages -- often you're learning C or ASM or something, and you'll get a job programming .NET or Java.

What you learn in university is theory, logic, and application. You learn how to think of the WHOLE project, rather than just the block of code you're working on. You learn how to work on milestones, learn the proper meanings of beta, alpha, roadmaps, etc. I see lots of code monkeys out there making software, and you can always separate the good from the bad in terms of their training.

Granted, you can get some people who have gone through college and still be a 'coder' rather than a programmer. That's my job when I hire to figure them out before I give them the job :)

If you don't love logical problems (Google some Mensa questions if you are curious), then programming is going to suck. And if you want creative freedom well... then programming is going to be 'iffy' for you. It was that way for me. I personally like the ability to have freedom to design something the way *I* see fit, but unfortunately if you get a job the way you design software is going to be limited in many ways, mostly by a business decision from somebody higher than you. If you don't mind working towards it, you will eventually get a lead programmer or design position, and you can call the shots (like me!), but that's later down the road.

I started out as a systems admin, graduated to systems engineer, and then finally into a quasi SE/PM role like I am now. But I'll tell you this, I learned logic, I learned definitions and meanings, I learned how to stage things, I learned how to create and meet milestones, and I have applied that in my career. And any good systems person will know how to program at least a bit, for automation's sake.

Best of luck to you, and if you have any other questions please PM me and I'd be happy to help you out. I worked my way up through the ranks because people were willing to help me, and teach me -- and I'd be a real ass if I didn't offer the same to others who are working their way up and eager to do it now.

Cheers! :)

As a hiring manager for IT positions of all types, and an ex computer science (switched over to management info systems later on) major, here's what I can tell you...

First, if you become a programmer you have to love coding. You can learn to code without going to university (college) but you can't learn to program properly. Yes, there's a difference, and it always shows when I review a coder's work (no university) or a programmer's work. You'll find also, that proper university training may not teach you the latest and greatest languages -- often you're learning C or ASM or something, and you'll get a job programming .NET or Java.

What you learn in university is theory, logic, and application. You learn how to think of the WHOLE project, rather than just the block of code you're working on. You learn how to work on milestones, learn the proper meanings of beta, alpha, roadmaps, etc. I see lots of code monkeys out there making software, and you can always separate the good from the bad in terms of their training.

Granted, you can get some people who have gone through college and still be a 'coder' rather than a programmer. That's my job when I hire to figure them out before I give them the job :)

If you don't love logical problems (Google some Mensa questions if you are curious), then programming is going to suck. And if you want creative freedom well... then programming is going to be 'iffy' for you. It was that way for me. I personally like the ability to have freedom to design something the way *I* see fit, but unfortunately if you get a job the way you design software is going to be limited in many ways, mostly by a business decision from somebody higher than you. If you don't mind working towards it, you will eventually get a lead programmer or design position, and you can call the shots (like me!), but that's later down the road.

I started out as a systems admin, graduated to systems engineer, and then finally into a quasi SE/PM role like I am now. But I'll tell you this, I learned logic, I learned definitions and meanings, I learned how to stage things, I learned how to create and meet milestones, and I have applied that in my career. And any good systems person will know how to program at least a bit, for automation's sake.

Best of luck to you, and if you have any other questions please PM me and I'd be happy to help you out. I worked my way up through the ranks because people were willing to help me, and teach me -- and I'd be a real ass if I didn't offer the same to others who are working their way up and eager to do it now.

Cheers! :)

Wow Hercules thanks for the answer man, so the thing is that programmers basically have more control over the software creation process ?

Wow Hercules thanks for the answer man, so the thing is that programmers basically have more control over the software creation process ?

Programmers don't have control over the software creation process... that's the job of a project manager or lead programmer -- a role you can GET to by being a programmer to start. But it takes time, like anything else.

That said... the difference between a 'coder' and a 'programmer' is generally (and not always) university training. Getting the college background teaches you logic, helps you to look at your work as a 'project' rather than just a block of code, etc. I recommend if you want to get into software development, make sure you have your 4 year degree because most good programming jobs *require* it. Don't spend a lot on your education, you won't make much more if you graduated from Harvard or Rutgers. The only benefit those schools get you is connections, and when you're doing your undergrad you're generally too immature to make use of the connections. If you go back to school, then it's worth doing at a great school.

And in addition to your university training, learn on your own. The best programmers are the ones that did stuff in their spare time... that's how you have games like Counterstrike, because somebody created a 'mod' for Half Life and boom -- now it's an in depth game. Learn the major languages, C# is a good foundation because there are lots of jobs out there, and you'll be basically trained to write C or Java code in little time. I know VB.NET now myself, and I find it a difficult transition to write C# code, though I can read it -- i always miss the syntax :) Thankfully though, I'm also not a programmer so it's kind of a moot point :)

Programmers don't have control over the software creation process... that's the job of a project manager or lead programmer -- a role you can GET to by being a programmer to start. But it takes time, like anything else.

That said... the difference between a 'coder' and a 'programmer' is generally (and not always) university training. Getting the college background teaches you logic, helps you to look at your work as a 'project' rather than just a block of code, etc. I recommend if you want to get into software development, make sure you have your 4 year degree because most good programming jobs *require* it. Don't spend a lot on your education, you won't make much more if you graduated from Harvard or Rutgers. The only benefit those schools get you is connections, and when you're doing your undergrad you're generally too immature to make use of the connections. If you go back to school, then it's worth doing at a great school.

And in addition to your university training, learn on your own. The best programmers are the ones that did stuff in their spare time... that's how you have games like Counterstrike, because somebody created a 'mod' for Half Life and boom -- now it's an in depth game. Learn the major languages, C# is a good foundation because there are lots of jobs out there, and you'll be basically trained to write C or Java code in little time. I know VB.NET now myself, and I find it a difficult transition to write C# code, though I can read it -- i always miss the syntax :) Thankfully though, I'm also not a programmer so it's kind of a moot point :)

Hercules once again thanks for the good answer man :D I don't think I'd want to be a coder, rather I'd want to be someone who is more in charge of the creation process. I definitely will try to learn stuff on my spare time since I like tech. Yet here is the thing, do I need to have a CS degree in order to get such a job ?

Hercules once again thanks for the good answer man :D I don't think I'd want to be a coder, rather I'd want to be someone who is more in charge of the creation process. I definitely will try to learn stuff on my spare time since I like tech. Yet here is the thing, do I need to have a CS degree in order to get such a job ?

A quick background: I am doing a Masters in Computer Science right now and I am working full time at a company over the summer (it's summer now in NZ).

One thing's for certain - an architect or designer won't be able to do as good a job without being at least half decent at coding (unless they rely on and trust the opinion of people who are actually very good). This is because you need to know what is achievable within a given business mandated deadline and you need to at least be able to do a proper cost-benefit analysis of every design decision you take.

If you want to be in charge of the creation process right at the beginning, you should make your own stuff or if you are sufficiently enterprising, start your own company. If you want to be employed by someone else and still have a say, work for a small company. I do both of these right now because I have similar goals - I make my own software applications and I am in full control of that in every way. I work in a delightful company which is small only in the number of employees - I love working there because my input is taken seriously and I get to do architecture level stuff. This is only possible because a) the company is small, b) for someone at my stage, I am quite good at what I do, and I'm very passionate - which translates to real hard work (mostly because it doesn't even feel like "work" to me :) ).

You should go for a computer science degree if you code on your own in your free time and want to make something out of it. Wanting to jump directly to design and architecture is not very realistic - you need to put in solid groundwork before you get there.

And taking advice from people with considerable experience like Hercules is a very good idea.

Just to quickly say... if you want to be a programmer, get a computer science degree. You'll learn all the important things OUTSIDE of programming that make you a good programmer. The language you learn is irrelevant, if you can grasp the way to use objects properly, how to measure milestones, what a 'beta' means (not what people say it means), and how to look at a project as a WHOLE instead of just a little feature... you'll benefit.

The odds are though, the techniques you've learned in college by the time you graduate, will be four years out of date. Don't worry though.... most of your learning comes on the job, you only get concepts in college. Oh, and a degree... which is important for any job nowadays.

And I'll reiterate this again -- DO NOT SPEND A LOT OF MONEY ON YOUR COLLEGE DEGREE. Spend as little as possible, without going to a county college. Go to a real school, get a real degree, and spend as little as possible. It will be the best money you never invested :) Trust me.

The odds are though, the techniques you've learned in college by the time you graduate, will be four years out of date. Don't worry though.... most of your learning comes on the job, you only get concepts in college. Oh, and a degree... which is important for any job nowadays.

If the knowledge you gained in college is outdated in 4 years, you went to a bad college. A GOOD college will teach you the fundamentals which will NEVER be outdated. Techniques, fundamentals, and concepts will never go outdated. Only the languages, latest technology fads, and paradigms will change.

If the knowledge you gained in college is outdated in 4 years, you went to a bad college. A GOOD college will teach you the fundamentals which will NEVER be outdated. Techniques, fundamentals, and concepts will never go outdated. Only the languages, latest technology fads, and paradigms will change.

If you read my other posts, I am talking mainly about the languages they learn in college, not the methods they use to implement them.

If you are properly trained, you can pick up any language after you learn the syntax, as the logic and foundation are what's most important.

Make sure it is what you want to do.....its a challenging course (with lots of programming and theory). Looking back this it was NOT a good decision in life as I have other interests besides computing and it does make other career paths harder to get into....if I could go back in time I would not have done this course as it wasted a lot of my young life studying instead of having fun doing something I liked more such as working with animals.

  • 1 month later...

Make sure it is what you want to do.....its a challenging course (with lots of programming and theory). Looking back this it was NOT a good decision in life as I have other interests besides computing and it does make other career paths harder to get into....if I could go back in time I would not have done this course as it wasted a lot of my young life studying instead of having fun doing something I liked more such as working with animals.

So its pretty bad ??

I'm finishing my major on Computer Science this semester (with a dual major on Mathematics), and I'm continuing on my graduate studies for the PhD.

In my opinion, if all you want to do is code, there are easier and faster ways to learn so (equally good).

Maybe its because my university focuses so much on research that we do not care a bit about programming. On my university they focus on theory, A LOT OF MATH (enough to make most students finish a second major con Mathematics), and in the end we all learned that we are there to prove things are possible or impossible, and then let someone else code it.

I started computer science because I liked videogames (still do) and I wanted to work in the industry. But during my coursework I found a new passion in several topics, and thus I'm continuing for my PhD.

So in reality, all you need is motivation. Maybe in the middle of the program you'll find that you want to continue graduate studies and would love the SCIENCE part about Computer Science more than the COMPUTER part.

Hi, CS major here :)

Let's make it clear : CS isn't hard, it's misleading. A lot (and I mean a LOOOOT) of people think that they should invest in a CS major just because they like programming and stuff. This is wrong ! If what you want is just making programs you should maybe consider a minor involving software development but not a CS major. A CS major is more about studying data structures and organizations, algorithmic, languages theory, programming paradigms, AI, etc. so it involves a lot of theory and you'll need either to have a good grasp of some advanced mathematical concepts, or be ready to learn them quickly. So if that's not what you want, I highly encourage you to do something else as a CS class would quickly turn into a nightmare. Now if you're into this kind of stuff, you'll reaaaaaally enjoy a CS major which I think is one of the most rewarding majors out there as it will give you a great sense of self accomplishment looking back at all the projects you've worked on and all the knowledge you have that you can start using to do virtually anything you want with computers.

Hope it helps :)

PS : Start by asking yourself "Do I want to learn how to make programs that work, or how to optimize the time complexity of a recursive function from quadratic to linear ?". While you will learn the former in a CS class, you'll also have to deal with the latter. So if the second option is a definitive "NO !" to you, then I wouldn't recommend CS.

I'm finishing my major on Computer Science this semester (with a dual major on Mathematics), and I'm continuing on my graduate studies for the PhD.

In my opinion, if all you want to do is code, there are easier and faster ways to learn so (equally good).

Maybe its because my university focuses so much on research that we do not care a bit about programming. On my university they focus on theory, A LOT OF MATH (enough to make most students finish a second major con Mathematics), and in the end we all learned that we are there to prove things are possible or impossible, and then let someone else code it.

I started computer science because I liked videogames (still do) and I wanted to work in the industry. But during my coursework I found a new passion in several topics, and thus I'm continuing for my PhD.

So in reality, all you need is motivation. Maybe in the middle of the program you'll find that you want to continue graduate studies and would love the SCIENCE part about Computer Science more than the COMPUTER part.

This differes ALOT between uni to uni. Some uni's are all about theory, and back it up in maths. But at my uni we learnt lots and lots of theory that is relevant to software engineering, and much of it is useful for games. Theory about data structures, how databases work, TCP/IP networking stack, different forms of animation, using unix and software engineering processes to just name a few of the top of my head. I know lots of people who learnt to program on their own and although they can program, and they are good enough to be able to produce good aps, most often miss stuff because they don't know the theory I know. But what I really learnt was the confidence to go off and do my own thing.

Plus in reality the actual coding is monkeys work. It's the algorithms and designs behind the code which are the important bit. That's not to say coding is bad, but often your just translating your designs to code.

I'll add that I shifted my career from CS to MIS (Management Information Systems).

I realized that coding for hours in front of a screen isn't my thing. After working 3 years as a part-time web developer, what I enjoyed was coding my solutions that I had to come up to solve a problem, not to be told "make this function, etc.". The code-monkey part of the job was boring, almost too mechanical. I preferred to be the analyst which is why I'm shifting into full analysis positions.

I'll add that I shifted my career from CS to MIS (Management Information Systems).

I realized that coding for hours in front of a screen isn't my thing. After working 3 years as a part-time web developer, what I enjoyed was coding my solutions that I had to come up to solve a problem, not to be told "make this function, etc.". The code-monkey part of the job was boring, almost too mechanical. I preferred to be the analyst which is why I'm shifting into full analysis positions.

Which is one thing I like about my job. I got a degree in Computer Engineering. I've got a job as Software Engineer. The one thing I like though is how we operate. I'm not a simple code monkey. The developers themselves come up with the design, algorithms, functional requirements, etc and those are approved by your technical lead. We usually do have some restrictions like line item XYZ has to support ABC, but we get to choose the details.

I like programming and I like this way. I don't have some management analysis dude who does 0 programming telling us how to design and implement a feature.

It's boring as you find yourself able to work far ahead of the the curriculum if you were allowed to pace yourself. Programming courses are especially boring as they take weeks to go over the most simplistic of concepts like objects, control structures, data structures, et cetera.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I'm still on Windows 10 22H2 because I didn't want to deal with all the issues in Windows 11, so I waited almost a week before installing the latest Patch Tuesday update (KB5094127), I went ahead and did it, and it was a huge mistake—ever since then, my File Explorer has seen a performance drop of about 30% when transferring large files... Once again, Microsoft has outdone itself! This update cannot be uninstalled, either through the Control Panel (via Settings) or by accessing Advanced Startup Options. The only possible alternative would be to use system restore points, but I’d have to reinstall all app and driver updates (and there’s no guarantee it would work). Or there’s the “nuclear option” of a in-place repair without losing files or apps, but even then, all my customizations would be lost! Microsoft just can’t help but mess everything up! Way to go, Microsoft! But I still don’t want your c****y Windows 11!
    • Microsoft: Windows 11 could finally solve a major issue across AMD, Nvidia, and Intel GPUs by Sayan Sen While Microsoft has been trying to improve it, Windows 11 is definitely not flawless, as even today some issues are taking a year to publicly acknowledge. However, one area of trouble that may finally see much better results soon is graphics driver crashes. Work on graphics driver timeouts, also called Timeout and Detection Recovery (TDR), is not new as the latest WDDM 3.2 also has specific improvements regarding it. Windows Display Driver Model (WDDM) version 3.2 is supported on Windows 11 24H2 and 25H2. However, with the upcoming version 26H2, TDR crash diagnosis could go to the next level as Microsoft is introducing a new DirectX 12 API feature called "DirectX Dump Files". Similar to how system memory dump files work when a system crashes or freezes or encounters any such major issue, DirectX Dump Files (DDF) will essentially record a snapshot of the GPU execution right at the moment a graphics-related crash or hang or freeze occurs, so that developers can better understand and diagnoze these TDR and timeout detection errors. The dump will be available as a .dxdmp file for analysis and it will be a comprehensive dump file generated with detailed insights about the hardware, drivers, Windows, as well as the affected application. This should be another welcome change in this department. Earlier at GDC 2026, when the technology was first debuted, Microsoft had shared more details regarding it. The company had explained how DDF is designed to gather data from every layer of the graphics stack into a single file, eliminating the need for developers to manually correlate logs from multiple tools. As mentioned above, the dump can contain a lot of useful details like GPU hardware state information such as register values, shader program counters, page fault virtual addresses, shader memory data, and command buffers. Alongside that, it also captures DirectX runtime and kernel information, including D3D objects, pipeline state objects, device error data, adapter details, and CPU call stacks. Microsoft says the feature has been built around two primary use cases: retail device removals and local device removals. The former allows developers to collect crash information from end users' systems in the field, while the latter helps QA teams and developers investigate issues on test machines. Developers will also be able to include up to 2 MB of custom application data through new D3D12 APIs, providing additional context for troubleshooting. In addition, Microsoft is introducing three dump collection modes ranging from zero-overhead capture, which has no runtime performance impact on supported hardware, to higher-detail modes that collect more vendor-specific debugging data. On compatible Tier 2 hardware, zero-overhead dumps will be enabled by default, meaning developers may begin receiving useful crash diagnostics without making any code changes. The table below explains the three tiers: Tier Description NO_OVERHEAD Enables crash capture with no runtime cost and is suitable for broad deployment MEDIUM_OVERHEAD Provides a balance, capturing additional diagnostic data with moderate impact HIGH_OVERHEAD Collects the most detailed GPU and driver state available, enabling deeper investigation at the cost of higher runtime overhead In terms of availability, the company expects broader release to be around the fall of 2026, which should be right around the time when Windows 11 version 26H2 lands. Right now, DirectX Dump Files are available as a preview and currently, only AMD has the compatible AgilitySDK Developer Preview driver version 26.10.07.02. You can find the official announcement post here on Microsoft's website.
    • And with SO much better perf than the laggy mess that is Files.
    • BrowserOS 0.46.0 by Razvan Serea BrowserOS is a free, open-source Chromium-based browser that runs AI agents natively, offering a smarter, more productive browsing experience. It supports Chrome extensions and integrates AI agents to automate tasks, fill forms, and streamline workflows. Your data stays on your computer: you can use your own API keys or run local models via Ollama, making it a privacy-first alternative to tools like Perplexity, Comet, or Dia. With built-in productivity tools and app integrations, BrowserOS boosts efficiency while keeping control firmly in your hands. Being Chromium-based, BrowserOS lets you effortlessly import your bookmarks, passwords, and Chrome extensions in just a few clicks. BrowserOS works with OpenAI GPT models, Anthropic Claude, Google Gemini, and local AI models via Ollama or LMStudio. You can use your own API keys and effortlessly switch between providers. BrowserOS Agent Your AI productivity assistant that organizes and manages your browsing effortlessly Quickly list, group, or close tabs Save and resume browsing sessions Search your history and organize bookmarks Switch instantly to the tab you need BrowserOS Navigator – Automate web tasks with ease Navigate websites and search automatically Interact with pages without manual effort Handle repetitive tasks in seconds What makes BrowserOS special Feels like home - same familiar interface as Google Chrome, works with all your extensions AI agents that run on YOUR browser, not in the cloud Privacy first - bring your own keys or use local models with Ollama. Your browsing history stays on your computer Open source and community driven - see exactly what's happening under the hood MCP store to one-click install popular MCPs and use them directly in the browser bar (coming soon) Built-in AI ad blocker that works across more scenarios! BrowserOS 0.46.0 changelog: Run Claude Code & Codex right in your browser — We've extended the agent harness to bring full coding agents into BrowserOS. Claude Code and Codex now come bundled and plug straight into the assistant, so you can drive your browser with the agent — and the subscription — you already use. A brand new experience — A redesigned new tab, a calmer composer, and a rebuilt command center for switching between agents. The whole assistant is cleaner, faster to reach, and easier to live in. New MCP tools — We rebuilt the browser tool surface from the ground up — a tighter, more reliable set of tools for agents to drive the browser. Plus one-click install of BrowserOS as an MCP server into the agents you already run, with automatic URL sync. Chromium 148 — Updated to the latest Chromium base with all recent upstream fixes and security patches. Streamlined — We've pulled back a few features that weren't getting much use — Skills, Soul, and Memory — so we can focus and ship better versions of them soon. Download: BrowserOS 0.46.0 | 181.0 MB (Open Source) Download: BrowserOS for macOS | 485.0 MB Links: BrowserOS Homepage | Github | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Week One Done
      Jordan Smith earned a badge
      Week One Done
    • Reacting Well
      BizSAR earned a badge
      Reacting Well
    • First Post
      AndreaB earned a badge
      First Post
    • Week One Done
      Huge Trailer earned a badge
      Week One Done
    • Week One Done
      Classifyskilleducation earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      594
    2. 2
      +Edouard
      187
    3. 3
      PsYcHoKiLLa
      79
    4. 4
      Michael Scrip
      74
    5. 5
      Steven P.
      67
  • Tell a friend

    Love Neowin? Tell a friend!