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

It's only hard once you realize the commitment required, partly due to the pace of innovation, the depth and breadth of information available and the fact you're competing with the entire world, not just people in your city/state, and there's nobody regulating the influx of competition. A significant chunk of your life will be spent looking at a screen and there's a chance you could end up with a crippling case of carpal tunnel. It's a sacrifice and most people won't make it. In the same amount of time you RTFM, you could have learned to be a brain surgeon, a rocket scientist and a lawyer. And once you have it all figured out, half of everything you learned gets flushed down the toilet because there's some new platform. If you think it's hard and you're not enjoying yourself, don't even bother, there's easier ways to make money.


It was never hard for me. I started by typing BASIC game listings from magazines into a ZX Spectrum. Then learnt LOGO, BASIC and Pascal at school. And then taught myself QuickBasic in the army. Started a CS degree but dropped out after learning how depressing Z-routines in COBOL were. Got a job. Taught myself Assembly. Got a job writing tariffing engines for a cell phone billing system, learnt C, Informix and Visual Basic. Then Java, .Net, VB.Net and C#.

I loved every bit of it. And still do.


C'mon, all of those things you listed (brain surgeon, rocket scientist, lawyer) are WAY harder and more expensive/time-intensive to get into than software engineering.

If you feel like your knowledge is getting flushed away with a new platform, then you've been learning the wrong things.


Really? How is being a brain surgeon more difficult than being a computer surgeon ? Understanding how a CPU completely works, on the assembler and even on hardware level is FRIGGING HARD. Computers are very complex and huge beasts of logic to really understand, and the best programmers have to understand a huge amount of technical skills and systems in order to get the wanted results.

I have no idea how much stuff a brain surgeon has to learn, but having the idea that there are people who are brain surgeons, it cannot be so much harder than being a really competent programmer.

Think John Carmack for example. That guy is a friggin beast in learning new systems and producing working code. That is really, really hard to do. It requires immensive amount of thinking and applying, and sitting in front of computers while balancing your body and health at the same time so you dont kill yourself in the process or go mentally insane and just give up.

Oh yeah, but Carmack is a rocket scientist too .. so, maybe not the best example.

But putting those jobs above really competent programmers is just stupid, if you want to be best in what you do, in any life path you are taking, it will take all of your effort, and then some more. So why compare. It's all about doing what you love.


>Really? How is being a brain surgeon more difficult than being a computer surgeon ? Understanding how a CPU completely works...

Well, we know how everything about how a CPU works. We don't know everything about how a brain works.


Are there really no longer any open and relevant research issues around this topic? Is humanity's understanding of CPUs, how they work, how they should work, is it all wrapped up and complete?

Not really my field, so I truly don't know. But I'd be a little suspicious of someone who claims there's nothing new to learn here.


I don't think he means innovation which seems to be what you are implying. If you take a current working computer system, there are no "mysteries" in the existing hardware where the hardware designer just threw up their hands and decided to hope it would work. Sure when you throw in environmental factors there is certainly unpredictability in terms of hardware failure, but actually understanding what the system is doing? We know what it does. With something like the human body, it doesn't seem that we can be nearly as confident.


Sure, but I think that definition makes the difference in complexity a bit of a contrivance. You're deliberately excluding the things that make CPUs complicated and interesting, and then concluding that they aren't as complicated and interesting as something else.

The other thing is that while the brain is highly complex, that doesn't mean that people who work in it have managed to master something more complex than CPUs (or house wiring, for that matter). They may simply not really understand what they're doing to the same extent.

To me, the thesis in the original post is this "[if] there are people who are brain surgeons, it cannot be so much harder than being a really competent programmer."

I tend to agree, because I think that some types of programming push people's mental ability and sheer stubbornness past the point of human ability. In short, it will take all you have, and there will still be things you just can't understand or do.

If you define the task as "the things that we understand and can do", then by definition is is not equal in complexity to the brain, but like I said, I think the statement is a contrivance.


This, exactly. CPUs and their insides, the hardware, understanding that, and then understanding the whole software stack that runs on that hardware, I mean _really_ understanding, by definition that if one bit was off in the RAM you could completely trace it all the way from the application level to the hardware level.

Almost nobody can do that. The hardware alone is so complex, these modern CPUs have many BILLIONS of transistors packed so tight that it is impossible for us to even fix them. So we just have a vague understanding of what is going on when we program, but really, we have no clear picture. But the best programmers out there, they have this map of the computer in their heads and the systems, and the better you are, the better the map in your head is.

Think NASA level programmers. They truly have to know how the system works, and yet, they cannot most probably understand the whole stack even, down to the transistor level operation, and then below that even in some really extreme cases where the systems overheat and there is magnetic bit flipping happening and other obscure stuff.

Immense amounts of work equals to amount of commitment required, which equals hard. To be a really competent programmer that knows how to truly take advantage of the machine is really rare, and even then it is down to some very specific domain, like graphics programming, systems programming and so on. So it is very hard to achieve, and very rare.


I agree with you, and I think that programmers dismiss the complexity and difficulty of what they deal with far too quickly. I'm not saying that all programming is hard, but I do think that hard problems in software contain challenges that will take all the raw intelligence and hard work a person can have and then some.

There are plenty of other fields that do as well, but software absolutely belongs in the mix.


Being a computer surgeon rarely involves much physical dexterity and typically lacks the urgency/pressure that being a brain surgeon regularly entails.

Comparing "computer surgeon" to brain surgeon is like comparing sudoku to racquetball.


Also, in 95% of cases, nobody's life depends on your software.


There's no version control for brain surgery.


Those people are smart but there's a textbook to follow, a clear path to graduation. I didn't mean to start a war of the professions, I'm sure there's already a Hacker News thread for that.

My point was, you can teach yourself a half-dozen programming languages, operating systems, databases... (which is inevitable for most developers) or you could have spent that time collecting diplomas in academia. This is not really a new concept, I read it somewhere else. Any profession that demands a lot of ongoing learning, I think people will quit because the effort may not seem worth it.

I agree you have to learn the "right" things but that takes experience and strategy. That's an interesting aspect of all of this. When everybody says "iPhone" you might bet on Android. Everyone says "Google Glass" and you might bet on Unity. If you have a crystal ball, maybe you're the next Warren Buffett ;-)


Most of those other professions require ongoing learning, too. Doctors and lawyers have continuing education requirements for licensing, scientists have to constantly be reading journal articles, attending conferences and keeping up with the latest developments in their field.

I understand the point you're highlighting, but there are very few interesting jobs where you get to say "Ok, now I'm done learning and I know everything I'll ever need to know to do this job perfectly."


Kind of surprised you threw "lawyer" in there.

Of course, there's a bit of a difference, in that you can call yourself a programmer even if you can't program. Whereas you can't call yourself a lawyer until you've passed the bar, which almost always involves attending 3 years of law school. So it's not really an apples to apples comparison. There is really no barrier to entry to programming that sets a minimum bar. So if you're comparing something with a minimum education standard with something with no minimum standard… well then yeah.

But personally, I don't think the required training to become a lawyer is anywhere close to as rigorous as what it takes to become a brain surgeon or rocket scientist, and if you look at typical pre-law majors, they aren't as difficult or rigorous as common undergrad degrees for software developers (CS, math, engineering, physical sciences). Let's face it, people don't drop out of poly sci because physics would be an easier major with more time to party.




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

Search: