top | item 4410805

How to Get a Job as a Developer in Less Than Six Months

220 points| reubenpressman | 13 years ago |learnwithjeff.com

174 comments

order
[+] technotony|13 years ago|reply
It's really frustrating reading all the negative comments here. What happened to positive support for people in our community? This guy had a passion, worked his butt off and got a good result... I'm sure he'll go on to many more good things in the future. We should applaud and celebrate this, not knock down how he's not a senior developer yet. Congratulations Jeff!!
[+] borplk|13 years ago|reply
It is great to see these posts and I absolutely applaud him for what he has achieved.

Programming, like any other profession takes time to master, how would you react to "How to become a brain surgeon in less than 6 months"?

If you were to have a brain surgery would you choose the guy who was unemployed 6 months ago, or the other one who has been performing these surgeries for the last 20 years, every day?

My point, comparing the two, is to highlight that both of these professions affect us, one a bit more dramatically than the other.

If every medical student got to be a brain surgeon in less than 6 months we would have many more tragic accidents costing lives or making someone permanently disabled but there are many barriers in front of them that prevents this kind of thing and gives the patient some confidence.

I argue that there should be something similar in place in the field of development/programming.

In the same way that I would prefer the more experienced surgeon, I'd prefer the websites I use to be programmed by more experienced programmers, how about the cars we use? the airplanes?

[+] rlander|13 years ago|reply
Absolutely. Were an alien to pick up this thread it would think that programming was some God-appointed job.

Jeff, congrats from another (ashamed for the moment) programmer.

[+] jeffreybaird|13 years ago|reply
So, there have been a lot of negative comments and I understand where they are coming from. I will try to address them as best I can.

"Seeing a self-taught guy with 6 months coding experience writing software at a medical lab testing facility makes me a bit nervous."

I am working mostly on internal systems and when I venture outside of that I have my own branch write thorough tests and have multiple people check my code.

"I shudder to think of the quality of his code and the projects he or people like him are let loose on."

My code is pretty shitty. But, I know how bad it is, I know my limitations. I work long days and more after work to improve. I am not pretending, I am learning.

"Very fancy, but I am a software engineer, or programmer, as you prefer it to be called. Engineer means that I studied 5 years at university (Bs + Ms), and I know what I have learnt there, and I wouldn’t want to work with someone that doesn’t know about algorithms, algebra (it helps you understand a lot of things and opens your minid), compilers, statistics, concurrent programming, software architecture (1 full year course), UI designing, networks, databases, etc, etc."

I disagree that amount of time in a University is what allows one to become a programmer, it is the skills and knowledge acquired at the school. I didn't have that option, I needed a job in under six months or I was going to have to get a job doing something I didn't love. I worked hard and got the job. Am I a master? Nope. But, I have put myself in a position to become one with continued hard work.

I think that is all of them. Many people glossed over this line, "When I started this search I thought I would be scrubbing toilets in exchange for nightly code reviews."

The fact that I am not doing that is a mixture of my willingness to clean toilets to learn the craft I love and a market desperation for developers.

[+] meritt|13 years ago|reply
While I absolutely applaud the effort and tenacity of this individual, at the same time, I feel a substantial amount of trepidation regarding the current state of the tech / start-up industry.

Virtually every hot new startup I see on blogs, it just takes a few minutes of basic penetration testing to find gaping security holes. Everything from simple XSS or CSRF to blatant leaking of sensitive user data. Obviously he was hired at a "junior" level but I've interviewed plenty of "senior" candidates who, 5 years ago, would have been "junior" with their skillset and this guy would probably be a coffee-fetching intern. We keep lowering the bar (due to the crazy imbalance of talent vs. jobs right now) in hiring practices and the long-term impact of this practice has me worried.

On the flip-side, seeing all of these amazing ideas being brought to life and fostering such a strong sense of innovation is amazing to see.

[+] jeffreybaird|13 years ago|reply
When I was hired it was with the very clear understanding that I was to be taught a lot and I was being hired for my desire to learn. Sometimes if you can't find a qualified candidate you have to train them.
[+] mquander|13 years ago|reply
Although I really sympathize with your frustration at the amount of crappy software being written, the alternative is the same software not existing at all; there aren't nearly enough programmers to write everything we need.

In most cases, I would prefer crappy, insecure software to nothing, so I'm all in favor of newbie programmers trying their hand at filling the holes in our world. (Also, newbie programmers working now increases the expected amount of skilled programmers fifteen or twenty years from now.)

[+] tgrass|13 years ago|reply
Next time you cross a bridge, realize civil engineering has the same issue.
[+] bdcravens|13 years ago|reply
I suspect that's the result of over-hiring (giving a $150K senior position to someone who should be junior). I think it's less a matter of experience than laziness: I've met too many CS majors and/or devs with 10 years of experience who write this code. They get lazy, complacent, and confident, and never grow.

On the other hand, the OP has a hunger: I suspect he'll continue to grow if he stays hungry. You don't magically write better code by sitting in a desk for 5 years: you write better code by seeking growth.

[+] nhangen|13 years ago|reply
How do you propose people learn those skills?
[+] RutZap|13 years ago|reply
This is a nice story but there are some hidden issues around here. The ones that want to get into programming should be aware of these:

It's not an easy trip.. it's not just six months... it's a lifetime. Yes you might get a job in 6 months but then you will have to work even harder to keep that job and to be in the game. You will never stop learning... you will have to constantly adapt yourself to the new technologies otherwise you will end up being the guy hated by everyone for your crappy code that's a pain to be maintained.

Yes you might learn Ruby or any other programming language and you can solve problems and build stuff... so basically you can do your job.... but there's more to programming. You should not just read a ruby book and learn the syntax and hey presto you are a developer. You should put some time in learning how software works, learning some algorithms and so on. It's not about one programming language, it's about programming in general. Programming languages are just tools we use to achieve a goal. For example, you can't be a car mechanic by learning how to use a wrench.. you need to know how to use more tools and, the most important thing, learn how to fix an issue using the most appropriate tool.

[+] Swizec|13 years ago|reply
To be honest, I think this is true for every profession, not just programming.

If you want to stay on top, you have to continually improve your game.

Or you can be that guy in the corner who got left behind when the factory tanked and he suddenly found himself unemployable.

[+] jeffreybaird|13 years ago|reply
"It's not an easy trip.. it's not just six months... it's a lifetime. Yes you might get a job in 6 months but then you will have to work even harder to keep that job and to be in the game."

That is exactly why I fell in love with programming. There will never be an end to the learning.

[+] MengYuanLong|13 years ago|reply
I'm unable to access the article but I'm very surprised by many of the comments in this thread. A large number of articles are posted each month belittling (at the very least questioning the value) of non-technical founders. These and similar posts are then filled with sermons advocating individuals learn to code.

Apparently, OP took these statements to heart, put in the effort/time, and what does he get as a result? Derision. What is this community about if it isn't about personal and financial growth coupled with creation?

Perhaps in his post, OP makes some grandiose claim about being a master programmer, okay fine, cut him down. But I suspect it is far less egotistical and merely his way of celebrating a small victory brought about by what is so often advocated: That learning to code really is a way to improve your life.

[+] InfinityX0|13 years ago|reply
Great to see that. There's plenty of "you should learn how to code" posts, Codecademy, Treehouse etc, but there are very few case studies of people who seemingly A) used these tools and/or B) actually ended up being able to wing it learning to code mid-to-late-stage in their career. Not sure if this post really qualifies as either of those, as well. If there's more examples of this that I'm missing, please let me know.
[+] polyfractal|13 years ago|reply
I had a different trajectory, but a similar end point (biology -> freelancing -> full-time web dev).

The biggest similarity I noticed between myself and the OP is that you have to put yourself in the way of opportunity. For me it was building side projects and hosting Startup Frontier. For the OP it was ruby meetups and send out an email to the list.

It takes a lot of guts to cold-email people like that, I have a lot of respect for the OP. Good work!

[+] alanning|13 years ago|reply
Not really a case study but my sister went from never having coded, middle-school math teacher to junior consultant at ThoughtWorks in 5 months via DevBootCamp. TW may be a bit unusual though in that they are willing to train you for a year before actually making money on you.
[+] mattdeboard|13 years ago|reply
I got some of these same bitter, angry, defensive responses when I posted my "how I became a developer" post a while back. I dunno what it is about programmers here but for some reason "programmer" is considered some sacred title you have to earn. Whatever.
[+] seiji|13 years ago|reply
I wouldn't be happy with someone who only built LEGO bridges running around calling themselves an engineer.

A lot of it seems to be ego. People want the shortest path to claiming a title.

Ignore silly titles and categorizations. Just make good art.

[+] reinhardt|13 years ago|reply
Right on! The nerve of some programmers to think their profession is in the same league with the big boys that need college and university degrees! Who do they think they are, some kind of scientists or engineers?

</sarcasm>

[+] cwp|13 years ago|reply
Awesome write up; thanks for sharing. I'm a self-taught developer too, although it took me more than 6 months to get my first job.

One technique I'd add to your list is, "Find online programming communities and take part in them." I learned an incredible amount from development-oriented mailing lists over the years, and I still do.

[+] TheCowboy|13 years ago|reply
I should probably do a write-up about how a year later I still do not have a job doing development. Jeff touches on a few things I am pretty sure I would do differently.

I think the most important thing is working on visible projects and seeing them through to completion, as opposed to acquiring more depth through study.

Additionally, I would have went with Ruby instead of Python. Python jobs and internships seem to fall more within an area where people demand a CS degree background, at least in this region. With RoR the demand tilts heavily toward webdev, which doesn't require 4 years of CS to be productive.

I definitely still think it's possible for motivated and tech-savvy people to do what Jeff has done.

[+] hackerbob|13 years ago|reply
I'm debating whether to learn Python or Ruby. And the initial post as well as this one has me leaning towards Ruby despite all the good things that have been said about Python.

Are there non CS majors out there that picked up Python as a first language and had doors opened for them?

[+] the_cat_kittles|13 years ago|reply
You really did a great job! I took longer than you, but I followed a similar path. In hindsight, I can't imagine taking any other path, its been a blast! If I could emphasize one of your points, it would be to MAKE stuff, don't pick out problems out of thin air, MAKE stuff you want! I really happy for you, and I'm really glad you wrote this. I haven't agreed with someone so much in a while! Also, I would reinforce your point about git and github, that is as absolute must in my experience. It is your resume and one of your main tools.

Edit: Dont forget about IRC!!!!

[+] santa_boy|13 years ago|reply
I would also reinforce the github point. It is as important a point especially when you are working on a start-up idea alongside a regular day-job.

Git pushes really give an indication the progress, skills, "actual work" and ideas to re-prioritize or launch.

Sorry if it sounds obvious but I really feel in a resource crunched situation the best one can do is to push out as much as possible to git and take them further to push to the real world to get some real feedback!

Back to the topic .... if the start-up doesn't stick on ... surely it can get a great job with a great employee!

[+] slurgfest|13 years ago|reply
Genuine question: what does IRC do for getting a job other than taking up time?
[+] jmtame|13 years ago|reply
The problem with self-learning is one of discipline and motivation. I started a learn-to-code startup and iterated 7 times (now profitable). It's nearly impossible to keep someone engaged without having a human involved. When I think back to how I learned to program, it wasn't alone. I surrounded myself with CS students. And I had a lot of intrinsic motivation before I started.

Join a program like Dev Bootcamp. You'll save an enormous amount of time by working alongside other people with similar goals, and the social pressure will keep you on your toes.

[+] aik|13 years ago|reply
Have you been through Dev Bootcamp? Did you find it immensely useful? Did it help with getting hired?

I ask because it has quite a large upfront cost... perfectly reasonable if it really is that great.

[+] jlarocco|13 years ago|reply
Seeing a self-taught guy with 6 months coding experience writing software at a medical lab testing facility makes me a bit nervous. The need for proper security in that area is (IMO) even more important than for credit card and financial processing, and I just don't trust a guy with only 6 months experience to do it correctly. Nothing against him, but I think it's too complicated of a subject to learn in 6 months with no real world experience.
[+] debacle|13 years ago|reply
I almost completely disagree.

I've mentored guys who were greener than grass who grasped things like input sanitation intuitively. I've also worked with guys with 5+ years experience who thought this:

$foo = $_GET['foo']

Was input sanitation.

I would posit that, because of the vastly different quality needs, understandings, and valuations inherent in the industries that our industry touches (namely, all of them), it's unlikely that you're going to see any strong correlation between age/experience and code quality.

[+] giulianob|13 years ago|reply
It's a junior level position. They aren't going to expect the guy to architect their solution. He's probably going to start doing some of the easier tasks.
[+] duked|13 years ago|reply
I don't mean to be a mood killer but that has to be taken with a grain of salt. Ruby/Python/Perl are awesome language for beginner because it abstract so much that they think they know how to code after a day, and when they have to learn a new language like C they are completely lost and produce spaghetti code. That might be ok for web development where you can hack here and there (with JS/CSS/HTML) but I really challenge someone that follows that guide to be a embedded device developer or a software engineer using C or even C# or Java.

Anyway good read but again it should be really emphasize that this is an ok road for a web developer.

[+] zupatol|13 years ago|reply
I'm an unemployed programmer with 10 years of experience and I've been looking for a (part-time) job for less than six months. I keep telling myself it would be great if instead of looking for a job I could spend all that time just coding. I have plenty of ideas. I've avoided that because it feels like running away from my responsibilities, but this post makes me think again.

On the other hand the situation seems to be more difficult where I live (Geneva, Switzerland). I've always been so enthusiastic about programming that I want to encourage everyone to learn it, but today it sounds like bad career advice around here.

[+] joshlegs|13 years ago|reply
I wholeheartedly agree with you. I have been learning code about a year and now I have a part time job doing it.

The key thing is to demonstrate aptitude. Period. You obviously have done this. Also, eagerness to learn is a huge huge selling point -- because apparently you do that throughout your programming career. But the biggest thing is to demonstrate an ability to code. You might not know everything a university graduate does, but then again, I hear a lot of the people coming out of university aren't very good programmers right now. =\ Not really sure.

University teaches you a lot of foundational stuff, but if you have someone willing to work with you a little, you'll learn the same stuff (and likely already have a little of it under your belt).

Anyway, kudos to you for sticking it out and being aggressive. Great example.

[+] troels|13 years ago|reply

    Work your ass off (...) So, in order to make the kind of
    strides I made, expect to spend at least 10 hours a day,
    six days a week dedicated to programming activities.
Important point is that you have to love those 10 hours. I'm pretty sure that if you do it just with the end goal in mind, it won't work. You mention this, but I think it could be emphasised.
[+] bored|13 years ago|reply
Agree. I've been there. Those need to be 10 hours you planned on being only 6.
[+] jeffreybaird|13 years ago|reply
Honestly the six months started as a weekend curiosity, and those ten hours often became twelve or more. Addiction was an understatement.
[+] kmfrk|13 years ago|reply
Can anyone outside the U.S. - preferably in Europe - share similar stories, if any?

I find that the U.S. has so many cool ways to work your way into a programming gig, it makes anyone outside red with envy, but I struggle to find something similar in Europe - especially in smaller countries.

What would your advice be for us who can't get a U.S. visa?

EDIT: I'm thinking mainly of Python/Django jobs and communities here.

[+] dagw|13 years ago|reply
The big advantage with the US in this case is that it is often cheap and easy to fire someone. This makes companies much more likely to take a chance on someone, since they know they can get quickly rid of them if it doesn't work out.
[+] orangethirty|13 years ago|reply
In six months you did more than other hackers I know do in a year. In code, time is relative to effort/motivation. You have both, work will gravitate to you. Now, wait until you start contracting, and find your inbox full of work after posting a for hire ad in HN. Crazy.

To give you some perspective of the relativity of effort/motivation, I know people who have been "learning" for years who just don't sit down and push through. Sure, like others say, your code will have security holes the size of the titanic, but you are still learning. And learning is about finding out what doesnt work. Good luck, and keep hacking.

[+] usea|13 years ago|reply
Jeff, not to criticize but your site is near-unreadable to me (Windows 7, both in Chrome and Opera). Here is an image: http://i.imgur.com/4wXrQ.png

The text is too light at #666 on a white background, which is pretty light on windows (although chrome renders it a bit thicker, it's still pretty light). Also it would look much better if I didn't have Adobe Caslon Pro, as Cambria is pretty normal.

I loved the content.

[+] xiaoma|13 years ago|reply
It's really too bad that there isn't more newbie-friendly friendly stuff going on in the SF ruby meet-ups. One of the first things I did upon moving here a few months ago was to join the group and look for anything aimed at learners. Unfortunately in 3 months and dozens of emails from the meetup group, I haven't seen a single event where men welcome (without a woman bringing them).

In this city, at least, it's probably a better idea to spend more time on your own learning. Some of the resources on the OP's list are great. Learn to Program was something I went through before moving out at it was a good intro. Also, Code School is good if you can spare the cash. Coursera has been fantastic-- it's completely free and has full videos, graded tests and forums.

Once you do have somewhat more of a foundation, then the normal meetups start getting more useful-- hack nights, pair programming nights, lightning talks, etc. One thing I have to say though, is that I met some extremely friendly and welcoming people early on when I went to meetups and had no idea what the heck everyone else was talking about.

[+] gkop|13 years ago|reply
The SF Ruby list reaches several thousand people. I organize free weekly Ruby classes but don't blast SF Ruby for fear of being quickly overwhelmed. I emailed you with details.