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

If you're good it's always easy to find programming jobs. Even when the economy is bad there is a shortage of good programmers.

That's a truism in our industry that far too few people understand, much less take advantage of. If you're good, you don't need to worry about your career all that much. You can go off and travel, join flaky startups, and otherwise sabotage your "career", and know that if it all falls apart you'll land on your feet. So long as you're demonstrably good at what you do, you can always pick up a good contract on short notice.

There's a flip side to it, of course. If you find it hard to get work in this industry, you might want to consider the possibility that maybe you're not quite as good as you think you are.

While I believe that this advice is technically true - it avoids a very critical issue and is thus misleading. The more important questions are: How "good" do you have to be to get an outcome comparable to the average lawyer or physician (or MBA grad)? How many other people are this good? How different are the outcomes between people who are "good" and those who are not "good"?

You could make the same argument about playing professional basketball or football. If you are "good" you won't have any problem finding work and you will make a lot of money. The problem is that only a vanishingly tiny minority qualifies for this standard, and players that are only marginally not good enough to make it to the NBA have significantly worse outcomes.

Computer programming is a fun intellectual challenge. If you want a conventionally successful career study law or medicine - professions which take protecting their wages and bargaining power seriously. Computer programming is something where you must be motivated by a love of the craft. I remember reading Stroustroup's C++ when I was in high school and he pointed out the trend toward the "deskilling" of computer programming. His comments had a somewhat cynical disillusioned tone to them and they turned me away from programming. When I have seen how the careers of some of my high school friends developed and how they feel about the experience I'm glad that I ran across Stroustroup's "advice"

> If you want a conventionally successful career study law or medicine - professions which take protecting their wages and bargaining power seriously.

I'm not sure what you're talking about here. My impression is that the legal field is glutted, and medicine is under constant pressure to cut costs and follow cookie cutter insurance-approved routines (deskilling?).

The deskilling of computer programming is counter-balanced by an even larger trend--the continual addition of new software frontiers and automation of existing industries.

On top of that, in terms of security, computer programmers are the alpha-dogs of the tech world. In a gloom and doom scenario, we have options. As a programmer I could edge out people with years of experience for positions in QA testing, software automation, technical support, pre-sales engineers, support engineers and other positions. Not that I have to, because software jobs are still plentiful compared to other fields, even in the current recession.

> I'm not sure what you're talking about here.

My take is that doctors and lawyers both have powerful professional associations that limit the supply of new doctors and lawyers by establishing competency standards. The AMA also explicitly caps the number of residency positions available in each hospital.

> If you want a conventionally successful career study law or medicine - professions which take protecting their wages and bargaining power seriously.

Because all we need to be successful is a little more protectionism, right?

Well, yes and no. Most of programming isn't really coding, it is easy to learn new keywords and syntax. Some of it is formal problem solving, which is abstract. But a lot of it is domain-specific knowledge. This isn't true if you just make websites and there's no-one with much experience because the technology changes every few years. If you don't use it, you lose it.

And the dark side is, ageism is rife in our industry. You could be an expert in language X with 20 years experience and every programmer knows that you could learn language Y easily enough. But you have to convince a hiring manager on the "graduate fast track" who wants someone who knows Y and thinks that anyone who hasn't made manager by 30 is a failure.

You can screw around and play the "rockstar" in your 20s, but it gets harder and harder as you get older, and the number of people able to live this lifestyle in their 40s is orders of magnitude smaller.

"This isn't true if you just make websites and there's no-one with much experience because the technology changes every few years."

Websites are in their own world though. An * expert web programmer has certain advantages. At any moment you can delve into blackhat stuff and make money. I'm not sure what you mean by website technology as always changing so maybe I'm about to say something dumb but here it goes - The syntax changes a lot, sure, but the basic ideas of automation and data work of mining, collecting, and organizing have always been around. Now they are just at the forefront.

* all this really means is you're a good programmer that understands how the web works and knows things like traffic generation, and how money is made on the web. But basically 90% of the real expertise and time is still with actual programming.

I mean you could have been an experienced user of say Cold Fusion, then spend 6 months living on a beach in Thailand and when you come back the industry is shifted to PHP.

As an analogy, think of the Swiss watch industry. There were people there with 30 years experience with the most intricate mechanical devices in the world. Didn't help them one little bit when the Japanese invented the quartz movement, the skills just weren't transferable.

Yes, but mechanical watches are still doing fine in the high-end of the market.

Did you know that, ironically, the British used to be the premier watchmakers, but they were driven out of the market in the 19th century by cheap competition from (amongst other places) Switzerland?

Isn't that true of any career though? As a college student who will soon be attempting to get a job (presumably as some sort of software developer, since I'm a CS major), I don't think saying "you'll find a job if you're good" really tells me much. I don't KNOW if I'm good. I'm confident in my comprehension of Computer Science topics, my ability to learn and find out things I don't know, and my ability to present myself well in an interview. Will that be enough for an entry level job?

Your "good"ness will present itself to you over the course of time. You'll be working at a startup and they'll lay off the entire development team, but ask you (and only you) to come back on a contract. You'll get a call out of the blue from somebody who's putting together a team and got your name from one of your old bosses who recommended you. These incidents might not mean much individually, but over a half dozen years you can assemble them to mean that you're good.

From there, you get something that's definitely not true of any other career (or at least only applies to a few). Doctors and lawyers generally don't get to disappear on year-long vacations and then drop back into their previous career path without missing a beat. Developers can. You can go on to lead the life you want, without having to think about how it will damage your career. It's all good from there.

Don't presume that you'll get a job as a software developer by virtue of having a CS major. You'll have to earn it or get lucky. By earn it, I generally mean that you have to be good at programming and be able to demonstrate it. Doing well in CS subjects is helpful but won't guarantee you a programming job.

That's a big part of why starting a company is so appealing for recent college graduates. You are forced to "earn it."

After a month in any entry-level job in any field, you'll know, and all your co-workers will know, if you're "good."

After a couple years of seeing code in the "job world", you will know if you are good or not. If you understand CS topics well and you enjoy hacking, then you are probably good.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact