> Otherwise, companies automatically categorize us into junior developer roles or tag us as “not enough experience.”
??? What do you think you are after a TWELVE WEEK coding seminar (no matter how intense it was)? It looks frightening to me that he doesn't even know what "junior developer" really means. How ignorant can someone be to NOT think to be a junior dev right after "graduation". Like: I am taking a first aid course - but you have to call me doctor afterwards - otherwise I am pissed off!
> A study by Triplebyte has found that bootcamp grads are weaker in these areas than computer science grads.
Really? No... This must be a lie!
No personal offence here, but honestly, I just can't imagine how a serious company with a certain degree of professionalism is going to hire people like him for a serious software engineering job (or similiar).
But actually, if I think back, at my last job a couple of years ago we had a guy similar to him - it ended up giving him all the shitty work that wasn't too complicated and hadn't to much impact on the success of a project (some HTML & CSS stuff for the frontend) but nobody wanted to do (because it sucked). It took him hours and days to finish stuff someone of the rest of the team would have done in maybe half an hour.
I am also wondering about the reactions in the comments - also here on HN - interesting to see what kind if audience is hanging around here.
Anyway. Coding camps seems to be a good way to make money - for the organizers.
100% this! The tech world is due an implosion if this continues, you cant have people with ZERO programming experience beyond a guided 12 week bootcamp being offered anything more than a Junior role??
This single sentence terrifies me:
"At Hack Reactor, we’re trained to mask our inexperience. In our personal narratives, we purposely omit our bootcamp education."
$120k+ offer for 12 weeks experience - ridiculous, I hope he lasts 2 weeks
I on the other hand got taught to be able humble and make compromises especially when still being a junior. Looking back at my early days, when I wanted a position that I knew would change my career, I purposely asked for a lower salary in the beginning to compensate for my junior level or other skills (language for example when I moved into a country where I wasn't fluent yet), with a clause to bump it up to the level of other people when I can prove that I am on par with them and my lacking skills aren't a problem. It also showed the company that I was serious about wanting to work with them.
But man, 120k for 12 weeks of experience is insane. Sign me up for whatever bootcamp that was
120k for 12 weeks of experience is insane. Sign me up for whatever bootcamp that was
It wasn't the bootcamp -- it was the self-study, and more to the point, his ability to reverse-engineer the interview process which got him that offer.
Which probably says a lot more about the current gold standard, "let's see how many hoops you can jump through" interview process than about the merits of bootcamps, per se.
$120k+ offer for 12 weeks experience - ridiculous, I hope he lasts 2 weeks
The reality, I find, is that (if properly motivated, and possessed of sufficient native intellect) once you get your foot in the door, you can learn the ins and outs of any programming role pretty darn quickly. OK, maybe you won't be able to design a compiler or anything like that. But for most of the standard web development $foobar stuff... you can pretty much pick it up as you go.
The people to be wary for (and weed out) are the outright imposters (those who blatantly lie about their capabilities), or the chronic attitude cases (which includes a great many experienced and ostensibly highly qualified people).
Sure I agree that offering more than a junior role is unreasonable, but all the HR grads I know moved into senior roles very quickly after being hired. I went to Hack Reactor, got a job, and was considered a senior dev by my manager after one and a half years. I'm in my second year now and I'm a team lead. We have a few other HR grads on our team and they are excellent developers that other engineers look up to for advice. Sure, not everyone is like that, but there are plenty of people like this who I know personally.
Now what about CS grads? We've interviewed plenty of people with master's degrees in CS who don't know how to code a binary tree because "you know, I wasn't that into the data structures course..." Or if they have lots of experience they demand more money than the manager makes because, apparently, every company has to compete with Google salaries.
I remember my classmates and I staying after class because there was a guest speaker coming in to talk about quad-trees and b-trees and we were SO EXCITED to learn about these things. We've taken more candidates from Hack Reactor than not because they show this passion for their work that I have personally rarely seen in CS majors. They generally require a few months of ramp-up time, but I think it's worth it, and since they are usually coming over from a different field they bring a lot to the table from their other experiences.
Maybe the silver lining will be a switch to a better process for hiring people that doesn't rely on two hours of quizzes or a pressure cooker hazing ritual.
I know companies which hire junior developers for $120k+, so that by itself is not the problem so much as the notion that a bootcamp graduate is not a junior developer.
On the other hand, I do advise the bootcamp graduates I know to drop it from their resume after their first dev job. Programmer with 1 dev job is a much better profile than bootcamp graduate with 1 dev job.
At HackCorp. We're trained to ask about the education, listen and hear carefully the narratives from the candidates.
Well. Gotta do that when people comes with a degree from the MIT, a degree from their local university and at the same time an internship at Facebook. All in the same year, from the 3 different cities.
The article does read a lot like the "Psychopath's Guide To Career-Hunting". Honestly, the tone reminded me a lot of some of my undergrad peers who were pursuing investment banking jobs, which I suppose makes sense considering his about section.
That all said, if your goal is to get the highest paying job possible, this seems like useful advice.
Hey, there. I also went to Hack Reactor. It's not a joke.My first job out of the program was Groupon and the algorithm-heavy style of the interview wasn't a problem. The hardest thing for me while there was CSS (because they supported some old versions of IE).
I'm not saying that I was stronger on the data structures and algorithm side than top students who spent four years staying up coding during their nights and weekends but I was definitely ahead of most fresh grads I encountered. I don't know how that is, given what a typical CS curriculum (at least what I saw later on Open Courseware) but my guess is that a lot of CS grads don't actually practice what they're learning enough so that it sticks.
One thing it appears a lot of people on this thread are missing is that it's not a school for complete beginners. There are prep courses for people looking to enter the school. I had been programming simple things for my blog for years before I went. About 1/3 of my class already had CS degrees before entering.
The other factor is that intensity really does matter. The reason focusing on duration of 12 (well actually 13 weeks) is wrong isn't because nearly 1000 hours of instruction and work are packed into those 12 weeks. It's even more wrong because working at double the intensity leads to more than double the progress. I saw the same phenomenon with language learners when I was living in Taiwan. It's very common for someone who did a full four year degree in Chinese to speak poorly compared to someone else who did a much shorter, more intensive study at a top immersion program like ICLP.
Anyway, the degree of animosity here is a little surprising, even considering the cognitive biases that might come from having spent a fortune on a university credential. Large numbers of my peers from Hack Reactor went on to do well at YC companies and/or large companies like Google. One I remember well did both (was an early engineering hire at a YC company that got acquired by Google). I still consider the tuition I paid to HR one of the better investments I've ever made (and one that I easily recouped within the year.
Thank you Marcus and thank you, Shawn. You guys were fantastic instructors and project mentors!
Comparing a bootcamp to random schools in developing countries is laughable. It's well known that CS degrees from most of these schools are worthless.
Having been to school and coded for most of my life, there is no possible way you know as much after bootcamp as someone from a decent 4 year school. It was probably over 1000 hours of just studying alone. Code camps are comparable to an associate's degree or certificate.
>"Comparing a bootcamp to random schools in developing countries is laughable."
First of all, your characterization of Taiwan is both laughable and offensive. It's a developed democracy of 23 million, a stronger economy than many EU countries and a better transit/medical/internet infrastructure than I've seen in any western country. In terms of educational attainment, Taiwan is world-class.
Secondly, it looks like you misread my comment. I wasn't even comparing a boot camp to "random schools in developing countries". I was comparing one of the very best programming immersion schools, Hack Reactor, with one of the very best language immersion schools for Mandarin, ICLP (which was started by Stanford FWIW).
>"Code camps are comparable to an associate's degree or certificate."
No. It's not about credentialing. It's about what you can do. I got no credential whatsoever and I wouldn't have respected it if I had. Nobody had ever graduated when I started and when I finished, my prospective employers had never heard of the school. It's about the education, not some stamp of approval.
At least in my own opinion, there is no evidence whatsoever that our centuries-old model of higher education (or our k-12 educational system based on Prussia's model) are the pinnacle of efficiency. There are many ways to learn more quickly, ranging from working through OCW on one's own to getting help from experts while studying in an immersive school.
By that, I mean that I make a distinction between a Junior dev (who may have a degree and professional experiences through a work and/or internships) and an entry-level/breaking-into-programming dev who's got nothing (no theory, no practise, zero real world experience).
One of the odd things about our industry is that we don't distinguish between technicians (who build and maintain things) and engineers (who analyze and design things). We tend to call everyone engineers, and muddy the distinction between building and analysis.
If we did make the distinction, the place of these bootcamps would be much clearer. They train technicians. Specifically software technicians. Their graduates can build things and fix problems using current technology, but they don't have the deep theory and sophisticated understanding of the field that lets them solve really hard problems (at least until they considerably augment their skills.)
The job that most closely fits those is usually called Software Engineer, as distinguished from Senior Software Engineer or Staff Software Engineer. Did the writer really land a job at the Senior level on the strength of ten weeks of instruction and three months of personal study? Sounds weird.
The only situation where I'd hire someone like that into such a position is if they brought a LOT more to the table, meaning probably domain experience. If someone spent ten years as a petroleum engineer and I am hiring a software developer to work on software for the oil industry, then yes, I might be willing to hire them at Senior despite a dodgy background in software.
If there's one thing I've learnt, it's that "years of SW experience" is a downright shitty indicator of what someone is capable of. Facebook 1.0 was built by a bunch of Harvard undergrads with 0 degrees and 0 work experience. I'd take someone with 90th percentile IQ, a history of delivering professional results regardless of industry, and a drive to become a great SW engineer, over an average engineer with 10 years of SW-experience. Any day of the week.
Good luck with that. The next Google will be yours - that's for sure.
By the way: Mark Zuckerberg was a huge geek in is earliest years already and in no way he had "0 work experience". Have a read through the "Early Years" in his Wikipedia article and you may find http://www.letsintern.com/blog/4-thing-mark-zuckerberg/ interesting. He didn't start Facebook with 0 experience right after taking a 12 weeks seminar because he wanted to "change career".
Are you serious? We live in a capitalism. With all the things you see happening in the tech world you cannot stand some guy using the system to get a six figures salary. Or are you angry because you are one of those programmers who took years to progress through small promotions and cannot stand this whole world of bootcamp-grads making six-figures after a 3-months training.
I am not angry at all - what I really am is astonished.
> ...cannot stand this whole world of bootcamp-grads making six-figures after a 3-months training.
Hmm... Why not just get rid of all these annoying CS courses at University? I mean - who needs them anyway if you could just spend 3 months to reach such a badass salary?
What I am saying is the industry will behave with demand and supply. You can only expect bootcamps to get more and more popular with increasing software engineering jobs and increasing number of people changing careers. Bootcamps happen to be a feasible choice for people struggling to learn on their own and looking to find mentorship and structured learning environment without spending years and large tuition fees. However, if you are dissatisfied with the bootcamp education then vilifying someone who is just trying to help other people like him is not the right way.
Such angry rhetoric toward statements that are supposedly so "obvious".
The article is about hacking the system for networking purposes. He's not saying HR is "wrong" to apply those labels. Just that code camp graduates should watch out for that.
Given that this site has used up many cycles discussing how HR filtering sucks, these hacks are interesting to consider.
As for your specific concerns, calm down. You're giving off a superior tone. There is a lot of shit software out there. A lot of it coming from big companies. This notion that it's only for experts of a given status is elitist.
By your admission you're a smart coder so you have little to be upset about. Everyone works with people that aren't as good. My managers an idiot. Yadda yadda.
I'd work on my propensity for flying off the handle at trivial snippets taken out of context from larger stories. I'd rather work to help bring up a green coder with promise than alongside an elitist asshole
Sometimes its about demonstrated skill. We all know about the FizzBuzz debacle - how most folks we interview can't write a simple loop and test? Well that guy was actually educated and demonstrated skills way up the bell curve.
There is "some kind of joke" going on, but it isn't that guy. Its the rest of the industry that turns out script-mungers and form-fillers and calls them 'software engineers'.
Are people in America seriously getting offers of $120k with no degree, no experience, and not even a side-project? That is mind-blowing.
In London, probably the biggest/richest market outside of USA, that sort of salary is beyond what most experienced developers get, even some very good ones.
I must be missing something here (some sort of bubble?) because I can't see how businesses can be profitable paying those sort of salaries to people who know almost nothing about professional programming. Either that or businesses in America are just waaaay ahead of Europe at turning code into cash.
Part of it is folks in the UK, and even London in particular, get paid quite a bit less than Americans.
My wife is from the UK and has worked in London and NYC and she makes quite a bit more money in NYC. She has told me there's no way she'd make her salary in London and it would probably be quite a bit less. She doesn't work in software either; she works in finance.
I think part of it is it simply costs a whole lot more to employ someone in the UK. All those social benefits have a cost and companies have to pay them. It's also much harder to fire someone in the UK than the USA where you can be fired on the spot for no reason at all. The benefits the company has to pay out are technically none except for some unemployment insurance for a few months which is quite small all things considered.
We've talked about moving to the UK but our lifestyle would change for the negative we believe due to the low salaries and the very high cost of living anywhere near London. Especially with the beating the Pound has taken recently when we convert our dollars to Pounds there's no way we'd get close to our current income.
To be honest I'm not sure how you folks do it. The UK is expensive and people simply do with less in general. That's not such a bad thing either.
If you're saying that the UK transfers some of the wealth that might've gone to employees and instead diverted it to social programs, that means we need a better analysis to account for the <full> value transfer that's going on.
It's possible to see a smaller paycheck and in fact receive a larger value transfer.
This is exactly what I was thinking. Put into words that are easier on my brain: If the things taxes are being spent on (social programs, shared services, and shared spaces like parks) are significantly better, one might still have a "better living" with a lower salary.
One of the main aspects of this that is very relevant to Americans is how easy or difficult it is to be fired and what programs are available for those who lose their job. Even if you are never fired, simply the threat of it can cause anxiety and stress that simply wouldn't exist in places where it is harder to be fired and which have better programs for people who are fired.
Well the revenue of US based businesses is at a significantly higher scale than most European technology companies. Specifically companies like Apple, Google, Microsoft, Amazon, Intel all make over $500K per employee (Apple is at $2m!). With such a high revenue to employee ratio, these companies can afford to pay developers at rates immensely above what we see anywhere else. And they should, since smart engineers who can move the needle even 0.01% are worth it. Since these companies hire such a high # of engineers, they tend to set the market rates of salaries in the cities they are based in. When you move out of the major cities, U.S. salaries drop significantly.
If Europe can build a few companies that churn out revenue at the scale of Google / Intel/ MSFT, European developer salaries will skyrocket. US companies with offices in Europe have helped salary increases, but really the continent needs a few Googles to really skyrocket salaries.
Let's take a case study here. Rackspace, a company that was just taken private, and Google.
They have almost identical P/E ratios, and the market cap for Google is 125 times that of Rackspace.
From what I can search around for, Rackspace has 6200 employees. Google has 53,600. Google makes roughly 15 times per employee in profit (not revenue) than Rackspace does. If Google's headcount to profits were the same as Rackspace's, the market cap of Google would be about 35 billion.
That being the case, heck yeah Google will kick down an extra 40k a year to an engineer. Makes perfect sense for them.
His profile indicates that he graduated from UC Berkeley and previously pursued I-banking, so I wouldn't exactly call that "no degree, no experience." Also, a good coding bootcamp, properly applied, can easily be worth more than a typical random "side project", IMO.
That's a huge point. "Code bootcamp" can mean a huge variety of things.
At its best, it often means "technical, business experienced, just transitioned into intensive software study", which is an enticing candidate. At its worst, it means something like "paid $50k to learn basic Javascript". Lumping those two together makes it really hard to draw any conclusions about experience.
The average age in my class was 28. People weren't ex-baristas. They were people from various backgrounds, often technical-related. I was a Math and Econ double major with a minor in applied statistics, then spent 6 years in finance doing equities trading. I was drastically more qualified than the average 22 year old with a CS degree.
Which is part of my point. You're talking experience and capability vs. "CS". The person I responded to contrasts two styles of bootcamps, but you could replace "bootcamp" with "CS" plus some minor editing and make the statement equally valid. "CS" doesn't really mean much, just as my math degree doesn't mean much. I used it to point out that the two rubber stamps aren't very different. The only real difference is that new grads are a crapshoot on both the technical side and the employability side. You just said "many", but how do I really know if one of those people is the one I'm hiring? How do I pick out the mature 22 year old that isn't a cowboy coding know-it-all, and who will actually be able to be fill the basic employment criteria? Technical minded-ness is pretty easy to spot, and I can verify recent work experience and success much more easily than I can validate what someone learned a decade ago. I'd happily hire a technically minded person with a demonstrated work history over a new graduate for the same price. Many people that take bootcamps already have technical knowledge, but not necessarily the specific domain knowledge. I'm using my experience to demonstrate that "bootcamp" doesn't mean the person magically sprung into existence the day before their coursework, just as your example points to the same thing. We hire people, not degrees or coursework.
I'm a very competitive person, which is how I ended up in that career. Towards the end of my time trading I realized I was competing with my health. I have epilepsy and hadn't had a seizure in a decade at age 26. I then had a few over my last 2 years of work, which was pretty easily attributed to lack of sleep. I haven't had one since I switched. I gained more than 20 hours in my weekday, some of which is dedicated to a better sleep schedule.
I think this is one of the largest problems facing the bootcamp industry in general:
* Other players in the space will likely make the industry look bad
* If you graduate the wrong people they can paint your company in a negative light
By and large, companies that get a bad university applicant who can't build a web app don't let it paint their experience of universities as a whole. But if the same applicant was from a bootcamp suddenly all bootcamps are terrible sources of any serious talent and they'll never be considered if they're in the applicant pool.
> By and large, companies that get a bad university applicant who can't build a web app don't let it paint their experience of universities as a whole. But if the same applicant was from a bootcamp suddenly all bootcamps are terrible sources of any serious talent and they'll never be considered if they're in the applicant pool.
This exact thing happened in the late 1990s with Visual Basic/HTML schools. A bunch of unaccredited for-profit courses issuing certificates and promising jobs sprang up during the dot-com boom and were fairly popular. Everyone I had heard about that attended these things left the industry during the crash. I do not see any difference in the way the "bootcamps" are run or what they promise (the word "bootcamp" is new, though), and I think the outcome will be the same.
Lots of people hold the same view about people who've come straight out of university; they simply can't code at all. I think it's less common nowadays, but it was whined about a lot in a IRC channel I frequented that people who came from university usually had to be taught even the most basic things about actually doing.
I certainly thought this was the general consensus. People seem to strongly prefer a substantial team project, reputable internship, or prior job when hiring new grads.
Without that, there's too much fear that you'll get someone who doesn't understand code reviews, writes unmaintainable horrors, or is generally inculcated into the write-once, read-never pattern of class assignments.
The median for software development in San Francisco is about $120k [1]; this means that even experienced developers are getting paid around this amount. Sort by the highest salary and you'll see Twitter, Dropbox, etc.
It looks like Square starts at about 100k for a new grad (uni degree). Seems high but it's more credible than $120k for a bootcamp grad.
Remember that median rent for a 1 bedroom in a non-trendy area is around $2900/month [2,3] and taxes should take about 39% of salary at that level of income. It is far more expensive to live in San Francisco than most of Europe.
Most people I know have roommates though and pay between $1300 and $2000/month, ranging from decent Mission apartments to a nice Castro house. For $2900 a month you can easily live in a luxury two bedroom apartment.
The first part sounds about right. The second part is definitely wrong. For $2900 you won't be able to afford even a 1BR (unless we're talking about place far out from the main parts of the city).
For instance, places around me in SoMa have 2BRs listed above $4,500.
Your personal experience as someone hiring developers or yourself looking for new jobs? I think a candidate with a 4 year CS degree and 1-2 years work experience should probably command more than $120k. A lot of it depends on how well you can sell yourself, IMO.
Where? Also, are you assuming this work experience is at Facebook or Twitter? Most developers in the U.S. work for consulting firms or non-software-core businesses. The fact of the matter is that $120k is the median salary for software developers in the SF bay area, the highest-paying region in the U.S.
Anecdotally, I have no degree, 1 internship, no significant side projects and now make $100k + significant equity.
If it matters, I was hired through a Who's Hiring post with no personal connections.
The biggest justification for it is probably the idea that you hire people based on their ability to learn rather than their current knowledge. This sort of makes sense if you consider how fast tech tends to change and believe that you'll be able to hold on to an engineer long enough for them to grow into competence. Of course, it also leaves you with the huge problem of trying to evaluate "ability to learn" through a few hours of interviews.
The other thing to consider is that hiring is necessarily an ecosystem. An entry level job at Facebook can net you something like 120k + reliable stock compensation + signing bonus, and a startup that doesn't at least try to compete with that is going to lose out big on engineering talent.
It all ends up having very little to do with "justifying" a 6-digit salary, and a lot more with scarce supply.
This is also why we've seen bootcamps and and online vocational learning (Udacity, Bloc, etc) gain a lot of traction. Paying $18k for 3 months at Hack Reactor might seem insane, but if it lands you a $100k job it very quickly becomes worth it.
I would argue that there is a considerable amount of loose change floating around in the bay area tech scene that makes it possible for even young companies to pay large salaries to developers. $100k is pretty common for L1 developers, $120k is roughly average for anyone that can show they've built something before.
I can't speak to a lot of programs, but HR is roughly 800 hours of cultivating people with "enough experience to write higher order functions" into - specifically - web developers. These students implemented a binary tree in their first week, wrote relatively secure chat apps in their third, know React and Angular by the sixth, and have 4 side-projects (one of which over a full month) by the end. Meanwhile, CS grads have been taught that JavaScript is a toy language that can't solve a problem of any reasonable complexity and are instead competing for enterprise Java positions amongst themselves.
Is there a bubble? Probably. But there's also a market for individuals with a set of skills that isn't being met by our university system.
Totally real question, could you please ballpark estimate from a simple glance at my github how much I could be making in the US? I'm curious to know what's there to offer: http://github.com/franciscop/
If you want to adjust it with some extra notes: winner of worldwide NASA competition; degree in Industrial Engineering in Spain with final year project on Neural Networks in Tokyo University; organizer of one of the biggest Maker community in Spain (Makers UPV); 2 years work experience (besides non-profit)
In Los Angeles, right now, assuming you're qualified to work in the U.S. and speak fluent English, you could easily make $100k at the right company--maybe $130k, which goes a pretty long way. SF, maybe add as much as $20k. In either market, if you're remotely competent, you'd be able to get a job extremely easily.
I've not ever really had my github brought up in interviews nor known anybody else that has. If you could direct me towards a resume, though, I'd be totally happy to try and estimate.
My github account was brought up in a recent technical interview. The hiring manager felt that my account lacked professionalism because I had several >= 1 year old, unfinished repositories.
That is... bizarre. He should look at the abandoned internal repos of the average software company's experiments and realign his expectations with reality.
I think that was their thought process. My personal Github is a bit of a graveyard/dumping ground but I saw this as a wakeup call and got rid of a bunch of forked repos and combined some unfinished projects into other repos.
1. Programmers have lower status in the UK relative to the US - UK is more status/class conscious in general whereas US is more about money/productivity/impact.
2. Due to a bigger entrepreneurship culture in the US the opportunity cost for programmers is higher and that drives salaries higher across the board.
Yeah, it's the lack of supply that drives salary, benefits and status for American software engineers.
I do wonder about the positions that are at or below my salary that have higher status. Like the non-profit public policy lawyer I know, or medical students / doctoral residents, or the business-side people who get to _make decisions_ while I'm kind of just implementing their business decisions.
Last winter I dated a writer who has some local celebrity (definitely has some status), and she was getting down on herself about how little she's paid, and how she works a part-time job to make ends meet. I was also kind of depressed that winter, but more for reasons that I never make super impactful decisions where I'm at. I'm not steering the company's decisions much; the best I can do is be involved in architecture and be a faster/better coder. And the code I write is read by, at best, 6 other people. My PRs are usually just read by 1-2 other people. Whereas, what my ex was writing would be read by thousands of people easily.
I don't mind the idea of emptying out my own biases to try to absorb the craft as much as possible. But I do feel like, because engineers are in such high demand, it's not efficient for businesses to let engineers think about product/business decisions, even though engineers would have good intuition for those areas. Being at the end of a waterfall kinda sucks.
Can you give an example of what this means? I'm a programmer and I have friends that are mechanics, lawyers, teachers, doctors, accountants, electricians, radio engineers, server-cpu designers, etc. Some of us live in McMansions while others of us live in 1 bedroom apartments or anything in between.
Would our jobs determine what status/class we belong to in the UK? Or is this based more on your family background (aristocracy)? In the UK would we not be as likely to be friends if we belong to different status/classes?
I would read Paul Fussel's Class to understand the US social-status system, then multiply it significantly for the UK. Class even in the US is based more on birth and culture than you'd think (only the middle class thinks that social class is determined by job, for example); in the UK, everything I've heard is that this is still more pronounced, and more explicit.
I went to one of these programs in America and my starting salary was "only" 85k, mainly because I took a job that wasn't in New York or SF. Most of my classmates who took one in one of those high cost of living cities did 90-110k I believe. I would call 120k+ an outlier on the high side, but not inconceivable.
This was years ago and I don't know if the bar has slipped as coding bootcamps have gotten more popular, but the bar to entrance for my program seems pretty high in retrospect. None of the folks I knew and learned with there would I expect to go on into the corporate world and be one of those computer engineers who gets by in their career by doing hardly anything or being a net negative. They were to a man and woman very smart and voracious in their learning about programming best practices and languages. If you've got a person like that then does it really matter that they haven't been part of a real corporate project before? They will learn very quickly and likely be one of the most useful people on the team within a year. I'm not saying they should be made team lead without any experience but as a rank and file programmer, the salary is justified in that case, I believe.
Tech recruiter here. 85K even seems like an outlier to me for a bootcamp graduate unless you had lots of other credibility that came along with the bootcamp experience. I don't think I could get 85K for a new bootcamp grad in Philly, which is a couple tiers below NY/SF in terms of salary. More like 60-70K I'd expect.
Maybe I'm wrong but the salary an American gets is the whole package and they have to figure out their income tax, social security, etc. In Europe a good part of what the company pays for an employee is "hidden" but can account to 50%-100% of the gross salary you receive. So if you're getting 50k company is really paying 75k.
Same in the UK - the amount quoted is before any tax is deducted. It is usual for the employer to deduct the income taxes themselves, though... businesses in the UK bear some tax collection responsibilities, of which this is one.
On top of the quoted figure, there is an equivalent of employer's FICA contributions. The rate is around 12.5%. Anyway, this is treated separately and you don't generally hear about it; employers factor it into their calculations before deciding on a salary range.
Exception: it's somewhat common for public sector employees to have the employer's contribution quoted on their payslips, perhaps to make them feel like they're paying into the system.
The "all-in" cost of an employee is also much higher than the nominal rate in the US. The employer pays ~8% in social security/medicare taxes, unemployment insurance, most or all of the health insurance premium, etc.
This is definitely not the case in Ireland, and I would imagine the rest of Europe. While there is the odd tax that an Employeer might need to pay on having an employee (probably benefits related), if a job says it pays, say, €60k, that's €60k pre tax. Tax is then deducted from that and you get your payslip which displays both pre and post tax numbers, and you receive the post tax amount.
I don't know about Ireland but that's definitely not true for Germany. While the amount usually talked about in negotiations is pre-tax (since people have differing tax rates due to children, marriage, etc.), there's a significant difference from there to the actual cost to the company.
In my company we pay about 25% on top for social security, worker's benefits, health insurance, etc. This is without any company-provided benefits such as trainings, conference allowances, holidays, etc.
Yeah, similar here in Lithuania. You can say there's three salaries a person can be valued at.
There's the official one which you would declare (pre-tax, or "on-paper"), the actual you get (post-tax, or "hands-on") and the one that shows your actual cost to the employer (pre-tax salary + 31% additional tax).
The hidden cost of an American employee is probably even higher. Since the company picks up most of the cost of health insurance, its a huge chunk of change right there.
He has a degree from University of California, Berkeley (aka UC Berkeley or Cal) and it's a top notch university in US. It's often ranked #1 public university in USA and in top 5 or 10 even when other expensive private universities are included in the ranking, like Stanford, Harvard, MIT.
Obviously it all depends on the major and other factors, but I'd say simply getting into and graduating from UC Berkeley does mean something.
Of course lots of smart, hard working students simply go to local community colleges to save $ etc. But when a recruiter sees UC Berkeley on resume and they want someone with a degree, it give a good impression.
And let's not forget on HN survey, about half of the working programmers are self-taught.
And who knows, maybe he had side project(s) or examples of code to show.
In a tiny town in the middle of nowhere middle america, where the cost of living is 90% the national average, we can't keep college grads starting at $75k with an assured 10% bonus. This is a town where all marble 4,000 square foot McMansions start at $240k. bestplaces.net puts this as a comparable salary to around $280K in San Fran.
$83K in the middle of nowhere is for entry level positions. $280K in San Fran are rock stars well into the 99% of salaries. You're comparing a starting first year fresh out of school who can easily afford a McMansion on a large acreage with a seasoned developer who's in the top 1% of their colleagues who can now just afford a nice condo.
Most new grads don't want to live in a McMansion in the middle of nowhere, even if the salary is great. They want to live in a city with fun things to do and tons of people their own age.
Well, if you read Quora, everyone makes millions of dollars writing code. In the real world (e.g. not Silicon Valley), yeah, it's hard to crack six figures--took me about 10 years to do that with a BS in CS, MS in Computer Engineering, and an unused doctorate (Info. Sci. with specialization in human factors). I became successful when I left the PhD the hell off my resume.
I'd question how you're presenting and selling yourself to potential employees. You have ALL of the leverage. Cracking $100k should have been easy, IMO.
Do you leave your publications off the list as well? Curious how long your resume is. I currently have a 4 pager full of pubs, conference service, etc. Thinking I should cull a lot of stuff.
get rid of all of it. If you are not applying to a research position it is just junk on the resume that make people want to stop looking at your resume. You want list positions held, tech stack used and important projects delivered. Anything else will be looked at second if at all
Experience and track record are the most important things in securing a position. Luckily in tech, you can build your own experience by doing things and not waiting for things to be handed to you.
The sad thing is devs who are out of school for 1-2 years think they have arrived at 6 figures, when they have many years of problem solving and result delivering to give to fully return the value of what they're being paid to their employers.
While those young devs may think they have hit pay dirt, quite often a higher starting salary is meant to keep them as lifers longer, while those who are willing to grind and hustle are adding more meaningful, sustainable, and measurable value.
It's also important to remember when times get tough the first group that are often let go are the overpaid people who add the least value.
In that spirit, I hope students continue to learn how to add value instead of just worrying about what value they receive. In a world where everyone's special, no one's special, except those who can add value.
> Experience and track record are the most important things in securing a position. Luckily in tech, you can build your own experience by doing things and not waiting for things to be handed to you.
Very true. As a new pilot, you have to pay/fight for flight time to build experience before moving up. As doctor/surgeon, you have to be in a certain situation with close supervision to practice your craft and gain experience, which is expensive.
In almost all tech, this is not a requirement, which is what I love about tech.
My sister graduated from Hack Reactor with no previous programming experience and a degree in Oceanography from UC Berkeley. Her salary is 115K. She spent a couple of months applying for jobs. I think it's basically a function of the developer shortage in SF right now.
> In London, probably the biggest/richest market outside of USA, that sort of salary is beyond what most experienced developers get, even some very good ones.
That's what I though as well until we offered £100k to 3 different guys in London.
They all refused saying it was a substantial drop. One actually standed up and left the room :D
Not really, anywhere that's convenient to London has basically the same prices as London. If you do end up saving money it's because you're taking one of those awkward 90minute+ journeys.
Two years ago $120k was just £77k (still good). Salaries are famously sticky as a number, and do not change quickly when currencies move after events like Brexit.
It makes sense they wouldn't; have costs of living in London increased since the referendum? I was under the impression rents and real estate values were down.
Costs have not gone up much, though there is a delaying effect on consumer prices too. But salaries are not only determined by cost of living, or programmers wouldn't be making $100k+. Companies in London will have to offer higher salaries in £ now when competing with U.S. based companies for overseas talent.
I have no familiarity with the UK tax practices, but what kind of burden are you for an employer? The US has 7.5% tax per employee. There are a few others such as health insurance.
There's an extra tax paid by the employer, technically "employer's National Insurance contributions", which is about 10% (up to a limit). So that's comparable to US payroll taxes.
Because the National Health Service is generally considered to offer a decent-enough level of care, there's normally no private health insurance in most tech jobs -- so no extra costs there.
And anecdotally that an british expat who worked for citi in the states was paying over 15% just for his health coverage - he was lucky as his wife is something senior with the FBI and has coverage from work.
No, almost nobody is getting that for "nothing". However you can get that with just one of those. I'd say 3-4 years experience in the right field with the right learning that would be a very easy ask. Or a substantial side project applicable towards the place they're applying.
And you're really just talking about the bay area where competition is STIFF for talent. The hardest thing is finding people who can actually do the job - degree, experience or side project aside.
I'm in London too, $120K job in today's London market (£100K) only exists in some banks, hedge fund and HFT companies, and you'll definitely need 10year+ experience to get those jobs.
I think the salary gap between US and UK programmers in the last decade has definitely increased.
One reason is exchange rate, only a few years ago GBP/USD is 1.5x, now it's 1.2x.
Another reason is that tech sector boomed in the US, big companies like google and Facebook are doing really well, there are also more successful small companies, fuelled by VC money. together they drive programmer salary up.
However, the UK economy is totally dominated by finance. And the banks are not doing particularly good after 2007.
Not all bootcamps are equal. I've interviewed candidates from most of them, and the ones from Hack Reactor (the one that the author went to) were consistently of top notch quality.
I actually think it is more likely that you have young silicon valley VPs who dont have much experience and have been booted a fuck load of funding, this is likely the reason so many of them fail!
I mean fair play to the guy for landing a salary like that with basically zero experience but it wont end well for him or the company if he is put into a position of responsibility where he has to make strategic decisions.
It's pretty simple: British developers are willing to work for less.
Or maybe there is too much supply and not enough demand in London. Maybe it's cultural. But I've noticed that salaries in London are pretty terrible. It's even worse than New Zealand, which doesn't (didn't?) have a lot tech jobs.
The salary growth also tend to be different, at least in the tech centers. More senior engineers at one of the larger tech companies can make several times this all in.
On a related tangent, this is why it is so important to have a so called "Emergency fund"! An emergency fund is a little bit of money (often 1-6x average monthly expenses) such that if you get canned you can survive for 1-6 months without having to work so you can focus on applying for jobs and getting a new job without having to stress when your next bill is due.
I agree that 6 months living expenses is on the high side, but make sure to get at least >1 month of savings in ... make this a priority! I would argue to even do this before paying off your student loans. Why? Because this is such a 'small' sum of money which can really save your ass in the long run when something DOES go wrong. And if every month has a certain probability p of going down the shitters and you approach it like a geometric distribution then its a simple probabilistic (near) certainty.
Remember this: emergencies come unannounced (else they wouldn't be emergencies).
Depending on how often you expect to need an emergency fund and what the relevant interest rates are for illiquid saving (eg: paying down student loan debt) and unsecured borrowing, it may make more sense to have your emergency fund in an unsecured line of credit or credit cards.
Example with made-up numbers: Suppose you spend $2000/mo, you have an unused line of credit of $10000 @ 10%, your student loans are at 5%, and you are taking home $4000/mo. If you have an emergency that costs $2000 that hits your line of credit, that ends up roughly being an extra month servicing $2000 of debt at 10% instead of 5%. If you keep $2000 in cash instead of paying down student loan debt, that ends up meaning you service $2000 of debt at 5% instead of paying it down. These are roughly the same thing, so you wind up ahead if the LoC is sitting empty ~50% of the time.
Granted, these are much more favorable numbers than typical use of credit card debt, but the point remains - if you have access to credit on good terms, and you won't need it often, and you have good illiquid returns on excess cash, you ought to take a look at using credit to handle emergencies instead of cash.
Make sure to be diligent in checking the terms for that LOC. Many banks reserve the right to cancel it if there's substantial change in your financial situation, e.g. if you were to lose your job.
Make sure your emergency fund remains accessible if you get into an emergency.
Lines of credit can be revoked immediately. I have family members who relied on a line of credit only to have the limit dropped and the interest rate hiked by 10%.
The low yield on the emergency cash laying in a checking account is to compensate for its liquidity.
> Eat Ramen, coupons, live like a begger, and save up 1 year of income.
It's unsexy, but one doesn't have to live in the hottest part of town, or go to the newest restaurants every weekend.
But the problem is that people are to led to believe that programming == tech money == big living, when it's really decent middle-class living which means one should still budget, which may mean not keeping up with the Joneses.
That being said, 50% is really a stretch these days. 25% would be more realistic for most yuppies in America, and 33% for those more financial prudent.
I'd call the lifestyle by most new grads in San Francisco to be on par with the middle-class lifestyle. I think your percentages are way off but the gross dollar values are acceptable when compared to other U.S. locales.
Most new grads in San Francisco are likely eating up most of their income on taxes, rent, and repayment of student loans. After contributing the maximum of $18k to their retirement plan and some modest savings, they likely have enough for one night out per week.
100000 - 18000 # starting salary minus retirement contribution
=82000
82000 * 0.39 # tax before tax refund
=31980
82000 - 31980 # salary after taxes and retirement
=50020
1200 * 12 # annual rent for a bedroom in a shared house in untrendy area
# this $1200 figure is from other posters in this thread
# and an cursory look through craigslist
=14400
50020 - 14400 # disposable income minus rent
=35620
500 * 12 # annual student loan payment for $50k, 120 month loan
= 6000
35620 - 6000
=29620
29620 / 12 # remaining income per month
= 2468
$2468 per month to save, spend on food, transportation, et cetera is pretty damn good. I think it leaves about $1000 per month for savings, considering groceries, utilities, recreation, transportation, and miscellaneous expenses.
10% savings sounds bad but the dollar amount is not too terrible. I'm assuming the retirement savings weren't part of the equation, since they can't be readily used for support during unemployment. Overall, the San Francisco Bay Area is not a good place to save money. I think the financially prudent step is to not move to it.
If anyone disagrees with my numbers, please speak up! I would love to be able to optimize my own spending or make suggestions to my new grad friends.
Great job with the break down--the numbers seem spot on. I just checked my spending for September and I spent $1600 for discretionary; and this was with larger family dinners where I paid, and also a weekend trip to LA with friends. I'm more on the frugal side, though.
In regards to the 10% vs 25%, I believe most guidelines account for retirement saving. So with your numbers, we'd be at 28% which isn't too shabby. But yeah, in terms of getting six months worth of savings..
We'd need 12 months, which isn't unrealistic either. I figured one can easily live on $1200 for discretionary when unemployed. $300 for utilities, $600 for food ($20/day), $300 for whatever else. Just can't be blogging from Sightglass every day.
By "live", I mean "do the optional parts of life", like vacation, date, spend money on hobbies, rent a place other than the cardboard box under the bridge, etc.
So, you just need to acknowledge the risk you're taking on. You can "live", but if you lose your job and are unable to get one for 6-12 months, then not having a savings will be a disaster. What if you're disabled? You'll have to hire a lawyer to help you get on SS, and in the meantime you can't break your apartment lease or car payments to dynamically lower your cost of living quickly.
I've also found that the things you mentioned--- vacation, dates, hobbies, are actually more flexible than you think. Lift tickets make skiing an expensive hobby. But hiking or snowshoeing gives you a somewhat similar experience for much less. You can do some research on yelp and pretty easily control the cost of your dates, and once you're serious with someone, they don't/shouldn't care about you being frugal. Similarly, vacations can be done on the cheap. A vacation doesn't mean a trip to Europe, it could mean finding some cool small town nearby and enjoying it. (I feel pretty ashamed at how little I've explored the Western united states, despite having been to Europe & China.)
I'd also say-- you work as a programmer. If you have friends in their 20s/30s who are non-programmers, you should ask or estimate what they're making. They're probably having as much fun as you for much less.
>By "live", I mean "do the optional parts of life", like vacation, date, spend money on hobbies, rent a place other than the cardboard box under the bridge, etc.
If you're hit by a financial emergency, those things are exactly what you won't have the money to do anyway. At least now you can make decisions about what to cut while not under stress and the impeding deadline of bills coming due.
Pay out now or pay out much more later; it's your choice.
I don't know how people can sleep at night not having an emergency fund. I have a couple of time got close to running this out when I was a poor student and I found it incredibly stressful.
Luckily for me, I have never needed my emergency fund.
But I'm the same as you, I don't know how people can sleep at night without one. I've been close to the edge at times and it is incredibly stressful.
People seem so comfortable carrying a massive amount of debt.
I'm currently on the best paying job I've ever had, and although the financial planners around would say that I'm holding too much liquid assets (I'm not sure what to invest in), it certainly makes me sleep well at night knowing that I could survive frugally but comfortably for probably 2 or more years without a job.
Try starting out with zero, and having zero income, and zero rich uncles. People talk about these things like they're a given. I'm not saying anything about you personally, but there are different kinds of poor for every "poor student".
I call it FU savings. Mainly because if you get tired of your employer, you can tell them to take their job and shove it. Move on to better pastures, and not have to worry about paying bills while you look.
I've done it twice, and there's nothing like having that fund (and also being unsecured debt-free) backing you up. Each time I made my choice to leave my employer, I had a new job lined up within a couple of months - and I had negotiated a higher salary to boot.
The best way to go about getting such a savings set up is to first plan a realistic budget. Then, pay down any unsecured debt, starting with the smallest debt owed first. Roll that payment, once the debt is paid back, into the next debt, until you have all your debt paid off.
At that point, you should be left with no unsecured debt; a mortgage can be considered OK (as it is secured by your equity) - but if you can pay that off too, so much the better. Usually, though, it's better to keep it for tax deduction purposes.
Don't have a car payment - if you aren't paying cash for a used (but reliable) car, and paying for it in full - you are likely wasting your money.
There's more tips out there than just the above, but them's the basics - basically. Once you become "debt free" in this manner - a great burden will be lifted from your shoulders. I'm serious.
And once you get your FU savings set up (bank for at least 6 months to a year - but ultimately, just keep building the savings as you have available cash - you may never know when you'll need it) - you'll be free to do as you please with your career and goals.
This whole hardcore quizzing and testing during interviews has to go. As far as I can see, all it does is create selection bias for people who memorize things or like to practice interview questions.
Maybe that's just me being too old for that kinda' crap.
I have been interviewing the last couple months and have the same opinion. I've been coding for years and have some pretty complex stuff up on my GitHub.
I quickly found out that nobody looks at your GitHub, maybe 10% max. didn't matter that I had code from two weeks ago that did complex segmented locking on a concurrent hashtable. still got asked "what is threading" level questions at every place.
After botching my first spate of interviews to stupid trivia I gave in and and read through a bunch of CSCI 100 course notes and "beginners guide to language x". My performance improved significantly.
Ironically the most useful tutorials were the most basic "write a string to a file", as I had forgotten the classes for opening raw files in my three languages of choice (since nobody in their right mind has any business using those classes in a well designed WebApp). Doesn't matter that I could look it up in 5 minutes, they want it on the whiteboard with no googling.
It's really easy to game such interviews as they require very little domain specific knowledge. If you say you know Cassandra or MVC, they'll just take your word for it... as long as you remember the classes for opening a raw file in r+w mode
If you call it out to me during your interview during my standard warm-up question of "what have you done that you are particularly proud of it was challenging" and you don't bomb the rest of the interview then I WILL go look it up. I use things like this to remove any coding skills doubts during a debrief. Just putting it on the resume means there's maybe a 20% chance I'll see it.
I'm usually giving the holistic system design question which the interviewee can take any direction they like they just have to go all the way down in one area.
Jr devs on my team give the algorithms question much of the time and I make sure they're looking for the right things. Problem solving not memorization... Comfort in a language not trivial knowledge or formatting issues... Etc. They get sent to the interview class if they ask anything that is a named algorithm... Like three sum, tortoise and hare, etc and expect a candidate to derive it in a 30 minute coding section of an interview. T&H for example took 10 years for industry to derive.
On a side note don't use a language you're not familiar with in an interview because you heard the company likes it. Use what you are solid in. Python and ruby and the like make most interview questions trivial. I cringe on the inside when people jump for c/cpp in an interview esp college hires as it seems to take longer to get fluent in these languages.
Note I'm not saying to do interviews in Python and ruby but if you're solid in one of them it's like real working pseudocode compared to Java c# c++. But use your a#1 solidest language. Unless u have more than one and that language makes a particular problem trivial.
I am most comfy with Python but think it is the wrong language for me to do coding interviews. When I was in school, I was taught intro CS in C and Java. I got tripped by a fairly CS 101 question even though I use Python very productively and regularly at work. In C or Java, I'd be able to knock off that question easily.
As I said, it depends. If it's text heavy, python or ruby (or perl) is likely the best. If it uses a lesser known data structure, maybe java with it's massive set of libraries. If it's bit twiddling or memory intensive, then maybe c++ is the right answer. But a lot of questions are trivial in ruby or python. 3sum can be done in 2 lines of ruby (how I wish it was one, would be cooler).
I'm not shocked that nobody looks at your GitHub. Reading other people's code takes time and energy that a lot of people aren't going to spend if they have a ton of candidates to sift through.
Get a relationship, however minimal, with an inside contact, who shows his boss your code or conference presentation or whatever, he calls you and schedules an interview, then HR is told to find two bodies off the street to interview to make the hiring decision look good.
Their code doesn't get read. I'm always kinda pissed when I'm brought in for that kind of interview and I figure out I'm just a placeholder. I've never said anything unpleasant but I have mostly politely walked out of interviews like that. Once its clear they just needed a checkbox and my showing up was the checkbox, theres no point in continuing. This is why sometimes you get callbacks for the craziest jobs you can imagine, like seriously, what in my carefully resume made you think I wanted to program FORTRAN exactly? You're hiring someone who's 90% of the time a graphics artist and all I know about photoshop is I'm familiar with the name? You need a .net programmer and what in my resume made you think that was me, let me know so I can burn it off the page with fire? Or there's a massive experience or salary mismatch, etc.
Every CodingHorror post and list of hiring tips demands a GitHub profile, with the implication that it had better contain useful, quality code. (And with a bit of a threat that you'd better not put any hacked-together, one-off project in there, even though everyone has some.)
That's good, I see the value of it, and I also understand why interviewers don't want to read it. But new devs have every right to be annoyed when the industry-standard wisdom says that you have to have a thing which is never used.
(The real answer is probably "New devs, get ready for the interview gamut. Experienced devs, call a contact and have a GitHub profile." But somehow that never comes up.)
As a hiring manager, I wouldn't say people are serious if they have a github account, but having one, which actually has original work in it, can show that the applicant has some interest in the industry beyond the money. If you don't have a github account, that's fine but you've got to show something else that can fill in the gap. Perhaps you're on bitbucket or even source forge. Or maybe you did summer of code. Worst case, tell me you can bring in some samples to an interview.
I'm not too surprised either, but I marvel at the amount of time wasted preparing and asking all the stupid questions when they could just look at my code for 5 minutes. Like, the main file in one of my libraries clearly uses concurrent locking, it even says so in readme.md . These were all last round on site interviews and we spent maybe 30 minutes of 2 devs time going over pointless stuff when they could just skim 200 lines of code.
I think it's just that they have a process built up over time like "interview process.doc" and the devs don't want to make any waves going off script
I thought it showed on the page if a project was forked; perhaps it makes fraud possible but wouldn't it be spotted almost immediately when you started work, if it wasn't spotted then arguably it doesn't matter.
"Almost immediately when you started work" is precisely too late, though. If you hire purely off GitHub and get someone who lifted their code (instead of forking it), that's a huge price.
Bad hires inflict huge costs up front, in wasted interview opportunities and startup costs and lost training time and morale hits and a dozen other things. "Fire fast" is popular advice because it's better than firing slow, not because unsuccessful hires are a sustainable event.
By all means, please do "out" this company. Preferably as a response their next "Who's Hiring?" posting.
You'll be doing not only your fellow developers a huge favor, but the guilty party as well. Being as they need to get their heads around the fact that it's not in their interest to keep pulling off bad behavior like this -- and if they need a good dose of public shaming for the message to sink in, then so be it.
The whole issue is a really weird mixed bag, where good interviewers struggle to weed out awful candidates without harassing strong ones.
"What is threading" actually doesn't bother me, because it's shockingly easy to find experienced backend devs who have no idea - even when they've used MapReduce!
The file I/O one is far more obnoxious, because low-level file interactions are so rarely a good idea in most languages. In general, the right way to handle that remains "scripting" right up until it becomes "framework". And if someone expects that file I/O as part of a larger problem, they should probably accept anything sensible-looking or offer you a couple of method names like "getTextLine" to avoid the whole issue.
The whole process is broken, certainly, but its broken on both ends.
It definitely is broken. If I had to point it to a specific cause, I would say the main problem is that the industry is overrun with charlatans. The reason appears to be, when comparing CS to other professions, that so many schools do a poor job teaching CS. Also a factor is that tech jobs are so hot that everyone and their cousins wants pie in the sky dev money without putting in the effort to go to school or self teach. In basically every other engineering profession, a degree is your boarding pass. Not so in CS. I've met guys myself with masters that have no idea what they're doing. Mostly from private school but some public universities too. This in controversial but I think bootcamps are just going to make the situation far worse, if they haven't already. You can't teach everything in a few months so they concentrate on teaching people the skills they need to pass interviews. The real solution to this is to raise the standards in school for CS. The end result would be better interviews for people with degrees, and a clear path through school that leads to an almost guaranteed coding job. This is how it works for every other engineering job.
I've been the guy to screen candidates before and the number of unqualified applicants is astounding. Like, barely more qualified than a random sample of the population. This is for a junior position that simply lists c#,MVC, 1 yr exp. Like a paragraph long job description with 3 requirements. Also listed that we would take Java exp with Jersey or spring boot instead. Over 80% of our applicants didn't meet those requirements. A good portion ~40% had never been to school or written code in their life.
Of the remaining 20%, we would call and ask basic questions relevant to the stack. Just to make sure they're not lying basically. Like for c#, I would ask "what is nuget?" Type questions. Same with maven type stuff for Java guys.
50% of remainder fail multiple questions that anyone who wrote a single app in that stack would know. We now have 10 people out of the 100 that applied.
Half of those aren't local, or lied about being local. 5 people. 2 of them didn't disclose that they need visa sponsorship. We pick 1-2 of the last three.
Rinse and repeat nearly that exact process every time we need to hire anyone. Finding people with experience was even more daunting.
Can confirm. I interview candidates on a regular basis. Company policy that we never invest time in checking a candidate's GitHub. But I do anyway.
Because of the startling amount of people unable to explain the code in their repositories, I've found code quality / problem complexity / stack similarity alone to be a worthless metric. On the other hand, I've found it to be invaluable to get candidates to explain their code and why they made the decision that they did. It's exactly how a practice assignment works, except candidates are much more passionate about the choices and have invested more time in the project overall.
Because I can explain anything about it. because the module is published on maven central under my name with my private key, hosted on a domain registered to me, on a GitHub account that's literally my name and a domain that's my last name. My primary email is firstname@lastname.com. A common theme with employers not checking GitHub is that the code could be lifted but in some cases it's glaringly obvious that it is not.
I mean what if I'm applying for jobs using someone else's resume? What's stopping me from having my coder buddy do the phone screen for me? Why don't I just list a bunch of experience at companies that went under... Unverifiable. Use a bunch of references that are actually my roommate and my dad with Google voice numbers.
At a certain point you just have to take things at face value. A GitHub is just as verifiable as every part of your resume that's not a school you went to or your identity
That's fair. I don't think I've really seen readmes on the github projects people list on their resumes, let alone seeing their stuff published to maven.
I do think the original article suggests that if employers put a lot of stock in github, the coding academy people would quickly have the "best" github pages.
I am pretty young and it seems stupid to me too, this guy wanted to be a React Dev. If he was ever at work writing a binary search tree by hand, or writing his own quick sort function, then he would be wasting his time and creating a huge potential problem point in the code.
This guy claims to have worked ~6 days a week for 3 months not to become a great full stack dev, but to become a great interviewee. Seems kinda backwards to me.
This is what drives me crazy. I'm a bootcamp grad, and I've been interviewing for 6 months. I've spent EVERY single day of those six months, (besides applying and networking and interviewing), working on coding, design, projects, and leveling up so I can collaborate with a team. This guy spends all of his time working on stuff that is considered "level 2", and he will make double what I end up getting. Frustrating.
As a former bootcamp grad, please prioritize interviewing skills over development skills. once you get a good job, you can spend your free time on side projects but until then you need to practice on interviews not coding.
Sadly it's the reality of interviewing and I hate it but there is nothing you can do until you are an experienced dev and can leverage your power to say "I refuse to work or interview at companies with dumb interviewing processes."
Play the game. You know the rules and you know what you need to do to win the game. So just suck it up and do it. It does not take much more than 1-2 hours of dedicated interview prep over the course of a month to be successful in whiteboard style interviews.
I have seen that for internal promotions too on guy I knew spent months working his promotion my boss wryly commented of course he has not done any real work for 6 months.
As you get away from CS101, you kind of stop getting excited by it. I honestly don't care to look up how to implement quicksort at this point and would rather hack on some deep learning code in my spare time. Friends my age frustrated by interviewing are in the same position. Guess we're too old for a software job :-p
One thing I've found to help me with this ennui is to get excited about implementing the quicksort in another language, or using some newfangled pattern I'm not used to. I interview for fun and this helps to keep me engaged with the same old stuff.
There is zero chance of this happening until google/facebook stop doing it.
This comment appears in every single interview/hiring thread for past decade. Only change I've seen is actually the opposite now there are 5-10 "rounds" of these quizzes even in a no name enterprise companies.
Honestly, I think the reason its still around is because it approximates "write FizzBuzz", which people should be asking.
People ask the 'quiz' stuff, successfully throw out some bad candidates who talked a good game on experience/theory, and assume its a good way to go.
The ideal middle ground is probably to offer ultra-basic code problems, ideally before an onsite. It's awkward, but it really is necessary to filter the non-programming applicants. And by not trying to be clever, you don't create an incentive to memorize Rabin-Karp and generally acquire useless interview-only skills.
Even for those still doing testing interviews, that's a good rule of thumb: if it was a paper-worthy insight originally, it's a ridiculous thing to make someone derive in an interview.
During one time I was using a recruiter to get a position, he had me interview with a company that used an online coding test as a first-level filter. I didn't know what they were going to ask, but I asked if he had any idea - all he would tell me was that it was something like good-ole "fizzbuzz".
So I studied a bunch of stuff. Anything and everything but fizzbuzz (not that I needed to study that). Then I decided to go for the test - which was timed - and...
...fizzbuzz.
I'm sitting there a bit dumbfounded - seriously? So I coded it up from memory; I could have easily pulled a solution down off the net, but I figured "what the hell - let's go old-school" on it. Also - if I just cut-n-pasted something in, and they saw "it took the candidate one minute to code it" - they might suspect something, then google search the plagiarized code. No good.
So - I coded it up; it was in PHP, but the job was supposed to be for javascript/node (???) - so I wrote it as a class, then I spent the remainder of the time optimizing it - making it the fastest FizzBuzz solver I could, complete with tests and demonstration code. I took up the entire available time, and submitted that. I made sure to add proper PHPdoc comments to everything.
...and I got an "in-person" interview as a result. At the end of that was an another "live coding" session - this one using javascript for a "single page" app. They left me to it, and I got everything coded up inside of 15 minutes or so (there was a paper document laying out what the challenges were in the example code). They were watching my progress via screen sharing.
Apparently I completed the task quicker than other applicants. I later learned that some applicants just sat there unable to do anything (not even google around for help!), or they would take convoluted paths to implementing the changes; not necessarily wrong answers, just not efficient ones - and would be sitting there doing this for a couple of hours (at which point the interview would be brought to a close).
At the end, I got the offer.
Ultimately - those are the kind of challenges I like - give me a real coding assignment, something close to what you are really working on. In this case, it was also in two different languages - so I could also help to "bridge gaps" between a PHP team and a javascript team as needed (added value for the employer).
I really dislike whiteboard coding - completely unrealistic, and while I gather why it is a widely used tool, I think there are better ways to gauge a developer's competence for the position - and actual coding challenges to solve problems seems like one of the best ways to do so (though I also understand that it is very time consuming - so an up-front online timed challenge might be a good pre-filter for on-site or further interviewing).
My questions are just there to get people talking about what they have done. Sometimes you ask about malloc and people haven't used it. I think they serve as a pretty decent initial screen. You choose some basic things that people need to know, then some more advanced things that someone who uses a language regularly would know, and ask until you have an idea of where their knowledge ends.
The problem is that if you picture what you're doing as firing into the darkness to probe something, you can't be sure if the handful of shots you take actually indicate you've reached "the end" of what you're trying to measure, or just some arbitrary boundary. And that boundary may not actually even exist at the point you measured it, depending on some huge number of factors unrelated to the actual job (for example how much sleep they got last night, or if they haven't eaten this morning and are hungry, etc).
Given the people I've interviewed who had extensive "fundamental" "CS" "education", vs. the people I've worked with who've done bootcamps, I'll take the bootcamp any day of the week and tell the CS folks to get a refund from the university, because the CS folks straight up can't code on average.
"Engineer" -- and I say this knowing full well it's the title assigned to me by my company -- doesn't entail any meaningful difference I've ever seen. Other than some architecture astronaut types I've worked with who felt that writing code was too dirty a task for them.
I mean, call it what you will, but a lot of these people are getting offers, man. Good ones. Which is more than I can say for myself with my comp sci degree and two years experience. Although my location is likely to blame for that.
As I have had 7 different jobs for 12 different employers (due to mergers/acquisitions, by the most generous count), and have needed to run the entire interview gauntlet all 7 times, my primary career goal is no longer to earn more money. It is to never have to do another effing software-industry interview, ever again.
But damn. For $120k/year, in the region where I now live, I might just put Expo2 to whiteboard one more time.
I get tired of justifying my own existence to people who are only pretending to care that I am not actually a human-form automaton to crank out code. In short, the software-industry interview has always been stupid, but it has also become increasingly arrogant and rude. Is it really worth it to put up with the crap-on-you parade for a few more measly dollars in the paycheck?
>"my primary career goal is no longer to earn more money. It is to never have to do another effing software-industry interview, ever again.:
I feel exactly the same way, even though the existence of those interviews is probably the main reason I was able to get into kinds of companies I did.
Yeah this is galling to the point of fraud. You don't just walk into an engineering job and demand a non-junior position with no experience. You are wasting everyone's time. The company is paying that high salary because they want someone with experience; someone who won't have to "learn how the internet works" on-the-job.
Just because you were able to fool the company into hiring you doesn't mean you "passed the final" and everything will be fine from now on. If you had experience, you'd know that.
This was the part I didn't understand at all. You go through a CS program for 4 years or more and end up as a junior developer and that's fine, but if you go through a 12 week coding bootcamp you're somehow more qualified and shouldn't be "benchmarked against junior developers"?
I do realize I'm making an assumption that there was no prior CS experience before the bootcamp, but isn't that the crowd they're targeting?
That's because that's what a lot of these bootcamps sell. I've interviewed several grads, and while it's not universal, many of them literally tell their graduates they're going to be better prepared for the Real World™ than their college educated counterparts. Almost like, "You'll be better than a CS grad. All they can do is explain and apply the fundamental thinking process behind all this 'engineering' crap. You, on the other hand, will be able to select elements based on their CSS class. Way more useful."
I also don't mean to typecast anyone, but the author's profile on that site reads, "Full-stack dev @Radius, ex i-banker, @HackReactor grad, @UCBerkeley," so perhaps he thought his prior experience in an unrelated field or his alma mater should've helped him get a leg up over other entry-level devs.
Again, I don't mean to judge since my path to software development was also non-standard, but my first gig paid about $30k/year and I was grateful to even be given the opportunity with my inexperience.
To be fair, for 99% of web development being able to select elements based on their CSS class is seriously way more useful than being able to explain and apply "engineering crap". Pretty much until you get to the point where you need to scale infrastructure you won't use any of your CS degree when working on most web applications.
Also to be fair, learning how to select elements by CSS class is so trivial that it doesn't effectively separate levels of developers. Whether you choose the basic JavaScript version or one from a popular framework, it should take less than a minute to look up if you don't already know it. I imagine that seasoned developers (and possibly recent CS grads, depending on school) are much, much less likely to waste time wondering why $(".myClass") is giving them a "$ is undefined" error in their Angular/React/etc... project.
I might be wrong, I don't have any direct experience with boot camps, but stripping dev skills down to just the minimal, core, practical skills needed to build a working prototype in the language-of-the-month seems like just the latest version of the same short-sightedness that has been plaguing businesses for years. Low-risk, long-term success will always come from building on experience, not "hacks" and short cuts. There will be exceptions/outliers, but they're just lucky, not a model to be copied.
CSS is not only selecting elements (like JS is not only "defining functions"). Creating complex CSS layout can be hard the same way complex JavaScript system is.
I think the boot camp grad is still going to be a junior developer but I can kinda see where someone with a "vocational" (code camp) educated applicant might actually be more productive than a college educated applicant for certain jobs.
To use an imperfect analogy, who would be better at actually building houses; a vocational school grad (who built houses all day as part of his education) or a college educated architect? A lot of programming these days is "hammering nails" not architectural design.
True, but when I think of "junior" or "entry-level" anything I think of someone with no real world, on the job experience, and that applies to boot camp and college grads.
Boot camps might very well be better than college programs in terms of preparing someone to use development tools and methods as opposed to focusing on the theory behind them, but at the end of the day, you're still not doing "real" work where your choices have consequences in a boot camp as you would on the job.
Working constructively with other people in the field (including answering to and being able to discuss and defend projects with colleagues and superiors), completing projects within time or budget constraints, and being able to make your own informed decisions with regard to things like project scope, methods, and direction, with a proven history of success -- those are the skills that separate "junior" from whatever comes after that, at least in my opinion.
Oh, I agree. For one thing, Senior engineers have lots of failures under their belt. Another trait of Seniors is knowing when "good enough" is good enough for the task at hand vs. the "best" way they were taught in school.
This is a fair point, but most vocational programs last years not months, so that is where the analogy breaks down here. I think "vocational" code schools offering 2-year degrees would be very, very attractive as an alternative to a traditional CS degree (both for students and hiring managers), but that's not what we're looking at.
According to a quick Google search, the average program length for these boot camps in 2015 was 11 weeks. That is on par with a single semester at a university. Even if you take a heavy course load of only practical CS courses, one semester is not nearly enough to prepare someone fully for a full-time dev position at top-tier companies. Sure, they may be able to answer the interview questions...but then what? I'm pretty skeptical of this trend and don't see it ending well for most of the boot camp graduates or companies who hire a large number of them.
> To use an imperfect analogy, who would be better at actually building houses; a vocational school grad (who built houses all day as part of his education) or a college educated architect? A lot of programming these days is "hammering nails" not architectural design.
If bootcamps were vocational schools things would be great. As it is, how many are more like for-profit scam courses handing out unrecognized certificates with the main aim of teaching people how to game the programming interview process?
I wouldn't say that makes them "better", but it's possible to shorten the time needed to learn to program by quite a lot. Though I mean more like 6mo-12 mo for most people if they do it 60+ hours/week with the right mentor to point them in the right direction.
Our current education system isn't always the most efficient way to learn. Skip the unrelated to programming classes, the extra curricular things, make people basically sleep, eat, and code for a few months and it's doable.
> Our current education system isn't always the most efficient way to learn. Skip the unrelated to programming classes, the extra curricular things, make people basically sleep, eat, and code for a few months and it's doable.
This attitude is the reason why I am strongly in favor of expanding vocational schools and training in the United States and Canada. People who do not actually care about learning or thinking should be discouraged from attending university and wasting the time of other students and faculty.
I get what you're saying, but don't agree with the way you're generalizing. You make it sound like vocational schools are only good for getting rid of the undesirables, while the real scholars attend proper universities.
Discourse in topics irrelevant to my career doesn't put food on my table (usually). I'd rather graduate from and pay for a shorter, more focused program than spend $50k/year to have topics I once enjoyed ruined by misdirection and absurd coursework I have no control over.
> You make it sound like vocational schools are only good for getting rid of the undesirables, while the real scholars attend proper universities.
What do you think a university is supposed to be? Of course it is a place for real scholars doing real scholarship. Your attitude is exactly the problem. Stop treating universities as trade schools.
I went to a four-year private liberal arts undergraduate university and majored in math and physics, which may seem foolish to many on HN. I myself thought early on that it was probably a mistake because of all of the "extracurriculars".
But in retrospect, I actually think those extracurriculars were more valuable than the classes I majored in and made me a more well-rounded, empathetic, and socially tolerable individual.
For example, I took a public speaking course that I credit with helping me be able to confidently teach an entire class of introductory physics students when I was in grad school (around 150 people), and currently present in front of my entire company without breaking a sweat (~70).
I learned Canadian history, which allows me to be a better global citizen and more fully understand our relationship with America's largest trade partner.
I learned basic economics which helps me follow the stock market and the way commerce works.
I learned (basic) Japanese, which in its own way is a unique learning experience. There's a reason why when something is confusing people say it "looks like it's written in Chinese," with the implication that it's so crazy to understand that it's impossible (remember, Japanese kanji are just repurposed Chinese characters, so the analogy fits). Tackling that sort of obstacle, even to an elementary level, is very rewarding.
Living in dorms all four years forced me to learn about and how to communicate with people from different lifestyles and cultures, both good and bad.
Yes, a liberal arts university education isn't for everyone. Yes, it's way too expensive (I know I'll be paying off loans for at least the next decade). And yes, it's not the best route to take if you just want to get qualified for a job. But if I'm being frank, a lot of people, especially in the IT and software development crowd, could benefit from being forced to take "the unrelated to programming classes, the extra curricular things," if only just to become better people.
I feel like I got those things from K-12 education. I took French in high school. I took USA and World History. I had an economics class. When I first moved out, I still had to have room mates regardless of school. We had to do presentations in front of the class all throughout school. And I was in public school.
I'm not saying college is bad. It can be a good experience despite it having some cons(like price and time). I'm just saying you can learn to code (and well) in less time if that is the only thing you are focusing on....and there's nothing wrong with that. Education is not just limited to school, and some people have that attitude about it.
> People who do not actually care about learning or thinking
I don't want to waste money in our poorly-ranked, expensive schools where professors aren't even paid enough to live on. I instead utilize the resources available to me online to learn it faster and cheaper, supporting education reform. It's not apathy towards "learning and thinking" to take a more direct path. My goal was to learn to code so I could get a job, I've done it, plenty of people have done it. Do some people bootcamps and suck? Yes. Do some self-taught people suck? Yes. Have I seen people with college degrees suck? Also yes.
Some people spend a few years in some enterprise java job going nowhere and attend a bootcamp to learn iOS development, github, data science, etc. In other words it's a career change within the industry. Not everyone likes to learn alone on evenings and weekends.
But the thought of spending thousands to attend a school and you're encouraged to hide said school from your resume looks really bad.
I too went to a bootcamp and spent about 3 months searching for a job afterwards. I didn't study anything. I let my bootcamp knowledge get written to disk and freed up more room for new stuff. I drank a lot of beer and went hiking in the woods as much as I could. I worked on my projects ~5-7 days a week but never for 8 hours at a time. Just a constant, undirected exploration and work towards building new things. Granted, I had some background in tech (particularly in data science, stats, college-level programming) so I might be an edge case.
At first I thought I was screwed, but after 3 months I'd completed 3 vastly different projects and it showed in my interviews. I could speak intelligently about 5 or 6 different programming languages and a multitude of database technologies, libraries and had my college-years algo/OO knowledge in the background. I had done everything from front-end design to Machine Learning, low-level algorithms engineering to full scale apps. And then I got an awesome job. I doubled my yearly earnings. People may scoff at bootcamps, but it helped in my case - if nothing else I got half a year to mess around with computers instead of doing that after work like I had been for the last couple of years.
As far as interviewing goes: I got rejected a lot. I rejected a lot of companies, especially those who tried to sell themselves to me. I was picky about not working in a megapolis hell. I didn't bug people if they didn't get back to me. I turned down second interviews if the person who interviewed me was an asshole or was non-technical. And it all worked out.
Unsurprisingly, I landed at a company with a lot of views similar to mine. We all mock Silicon Valley. We don't work around the clock, we like having lives outside of work. Few of us are traditional tech people. All in all, a very life-affirming experience.
I'm more bothered because it's becoming "so clever" to put everyday life activities into a function. I saw code written in chalk on a sidewalk billboard at the door of a coffee shop yesterday. No, I will not reciprocate that cringe and verbally call a function to order my coffee because the barista learned Hello World the previous night.
I immediately picked up on this, too. From the code I've seen, novice programmers tend to do this a lot more often than someone who has been programming for a while.
On a similar note, another thing novice programmers do often is rewrite min and max using if-else.
I'm happy for this guy, and there are really good tips in here for managing an application funnel.
Like others, I'm surprised offers north of 110 are possible given his experience, and can't help but bristle a bit at him being a self described "full stack" developer when it appears he's a front end developer (does rails really count as being a backend engineer?).
But he worked exceptionally hard at the process (guessing having applied to 10x the places a typical engineering grad does?), and also has a strong background in business from a reputable university. For some jobs, especially at startups, knowing how to understand the business problem and deliver results can be really important. The challenge isn't the tech, it's combining just enough tech [1] with essentially being a product manager too.
[1] learning that "just enough tech" is not easy, and it's clear he worked hard to master a lot of material. It's just that many of us have been working that hard for many years and likely have more expertise / ability to learn new tech fast than can be gained by anyone in the course of a few months or a year; hence the initial surprise
I would definitely distinguish between html / css / javascript and server side application code, be it in ruby or python, I just didn't think working on the server side application logic completed the "full stack".
To me full stack means you are into the systems a bit too and would be capable of setting up the stack itself (and perhaps enhancing it, or setting up custom batch systems), not just working effectively within a larger space provided by the application frameworks.
But perhaps I just have the terminology wrong? Full stack developer = someone who works across the application stack, and I'm thinking more of "systems" or "backend" engineer?
Yes, I do feel you have the terminology wrong. I consider myself full stack and I work with Rails, Django, etc. I have interviewed with many companies with the title "Full Stack Developer" and most of them have not expected the type of experience you are talking about. I think you are talking essentially about a Systems roles.
When you are full stack there's usually an assumption that you are "better" on one side of the stack and won't be strong at everything. So a back-end focused full stack developer would be better at the things you are talking about while a front-end focused full stack developer would be much stronger in Javascript / CSS. The main thing is that you understand how an app works end to end and can contribute / fix bugs across the stack.
The term "full stack" often only seems to denote someone with both front- and back-end experience; anything below the server application is often considered the domain of "operations".
I do think it would be nice if the term carried more meaning, but given most companies are running their systems on top IaaS/PaaS offerings from Amazon/Google/Microsoft/etc and tend not to care about things beneath the application layer until they're making more money than sin it's fine as-is for the time being.
They were talking about front end dev, backend dev, and full stack dev. Those distinctions are only applied in web development. Grandparent post thought full stack meant knowing about deployment and setting up deployment environment too which goes beyond full stack into the realm of operations.
Outside of web development I haven't heard about such distinctions like backend or frontend. There are application developer, system developer etc.
I call myself full stack and mean what you mean. I typically have to explain that when I say full stack I mean "literally full stack" as in I have a working level of knowledge with every piece of the system from hardware/kernel to networking to databases to application.
I do agree that when people use the term though they just mean "I can code in a backend and a frontend language".
>>when I say full stack I mean "literally full stack" as in I have a working level of knowledge with every piece of the system from hardware/kernel to networking to databases to application
That seems like an impossible definition to fulfill by most humans today, though. I mean, how "deep" do you take it? Pre-processed code? Assembly code? Object/Machine code?
Computers today (especially server-based systems) are so massively complex that I don't see anyone possessing working knowledge of "literally" the entire stack.
And then there's the question of the depth of one's knowledge. I'd argue that the more you spread it out, the thinner it gets at each level of the stack, just by virtue of the fact that one has only so much time to spend on learning, practicing and keeping their skills up-to-date.
> That seems like an impossible definition to fulfill by most humans today, though. I mean, how "deep" do you take it? Pre-processed code? Assembly code? Object/Machine code?
There is a lot of dumb jargon, misleading labels, and wrong analogies borrowed from other fields that are popular in tech right now. You can call yourself whatever you want, but if you have never used gdb and call yourself "full-stack," you are being pretentious.
> Computers today (especially server-based systems) are so massively complex that I don't see anyone possessing working knowledge of "literally" the entire stack.
I literally have enough breadth of knowledge to figure out a problem at any level of the stack from top to bottom with some help from google/books. And no, I don't mean finding it on stackoverflow/stackexchange and copying an answer :). This is what I define as working knowledge, that I know enough to be able to debug issues in the subject with help from resources which I also know how to access. Depending on my familiarity with the particular piece of technology and the difficulty of the problem this may take me anywhere from seconds to weeks. I don't just say this either, I have actively debugged issues at most "levels" of the linux application/OS stack throughout my relatively short career so far.
Basically, you give me a problem and I have the tools I need to figure out the solution or root cause without help from any other team members(though help can certainly speed things along). The only question is going to be time.
> And then there's the question of the depth of one's knowledge. I'd argue that the more you spread it out, the thinner it gets at each level of the stack, just by virtue of the fact that one has only so much time to spend on learning, practicing and keeping their skills up-to-date.
My depth of knowledge in each area shrinks and grows as I need to use it. As said above though, I have just enough depth in every area to "be dangerous" as they say. I certainly have more breadth than depth in most things but I match or beat my peers in depth on the technologies I deal with daily.
From my experience I would say that what you are describing at the end there is a full-stack developer. It's someone that works across the application stack, not setting it up to make use of it. Although many probably can, it's just likely not their responsibility.
Id say some one who is comfortable working at all the layers 1-7 ie be able to design spec and set up (or supervise the set up) of a small office network
well first thing - that code at the top can be simplified.
function getDevJob(studying, hardwork, luck){
return study && hardwork && luck;
}
But more seriously - I actually really like point #2. I firmly believe that job interviews have a strong bias towards people with experience doing job interviews. Your "offer-ladder" seems to confirm that for me.
It reminds me of that freakonomics article about how real estate agents get more for their houses because they wait longer for a higher offer. By getting the practise and being better at job interviews and NOT jumping at the first offer, you get a better overall rate.
In camel-casing, a capital letter indicates the start of a new word. Therefore this is clearly "a typical day" while "atypical day" would be "atypicalDay".
wouldnt't atypical day be atypicalDay and a typical day be aTypicalDay? following camel case nomenclature the function name seems to suggest a typical day and is aptly named.
Also note that the "easier" interviews are from companies that are less competitive/less established. So their offers are going to be lower not because the candidate comes off as less qualified, but because they just don't have the money to pay their employees the 120K+ salaries. So that graphic is also misleading.
This hasn't been my experience in general. Most of my hard interviews were at startups. To sound old and jaded, I think a lot of it has to do with the startup mentality "we only hire the top 0.0001% of coders " . Once you've been in the business for years you realize the fallacy of that thinking and try to hire good coders with a focus on finding people fun to work with.
Most big companies I applied at had about half of the grilling and the rest of the interview was "culture fit"
I'm a bit jaded about startups myself and I'm not even 30. The couple I worked in seemed like "we are so smart" cults, which drove me absolutely nuts. The people working there were smart, but their definition of intelligence was narrow-minded. I find it very unlikely that you are hiring the "best-of-the-best" if the vast majority of your employees are men under the age of thirty who attended a very specific list of colleges.
Running a company is a team activity. I think there are too many sports metaphors in business, but if you've ever played a team sport you realize that the best teams are usually the ones with the players who play best together, not the ones with the most talented players. I could run this metaphor in to the ground, but the point is that hiring only the "best-of-the-best" is neither a credible claim nor a good methodology for creating a successful business. You might be able to do that when your company is 5 people, but it's probably much better to have good role players who are a cultural fit for your organization in the long run.
Advice I give at all levels is if you're getting bored at your job start interviewing again even if you're not going to take it because: you never know && you need the practice.
Seriously, the original code is not too bad and probably what most people would write if the inputs and functionality of that function are only complex enough. "Hm, what else goes into isPrepared? Do I have to consider anything else before returning true or false?"
> He told us to send emails directly to real people with each application. It could be anybody. As long as someone read it.
> For most small companies or C-level executives, the email format is usually firstName@dreamCompany.com. For larger companies, it may be firstName.lastName@dreamCompany.com.
This advice is horribly annoying, and I really wish people would stop recommending this awful email guesswork garbage.
I'm an engineer, and I once had a [firstname]@[company].com email address at a company. Later on, the company hired a recruiter with same first name, followed by a head of marketing with same first name.
Naturally I started getting tons of unsolicited mail, several times per day, from people who simply assumed my email address corresponds to one of the other people with the same first name. This included a lot of resumes from people who graduated from coding bootcamp.
Often the same person would email repeatedly, a few days apart. It definitely did not help their chance of getting hired.
Horribly annoying to whom exactly? You? A person with a tech job who couldn't figure out how to create an email filter for the words "job" and "resume". OP increased his response rate almost 4x. Why wouldn't he recommend this practice?
Yes, annoying to me. It's unsolicited, unwanted email from a stranger, interrupting my concentration several times a day, and often not even intended to be sent to me. This is the very definition of spam -- why would you consider this an acceptable practice?
There's no fool-proof filter for this. I can't safely filter out all email containing certain keywords, even from external email domains. I would get legitimate email containing those words from external domains -- legit candidates, people I met at conferences, etc.
I don't argue that it's good to contact a real person when trying to get a job. But at least take the effort to ensure you're actually emailing the person you intend, not some other person who happens to have the same first name!
Given that the OP applied to nearly three hundred companies, I can absolutely guarantee he just sent these out blindly based on guessing the first name. And seeing as he only got phone screens out of 11% of these companies, one would assume most recipients of these emails view them the same way I do: garbage.
Well then I suppose we agree. I'd never advocate mass emailing an unsolicited email without prior research. But, if I were looking for a job you better believe I'm gonna use this tactic, albeit in a calculated way (target 5-10 companies with very tailored emails and research on the recipient up front).
> A person with a tech job who couldn't figure out how to create an email filter for the words "job" and "resume".
These filters make mistakes and can hide something that you actually want to notice. It's a low probability mistake, but the price is too high to risk it.
>> I applied to 291 companies, did 32 phone screens, 16 technical screens, 13 coding challenges, 11 on-sites, and received 8 offers.
How much time would that take?
Figure 15 minutes per company - 4,365 minutes, or 72 hours. And that's time just spent finding the company, changing around a cover letter, and then emailing it and responding etc.
32 phone screens? Let's say 30 minutes each, that's 960 minutes, or 16 hours of phone screens. Forget accounting for prep time, etc
16 technical screens, an hour or two, let's go 90 minutes. Again, not accounting for prep or anything else - 1440 minutes, or another 24 hours.
13 coding challenges. From experience companies want you spending no more than 1 day or 8 hours on a coding challenge, so 104 hours here.
11 on-sites. At least 2 hours each, 22 hours, not accounting for travel or anything like that.
Also, I would have targeted applications to a lot less than 291 companies. I guess if I was trying to get my first job I'd be a lot less picky, but the 'ideal' company to work at can be few and far between.
There tends to be a relatively large number of initial applications that are more or less A/B tests - do companies respond well when I showcase my React project or my stint at a startup? Should I bother writing that I have Mongo experience even if they're not hiring for it? And so on.
I haven't really applied for jobs since getting my first - just keeping communication open with recruiters generates more than I can keep up with all the time.
15 minutes per company for applications is high. Organization helps a lot, and you can really optimize your workflow for sending out resumes.
Finding the company: approximate amount of time spent here is 5 seconds. You have a spreadsheet, just go to the next one on the list.
Changing the cover letter: template it with variables. Should end up being a single bash command, most of the time is locating and properly formatting company name, person of contact, and filling out a couple sentences about why you're interested. 90 seconds when you're in the flow of things, tops.
Replying to emails and the like properly counts as part of the organization for the phone and technical screens.
There's time costs for when the application process includes forms that take a bunch of time to fill out. Not because you finish ~20 minute applications, though, but a certain percentage of the ones you look at you wind up having to abort due to those barriers, so you amortize the cost in there.
If you can handle really boring repetitive work, and you're not doing much else that day, you can wind up sending out a hundred applications in a day without too much fuss. For scheduling phone screens, set up a Google Calendar and/or a youcanbook.me and let the other party pick a time that works for them. Prep for phone and technical screening has little marginal cost - mostly it'll be spending a few minutes grabbing notes on business models and tech stacks so you can look good, along with jotting down notes afterwards about follow-up and ideas to improve on.
On-site basically counts as a full day.
>Also, I would have targeted applications to a lot less than 291 companies. I guess if I was trying to get my first job I'd be a lot less picky, but the 'ideal' company to work at can be few and far between.
It's a numbers game. You want to look at as many as possible, so you can pick after you have information about them. Basically, it's probably easier to filter out companies based off of actually talking to people there, rather than going down the rabbit hole of figuring out your desiderata and researching how companies fit it.
tl;dr - the actual application process looks like it could've been done over 5 weeks, given prep work was complete. One week sending out a giant pile of applications, one week doing phone screens, technical screens, coding challenges, then just over two weeks of doing on-site interviews.
>> 15 minutes per company for applications is high.
Applications can be more than just sending out resumes. The worst is when you have to deal with some crappy web site, upload your resume, then fill out a bunch of web forms with your job history, take silly tests, fill out other pages of personal information...
Yeah. It was faster for me to abort when I noticed those and get an application in on the next company on the list instead. Amortized over all the companies on your spreadsheet, that winds up faster.
I can't believe he sent out that many solicitations. With an air of smugness, I'm glad I busted my ass in high school to go to a top CS school. I've probably sent about 30 resumes in my life and gotten phone interviews for all but one, offers from 15.
Regardless, I'm glad to see that developers who go to bootcamp can get phenomenal salaries. I have a few friends going through them now.
You probably haven't sent out ambitious enough solicitations. Like, if your response rate is that good for CS roles, you likely could have busted your ass for getting multiple competing offers from companies with gigantic piles of cash, or much more senior positions, or finding a business co-founder with good skills and connections.
First: Good job on the author! I don't think I could make 300 application in a three months, and I am fortunate that I have never needed to. This is impressive determination and focus, and it paid off.
Second: Wow, programming is becoming a commodity. This is literally 1) Learn the latest trendy framework and nothing else, 2) Study to the test, 3) Interview well. Either the market will be flooded and salaries for generic JS devs will crash, or strong programmers need to find a way to differentiate themselves that cannot be copied by anyone in 2 months.
I'd argue that if strong programmers can't find a way to differentiate themselves from weak programmers in 2 months then yes, programming (from a hiring perspective) has become commoditized.
That being said, we're currently in a time where most of the "development talent" that we have actively employed are working on little more than glorified CRUD applications. The few that are working on more specialized tasks tend to be safer from such commoditization.
So whoever hired the guy should feel bad. He explains the strategy to boost his payroll, he was hiding the bootcamp he was attending and he was showing himself as experienced dev. And also why would you hire someone if 300 other companies were not interested in that person?
Ironically his lack of experience shows itself even in the first fancy function he writes on the blog post. Would not this unnecessary if block be a red flag in a coding interview?
I am sorry to see this type of people in the industry and I am sure I would do the best to not to let such people getting hired in my teams.
I always read that sort of if block as the mark of somebody who's been round the block a few times. Because they know that one day you'll want to place a breakpoint on one case or the other, and they know that one day they'll want to know what the value of the condition is before it's used, and one day they'll want to put some logging in, and so on - and they know they won't thank their old selves for making that harder.
This sort of hard-won experience is how you get the high salaries, you know...
While I agree it's often advantageous to set a local variable instead of just immediately returning an expression for breakpoint reasons, there's really no reason to have that if statement in there instead of just returning the local variable, and I think it reads poorly.
It's trivial to add the if statement if it's truly necessary in the future (like if you need to evaluate the variable beyond simply whether to return true or false).
> Coming out of Hack Reactor, my weaknesses were data structures and algorithms.
...
> At Hack Reactor, we’re trained to mask our inexperience. In our personal narratives, we purposely omit our bootcamp education.
I fail to see how they prepared this student for a career in software development. Sounds like they get a Masters in technobabble.
I had the same thoughts. Programming is nothing BUT data structures and algorithms. Being weak in those two areas basically means you are weak at programming. He also talked about how he didn't like they immediately equated him to a junior dev when realizing he only had bootcamp experience. IMHO, a bootcamp is essentially like taking one elective at university on making web apps.
3 months of applying? Wow. Seems like whatever he got was well-earned to me. I really stick to projects too, but this is massive. I just don't have the time/patience for 3-months of searching while I am currently working.
Kind of makes me think that the market is selecting people who have someone else supporting them so they can do all this interview research. Seems backward in my opinion.
I keep hearing "interviewing is a skill too." Sure it is, but should it be? I mean, why are hiring managers looking for people who are good at pretending to know things rather than people who demonstrate real aptitude through getting things done?
Just because there are exceptions, and we have names for both the positive and negative forms of the exceptions, doesn't mean there's not a strong correlation overall.
3 months of boot camp and we call ourselves "engineers" (not this guy. I'm generalizing). I can't even begin to imagine what licensed engineers feel like when they read stuff like this.
It's a common thing in the field. My title was changed from Web Developer to User Experience Engineer, despite my groaning otherwise. Most junior developers enjoy the title inflation for a few months then start to realize it may have been conferred a loosely.
At my company we make a clear distinction between developer and engineer. The former title is for juniors who are mostly just writing code, whereas the latter title is reserved for senior team members who demonstrate solid system design and engineering skills.
For some strange reason people hate recruiters, but during my most recent job search - a month ago - I worked with seven recruiting companies. I was submitted to 15 jobs after filtering for commuting distance, technology, salary requirements.
First noticed that I filtered based on salary. Most companies don't divulge salary ranges but recruiters know that up front.
Out of the 17:
2 - positions already filled before I started the process
1 - after further investigation, the technology stack didn't meet my requirements
1 - had qualification I didn't meet
10 - companies that wanted phone screens
8 - phone screens
3 - in person interviews
3 - offers
All of this in only 2-3 weeks. There is some overlap and no company out of the 17 stopped the process (submitted -> phone screen -> in person -> offer). I either stopped the process after accepting an offer, the job req was put on hold, or the position was filled when the recruiter submitted it.
Two points. First, none of the submitted resumes disappeared into a black hole because I was using a recruiter. I knew my status for each job. The second point is that I'm no one special, I know plenty of developers that had the same experience.
Someone else asked how do you keep up with all of the applications - a spreadsheet.
My impression has always been the spammy feeling of it all when someone is not seeking employment. The apparent never-ending "would you or someone you know be interested in this position" spam that developers get. Personally, I don't mind it at all but I understand why some might.
As for the company side, I have directly heard from many a company that they don't like dealing with recruiters because of the cost involved. But then, it seems it has become necessary to many job seekers because experience suggests that if you want a response from a company about a position you must go through a recruiter.
I turned off alerts on LinkedIn when I change something on my profile and I don't post my resume online. I also only work with local companies that have been in business for a while.
I've found a few recruiting "companies" that just put up a WordPress blog and the footer even says "powered by WordPress". I don't respond to those at all.
I have 26 local recruiters all from different companies in my contacts. My shortest time from starting the process to having an offer is 4 days - from a Fortune 10 company. My longest is three weeks when I was being very picky about what technology I wanted to use.
How did you get one recruiter to submit you to 17 different positions? Any time I deal with a recruiter they seem to stop (or at least really slow down) trying to find you something until they hear a firm 'no' from whoever they submitted you to.
I think the most phone screens a single recruiter ever got me is two in a single week....maaaaybe three. And only one in-person interview at a time. It took a lot longer than 2-3 weeks to find the next job through them.
Also, they had many companies that were just plain old slow to schedule interviews. One in particular took two months to get around to scheduling an in-person, and I had found another job in the meantime.
That sounds like a bad recruiter. A good recruiter will know roughly how long the process takes at each company and try to time things so you have multiple applications ending around the same time. This way you get multiple offers. Multiple offers means they can get you a higher salary. Getting you a higher salary increases their commission.
I dealt with 5 recruiters at once. I live in a major metropolitan area on the east coast. Companies know that experienced software devastating don't stay on the market long. They move fast.
I briefly worked as an accounting recruiter[1]. It's extremely plausible one person could be submitted to 17 different positions in a week, while another person gets one every other week.
Getting interviews is as much politics as it is being qualified. At the place I worked, recruiters owned their job listings and their applicants. You get paid more if you fill your jobs with your own applicants, for what I think are obvious reasons. Recruiters would only ask around for applicants if they didn't have anyone qualified for the role. So if the recruiter who interviewed you doesn't have a lot of job openings, and you are a pretty average candidate, you might not get sent out to a lot of companies, even if you are more qualified than other applicants.
On the other hand, if you have a candidate who has a great resume, you probably want to keep them for one of your own jobs as well. The candidates who got the most offers were generally candidates who had an uncommon background (and therefore would be difficult to place yourself) or who were liable to get hired before you could match them with one of your own openings. In that case you'd send an email to the other recruiters with a brief overview of the candidate (background, salary expectation, etc) and ask them if they had any openings for them.
In my experience, recruiters engaged in illegal hiring practices as well. For instance, if a company did/didn't want older individuals, you'd talk about whether they were interested in "seasoned" individuals (seasoned ostensibly being a reference to their experience) or set the experience required since college at [x] number of years, where [x] + 22 = the age of individual you were looking for. It was also well known which hiring managers wouldn't look at the resumes of women, or of individuals with "urban" names, etc.
Companies that were terrible places to work were always looking for "plodders" -- people who spent a lot of time between switching roles (4 or more years). The expectation being that they would be less likely to quit. Other companies really want people who are "climbers" -- people who tend to switch jobs or get a promotion every 18-36 months.
The candidates who got the most interviews were white males who went to a prestigious university, did internships, worked in a big-4 consulting firm for a few years, and then spent 1.5 - 3.5 years at each job after that point. They were referred to as "extremely presentable," in the sense that they almost always would interview well. Their recruiters would often send to interviews where the the hiring manager was asking for an amount below what the person was looking for though as a way of making the applicants available at a given salary look terrible in comparison. This would allow them to drive up the amount they were willing to spend and get some of the higher priced "average" candidates hired.
If you want a job, the best advice I have is to call/send emails to hiring managers at places you'd want to work, and ask them if they would be interested in a person with your background, or if they had any advice for you. Even good recruiters are mostly useful for negotiating salary (since the more money you make, the more they make), trimming the irrelevant parts out of your resume, and coaching you on how to do an interview. If you need help with the second and third points, you are probably better off paying for a career counselor, since they will have your best interests at heart. I suppose a recruiter might be a good choice if you have specific salary/benefits requirements and you aren't great at negotiating, though I've never really thought about that point since negotiation is probably my strongest skill.
[1] Recruiting accountants was the worst job I ever had. I knew nothing about accounting going in to it. Turns out I hate accounting, and talking to accountants all day was hell for me.
I'm a software developer and I haven't experienced any of those problems. My resume shows that I've been in the industry for at least 17 years and that's after taking my first job off of my resume. I graduated from an unremarkable state college, and I'm a minority.
When you're juggling 17 job opportunities knowing that you have a good shot at a least 10 offers, you really don't have to negotiate. Between the salary offers and the recruiters willingness to throw in a signing bonus, you can let the system work for you.
No matter how good you are negotiating, if the company has a budget of $90,000 and you are looking for $130,000, you can't square that circle and you won't know a lot of the time until after you've wasted time going through the process.
Also over the past 9 years I've had four jobs. I made a mistake and contacted a recruiter from the same company where I was already working with another recruiter and she told me that I was already working with one of her coworkers. Another recruiter mentioned their "morning meetings" where they all get together to share candidates and jobs. It's in the recruiters best interest to find a candidate a job even if they aren't the account manager for a specific company, knowing that a good developer can find a job in less than two weeks.
That being said, I've always been good at writing tech resumes and I am a good interviewer.
The politics at play probably don't affect people who browse HN as much as it affects a middling SEO IT helpdesk person.
That being said, there are a lot of things to negotiate other than salary. You can negotiate vacation days, flex schedules, etc. They are all effectively forms of compensation, but companies are more firm on salary than they are on other forms of compensation.
I wasn't referring to a mistake as far as ethically or legally, just that it seemed spammy on my part and useless to contact more than one recruiter at the same company when they share job openings and your first point of contact will usually split the commision with the owner of the account if they arent the owner.
Is it still a huge deal to have an encyclopedic knowledge of data structures and algorithms? This guy was applying for jobs doing React/Node, which is what I do, and two years after school I cant remember all the details of the sorting algorithms. Would it be so bad to tell the interviewer that if I do anything other than call browser APIs to sort data I am failing at my job and wasting time?
FWIW I've been doing this for over a decade and the number of times I've actually had to care about sort algorithms, balancing red black trees, or that other nonsense is basically only in interviews and only occasionally.
I say as much when people try to pull that stuff on me now. There's a copy of TAOCP on the shelf for a reason, if I need to know a good algorithm, Mr. Knuth's are certainly better than mine.
I find it very unlikely the person interviewing you would "see the errors in his ways" and go "ok you are right, dumb question".
It is a human flaw that when we interview, we project. If we are really good at X, we want to deep dive on that topic. Perhaps it is important for the job. Perhaps we are just trying to show off to a candidate. Who knows.
I know I am a fullstack guy, but light on React. If the interview before me was a webdev and asked you a bunch of React questions, I could not add anything of value there. So I would poke around algos and linux and testing and CD and all of the other things I know about, to see where you fall. Not really to show off how leet my algos knowledge is... but I personally would rather hire a guy who knows big O, all things else equal.
I do doubt most jobs are so specialized you only need 1-2 frameworks, and nothing else. Knowing what memory is isn't a terrible thing to understand for any programming job...
It's not very encyclopedic. There are about a dozen questions and data structures that everyone likes to ask. Some places ask harder ones and you have to deep dive into cracking coding the interview. Google is one of them, they have a bigger algorithmic focus.
I'd rather have this vs. the 'where did you go school' bias that finance strongly has.
It's still a pretty big deal to know how Big O for time complexity (space complexity less so) and how to write algorithms that optimize for such. That being said, I've never had to write anything much more complex than a Binary Search algorithm for an interview as far as DS&A goes.
If I were being interviewed I would have no problem taking advantage of any standard APIs I would expect to have available to me, which includes browser APIs if it were a front-end role. Why waste valuable interview time writing a sorting algorithm instead of just using .sort()?
>the most important thing you could be doing at any point is studying and preparing.
"Most important"? Have fun with that. Life is too short to spend time memorizing the answers to over-the-top tech questions for some chance to work for a company no one has heard of (and isn't producing tech near the scale of interview knowledge they require).
One thing that I think is worth noting here -- this guy isn't from a university where he would have learned this, and likely hasn't spent a lot of time using or understanding data structures (unlike "the rest of us"). He's just out of a code camp, studying these sorts of things make sense in that situation. I'd hope someone more experienced wouldn't need to.
The only part that I hesitated with was the part about getting through to real people.
After reading a post like this, not sure how hiring managers (or their team) are going to feel about getting inundated with emails from candidates. After all, that exact use case is why we have recruiting departments to begin with.
I would tweak it and say use your network to get in touch with real people. The effects of getting a million emails from candidates might be blunted a bit if they are coming from someone you actually know.
My sense is that it's just a good way to annoy people whose job isn't hiring. At best, you're risking annoying someone who is busy (and your email being deleted with no reply), at worst, you're actively penalizing yourself if you are demonstrating that you aren't willing to go through the standard hiring process that the company uses. (For other terrible ways that job applicants try to "stand out", Ask A Manager is a veritable goldmine[0]).
The fact that his response rate when from < 5% for "applying the right way" to 22% for "maybe you upset a hiring manager" suggests his new approach, in spite of your reservations, is better for cases where you don't know anyone who can give you a warm introduction to a given company.
If anything, assuming most companies have an 'employee referral' program, emailing a random non-recruiter may have the additional advantage that, for no cost to you, someone at that company becomes incentivized for several thousand dollars to lobby for you.
It's very much a tragedy of the commons scenario, though: if one person emails a random within the company, they're going to stand out, maybe even get put in as a blind referral. If everybody starts doing this, then it's just spam, and the emails are more likely to get dropped on the floor.
This is actually a very good point. Having an incentivized advocate really skews things in your favor and many companies have such programs in place to bring in new hires...
Alternately, it suggests that people getting emails like this should be sure to send them to Recruiting with a "Could not follow instructions, do not hire" note.
I just hate how these "bootcamps" are only in it for the money and then they have the audacity to tell their students to LIE on interviews. How about you actually pick a language YOU love, make projects, improve. Node.js LUL
That seems a little bit extreme, in my opinion. I'm writing the curriculum for a full-stack web developer bootcamp that we're launching in the early part of next year.
We're all "kind of" in it for the money. I have to support a full-time teacher salary for three months, administrative overhead, software/hardware licensing, curriculum development, and have enough left over to make it worthwhile to continue teaching these classes in the future. But we're all driven to fill a need that we see in the market (not enough engineers/devs available) and most of us perceive the shortcomings of traditional formal education and think we have an approach that can improve things.
As an example, I've been the lead engineer / director of engineering for the past five years and have realized that all of the junior engineers that we hire out of college generally take 2-4 months to get spun up on regular software development practices. We've got to teach them version control, team work habits, peer reviews, requirement solicitation, design document writing, etc. And all of those skills are on top of our industry-specific requirements.
I'd much rather hire someone that was passionate enough to pay for a bootcamp, wants to be an engineer, and has learned enough to start contributing fairly quickly.
And while we're going to be coaching our students on how to kick ass in interviews, we're certainly not going to advocate lying. We're going to focus on confidence, proper responses for things they don't already know about, and even get in to the "submitting your resume" process.
Don't be so cynical. Computers have only been an integral part of everyone's lives for the past 15 years or so. The entire world is trying to figure out how to train people how to be productive members of a post-labor society.
Shit, dang near all of them. Lol. Admittedly, most of my hiring experience with recent grads came out of smaller regional universities (Augusta University, Augusta Tech, Georgia Tech) and a few for-profit schools (Kaplan, Phoenix, Full Sail).
At the bootcamp I went to (Origin Code Academy), those without previous experience are told to emphasize what they've learned in 12 weeks if this is more or less their first contact with coding. At no point were we told to lie or bend the truth. All of our LinkedIn accounts mention the time in the bootcamp. The advice was all about presenting yourself in a way that emphasized either your ability to learn, raw skills if you had some previous experience, or accomplishments if your final project was especially impressive.
At least only 2.8 percent of the companies he contacted were interested in hiring someone whose only genuine reason to be interested in software development is the salary. Now I remember why I've gravitated towards sysadmin rather than dev, and avoid the big tech companies and their cult of overpaid mediocrity.
It is just an inference, for sure, but I reread the post, less angry, and imagining the author was a student I respected; It still comes off a bit crass, especially these two quotes:
"A less-talked about part of the bootcamper’s journey is what happens after you graduate — when you’re searching for that six-figure developer position."
"As I got more experience, I effectively “leveled up.” I became capable of completing interviews at companies with higher hiring bars. This is illustrated below as a linear correlation between the number of weeks I was into the process and the base salary I was offered."
At the same time, if I imagine the author as a (highly organized) co-worker, seeking a better salary, I have a bit more respect for the legwork he has put in (although it is highly unlikely anyone with a full time gig would have the time for it).
It remains unclear whether salary was the author's only reason to become a developer; there is only the absence of counterevidence. I would definitely feel uncomfortable hiring or working with a junior employee who attempts to "mask (their) inexperience", even during the hiring process.
TL;DR: The barchart can be misleading. Increasing # of applications can decrease the rate at which they mature into offers.
I like some of your points like get through to real people. That's an incredibly important part of landing a job. However I do have an issue with the graphic at the beginning. I think it's misleading, because you shouldn't really be applying to 200+ companies. When you take that kind of approach its like you're selling yourself short (not putting your best foot forward). Its like saying "I'll take anything, just please give me a job". It's also more difficult to actually show interest in whatever company you're talking to, which is a key part of performing well and ultimately obtaining an offer. So you end up showing 8 offers from 291 applications, but I would argue that by making so many applications, you are decreasing the rate at which the applications turn into offers. I can offer a contrasting viewpoint to this job search thing. When I was in school for Physics I taught myself how to program and started focusing on Web Dev. I ended up dropping out of school and decided to become a programmer. In that initial job search I applied to three companies in SF. (Companies that I was familiar with and legitimately interested in) and got offers from all three. That was two years ago and I've since applied to two other companies in Mountain View (I'm trying to move to an ML engineer position) and received offers from both as well. And like I said I think the difference between what our bar graphs would look like is due to the fact that my applications were much more targeted and my interest and motivation in the companies was much more apparent.
I'm not surprised by this, neither by the methods and approach he employed nor by the results and education he received from his efforts.
The fallacy that "programming" is just learning tools and syntax and processes has unsurprisingly led to an expectation that, in continuing fashion, one can just run through a defined routine and get a solution.
In short, the whole thing is misunderstood, and thus the approach is all wrong.
Whether in IT or business (or life in general), opportunity is more easily gained through human interaction - networking (but substantive, not superficial).
Go to meetups on a particular language or stack or tool. Become involved in open source projects or communities that are centered around some shared interest. Get to know people, and let them see who you are. Then the jobs will come to you.
So I was realistic about the companies I could apply to with no PhD/Masters (No Facebook AI Research for me). I also made sure I could have some sort of tangible projects completed. (Created a GAN to generate images of street signs, DL to predict steering angle for a car based on video feed, etc) Then I went around to meetups, workshops, conferences to meet people and learn. Then through talking to people in person I found some smaller companies that are implementing ML in interesting ways (self driving cars, building recommender systems) and applied to the two that I felt strongest about. The key though is that I met people from the company and talked to them about what they're working on and what I've been working on and if there's overlap, it shows that I can contribute to what they're working on. Every position has a requirement of some sort of degree, but I just ignore that and apply anyway if I've already met and talked to people at the company.
Good tips, thank you. I started in algorithmic trading with Java and Entprise-y stuff. Got bored and moved to front-end. Now looking to move to ML. Like you, no degree, but I apply anyway as long as I feel I have the right signaling.
How do people justify and act going into an interview if you think there is a less than 10% chance of you wanting the job.
Do you just walk in and say "Yeah, I don't think this is going to work but I came here just for the hell and experience of it." This feels like a shitty thing to do, it feels even more shitty to walk in like you really want the job when you're mostly there for the practice.
As companies commonly pay for your ticket if you have to travel to a job interview, a friend of mine half-jokingly suggested you could do it full-time as a job for a few years after university. You'd schedule several interviews in a far away city and charge that ticket several times.
More seriously, most people are scared of changing jobs and hate the application process, to their own peril. If you could really own this whole process you'd win on every level.
As someone who has gone through software engineer interviews with top Silicon Valley companies, what I see is that the process is biased towards 1) people with lots of time and good memory (so that you just work for several months to churn through the books/questions available out there), 2) new hires (tend to get easier questions as far as I can see, they don't get design questions, etc.) 3) people with competitive programming experience (especially Google or FB). If you are not in one of these groups then good luck, you will need that. Especially experienced software engineers who are married/have kids have very little time to prepare for these sort of interviews, which makes it very hard for them to succeed. The way software engineers are interviewed right now are totally messed up, and is a big waste of time.
Source? I thought that they were all open curriculum and didn't even have a paid program.
It's been a while since I looked at it, but I've recommended it to people as one of the better sources of actually free content, and not just upsells, and would like to know if that's not the case anymore.
They don't sell any products, they just offer free curriculum and forums that anyone can follow. As part of the curriculum, they pair students with non-profit organizations that need code.
Honestly, isn't that an unimaginably huge investment of time and effort? Wouldn't it be easier and cheaper, more educational, and maybe faster to just create a startup and get aquihired? I'm not in the market now, but that's my plan for the next time I'm looking. Its kind of a level up from merely registering an account at github.
I'd be dealing with business acquisition people instead of a role-mailbox in HR that's piped to /dev/null anyway.
I don't really want to move to CA and certainly can't afford it without a huge hit in the standard of living. However... if someone bought goofy-idea-by-vlm.com for two or three million bucks and an aquihire job in CA, then I still don't want to move there, but at least I could afford it if I absolutely had to.
> At Hack Reactor, we’re trained to mask our inexperience [...]
> [...] Ultimately, you need to convince companies that you can do the job.
> [...]At the same time, you need to convince yourself that you can do the job.
Err.. Ultimately you need to be able to DO the job...
Jesus Christ. To think I had to go to college for 4 years to get my CS degree, at the same time be an intern, take part in GSoC, and then work as a backend engineer for ~3 years only to make 1/66 what this guy is making in another part of the world.
I don't care if you're from a dev bootcamp or an Ivy League school. I care if you care about your craft.
Experience is really hard to quantify, hence the programming tests. They are a crude way to standardized the measurements.
But care for your craft comes through right away. I'd ask them about the stuff they are interested in within their domain, then dig a little deeper to see if they have a strong grasp of what they are talking about. Sometimes I'd debate with them.
I also find that the best engineers I've ever met came from a variety of countries. They turned out to be amazing team members to work with as well. Once you're no longer just looking at US schools and US dev bootcamps, you get amazing selection.
Speaking from an applicant's perspective:
Heck yea, study up no matter how trivial you think it is or how it belittles your years of experience. Remember that this crude method is not an accurate measure of the hiring company's potential or yours. It's just a filtering mechanism for both sides to start a dialog.
Wow, instead, get 100% response rate from only the 5 jobs one should really apply for because they have a personal story to tell that is a great match for the work being asked. I've done that twice. Throwing your name against the wall results in a whole lot of wasted time. You got some offers, great, but next time be picky!
I live in what should be considered a developed country in Europe with 5 years work exp also abroad, of which almost 2 of software development in a highly specialized field, and I make one third (1/3) of what the average CS grad makes in SF. It feels very bad...
Making scads of money in SF is (or can be) kind of like getting constant blood transfusions so you don't bleed out. It doesn't necessarily translate to a great quality of life.
How do you even manage this amount of information? A notebook can help but once you hit the 20 applications mark, it's impossible to know to which companies you applied for.
I'm not the author, but I went through a similar process looking for a job when I moved to a new city. I had ~120 applications over the course of a month, with a surprisingly similar funnel at each step.
Managing the process wasn't too hard. I simply kept a spreadsheet updated with contacts as rows, and columns with dates for every step of the process including first contact, second contact, phone interview (s), coding challenges, on-site interviews.
However, you're right when you say "once you hit the 20 applications mark, it's impossible to know to which companies you applied for." Early on in my application process, I wasn't applying to nearly enough places, because I wanted to hear back from someone before moving on to the next. A good friend of mine gave me the advice "You should be reaching out to so many people, that when you get a response, you'll need to go back to research who it was from." It's a weird mode to operate in, but once you realize that as a new-ish dev the process of getting a job is very much a funnel like the one in this post, it's a strategy that makes a lot of sense.
I would highly recommend anyone looking for a job to follow the advice in this article, it matches very closely with my experience. Especially resonant were the points about making contact with real humans, and also to push tons of companies into the pipeline.
Spreadsheet for who you applied to, if you've followed up, links to their site, notes on how you applied/if you know anyone, etc. And also Google calendar to make sure you follow up on correct days. "Tuesday call back #29 CoolCompany Inc."
I wonder how much Live Coding he had to do. I've been interviewing like crazy lately, and I've learned I hate live coding, and "thinking out loud". You're in a room with your laptop hooked up to the monitor, and 2 people are watching you code. Any small typing mistake or mouse movements can be a negative on your review. Live coding should die.
I disagree. Companies need to know these people can walk the walk. Sure, I don't expect you to know all the spec details. Googling the spec or asking questions is fine. I had one interviewee that went through a similar boot camp. The discussion portion of the interview went exceptionally well; he knew all the topics and had opinions on using certain technologies over others. It seemed like a good fit, until we got him in front of code. He struggled to do a simple object assignment in JavaScript.
To your point, any small typing mistake or mouse movements shouldn't be judged. Interviewers know you will be nervous during the interview. If they are discrediting candidates over that, they shouldn't be interviewing.
Define the object assignment? Was it really just an assignment statement?
I was rejected with almost no feedback from a company this month. I feel I solved their live coding thing correctly using a recursive approach. However, I was told they didn't like my coding style, so they didn't move me forward. They also said I moved the mouse too much.
The structure has the test pre-written and the actual code empty for the interviewee to fill in. As simple as setting person.name = 'Jeff', a trivial test to anyone with even basic JavaScript experience. I'm sorry about your poor experience interviewing. Barring a lack of understanding of any styles, coding style should not matter, that's what linting rules are for. Hopefully future companies you interview with will have a more reasonable interviewing process.
I've done this twice and both times it was a pretty positive experience on the whole, but I made sure to be really open about stuff and ask questions where I thought they were appropriate. I would imagine the experience really comes down to the company, the interviewers, etc - but I figure if they're going to be watching me code it's now pair programming and I treat it as such.
That being said, tech interviewing in almost all current forms sucks and we need a better method. As has been said for years now.
Is this some kind of a joke?
> Otherwise, companies automatically categorize us into junior developer roles or tag us as “not enough experience.”
??? What do you think you are after a TWELVE WEEK coding seminar (no matter how intense it was)? It looks frightening to me that he doesn't even know what "junior developer" really means. How ignorant can someone be to NOT think to be a junior dev right after "graduation". Like: I am taking a first aid course - but you have to call me doctor afterwards - otherwise I am pissed off!
> A study by Triplebyte has found that bootcamp grads are weaker in these areas than computer science grads.
Really? No... This must be a lie!
No personal offence here, but honestly, I just can't imagine how a serious company with a certain degree of professionalism is going to hire people like him for a serious software engineering job (or similiar). But actually, if I think back, at my last job a couple of years ago we had a guy similar to him - it ended up giving him all the shitty work that wasn't too complicated and hadn't to much impact on the success of a project (some HTML & CSS stuff for the frontend) but nobody wanted to do (because it sucked). It took him hours and days to finish stuff someone of the rest of the team would have done in maybe half an hour.
I am also wondering about the reactions in the comments - also here on HN - interesting to see what kind if audience is hanging around here.
Anyway. Coding camps seems to be a good way to make money - for the organizers.