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.
I agree that in a lot of cases it can be good to just persevere, but I'm really tired of seeing this back-and-forth. It's not all or nothing. If you're doubting yourself, if you're not 'all-in', take a break. You can go back and you will if it's the right thing for you.
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!
If you are a good programmer and get turned away for that reason, thank yourself for that bit of luck.
I went through college, learned dittily squat when it comes to cs, and now I'm playing catch-up hardcore with js/functional programming/kernel hacking/everything.
Autodidacts rule the world today, and they will only continue to become more influential. Nobody can push you harder than you can push yourself.
While I agree with your points, rejecting a company because it makes that demand isn't quite right. If (hypothetically) you have 2 equally good programmers, and the only difference between them is one has a degree and the other one doesn't, then its natural to choose the former
If you have two equally competent candidates, hire both. It's surprisingly difficult to find good programmers though, so ending up with 2 awesome candidates to choose from is unlikely.
Yes, but this has been the case since I barely managed to get my high-school diploma, and tumbled on to the work scene (circa 2001). If you're bright, and you can program in a language that people use, there's opportunity. And that's been the case for a long while. And once you've been programming a while, no-one really cares about your degree - or lack thereof.
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.
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.
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.
Hugo! I never really announced it but I accepted an offer with Twilio to join as a mobile engineer. I only interviewed with partner companies. I was going to mention it when I got back from my trip. I think other people got offers from partner companies as well.
Another App Academy kid here. Like Eddie, I too received and accepted an offer from one of AA's parter companies after I finished the program. I'm an apprentice at Thoughtbot now!
We ask all students to put down a $3,000 fully refundable deposit.
There are clearly defined rules for deducting from the deposit (e.g., arrive late for class: $10, etc.). The money deducted does not go to us, but is distributed evenly among the other students.
The reason for the deposit is that students are working in pairs throughout the class, and if a student doesn’t show up, he/she disrupts the classroom experience for everybody. The system was successful for our summer course; it both helps ensure that students have a pair programming partner everyday and that even though the class is free upfront, everyone feels invested.
As long as students show up everyday and stay focused, they get their deposits back at the end, as all of the summer students have.
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
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.
No, this is terrible advice. Companies have hr and recruiters for a reason, if you jump over them it just shows you're pushy and impatient. If someone calls me and tells me their email bounced I'd immediately think they were lame. Seriously? "Did you get my message?" Is circa 2001. These days if an email bounces you go back and read sent it properly with th right address. Emails don't bounce on their own. When I lost a job posting I expect the candidates to be screened by the recruiter. If a candidate calls me I'd just put them in touch with the recruiter.
Maybe others like this pushy attitude but it wouldn't work in my company.
Don't listen to this guy. Building relationships is a huge part of how you go grom one of the massive pile of mostly crap resumes to someone who can skip that and get a warm interview. If you have spoken to someone and they remember who you are, you have a relationship. If you develop relationships with people who might hire you later, maybe they don't hire you, but maybe they can introduce you to someone who will.
The EV of contacting people like this is high. You should do it.
I agree with what you're saying, but does this approach scale? What I mean is: (say) Google gets millions of applicants a day. If all of them start calling up Google devs wouldn't that waste a lot of their time? (I guess a reason why this works is that not many people are doing it)
On a related note, I've found that I get a lot of benefit just by calling and speaking to a real person. For instance, an airline representative once saved me nearly $800 on an offer that was not mentioned anywhere else
You only skip the HR process if you have a pre-existing relationship with a decision-maker in the company. Cold-calling can work, but the most likely outcome is getting black-listed if they think you're one of the crazies.
If you really do want to go the cold-call method, use the cold-call to establish a relationship (i.e., ask for career advice, to talk about their technology stack, etc.) Once you have a real connection, then it may be appropriate to give them your resume.
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.
Yep. If you're an employer, why would you advertise that you're actually looking for that 75% candidate? You'd get all the trash candidates (probably getting them anyway) and the good candidates would be like "Ew, I don't want to work for that company!" HR-types are often the ones to write those requirements, anyway, and they're just reading Internet tutorials on how to do so.
I've been there (as an employer), and because my boss often made it very difficult for me to hire when I needed to (always based on current billing instead of future billing), I had to be very particular because I knew that if I chose poorly, I wouldn't get another chance for quite a while. I interviewed many good candidates, but often opted to not hire and keep waiting for the reasons mentioned above.
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.
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.
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.
Absolutely. There are fewer harder things in software development than taking criticism over code you've lovingly crafted, but ultimately it's this criticism that makes you understand the code better.
Additionally, if you're posting code on the Internet then you're there for everybody to shoot at. It sucks sometimes, but that's how things go.
There is a big difference between being cruel and being helpful. Very often I see the former. I don't post my code, so this isn't about me. It's about what I see from others.
You're absolutely right, but it's the current nature of sharing code on the Internet. I've had enough of my code slated to know, and at times it has stopped me posting what could be valuable code for others.
It also depends on where you're sharing your code, and what kind of communities will pick it up. In my experience, the Python and .NET communities have been great when dealing with both damning and constructive criticism of any problems of mine.
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.
I can sense your frustration; I feel similarly. I got a degree in Psychology of all things, which makes my self-taught programming skills even less desirable compared to most.
Reason I went to shipping my own code for clients and customers is that they don't care about my degree or programming practices...they only care if I can ship or not.
Join the club. I also got a degree (and almost a PhD) in psychology. I'm now working as a web analyst, learning hadoop and various other things for big data. Seriously though, one thing a psychology degree tends to give you is a solid understanding of experimental design, which is an extremely marketable skill in this world of AB testing. So stick it out, and you'll get there.
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)?
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.
Well, for your first point, I'll agree that code boot camps and university are entirely different things and with entirely different purposes. But if code boot camps are going to advertise themselves as an alternative to university, I think I'm completely within bounds to compare the two.
For your second statement, sorry if there was a misunderstanding, but my comment was directly in reference to people who have gone to university, and who subsequently make comments in public, including on this board, about what a waste of time it was. It had nothing to do with reasons to hire people, or figuring out what one might want to do in the future - but everything to do with people who pissed away four years of what can only be described as full of opportunity, and now complain about what a waste of time it was.
And my statement stands, I don't think I'd want to hire or work with someone who honestly believes that they didn't get anything out of university.
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.
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...
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.
Cheap but enthusiastic (and perhaps plentiful) labour, who may be able to work on non-critical path items, and there may be ancillary learning benefits from mentoring to existing senior devs.
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.
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.
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.
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.
I've seen him solve algorithms problems for coding interviews in Javascript and Ruby. He also helped with some html content on a site I'm building.
By holding his own I meant able to understand and contribute to technical conversations. I can't even have a technical discussion with some CS students without having to explain the definition of recursion.
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.
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.
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.
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.