top | item 4771311

How To Become An Apprentice Developer

84 points| HugoMelo | 13 years ago |hugomelo.com | reply

55 comments

order
[+] ruggeri|13 years ago|reply
[Instructor at App Academy here]

I'm really proud of Hugo; he came in to App Academy as an 18 year old kid with no coding experience, and through sheer force of will, learned enough to land a junior dev job in nine weeks.

If you're interested in the course that Hugo took, check us out (appacademy.io). Students only pay us when they find a dev job after the program.

Hugo's fellow students are doing great. 11/15 of our students were unemployed before attending App Academy. 13/15 of our graduates have offers or are working in tech jobs now at an average salary of $83,000.

[+] HugoMelo|13 years ago|reply
nicholasreed makes a good point. Let me make some stuff clear:

- I paid a $500 refundable deposit by mailing them a check they never cashed.

That was legit. A $3,000 deposit is silly though.

- To the best of my knowledge no jobs were found from App Academy's partner companies.

- I don't believe the $83k average salary thing.

That said, Ned is one of the greatest mentors I've ever met, and he's radically changed my life.

:)

[+] nicholasreed|13 years ago|reply
> Students only pay us when they find a dev job after the program.

Either that statement is incorrect, or you are only charging some students. What would you refer to the $3,000 upfront payment as?

[+] avolcano|13 years ago|reply
Gotta say, as a sophomore who's been debating dropping out college, that these junior positions exist at all is encouraging.

I always thought my trajectory would be to go to my current school, transfer to a better one, get some good internships, and graduate with a CS degree. But my grades aren't where they need to be, so I probably won't be able to transfer to a good school. Honestly I've been concerned whether or not I can afford it anyways. Going for a junior position, or even a paid non-college-affiliated internship, is far more appealing.

I've got a pretty decent GitHub, and I've launched a few apps with another in the works. My major (and it is major) concern is that I don't have a good grasp on CS fundamentals - algorithms, data structures, etc. But it seems easier now than ever to teach yourself this - whether through Coursera, or through reading a variety of sources, and practicing on sites like Project Euler or Interview Street.

Maybe Hugo's experience was different than the average developer drop-out because of his ability to get into App Academy, but I'd like to think anyone who can demonstrate programming knowledge and intelligence has a shot, degree or not.

[+] mahmud|13 years ago|reply
You have no grasp on theory, your grades are bad and you want to drop out?

Don't drink the Kool-Aid, stay in school. Use Coursera and other available resources to augment your university education.

[+] ninetax|13 years ago|reply
We are really fortunate that CS skills are in such high demand. That this is even an option is pretty amazing. However, the day may come when the market turns down and the thing that makes an employer hire the next guy and not you is a piece of paper that says he stuck it out in college. Good luck whatever you do!
[+] wwkeyboard|13 years ago|reply
http://en.wikipedia.org/wiki/Survivorship_bias

How many people didn't get accepted something like App Academy? One problem with self-taught education is the lack of metrics; it's hard to tell if teach-yourself is a viable path for everyone, or just a small percentage.

[+] matthewowen|13 years ago|reply
It's probably a bad move.

I don't have a CS degree, but I've still found that having a humanities degree from a top tier university is still very helpful for opening doors. Like it or not, having a degree is a positive signifier. Dropping out is (in many cases) a negative signifier. And if you're struggling to learn in college, what makes you think that you'll do better outside of college? I found that one of the most important things I learnt at university was how to learn effectively and quickly.

[+] caphill|13 years ago|reply
I've been trying my hardest to find a Junior position. When I finally do find something that says "Junior" they want 4+ years of experience and expert level in everything or it's no where near me and they don't hire remote.

I've taken a break on freelancing for 3months to finish some personal projects I'm hoping that will get me something. /fingerscrossed

[+] atomical|13 years ago|reply
The most important piece of advice I can give you is to go directly to the decision maker. Call them if you have to. Make up some excuse to talk to them on the phone. Tell them your e-mail bounced but you really like what they are doing and give them a short summary of who you are.
[+] benzor|13 years ago|reply
I've yet to hear of a job where the employer strictly follows their own "requirements." Most simply post it as a "perfect candidate" guideline and end up settling for someone meeting 75% of it, so don't take them too seriously.
[+] arikrak|13 years ago|reply
It would be simpler if there was a system that ranked job-seekers by aptitude and experience and then they could apply to companies that were matches. E.g. Google would only look at people who were in the 99.9th percentile while small-boring company would have to be less picky.
[+] nhangen|13 years ago|reply
I also had struggles trying to find work as a jr dev, so eventually I gave up to start building my own software and work on the consulting side.

It's strange because I see a lot of jr. guys/gals struggle to find mentorship, yet those very same sr. devs don't hesitate to poke holes in their code from afar.

For example, you see a lot of jr. devs post code and projects here on HN, and they get lambasted for poor practices.

I guess you just have to learn to weather that storm. Good on the OP for working hard and getting that first gig.

[+] atomical|13 years ago|reply
Poking holes in your code is mentorship. If you have some ego about lines of code you wrote you aren't going to be happy with a career as a developer because over time everything is slowly tweaked and rewritten.

I don't know what a 'poor practice' is though. Getting something out the door is key at most places. You need to get most of it right though.

[+] xiaoma|13 years ago|reply
Getting into App Academy was already a huge filter he passed. I say this as a junior dev who was rejected or ignored by many other dev training groups. IRRC, App Academy accepted less than 10% of their applicants.
[+] rizzom5000|13 years ago|reply
There are two primary reasons this story is possible. One, we have a highly motivated student; and two, tremendous demand unfilled via traditional channels.

And nothing against a 9-week code bootcamp, but even if the student invested 12 hours a day with no days off, we're talking about 756 hours of experience. Compare this to a university education at four years times 12 hours of class a week for 30 weeks and two hours of study for each hour of class, we have 4320 hours of experience.

Granted, not all of that experience is coding!, but nor are we counting four years of personal projects, internships, summer jobs etc. And along with that, neither are we counting the relationships with professors and peers, not only within our chosen profession - but perhaps more importantly, without.

Not to take anything away from this kid and his story, but it's difficult to reconcile the comments from people who think university is a waste of time. It really just sounds like they are from people who are/were asleep at the wheel. Which makes me wonder why anyone would want to hire them (well, I mean, other than the tremendous demand thing)?

[+] slurgfest|13 years ago|reply
I don't think University is a waste of time. However...

It doesn't seem completely accurate to count all the time spent at university as equivalent to the same time spent working in the trenches.

And it seems extremely harsh to say that there is no reason to hire people who didn't do CS in university, because they were "asleep at the wheel." Figuring out what you are going to do in the future is not the same skill as shipping software.

[+] andrew_wc_brown|13 years ago|reply
It took years before I was hireable material. All I had in 1999 was irc rooms and mailing lists filled with egotistic programmers that had 120 different ways to call you dumb if you wanted to learn.

Learning to be a hireable programmer is a multi-year journey. You can do it on your own. Freelance small jobs until they become big jobs.

[+] peteretep|13 years ago|reply
Purely from a hiring side, can someone sell me on the value of hiring junior developers and training them up? It feels to me like there's real potential for them to gum up the development team, it's going to take years for them to be senior (and nothing stopping them leaving when they are)...

I understand people want Junior jobs to exist, as junior developers. As someone hiring, why should I hire one? Serious question...

[+] justincormack|13 years ago|reply
Ok so if

1. You have no trouble hiring senior developers whenever you need one

2. You have no shortage of money to pay them

3. You are running a short term business, so your time horizon is only a year or so

4. You have no work that has been put aside as high risk given the uncertain benefits

5. You dev team is fragile, and liable to be gummed up

Then by all means do not hire junior people.

But if any of those do not apply, you will find all sorts of advantages. Look at the Google Summer of Code as a model, say. You get enthusiastic people willing to learn, who you can teach your way of doing things, and fast track their dev skills so they become senior sooner. So long as your codebase is slightly modular there must be something people can start on, and do not forget that teaching is a great way to help you think about things in more detail, and that meta thinking is the most important way in which you become a better programmer.

[+] TeamMCS|13 years ago|reply
This is an interesting response and one I'm pondering myself. It clearly is of extreme importance to seed new developers in the industry and how should small shops shoulder their share?

Young/junior developers often have a lot of spirit and enthusiasm which is injected into an existing team. They'll also tend to bring the 'latest new ideas' which while not already ideal does get the old guard thinking. If anything it's interesting to watch people adjust their proverbial footing to stay relevant.

On a similar note, I often wonder how does a senior/lead developer take a different direction? I took the JVM + Web stack and I was giving it serious thought to jumping ship into another area of software development. Now understandably you wouldn't be a lead but rather a born-again junior yet any interviewer will automatically assume (with evidence to the direct contrary) you've been doing it for years.

Tricky our industry...

[+] matthewowen|13 years ago|reply
Well, one reason would be to take advantage of market inefficiencies.

You might decide that your business can derive a significant amount of experience from people who don't have a computer science degree. Those people might be easier and cheaper to hire. So it might be worth hiring them.

Fundamentally, the question is whether the hire is worth more to the company than the cost of employing them. If you think that CS graduates with four years of experience are overvalued by the employment market, it's a good move.

[+] welder|13 years ago|reply
[Hugo's Hacker House roommate here]

Hugo went from zero coding experience to holding his own with seasoned Javascript & Ruby devs in 9 weeks. I'm not sure if he's just an exception, but it sure paints app academy in a positive light for me. I hope more of these "Learn to Code for Free" camps pop up around here.

[+] freework|13 years ago|reply
That depends on what is meant by "holding his own with seasoned Javascript & Ruby devs". In my experience, the only thing that makes you a good programmer is building things. What has this guy built? A handful of project euler solutions? That doesn't make you a valuable programmer. There is no free lunch. There is no magic bullet.
[+] sddulaney|13 years ago|reply
I think apprenticeships in general are critical. It's good to see that others see their value. So many people feel this sense of entitlement. Nothing comes without hard work. Mentors make it easier. Apprenticeships are amazing.
[+] slurgfest|13 years ago|reply
As a corollary to 'nothing comes without hard work,' a company can't stock up on good engineers without hard work on the company's part, and complaints about this are also rooted in a sense of entitlement.
[+] KalobT|13 years ago|reply
This was an amazing read. I'm very happy to have read this, and I now know that other people feel similar to me.

Thanks for writing this article =)

[+] 2arrs2ells|13 years ago|reply
Great post, Hugo & great hustle! Glad to see fragments of our conversation in your writing. Keep growing!
[+] orangethirty|13 years ago|reply
Note: if you want a chance at a good unpaid internship, working with Python and Django (and maybe Rails && javascript), shoot me an email. Hackers who are < 18 are very welcome.