Hacker News new | past | comments | ask | show | jobs | submit login

Programming isn't the same thing as computer science, in the same way that writing isn't the same thing as journalism.

Writing code is the easy part. It's tedious, requires lots of practical knowledge and troubleshooting skills, but is for the most part a straightforward exercise. Computer science is about the theory. It involves solving problems in the abstract, using (and in some cases creating) new conceptual tools with which to think about, model, and solve a problem.

Many jobs in the software industry require only programming skills, and with those you can get along decently at any one of thousands of companies which are basically just building the same kinds of applications over and over again. But doing anything truly interesting requires venturing into the world of computer science, which requires years of study to master.




I think this is a bit of a false dichotomy. There are plenty of "truly" interesting software engineering jobs, no CS required. There is a lot that goes into designing a good CRUD app (yes, I said it). There are many trade offs, different basic architectures to choose from, different libraries, different design patterns -- all which have pros and cons to be weighed, based on the needs of the project (I speak as someone who makes spends a lot of time doing native Android CRUD work).

It really annoys me when people say "oh that stuff is so trivial, you need to be doing low level C++ optimization or whatever to be doing anything truly interesting or important." It's "Revenge of the Nerds"-type BS. But the truth is that jobs that "only require programming skills" can certainly be interesting if you take it seriously, and treat your craft with the respect it deserves.


But low-level C++ optimisation _is_ straightforward, if you're familiar with the CPU architecture. The issue is that most of the people don't want to deal with it since it's one of those areas which is not easily transferable to other domains.

It is the highly-technical BS. Just like saying high-frequency trading is an enterprise that requires incredibly smart people. No - it doesn't. It requires loads of niche knowledge that you can't apply anywhere else.


Exactly. Computer Science is much, much more than just programming. Knowledge of many aspects of CS can certainly useful to programmers (depending on what they're programming), but it's perfectly possible to be a very competent programmer while having massive holes in your understanding of CS.

And for most programming jobs, real programming experience is far more important than a broad understanding of CS. With a solid grounding in CS, you'll be able to tackle more complex issues and maybe be more flexible to switch to completely different IT-related careers, but for most jobs, it's not necessary at all.


A bunch of bull shit. Working on something truly groundbreaking requires none of it - it does however require super broad and deep knowledge of things outside of CS and ability to do things/program when you have an idea.


> But doing anything truly interesting requires venturing into the world of computer science, which requires years of study to master.

What's the definition of 'truly interesting' though? I designed and helped build a SaaS product from the ground up. The product is quite revolutionary in its market and is getting interest from multiple Fortune 500 companies and smaller multi-nationals. I have 0 CS background and am fully self-taught. To me, however, this is truly interesting.


That’s a good point. Now, how do you find interesting job which involves computer science skills?


I work in CAD and my experience is similar to the guy who works in the games industry. I invent new algorithms pretty much all the time. It's a more conservative environment culture-wise. "Science programming" (when all your clients have PhDs and work in academia and you do models of something or other or interpretation of experimental results) is also very intellectually challenging and the CS skills are a HUGE differentiator. It's not for everybody though as in those jobs you rarely work with other programmers or have good code to learn from.


Games industry. I work as a C++ programmer on the engine team and I have to think about really strong CS fundamentals almost daily - like, not many other industries care about performance so much that you care about aligning your variables to squeeze everything out of your cache, or have a strong opinion about kernel vs user level mutexes because 15ns vs 5ns locking time is actually critical and your algorithm is going to fall apart if you miss the next CPU quantum. Especially with programming for consoles, your CPU architecture knowledge needs to be really top notch, and I would say doing a masters degree in CS has helped a lot.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: