Hacker News new | comments | ask | show | jobs | submit login
How to Get a Job as a Developer in Less Than Six Months (learnwithjeff.com)
220 points by reubenpressman on Aug 21, 2012 | hide | past | web | favorite | 174 comments

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!!

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?

The comparison you draw is intellectually dishonest.

Many of the articles submitted to HN that frame programming as a craft get a lot of support. And just as traditional crafts are taught through apprenticeships, I believe that the same holds true for programming. Software shops can easily find a place for enthusiastic candidates with aptitude and commitment (as demonstrated by the OP). There are plenty of tasks that the new apprentice could help with until fully trained. This is how bricklayers (a fairer comparison than brain surgeon, you'll agree) are trained, and you don't see many houses falling down.

It's perfectly fine for a company to ask for a developer with more years of experience. However, the post mentions a junior developer position, which means they do not expect him to know things that developers with 20+ years experience (according to your surgeon example) do.

So I take it you'd never hire someone who is just graduated either, based on your argument? Of course there is a learning curve to anything, even brain surgery. If he has basic ability, why not hire him? It seems the company knows what it is getting itself into. As someone else pointed out, it's a junior position -- they're not looking him to be a project manager or anything.

Not to mention that the consequences of hiring a noob programmer vs. hiring a noob brain surgeon are on totally different levels ....

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.

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.

If you're like me those kinds of comments probably gnawed at you. Don't let it. In a few years you'll have achieved parity in terms of salary and respect to most of these surly commenters, and no one will give a shit about your "origin story". Your work will speak for itself.

To all the negative nancies, take it up with Dr. Norvig. http://news.ycombinator.com/item?id=3278080

I too am largely self-taught, though I took a much more convoluted path to get where I am today. I lucked out several years ago and found an employer willing to take a chance on me in spite of zero real-world experience and incomplete schooling. It seems to have worked out pretty well so far!

You know you're still green, and I respect that. Everyone has to be at some point. I don't care if they went to school—I've seen people come out of respectable CS programs not knowing a damn thing about actually writing software.

I've also seen people with plenty of experience—people who should really know better by now—still code trivially avoidable vulnerabilities and make other silly mistakes. School and experience are both lost on someone not really willing to take learning seriously, who already believes he's an expert.

Really, we're all self-taught. The practice of development is so far removed from college courses as to make us all essentially even at first hire.

Hey, way to go! I remember that letter on the NYC Ruby list.

I find music and computers to be so parallel in so many ways. The whole "scrubbing toilets" thing is what they told all of us recording students we'd have to be doing to get an internship at a recording studio. As a side note, I always wanted to be playing more than either scrubbing toilets or making records, which turned out to have been a good thing in the long term here.

I was one of the jazzers in a classical music school. We were pretty much the 1% in that we had every paying gig for a 50 mile radius. I could never tell if the classical kids (and teachers) held their noses up because we were "untrained louts" or because we "untrained louts and working a lot more than they were". Take from that what you will...

Just wanted to say congratulations and keep doing what you're doing. I've found that there's nothing better in life than having a goal to believe in and then achieving that goal, in spite of all it's difficulties. It's one of few things that will give you true happiness. As for the negative comments, you'll get plenty of those in life and you should just ignore them (if you succeed in doing this, let me know how you did it).

You have the right attitude about schooling. I never went to school for this, actually I am a high school dropout and never attended University. I have no degrees, and am happy about that. Instead I now have 16 years of real life work experience (and an additional 4 years of programming for myself). I make it a point to learn constantly - whether it is algorithms, compilers, statistics, etc. I have met plenty of people who have that background and still have no clue what they are doing.

Remain passionate about what you are doing - that is what will make you a good programmer.

How much will you be making at your new gig?

I read your piece with mixed feelings, I felt some kind of frustration. Then I thought for a bit and realized what I actually felt was jealousy and a bit of insecurity. After I recognized this it took me less than a minute to dismiss them completely - I'm not a cheerful person and I can't say I was really "happy for you", but what I wanted to write as a comment at that point was something in the lines of "good job".

Then I read the comments. Then went to work. Then read some more comments after I came back.

And what I want to write now would consist of profanities, wild swearing and all expressions of despise I could find. Not directed at you, obviously but at all the people who write complete and utter bullshit like the one who calls himself a programmer JUST BECAUSE of a few years in school or another one who thinks you'll be "a nightmare and time-suck for coworkers". I have no words for the ones like them, and it's not because English is my second language (it is ofc). And I'm scared shitless that, had I not take a couple of minutes to think, I could write something similar.

Well, obviously, you did... I'm not a cheerful, empathic person. You did ok, and you know it - you're employed and you do what you like. You don't need me to tell you that. Instead, I'll try to explain to you why those people wrote those poisonous comments, or, at least, what was it that almost made me write something similar.

1) I started programming at the age of 10 and got my first job in the field some twelve years later. Not because of lack of opportunity, there were chances. I was shy, I was uncertain of my skills (think 16+, obviously not earlier), I wasted time hesitating. From 10 to 16 years of age there were six summer holidays, which amounts to almost twelve months of programming (which is understatement - what with winter holidays and programming after school and all), so at least double the time you spent. And I wasted another six years before I finally gathered up the courage and actually applied somewhere (I got hired right off the bat). To put it simply: I'm jealous. You did what I could have done but didn't. I think there is still, almost ten years later, some regret in me that I didn't. Your post touched that regret and almost caused me to be mindlessly aggressive as some of the other commentator. I think this is a motivation for some of them.

2) The one who wrote that 'he studied 5 years at university' has similar reasons to the one stated above. It's just regret mixed with anger. The truth is he knows what these years gave him (at least if he's active as a professional developer now) and is bitter about this. This one is easy for me to spot, because I see it in people when they (sometimes after years of successful cooperation!) find out that I dropped out fairly quickly and never got my degree. It's funny, because I have never heard such complaints from people who had some social life during college. In short: they know they wasted they time, or alternatively, they know that they're not cut out to be programmers if they couldn't become one without collage. And for the record - don't be intimidated, please. "Compilers, networks, databases, concurrent programming" - you'll learn all of this if you want, it's not some arcane magic, really, you're perfectly able to learn most of those things on your own. Your post, your success in just six months shows this. They couldn't do this if their lives depended on it, and that's why they're angry. [It (the former case, of regretting time spent in college) applies equally to me, but in a weird way: maybe I could be an entirely self-taught programmer, but I'm not, and this angers me. If only I knew better than to go to college, waste time and money, and instead just programmed more! But no, I had to take those few years and now I hear sometimes that "well, imagine how much better you'd be if you graduated" or "anything you know is because of your education, it's a pity you dropped out"...]

3) In this profession, if you want to be serious about it, it's absolutely not about how much you know at any given point, it's about how quickly and efficiently you accumulate knowledge. Many people take for granted that after some time speed of knowledge acquisition drops, but they should know better. It's not a law, it's just their laziness. What you did in half a year is not impressive for the ones ahead of you - I mean what you can do now, what skills you have now. But if you keep it up... if you'll stay as passionate as you are for a few years more... Yeah, I can see that: hordes of programmers (consciously or not) afraid of you. Programmers who haven't learned anything new since last year. Programmers who learn, but slowly. Programmers who are not giving their best. That's why I wrote about insecurity at the beginning, that's what I briefly felt, until I realized I have better things to do than worry about this - writing this small Erlang pet project for example. Remember that if you keep at it you will upset many people, those who stopped learning, those who stagnated, but it's not your fault they're lazy!

Well, I just realized that I wrote an awful lot of text, most of which is my own introspection and, partially, projection. I did it probably because I'm not a cheerful person and this is the simplest way for me to tell you: "good job, keep at it". Ignore negative comments, in such cases as yours they tell much more about their authors than about what you did.

And you know what you did, you don't need me to tell you that, so I'll just end this here.

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.

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.

Yes, and that "have to train them" is the truth that's missing from a lot of these conversations: all these startups want "rock star" devs but they don't want to invest anything in training. But no matter what the skill level of your devs, companies should be investing in lots of training anyway to stay competitive.

This is a more pervasive problem than just the tech industry. Many industries in the U.S. have limited to no training and no mentor programs. Training is perceived as an easy cost to eliminate.

You have a great attitude. Reminds me of my start as well ~10 years ago, and now I work on a project that 700+ million people use / month. I think curiosity is the best skill a developer can have, because with it, they can learn just about anything else they need to. Congrats and good luck!

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.)

Oh I agree with you. I'm extremely ambivalent on the situation.

Except for the abundance of "Share thoughts/messages/pictures/music with your significant other/close friends/social network/professional network/the world on our exclusive app!". We have enough of that software.

We sort of have enough (for me, zero of those is enough) but I think more is still better than less, since individual applications of that type might come up with some useful ideas that get adopted by others.

Next time you cross a bridge, realize civil engineering has the same issue.

No, it doesn't.

Before you can design a bridge, you have to graduate with a four year degree in Civil Engineering. Then you have to pass the Engineer In Training (EIT) exam, then work for four years in the industry (helping with, but never actually able to sign off on, designs), then pass the Professional Engineer (PE) exam specific to the discipline you now have 4 years experience with.

Then you get to design your first bridge and put your stamp and signature on the plans.

So, with that knowledge, how exactly does civil engineering have problems with untrained entry level people signing off on designs for bridges that readers here are likely to drive over?

Are you on the ethics review board? Or can one speak frankly here about engineering?

You do not need a degree to be an EIT. You do not need to have studied engineering to be a PE. The CAD tech who assists in design (to the review board:"so I've been told by our competing firms") does not even need a high school diploma.

The PE who seals the plan is human. He had four projects going, they all have deadlines, and he trusts his staff to get it right. He checks as much as he can, but he doesn't have the time or the skill to check everything. He often cannot even check his own assumptions on many calculations because half his focus and career development is on project management and business development. It has not been on double checking the basis of the formulas his software has implemented.

If you're going for an EIT without a degree, you're required to have 20 years of experience (in my state at least). Any decent engineering firm is going to have a quality control process in place to ensure that someone reviews drawings before they're stamped and signed (maybe not necessarily the person stamping and signing them).

Yes, there is a level of trust involved, but "I had four other projects going" is not going to be an acceptable excuse if a bridge collapses.

see comment below: http://news.ycombinator.com/item?id=4412403

Additionally: In AZ one can test for the EIT without a degree after four years of work experience (thus, you can start at 18, work instead of school, and still be at the same point as a college grad at 22: an EIT).

Is this a metaphorical point, or do you actually have knowledge of the civil engineering job market? I wouldn't think that civil engineering would find itself in a similar place as the software industry, because civil engineering work seems like it would be more constant over time and less susceptible to bubbles. This would mean the demand for new civil engineers would be relatively time constant.

However, I know nothing about the job market for civil engineers, so if you do, could you please horrify me and tell me that civil engineering standards have actually fallen in recent times?

I've just graduated in Civil Engineering and many of my peers are seeking jobs in the industry (UK).

In terms of market conditions, you are quite right in that although volumes do fluctuate with economic conditions, work is always required (remedial work for example). Also, and I can only speak for the UK here, in tougher economic times the government often tenders large infrastructure projects to boost demand (think HSR).

The other reason civ eng is quite different is due to a high level of regulation and accreditation, in most countries you simply cannot practice (legally) if you are not chartered. This is one of the major factors that drove me away and into an industry where i could move much faster, with more freedom and lesser consequences (most of the time!!).

I was not replying to the point about lowering the bar due to market demand. Though, now that I think about it, if you were a very bright engineer, would you go into a lackluster career in civil that would start out at $45k and only find small increases in salary now that there is little demand for housing, or would you go into software? So clearly there is going to be brain drain. But I was not referring to market economics. See my point above (http://news.ycombinator.com/item?id=4412278).

I will say that my point did not suggest "horror" - as in horrifying you. Leaking sensitive user data is not, in my opinion, on par with a bridge completely structurally failing while traffic is on it. Unless of course the web app is for a bank. Which is the sort of security work that likely does not have the coffee fetching intern designing its protocols. But even then, I think as a society we are clearly willing to have many more cases of ID theft than deaths from bridge failure.

The comparison should be equal: are there bridges that require maintenance more often than is reasonable? Is their lifespan long enough? Are their piers sunk deeply enough to accommodate the scour of the river (we have several bridges here locally that are under restoration efforts because the scour was not adequately considered)? Was the water surface elevation of the design storm of the river accurately predicted to which the answer is realistically always no; there is no such thing as accuracy in backwater analysis - for before one even begins to model the river, one has to assume how MUCH water it could have - and that can vary widely, being a combination of not-always-comprehensive statistical analysis of historical precipitation, stream gauge data, and semi-empirical algorithms - stress on the semi.

Now, see my above comment about how civil plans actually get out the door, and I would say this is not a metaphor. We know from experience that if a "hot new startup" or even a stodgy old site (linkedIn, eHarmony, Last.FM) loses user data, it is not the end of the world, let alone the end of the startup. If a bridge fails and falls, the PE loses his licence. If the bridge fails and requires extra maintenance, the county and the firm lawyer up and the JDs make a lot of money in court.

UK specific: very tight regulation, including audited software, together with economy of scale leading to standardised and 'modular' construction. I don't think people here would like being a civil engineer, it's a very conservative profession.

Construction is notoriously cyclic: demand for civils will ramp up when the next boom comes along.

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.

How do you propose people learn those skills?

The OWASP Top Ten Application Security Risks is a good starting place: http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%...

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.

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.

Yes this is true for every profession... but in programming it seems to be a more crucial thing as the programming world is changing and evolving faster than any other industry.. just think about what programmers used to do 10 years ago .. and what we do now... think how computers change in 10 years... (my mobile phone is smarter/faster than my state of the art PC from 10 years ago)

The progression rate is astonishing and we must not forget that we still have to learn the basics in order to be good at what we do...

I agree - software/web development is relentless in its changing and evolving technologies and tool sets. I don't think there are many other professions where the tools available change so quickly and often.

Totally, but that's kind of the reason the industry is exciting. I get bored writing the same piece of code twice, I'm not sure I'd survive in any other kind of job where I'm doing the same thing day in/day out. I LOVE the fact I still get excited when I learn something new or find a new way of doing something I've done several times before!

"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.

I'm also very glad that I will use my brain extensively for the rest of my life... keeping Alzheimer away :P

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.

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.

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!

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.

Our industry needs a lot more of this. Many industries expect that new hires are in apprenticeship mode and will be learning on the job. In our industry people are expected to walk in and know exactly what and how to do things.

I don't think that's true at all - every organization I've worked with has planned for a 1-2 month ramp-up program. Generally you start off doing trivial bugfixes until the codebase makes sense and move on from there. Hell, learning on the job extends past this phase and is essentially neverending.

You just need to have enough background to make it through the ramp-up phase and start teaching yourself. That holds true whether you went to college or are self-taught.

1-2 months is still nothing compared to other skilled professions.

(Former ThoughtWorker) TW does have a very solid training program. Before the program ends, the trainees are often contributing bug fixes and features to production codebases, pairing quite a bit with experienced devs and so on (at least in the version in place when I used to work there).

TW is a great company to work for (if you are working on enterprise software, and you don't mind some agile/oo rah rah ism) but for someone with no experience, it is an absolute no brainer. Its training program is the most effective I've seen in my career.

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.

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.

If you read past the title you'll notice that the guy got a job as a JUNIOR developer. The email he sent out was looking for an internship/apprenticeship/junior programming position open in the area. Doesn't look like he is trying to run before he can walk...

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?


I know plenty of programmers without degrees, I was extremely surprised some of them didn't because they were so bloody good! The thing is with having an IT degree, this industry moves so quick how much of what you learnt is still relevant (aside from the OO and SQL)... You have to be CONSTANTLY re-learning new tech otherwise you're not going to be a very good/relevant programmer for long!

Obviously you can't stop learning, but the thing is that by obtaining an IT degree you'll often learn fundamental things you wouldn't learn otherwise.

You're projecting. I have no degree. I've taken the time to teach myself the fundamentals. Dueling anecdotes here obviously but we all know plenty of people with CS degrees who are worthless when it comes to tackling a problem, and plenty of people without who are credits to their profession.

Programmers program. If someone programs, they're a programmer. My daughter uses scratch to write software. She's 8, the software is not sophisticated but it's software. She's a programmer.

This sounds as serious as claiming your daughter is a civil engineer because she builds LEGO buildings or she's a biologist because she knows to feed her goldfish. At the end of the day we need some terminology that distinguishes the guy that took a semester to learn MS Access from the one that took 4 years to study CS in university.

It's an unfortunate common theme in HN but I can't think off the top of my head other white collar professions with such contempt for degrees and formal education. Are all the other fields doing it wrong or is programming so much easier than everything else that justifies the constant pat on the back for roll-you-own education?

But I've met plenty of people who come out of uni with a CS degree and don't know squat. I totally get the distinction, and there needs to be a distinction between someone playing around, someone who is a junior and someone who is truly brilliant. But it doesn't require a degree to reach that top level.

I only took some CS modules at uni, I learnt everything I know either on the job or off my own back, including OOP, JavaScript/OOJS, advanced HTML and CSS. They didn't teach you the difference between browsers either (I started back in IE4/Netscape days).

What this guys daughter decides that at 18 years old (and now having programmed for 10 years) it's not worth going to uni because a) it'll cost too much and b) might as well get a 4 year head start over everyone else. So by that time she'll have 14 years experience. I think that would count for a hell of a lot more than a formal education. There's nothing magical about programming that a google search will not reveal.

I'm almost afraid to tell you this given how important the title "programmer" seems to be to you... but the barrier to a stable, enjoyable, productive and well-paid career as a programmer is very, very, very low. Much lower than any other science or engineering field that I can think of.

It doesn't. It shouldn't. Our profession has progressed past that medieval method of instruction.

Just because you have a degree doesn't mean you're good at something ...

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.

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.

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?

I majored in Economics and taught myself Python starting my Sophomore year of college. I am now gainfully employed in a job creating modeles (economic and otherwise, essentially R&D) for the rail industry. My day to day activities consists of writing Python code, and my ability to rapidly prototype ideas with Python was one of the major reasons I was hired.

That being said, don't debate, just pick one and go with it. For every person who tells you that Ruby is better at X, or Python is better at Y, you'll find another person doing X in Python or Y in Ruby. The best advice I can give you is to find a book/tutorial that works with your learning style and go for it. Then grab a fun project as soon as possible and work on it.

If one is starting to learn on their own in their 2nd or 3rd year in college, I think Python is definitely a good place to start. You will have more doors still open to you as a college student as far as internships go.

I also think people who are still in college might as well take the intro classes so they can take the more advanced data structures and algorithms classes, in addition to extra maths.

It's also good to be around other people who are studying CS while in university. The networking benefits shouldn't be underestimated. And making friends with people who are also passionate about the topic is great for many other reasons.

Python is great in itself, but it seems to me that there are significantly more jobs for junior Ruby coders than junior Python coders... there is no reason you can't learn one after learning the other, though

The two are about the same with regards to employment and educational purposes. If you happen to like one, go with it, otherwise you can just flip a coin and get to the real problems!

I used to hire in a shop that did a lot of Ruby and if we were hiring for a junior position, Python was perfectly acceptable as a language to know. Knowing a dynamic language, being the type of person who teaches themselves, and being able to have visible code was what really mattered.

We found that we could drop capable juniors in a project that has some senior leadership and they were able to pick it up quickly.

If you're from more of a math background (with maybe a little MATLAB knowledge). Python's a great language for machine learning and natural language processing tasks. Great glue language, lots of libraries, prototype quickly, scale with multiprocessing or Hadoop streaming or pycloud. Build your own analysis stack or classifier then display the results on the web with Bottle or Flask.

These are true statements about Python's strengths. I don't realistically see how those are going to help you get a job unless that job also takes an advanced degree, or at the very least a BS touching on a field you have specialized knowledge of.

I've been stuck in this exact same place for the last one year or so. I wanted a job in machine learning or possibly NLP and python is my language of choice, while the language is an excellent tool for these tasks I have not been able to find jobs in ML or NLP possibly because both of these fields involve quite a bit more than the programming related work.

To top this off I live in India and it has been difficult to find quality jobs here; the ones that will hire a less experienced person like me, of course :-)

Good point. I'm perhaps generalizing too much from my own experience (which is admittedly of having an advanced degree in mathematics and being a recent Silicon Valley transplant).

I think every minute spent thinking about which one to pick is a minute you could have spent learning either of the languages, I think it really doesn't matter which. Once you master one the other one will be a lot easier to learn as they're so similar. Just flip a coin, pick one now! :)

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!!!!

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!

Genuine question: what does IRC do for getting a job other than taking up time?

I've been using IRC to talk to people who built some of the tools my company uses in our technology stack. This has been an amazing opportunity and a learning experience. You also learn a lot when you hang around and help more novice users with their questions.

I'd say if you don't start talking OT in a IRC channel dedicated to a piece of software/tech, it has a direct positive influence on your skills, which in turn directly influences your job seeking chances. Also, you can meet prospective employers that way.

the python channel was incredibly useful when I repeatedly missed no brainer things when i was first starting out. Any library's irc will probably have at least one person who knows the library inside and out, and can help you with a problem. It's really incredible you can do all this for free!

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.

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.

Disclaimer: I advise Dev Bootcamp.

Here are three student reflections on Dev Bootcamp:

- http://douglascalhoun.tumblr.com/post/26059106238/beautiful-...

- http://newbietoruby.wordpress.com/2012/03/30/devbootcamp-ref...

- http://mehulkar.tumblr.com/post/18897643140/devbootcamp-test...

And here is a Quora thread with a lot of relevant responses: http://www.quora.com/Ruby-on-Rails/Should-I-quit-my-job-and-....

Please feel free to ask any other questions!

Any kinds of loans/financial aid for people who can't afford it? I came to SF with the goal of becoming a good programmer, but have a net worth of about 3.5k, one of which is this computer.

I have a question:

I've tried to learn Ruby and don't think it is for me. Too hard to deal with setting up my environment and the language just does not come easily to me.

Can you recommend a program like yours that is of very high quality that focuses on Python, JavaScript (possibly with HTML/CSS) or Objective-C?

Sounds like you could spend some time boning up on basic shell and the like...

What problems did you have with the Ruby environment? I went through this several months ago, and maybe can help you get set up, if you're still interested in Ruby.

Couldn't get passed running rvm in my terminal on OS X =/

...then don't use rvm..there is a version of ruby that comes pre-installed on your Mac, use it. Get one ruby book and read through it, don't worry if you don't understand everything the first time, by the second time you read it, things will make more sense. Also work through the examples in the book.

I haven't been through as a student, although I know many students would say it was worth it. I've watched two classes graduate, and I'm impressed with the curriculum.

90% of Dev Bootcamp's previous class got offers of $80k/year, compared to a college education where 50% of graduates will be underemployed or jobless. The $12k tuition feels too low if it's certain that you'll get 6x the return in the first year.

Is it so certain that banks will give students loans for it? As it is the price just slams the door on me.

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.

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.

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.

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.

Why must all software developers be able to operate in all domains? What other industry has a requirement such as this?

There's more than enough work out there, why must a web dev know or care how to twiddle bits, or vice versa?

It's not about one language and one issue... it's about being able to solve problems regardless of tools given (i.e. programming language)

We don't code, we don't write code... we solve problems with code... there's why.

And if you're not eager to learn all of these... you should think about a change in careers

Problem 1: I can't get this damn div to float to the right of my content.

Problem 2: My network card firmware stops acknowledging commands from the driver after 3 days of high utiliization.

If you think you would assign the same person to "solve these problems with code", you're being silly. People specialize and gain expertise in their areas. Use the right tool for the job.

Did you ever worked ? In all companies I worked for (I'm a researcher) I had to use different languages: java, c, c#, asm 86, perl, python, ruby ...

Honestly it's almost a requirement to be able to adapt to other languages or at least read and understand what it does.

Indeed, I did ever worked. Of course you need some breadth of knowledge, but unless the place was absolutely tiny, your low-level developers writing VHDL weren't going to be asked to optimize a SQL query or tweak CSS.

Not that they couldn't, but why would you?

Totally want to learn C, but I wouldn't even have thought to try if I hadn't tried ruby first. I got my first look at C digging through the Ruby source code, trying to figure out how it implemented Array.sort.

Ruby opened me up to the world of programming and I look forward to exploring the rest!

If you're looking at how ruby implemented Array.sort you are definitely on the right track ! I'm not sure that's how all people who started with Ruby/Python are evolving but that's good. However I'm not too comfortable trying to lure people to believe that you can write a web client in 2 lines :/

PS: Got downvoted for making a usefull comment ? Seriously guys you can't give a different opinion than the crowd...

I upvoted you. :-)

OT: Up until maybe two months ago, the moderation on my posts might not have always been what I wanted, but it at least consistently made sense. Since then, moderation has gotten increasingly erratic. Yay Eternal September?

Thanks !

I just want to feel free to express an opinion that is not mean but is a change from: "great post, that's the way to go !"

If you want to learn C check out the CS50 from Harvard. It gives you the basics of programming (which you obviously already know), but focuses on C, and will teach you a lot of the basics. Watch the videos and do the problem sets, it will give you a broad understanding of algorithms, sorting, and C https://www.cs50.net/lectures/

Right, because you never see bad code in java applications... StringReflectionFactoryInterfaceBean()

If you follow a couple of the OP's points (read a ton, write a ton, talk with people more experienced than you) you can write in basically any language for almost any application.

Read/Do/Talk, isn't that basically what school is, anyway?

I'm not saying that you can't get it wrong if you do Java, please don't make a caricature ;)

I agree with you the Read/Do/Talk is the same for any language my point is it requires much more read (theory/understanding of computers internal) if you do something else than ruby.

contrary to self-learning, school discourages taking shortcuts.

In my opinion, there's a certain set of core rules, you need to learn, after which it's relatively easy to transfer your knowledge between programming languages and domains. I'm fairly sure you can get this fundamental toolbox in any language.

Btw. I don't agree with the sentiment that it's somehow easier to learn web development than writing device drivers or other closer-to-the-metal stuff. On the contrary - web development is chaotic and complex. Low level stuff is much more straight forward. It might be less accessible, but I don't believe it to be fundamentally harder.

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.

You can always sign up to odesk and/or vworker and pick up some paid coding tasks there. You might even end up working full time (I have).

I've been thinking about odesk, but didn't know vworker. Good to know it can work, thanks.

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.

    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.

Agree. I've been there. Those need to be 10 hours you planned on being only 6.

Honestly the six months started as a weekend curiosity, and those ten hours often became twelve or more. Addiction was an understatement.

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.

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.

That's true but it's not the only reason. Note that there's still a social cost to firing people.

I believe another major reason is that software companies in the US are in average more profitable and more productive than in other countries.

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.

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.

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.

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.

Site (is/was) dead, google cache version: http://tinyurl.com/cqojywn

This is great motivation. I've been doing much the same as you, just over a longer period of time, but I've been a little too intimidated to put myself out there so to speak. It is great to know others are getting results in return for their determination.

Just a heads up, that fixed position element makes for a verrry annoying mobile experience, especially when someone taps to zoom in. This is probably the most common source of my frustration with the mobile web--those annoying social share sidebars that are position-fixed are the primary perpetrators.

I noticed you're using onswipe though which helps, but if someone is using some third party Hacker News reader, onswipe won't load.

Having derailed this thread enough, I love everything about this. Ill never get enough of hearing people's success stories.

Nice read man. I just started learning programming as well in early January of this year.

6 months ago, I never thought I would see myself working in a top HCII program as a research programmer. I'm sometimes in total disbelief of where I'm working at and also of the fact that I'm actually helping my professor.

"When I started this search I thought I would be scrubbing toilets in exchange for nightly code reviews." That was definitely my train of thought on my value as well, but I guess I underestimated myself as well.

Self-taught programmers get a bad rap because we've all seen the guy who didn't know about arrays and defined 300 variables (I'm not kidding by the way, and this was in perl. Full of wonderful names like $aa1, $aa2, etc.).

However you can get around this by having the OP's attitude about being a life-long learner. It's important to get a lot of exposure to different people and styles to offset some of the lack of background you will start out with.

Self-taught programmers get a bad rap for multiple reasons; because people with degrees want to protect their market value and ego, because programmers have a tendency to act very competitively and arrogantly toward other programmers, and because the industry's business culture is so absolutely intolerant of perceived weakness and negativity. There are hardly any companies which did not decide that they require 'A players' which means not having a single apparent dent or scratch anywhere in your record, regardless of what ability you have manifested.

Basically, this is a hostile industry and being self-taught is blood in the water, a lot like being female (this needn't be explicit sexism, just a prevailing macho culture where if you seem weak in any way you don't belong).

Nothing I have said affects the ability of a life-long learner to have fun and do good work in any way. Getting respect and getting paid are another issue.

I agree completely. But I think that both subsets, the degree laden and the "no degrees allowed" crowd both apply the same labeling towards one another. Get's to a point where no one who's hiring for a worthwhile company cares about computer science degrees and cares more about exposure, references, and past experience. I think the industry is becoming more hostile towards both, no degree and degree types all the same. It's hostile towards anyone that hasn't proven they're worth their weight in gold either because of their github account or their past work experience. And that my friend a good thing.

I hold that the hostility is not really contingent on how good you are, but rather on perceived weakness. Most programmers intentionally try to make others feel and look incompetent, while trying themselves to come off like badasses. Partly a matter of being socially inept, partly of a macho culture in the field. And it's only aggravated when you have those programmers interviewing candidates... This is independent of ability - there are plenty of morons calling themselves A-players. You have to play that game or you will be seen as weak and torn apart.

That is NOT a good thing. For example, it is actively driving women who are interested in computers and good at programming away from the industry. Who wants to deal with the boys' club?

I don't think that's the case now... I wary of people with a bunch of certifications and college degrees when I'm hiring for my department. I tend to look more for the small details that let me know that the person is up to date and loves programming more than if they have been taught "classically" .

Interestingly enough, almost every "computer science engineer" with 11 page CV's I've interviewed have not been able to pass a basic test I get all possible recruits do. Be assured though, it's just a filter to get the people that just don't know enough, not an actual "test" per-se

And since my blog has never had more than 5 people on it at a time... it crashed.

Funny seeing Aubrey & Gavin mentioned on an HN post. Both are great guys and also attend the iOS meetups here in Tampa. You're welcome to join too. We're meeting Aug 30th next: http://www.meetup.com/Suncoast-iOS/events/77862782/

Gavin actually talked about you in one of the past meetups, saying how he knows one smart-cookie from his Ruby group who taught himself coding over a few months and got a job through sheer persistence. He mentioned being impressed by the progress in your code at day 1 vs day 30 vs day 90. Great to see you're sharing your lessons here.

Great job! Anyways, the site isn't completely dead,it just takes a few tries to get it to load.

Might want to consider octopress since you're a fan of ruby. :)

Really awesome to see a self-taught success story like this. Love the dedication Jeff!

A side point of advice for anyone wanting to learn programming and still in college: DEFINITELY take an introductory programming class. There's endless amounts you can learn online, but learning the fundamentals through languages like C and Scheme gives you great perspective when you do pick up web code.

While I value a college education I have to say that a college degree is not a guarantee of performance at all. A programmer, in my opinion, must have some College exposure. The OP does, as he says he graduated with a business degree. Aside from that, programming is a multi-faceted and ever-evolving discipline. We are always learning new things. A proven ability to approach something new and learn it is at the top of my list. He certainly proved that part.

I come to this from the perspective that virtually nothing I do today existed when I was in college. This goes for programming languages and even hardware design areas such as FPGA's. I, as an engineer, have to learn constantly. That aspect of my profession never stopped and, in fact, intensified after leaving college as there's so much to learn.

How is a college grad going to react to a paradigm shift such as what happened as the internet started to take roots? It was the wild west for several years as new ideas popped-up and you had to either play or get off the train. I'll take someone really smart who has the tenacity, drive and interest to learn new things quickly over a degreed engineer who is slow to react.

I have known many engineers who have remained stagnant over the years because they simply didn't want to bother to learn new things or were far too comfortable doing what they were doing. Some of these guys are unemployed today. Their skill set simply doesn't match todays reality and a degree means exactly nothing.

Now, to be sure, the combination of good, solid schooling and drive, tenacity and a rabid interest to constantly learn can be a very powerful thing. In my experience that person is more the exception than the rule. A lot of college grads just want to find a train to ride as long as they can with the skill set they acquired. The self-driven individual who wants to own a topic today and then another topic tomorrow is very rare.

Oh, yes, and a lot of college grads write code that is as shitty as anyone else's. There is no monopoly on the ability to write horrible code due to the lack of experience.

My first thought reading through was "heh, but now that I'm in NYC... I wonder what my chances are..." and then bam... there ya go! I'm glad to see stuff like this, and totally agree with the points– especially the whole git-like-a-boss bit.

Get hired sooner.

Audax Health is hiring in SF & DC.

Work in a fun and entrepreneurial environment where dress is casual and flip-flops are encouraged. We provide the best tools such as brand new Apple computers for every employee. Collaborate daily with top talent from companies like Zynga, WebMD, Microsoft, Bloomberg, Booz Allen Hamilton, and XM. Your contributions will directly impact the way millions of people interact with healthcare.

What makes our office fun:

• Our super swanky waterfront office space in Washington D.C. • Top of the line Apple products • Couches, ping pong, foosball, air hockey, arcade basketball shooter, Xbox and TVs • A kitchen filled with scrumptious food, snacks and beverages

Contact nayan.jain [at] audaxhealth.com

I'm interested. My wife currently tries to do exactly this. The article might be encouraging.

But I cannot read it due to a big yellow square overlapping the content, so.. useless link for me.

"I like to learn; I like to teach; I kill two birds."

I like this tagline on the blog. Congratulations Jeff. Yes there are naysayers and there is always an argument against something. But we applaud your efforts. For people who are criticizing this, just look at it this way. This guy pulled off something by working his ass of (in his own words). The creates hope and inspiration for others like him and I am sure there are plenty even among HN.

One of the biggest problem in the industry is that there are to many bad programmers! The sad thing is that these kind of people spam all the employers, which make it a lot harder to filter out the good from the bad.

On the other hand their work tend to give all the rest of the us work when they just hit the wall with something hard.

I was lucky enough to give a little talk at BarCampCharleston, in Charleston, SC, last year.

I spoke on the same topic, but from a less generic standpoint (focus was on Rails): https://railsneedtoknow.heroku.com

It's not perfect, but it helped a lot of people :)

The post has moved, so if you are looking it is here:


"Push code to github EVERYDAY"

Good advice; the title lends itself to initially annoy skeptics (including me), but it does look like you put a lot of effort into this. With that kind of sustained and public effort it's definitely doable.

If you are a new graduate.

If you are not a new graduate, and especially if you don't look so young, you are definitely not going to have such an easy time, without good connections.

Take internships while you are in college, if you can

I applaud your ambition and intitiative. Many experienced programmers should take note of how you socialized with other human beings (multiple times!) to get the gig. Enthusiasm is underrated.

tldr; there's no secret sauce; just work hard.

Applies to other professions too.

edit: Congrats to the author, and refreshing to see someone document, the effort involved as opposed to some "clever hack" of the system.

Mentally add: "...if you've never coded/been a developer/have no prior experience."

I came here wondering in what job market a developer has to wait six months to find a job. Oh, no experience. I see.

This was an incredible read. The guy deserves it. Congrats Jeff!

"Work hard, write a lot of code, be transparent and be enthusiastic."

Sums it up for many industries. Just replace code with something valuable in your profession.

This was a great read first thing in the morning! Thanks Jeff for your enthusiasm!

Awesome!!! Congratz and good luck!

"In February 2012 I had never written a line of code. But, as of July 11, 2012 I am employed as a full-time Ruby Developer. You can do it too."

Best. Quote. Ever.

I am re-motivated to continue learning programming.

Nice work sir. Congrats.


Thanks Jeff for such an inspirational article.

Yay, that's exactly what our industry needs; more cargo cult programmers writing terrible software! Let's just be glad that this RoR guy isn't building anything safety critical.

How very positive and encouraging of you. Exactly what our industry needs, elitist developers who don't want to grow the industry. You know, there is a shortage of strong developers available and you were a beginner too at one point.

Account created: 91 days ago

We've been talking a lot lately about the decline of quality commentary on HN, and the increase of negativity and snarkiness. Parent is a great example.

OP, I enjoyed the post and forwarded it on to some friends. Nice work!

Either you didn't read the article or you missed the point.

elaborate the point then.

TLDR If you work your ass off you can get a job doing what you love in a relatively short amount of time.

I wasn't claiming that I am an awesome programmer but I got good enough to put myself into a position where I could learn from awesome programmers, on the job, while getting paid.

Bravo, and if you keep working your ass off you will be an awesome programmer.

I did the same thing, by the way, though it was ages ago, so no Github or anything like that. The only thing I'd change, looking back, is that having got that first job I allowed myself to get stuck. I was doing one kind of work using one set of tools and even though I got good at it and made money at it, it constrained me mentally. A lot of programmers fall into this trap. It's insidious because you don't know you've fallen into it. Something ends up having to shock you out of it and that is not a good place to be. Perhaps if I had studied CS I would have started out with a broader sense of the field. In the end it took quite an effort to maneuver my boat into larger (and deeper) streams.

ok then. I guess the party pooper comments come from a different view on what is learning to program, and that different view comes from a different experience. Many people forget that today self-learning is much easier than, say, 12 years ago; yet knowing theory on 'how stuff works' is no less important than back then. Good luck on your job.

Learning to program is learning to program is learning to program. "Programmer" isn't a protected title, it's not a title you earn, it's a description of a thing you do. Farmers farm, birdwatchers birdwatch, programmers program. There's no interpretation available in the phrase "learn to program."

not sure if you realize I agree with you. programming is such a broad occupation that even among programmers themselves there is a lot of discourse often tending towards 'no true scotsman' fallacies (usually comming from low-level to higher).

I tend to think that the success of "this RoR guy" has more to do with the Brand Equity and Mind Share that Ruby on Rails has amongst Management/Recruitment than anything else really.

It's alot easier to call for Rails devs since it's so ubiquitous at this point; as opposed to, "We need a Python dev with Django/Flask/Webapp2/Pylons/Tornado experience", the Ruby on Rails echo chamber -- because of its "singularity" feeds itself...

Everyone wants Rails guys

Bravo, RoR, bravo.

Might help credibility if his site wasnt down... http://imgur.com/fhK0M

I'm guessing my blog couldn't handle front-page HN traffic either. Yeah, it's easy enough to fix and I can think of a dozen different ways to do it in under an hour, but as the OP said in another comment, the site gets so little traffic it was never a concern. Same with mine.

Ironic? Yes. Damages credibility? Nope.

i'm one to talk, mine probably couldn't handle it either...

Wow.. so I really could have landed a programming job when I was 13? Damn. Maybe I should have just believed in myself more like this guy.

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

Awesome that he's passionate and landed something, but underneath it just makes me cringe because I see the shithouse quality of work that comes out of people probably equally skilled, but not as passionate, everyday.

I should move to America..

"I see the shithouse quality of work that comes out of people probably equally skilled, but not as passionate, everyday"

Passion makes one want to learn more, and constantly improve. People who love what they do will listen to others advice and are able to be molded in to a great developer. Without that passion, you are just doing your job - and when it is "just" a job, then you aren't giving it your 100%.

Maybe blame the "shithouse" quality of work on the person, and not their background. Additionally - take the time to correct those people and guide them. If you are that experienced, become a mentor instead of a critic.

You're right, my response was probably a little angsty. There are some that are willing to expand and learn more and they usually turn out to be awesome developers with innovative ideas all the time. I was probably more referring to the "job" types, who don't care for what you might have to teach them and they just wind up getting in your way =\

Hopefully the future will hold more career type developers in my sector, but we'll have to wait and see =)

Applications are open for YC Summer 2019

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