Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

College absolutely does not prepare you for any software job, unless you are some kind of ivory tower architect that can tinker in a lab with no need to ship products or work with other teams.


Speak for yourself.

There are few things more practical than a good theoretical grounding when your job is to:

1. design and implement a database

2. design and implement a p2p consensus protocol

3. design and implement a programming language

4. train and validate an artificial neural network

5. reason about concurrency

etc.

At some point, we really need to start distinguishing the kind of programmer who writes REST endpoints all day from the one who engineers the systems other programmers treat as an abstraction. Both are respectable jobs, but the former is closer to plumbing than engineering. The former is also less well-paid, has less job security, more on-call duty, less intellectual substance, less technological innovation (but arguably more commercial innovation), more grunt-work and a lower barrier-to-entry.


OK, 99% of devs do not do items 1-3. I have never worked at a FAANG, but most of them are doing grunt work, from what I have read.

Furthermore, taking a database course in college might involve building a toy DB, I will argue that it is not at all comparable to building a new DB from scratch. The theory is helpful, of course, but it is just an introduction, unless they are doing serious post-grad research.

And it isn't just "plumbing" jobs like REST. The same thing was true when I worked in game development, or consumer apps. Back in the 90s we did have to occasionally write a new data structure or something, now it is off the shelf.


Sure. Proposition accepted.

Now please consider this: the reason why so many devs are disenchanted is because they are being told that the software industry is like that 1%, when in fact, 99% of it isn't.

With this in mind, perhaps we should teach people about this "software engineering" vs "software plumbing" distinction. I suspect we are doing a bad job of orienting young professionals because of some outdated status hierarchy such that "engineering is for nobles" and "plumbing is for the pleb", which leads us to present software engineering as the ideal to strive for. Rather, we should identify the people who show an appetite for the noble profession of plumbing and steer them in that direction. While we're at it, we can paint a more realistic picture of their economic prospects, job security, work-life balance, etc.

There is no need turn this into yet another theory-vs-practice debate. That's a false dilemma. The best work gets done when both players collaborate.


When I was in college, I just wanted to build stuff, ideally games, but whatever was fine. I had no illusions that I would be writing compilers, writing OSes or building chips, even though I took courses on those subjects. A lot of the course catalog was on esoteric theory, like proving theorems, lambda calculus, early 80s cellular automata (what we called Huffmanetics, as Huffman taught those classes); I avoided those classes like the plague, although it was kind of dumb in hindsight. I wish I had studied more math and theory...

What they did not teach was how to code. You were just expected to learn that as needed on your own. What I needed perhaps was some kind of engineering major, as opposed to computer science, but that wasn't available at my college at that time. And even if it was, it wouldn't really have taught us how to be a professional developer, it would have just given us an overview of various topics.

Maybe you are arguing that we need such a program? I'm not sure. "How to be a professional programmer" courses do exist, at boot camps. People here on HN don't seem to think they are a good idea though.


> Maybe you are arguing that we need such a program?

Yes. I’m arguing that there should be some appropriate path for people like you, and that path doesn’t have to take the form of a college degree. Note that I wouldn’t object to it taking the form of a college degree either. I am agnostic.




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

Search: