Hacker News new | ask | show | jobs
Ask HN: Is programming a good career to start in anymore?
3 points by qzc4 4313 days ago
First off, I am mainly a lurker here and read a lot of this stuff, for better or for worse. I'm a junior in high school, unsure where to go next. I do a lot of programming and I suck at it.

I have read quite a few comments that say programming is not a good career. It's hard to do what you love because there are so many people who do the same thing, it's not a unique skill, it's unstable unless you settle for Visual Basic maintenance work, etc.. Judging by the amount of “this thing is so difficult, I need to take a 50 year sabbatical so I can have a proper work-life balance” type of posts I see on HN, it's stressful too.

So, my question is, is it even possible to get a job (in a few years) under the label of “programming”? Do I need to find something better to specialize in (sysadmin, network guy…)?

I enrolled in a Python/C++ independent study class because I took AP CS for the A+ I needed to boost my average last year. So, in a sense, I've already committed another year to this. Is this a skill I will end up using, or will I look back at this as a waste of time for the rest of my life? Am I just being especially pessimistic at the moment?

I don't need any more of that “follow your dreams” bullshit.

8 comments

As someone who was in a similar position and whose world view seems to be similar, I would say that looking for a career as a programmer is probably a bad choice, but you're actually far better off than you think.

On the bad side, the career of programmer is a bad career to get into in the same way that scribe, typist, and elevator operator are terrible career options. However, if you go to a job interview and can't read, type, or use an elevator, you'll be shown the door. Programming is heading down that same road.

So, there's some good news. You didn't waste your time. You're going to be writing code until the day you die. You'll just never be called a programmer in the same way that you'll never be called a chauffeur when you drive yourself to work.

The next bit of bad news is that you probably do suck at programming. The CS AP test was a cake walk back when I took it and it DID include pointers at the time (during the brief period where they focused on C++). I was a deplorably incompetent programmer when I took the exam and I aced it without any problems.

The corresponding good news is that it largely doesn't matter that you suck as a programmer. The vast majority of people are so terrible at programming that even basic, wipe-after-you-poop competence will make you look like a superstar. To put it more succinctly, have you head of Git? I'm not asking if you've used it - have you heard of it? Congratulations! If you have, then you're in the top ten percent of crappy programmers.

I guess what I'm saying is that you shouldn't "follow your dreams" - don't become a programmer because that career is dying. On the other hand, you're pretty well off, because your dreams are going to chase you down. You'll probably never be a "programmer", but you'll spend your career programming, whether you want to or not.

You should specialize, but not in a "sysadmin" or "network guy" sort of way. These also seem to be assimilating into the basic employment competency list. Instead, ask yourself what you want your programs to DO. After all, if a couple of Silicon Valley VCs came to you and said "We need a programmer to make a database of left handed people and code areal drones to blow them up", I'm guessing that you wouldn't be that thrilled at the opportunity. So ask yourself what you'd like them write instead. If it's the next great ray-tracer for pixar, study physics and optics. If it's the next facebook, read up on sociology. If it's the new mining operation. If it's a better news site, study journalism. If it's an encrypted webmail client, study math. If it's blowing up left handed people, study aeronautical engineering.

And keep studying programming. It's a wonderful little hobby that will payout huge dividends in your career. Just don't try to be a programmer. Or an elevator operator.

My contrary opinion is that programming skills are one of the surest employment bets that a person your age can make. This is particularly true if you above average intelligence and enjoy the kind of abstract, puzzle solving work that is central to programming.

In addition to what you are already learning, think about adding the following. A decent foundation in Linux, PostgreSql,Javascript, CSS and Javascript. And, on the academic side take lots of math and statistics.

This combination will enable you to secure well paying jobs and if you have vision and a taste for risk this set of skills has high upside potential though creating products.

I'd say learn to program, but thoroughly learn a domain to apply it to as well. Ideally you'll pick the domain right, but learning what's involved in learning a domain thoroughly is itself hugely valuable. I don't know exactly when, in your educational trajectory, to advise what though. Probably depends partly on the particular domains you're considering.
You took the AP CS, and knew you could get an A+, why do you think you suck at programming?

Being able to program is a wonderful skill - the computers are so accurate, so efficient and never complains once you get all the bugs out. It's great. The languages are getting easier and more powerful. I think the world will soon just have 2 groups of people - people who program or make things, and people who don't.

In short, programming is a great career to start. You don't have to be an amazing programmer to appreciate it's beauty and value. Yes, it may be stressful, hey, even jobs at Starbucks or the Amazon warehouse get stressful - if you work at (any job) loser companies, you also lose your job easily when the bossmen screw up. If I am to choose an easily, portable skill to harness, programming is better than box-packing or coffee-pouring.

OK. You're probably right. But AP CS was not difficult for anyone. If you did the work, you got an A+. And then the exam was worthless as an indicator of how good you are. Even my friend who tried to copy and paste off Yahoo Answers got a 5 (the highest you can get). You can look at the course description[0]—it's easier than Programming 101 (of course not even close to the MIT version). It's all in java and you don't have to know what a pointer is.

> The languages are getting easier and more powerful.

Definitely agree with you on that one. I am learning swift right now and it has come really far from objective-C.

> I think the world will soon just have 2 groups of people - people who program or make things, and people who don't.

Now that is an interesting perspective.

> If I am to choose an easily, portable skill to harness, programming is better than box-packing or coffee-pouring.

That's a really unfair comparison. Those are jobs you get for minimum wage. You can't major in box-packing in college, but you can major in software engineering.

As I said before, maybe you're right. My fear is that really, my skills are not unique or specialized. They are just “Oh, I know some C, and some Objective-C, and some Python, and some JavaScript, and some Java, and some shell scripting, and barely any C++”. I feel like nothing stands out from that. With the exception of Objective-C (I'm including the native frameworks here), those are all languages that every programmer should know (C) or would be able to pick up fairly quickly (Java).

[0]: http://apcentral.collegeboard.com/apc/public/repository/ap-c...

It's entirely possible to get a job under the general label of "programming" - businesses everywhere need custom systems written to handle their shit and it doesn't really require any extra skills beyond being able to program. Right now the demand is so high that anyone and with just 1-2 years of total experience as a programmer (and without a CS degree) will have no trouble getting hired, provided he knows the technologies that are in demand (like enterprise java).
I am having a hard time understanding where you are getting such a negative vibe about software development, systems administration, and related fields. Are you being overly pessimistic? Yes, and that is an understatement. Give it a shot and see how it goes.

Yes, some places don't have a clue about software. Some may not treat you well. Look and shop around until you find a decent place.

What else are you considering?

If you want to talk about some fields that have high dissatisfaction, take a look at becoming a doctor or lawyer. :)

Last I checked there's a distinct shortage of programmers in America (which is where I assume you are since you said you took an AP class). But don't take my word for it, I don't need the competition!
Yes, definitely. Companies, agencies, clients, etc. will always need custom development. It's a growing market and will just become more popular as the years go on.