My current job is plan B. Like I said in the post, I'm not bad at what I do and I enjoy it. I'm perfectly content where I am until something better comes along.
"Each win reassures me that as long as I refuse to give up, I can never lose."
I can totally identify with this. Nothing is sweeter than the taste of victory after slaving away on a problem for hours. In fact, minutes ago, I just had one!
With the state of the current job market, if you can code, you pretty much need to be an ax murdering psychopath who has publicly bad mouthed previous employers to be unemployable. And there are companies who will overlook the ax murdering so long as you keep it off company time.
This actually made me laugh. If it's true then so much the better, but I don't like to put all of my eggs in one basket. Especially if it's the Facebook IPO basket. (/endbadjoke)
This is more or less where I was a couple of months back. I still am a lot skeptical on my marketability as a programmer. But I am in a better mental position than where I was only because I was able to launch something, albeit small. I am happy and feel a bit more confident in my abilities and see myself working on what I love.
Sorry, I don't have a twitter account. My only social online presence is at github (https://github.com/davyjones). I just started following you there. Cheers!
Just started following you! Sorry, my internet connection dropped right after you posted this. Actually .. I lost it when I tried to open your GitHub page. H4x.
I was in a slump. Then I worked on my own project and published it. Something I'd never done before. Almost immediately after I was given a nice contract paid in full up front for what amounted to not even that much work. Shortly after I published something great on github and it got forked a ton of times.
Sometimes you need to take a break and worry about your own projects. Those are the ones you'll definitely have to show for yourself.
Good post, but I'll say this: You are very employable and your concern about lacking a Stanford or MIT degree is laughably misplaced. Don't fall into the trap of thinking that silicon valley start-ups are the entirety of the programming employment world, it is far from the truth.
I enjoy programming. I was a developer working several years for different companies. I partnered in a software company where I was the technical guy.
I lost fun in programming and now I'm a freelance project manager. For programming I didn't had a off switch. When there was a problem to solve I solved it even if it was until 3 in the morning. When having a wife and kids this is not what they expect from a husband or father. As a project manager as soon as I'm home the switch is off.
Lessons learned is that what you do with passion can consume you. Which is not for everyone.
You don't have to go to the Valley if you don't want to. I'm sure that, with a little time spent building and shipping code representing what you're capable of, you'd be perfectly able to find a job writing code in Jacksonville, assuming you're interested in staying.
Don't get me wrong, Jacksonville is a beautiful city, but I'm not interested in what the software scene here has to offer. There seem to be a lot of business/enterprise software companies and that's just not my jazz. Hashrocket looks legit though.
> I’ve been programming on and off -- mostly off -- since I was 12 years old and I continually find myself in situations where programming is just downright boring to me.
> I will continue to program but, from now on, it will be purely for fun.
No need to put pressure on yourself. The market is crying out for talented and enthusiastic people. Don't know your job history but imagine if you're willing, there is a job or project out there to keep you motivated.
I worked with a computer science professor a swarm robotics project last summer. Aside from that, I have no professional experience. I work in retail sales. :)
"So here we are. I’m sitting here, with a cigarette in hand (I said slowly), pondering what makes me tick. It’s a weird feeling. You think you know yourself, but the truth is that people lie about how they feel so often that they end up lying to themselves without realizing it. And, maybe, that’s what happened to me. Maybe I’ve been kidding myself all along"
You have been lying to yourself and you are living in denial. That cigarette is killing you. Your health is _everything_, why put it at risk.
I did mention in the article that I'm working on my health. I didn't put much emphasis on it in the post, but, believe me, it is an important goal. I will have better luck if I slowly ween myself off of the nicotine. Thanks for your concern though. :)
Hey man, love the chess analogy. Hope you truly are getting off the cigarettes soon and ready to channel that new found money and energy into your success.
The good news is that indeed many companies nowadays would show interest based solely on a GitHub project. But you do need the ability to finish things off.
The truth is that many of the bigger coms out there have multiple requirements, and will care more about your degree, problem solving ability and familiarity with formal computer science. Perhaps because they get so many applicants, they need to rely on metrics at some stage to cut down the bulk.
Even so, these things are worth knowing anyways and, speaking from experience, you can pick them up comfortably outside of a CS degree.
I am planning on picking up a copy of The Algorithm Design Manual soon. Unfortunately, my local library doesn't stock it so I'll have to fork over the cash, but it's worth it.
Haven't read that one myself, I learned mostly from Introduction to Algorithms and online tutorials. I would suggest having a go at TopCoder problems. It's a bit of a pain to set up, but once you have, there are practice rooms with problems from past contests. Written up solutions are available too. It helps you learn to design algorithms for unseen problems, which is ultimately what we're after. There are a lot of essential small tricks and methods that these problems contain and algorithm books don't get to cover at all.
Also, competing is a good idea. It helps you evaluate yourself and there's more motivation to do well. Having a rating of 1500, say, would place you in a good position to crack even the most competitive phone interviews.
I did TopCoder for a few years in high school, and now I can confidently and quickly get most of the algorithmic questions that companies ask. It takes a while to get there, but it's worth it.
I will get CLRS eventually, but I think I want something a bit softer to get started with. The Algorithm Design Manual has a lot of little anecdotes thrown in that I think will be fun to read. :P
I've heard of TopCoder before, but I never bothered to give it much attention. I'll give it a shot though! Cheers.
When I program, I’m playing chess with the computer. The board is wide open and there are tons of moves to make, but which move is the right one? Typing commands into my terminal to compile and run my latest masterpiece is just another turn. A runtime error means I’ve lost a pawn. A cryptic, nonsense compiler error? The computer just took my Queen.
Wrong analogy, I think. I would say when you program, you're expressing, or describing, an idea/design/thought to a computer. The computer is your ally and 99.999% of the time it does exactly what you tell it. I think, on some philosophical level, that this matters. The computer isn't out to get you, steal your pawns or whatever. It's sole purpose is to bring your ideas, however flawed they may be, to life. And yours is to harness that power and learn to express your thoughts as effectively as you can.
I understand what you're saying, and I agree that a computer should be your ally, but that isn't usually how it feels for me. For me it usually feels more like the computer is trying to do everything it can to best me, which I can't allow to happen. Perhaps that speaks to my (in)abilities as a developer. :)
34 comments
[ 9.7 ms ] story [ 97.4 ms ] threadI can totally identify with this. Nothing is sweeter than the taste of victory after slaving away on a problem for hours. In fact, minutes ago, I just had one!
And in that case you just found your own company and go straight for your series A, the VCs'll eat that up.
Sometimes you need to take a break and worry about your own projects. Those are the ones you'll definitely have to show for yourself.
I lost fun in programming and now I'm a freelance project manager. For programming I didn't had a off switch. When there was a problem to solve I solved it even if it was until 3 in the morning. When having a wife and kids this is not what they expect from a husband or father. As a project manager as soon as I'm home the switch is off.
Lessons learned is that what you do with passion can consume you. Which is not for everyone.
> I will continue to program but, from now on, it will be purely for fun.
No need to put pressure on yourself. The market is crying out for talented and enthusiastic people. Don't know your job history but imagine if you're willing, there is a job or project out there to keep you motivated.
You have been lying to yourself and you are living in denial. That cigarette is killing you. Your health is _everything_, why put it at risk.
The truth is that many of the bigger coms out there have multiple requirements, and will care more about your degree, problem solving ability and familiarity with formal computer science. Perhaps because they get so many applicants, they need to rely on metrics at some stage to cut down the bulk.
Even so, these things are worth knowing anyways and, speaking from experience, you can pick them up comfortably outside of a CS degree.
Also, competing is a good idea. It helps you evaluate yourself and there's more motivation to do well. Having a rating of 1500, say, would place you in a good position to crack even the most competitive phone interviews.
I did TopCoder for a few years in high school, and now I can confidently and quickly get most of the algorithmic questions that companies ask. It takes a while to get there, but it's worth it.
I've heard of TopCoder before, but I never bothered to give it much attention. I'll give it a shot though! Cheers.
Wrong analogy, I think. I would say when you program, you're expressing, or describing, an idea/design/thought to a computer. The computer is your ally and 99.999% of the time it does exactly what you tell it. I think, on some philosophical level, that this matters. The computer isn't out to get you, steal your pawns or whatever. It's sole purpose is to bring your ideas, however flawed they may be, to life. And yours is to harness that power and learn to express your thoughts as effectively as you can.