At that time I was junior, but I'd made and published 3 flash games, hacked on the UI of my WP blog quite a bit and made some basic tools with Node.js. I could definitely fizzbuzz, discuss time and space complexity, solve the equivalent of today's easy leetcode questions and more. And yet I saw my savings dwindle towards zero while reading on HN about how easy it was to get a job as a dev.
My feeling is that there's always been a considerable demand for great devs and very little demand for juniors. I've seen companies advertise positions for interns but I honestly can't recall a single time they were advertising roles for junior or entry level devs.
It's a weird market where the difference between 0 and 1 year of experience can be so dramatically reflected in salaries and opportunities.
All of that changed one night when I showed a demo of a browser game I'd made at a meetup some Groupon devs happened to be at. That lead to a phone screen, an onsite, a job and then never another time when I couldn't get a decent tech job. Of course my skills improved over time, but the biggest delta was just getting a single name on my resume that hiring recruiters respected.
I sometimes wonder how many people are out there are like me a decade ago—able to do well in whiteboard interviews, capable enough to contribute, eager... and consistently denied a chance to even try.
Years and companies later, I've brought it up in those diversity hiring meetings, but that's not the sort of changes that are being sought at most places.
I agree though, at 3 years I was still fairly junior in the scheme of things. I was doing full stack work and building money-making applications from scratch, but it wasn’t great work. It wasn’t going to scale well, the front end was based on an ad-hoc framework because I was afraid of learning and implementing new tools like backbone.js, there were very few tests, not great internal tooling to aid workflows, I wasn’t a great mentor, etc. A lot of what I did was because it worked once before, and not because I knew exactly how and why. My fourth year was when I got my first senior title, though.
I like when companies distinguish engineering levels by capability. E1 through E7 for example, where E5+ would be approximately what people imagine when they hear the term senior. Unfortunately everyone uses different leveling, so it’s hard to adhere to that. Our industry would benefit from standards.
Every time I've done it I've been inundated with candidates. You pretty much have the pick of the litter.
Personally I'd prefer to hire a lot more juniors. I think most senior front-end developers are pretty rubbish at their jobs and have spent most of an easy career on autopilot learning bad habits and bad development practices. I much prefer to work with juniors, before those "senior" (mostly enterprise and consulting) devs have got to them.
The problem is it's just not possible to train juniors the right way fast enough. I'm confident I can train almost anyone with basic programming aptitude to be a 95th percentile front-end dev, but it'll take a year or two, and my already average productivity will tank during it.
Most managers won't understand or accept that. They would, except that there's always someone else selling them the "get people productive in 2 weeks!" bullshit, which you can't compete with. Big companies (the ones with the budget to train juniors) pay a huge amount of lip service to training, but are pretty much universally bad places to actually train great devs. They're good at turning them into average consultants that get flustered with their tools and stuck all the time, because they overengineer everything and never bothered to learn from first principles. (Then they give up and pretend to work while spending 8 hours a day whinging on HN about how bad the JS ecosystem is).
And if you're doing your own thing without managers to mess it up, then you probably live and die by your productivity. Unless someone wants to throw a stack of money at you just to create great devs without accomplishing much else, then it's not gonna happen naturally.
There's other impediments too. I love working in person with juniors, but not as much as I hate commuting. And I think training juniors is one of the few things that's much harder to do remotely.
This is why there's so much demand for great devs. There's just so few of them. The industry isn't set up to train juniors, and the places that can waste the resources to do it are the ones that have environments which turn them into idiots.
Nobody taught me anything, apart my teachers at University. Nobody hand holded me. I was able to learn and grow by myself, by reading, applying, trying to find solutions, applying those solutions. Which I continue to this day.
Why should be juniors hand holded? You show them the application, you explain it to them, you give them time to look into it, you reply to their questions about the application and you give them tasks. If they are any good, they should be capable to learn without hand holding.
> You show them the application, you explain it to them, you give them time to look into it, you reply to their questions about the application and you give them tasks.
Exactly; this is the training. Choosing tasks that match the other person's level, and being available to give good guidance, takes time, effort, and some skill.
You don't know I graduated at all.
I'm not saying either way, but if I did, it had zero utility in my software career. Credentialism on degree subject matter for people making mid-career moves is misguided at best.
What you hear of big hiring is select schools in select places.
Corps want experienced devs, they do not want to create experienced devs. They get away with this because there's no standards like any other field of engineering. We don't band together and create avenues for education, employment and advancement. This is largely the fault of existing devs knowing the above to be true, and they want it for themselves despite harming the market overall.
Degrees have largely become meaningless. Uni's have become democratic political battlegrounds that push activism above academics. There isn't anything learned in a 4 year degree that you couldn't get with a healthy appetite for YouTube. But they're just adult daycares for parents that think the system will work for their kids. I say that as someone whom unfortunately has to work at such a place.
Maybe it's another story in SV/US, but capacity to learn seems to be about as useful to hiring managers as knowing how to bake eggs.
Would you rather go to a surgery with a doctor who "learned" by watching YouTube or with one spent his time in University and residency?
The state of political activism eating from the inside and destroying the higher learning in US is pretty sad. But the reaction to that shouldn't stopping learning but kicking political activism out from schools.
I know at least nominally they'll have some passing familiarity with simulations, discrete mathematics, linear algebra, data structures and algorithms. You can learn all of this information on your own but it's more difficult for me to verify.
While this is not as true if I'm looking to hire a senior engineer, it is significantly more important for entry level positions.
It won't be given to you (unless you're extremely lucky) but if you bust your ass like you're trying to impress the hell out of someone, people will notice and eventually, good things will happen. Always bust your ass like you're trying to impress the hell out of someone, it will take you far.
In most industries, most of the time hard work no longer pays off. It is not rewarded, it is exploited. The people who would notice are increasingly sociopathic and short-highted, because that's how you make it these days.
Hard work can still open doors, but you have to be smart about who you work for.
Agree. Notice in my little story, the good thing didn't happen until I got a job offer at another company, leaving the shit-hole I was working for. Also had I not busted my ass at the shit-hole, I never would have been noticed/recommended as a good performer for a better company. Point is, people notice when you work hard and notice when you don't. Just because you work in a dump, slacking off might actually hurt you, or at least exclude you from further opportunities, internal or external. My baseline is if you aren't seeing improvement in your prospects after a couple of years at a company, consider leaving.
It sucks that inexperienced people get exploited, but to do the best of it you have to learn as much as you can and then get out rather quickly.
(Of course, who am I to talk? I'm happily married to my first girlfriend. Sometimes you get lucky.)
The unfortunate difference this time is that today's juniors might have spent their last couple of years reading stories on sites like HN and levels.fyi about starting on six-figure salaries at big name companies and maybe doubling that with the other perks. They might have also been exposed to some of the most mercenary attitudes to career development I can ever recall seeing where loyalty is a dirty word and jumping ship every few months for a pay bump is the norm.
At the same time they still have the usual conceit of most new grads in this industry and don't understand that at best they will probably contribute little real value to begin with while taking up a lot of time from other people who could. In other words juniors almost always have negative immediate value to their employer.
In the boom times we have enjoyed in tech for the past few years a lot of newbies could get away with that and make a lot of money but really that has been the exception and it's not normal. Now the reality is setting in that you can't reasonably expect an employer to invest a huge amount of money to pay you to cost them even more money and then leave before you get better and make them enough money to become a net contributor. In a world without the weird employment market dynamics of the recent boom times that just doesn't make any sense.
I'm not the kind of person who would job hop every 2 years like what seems to be common in the industry. If a company is willing to take me on and help train me and bring me up to speed, I'd stay with them for 4+ years. I'd think that would be very valuable to a company, but at least what I read on the internet...companies have come to expect a high turnover for developers and thus are unwilling to put in any effort into a new employee.
Do you know the basics of like CS, algorithms, data structures?
Do you know a programming language at a decent level?
For the field you are trying to get in, do you know some common used frameworks, libraries and tools?
If the answer is yes to all, you shouldn't have trouble to find a job. If one of the answers is a no, then you have to solve that problem.
The only credential I have is a Full Stack Web development cert from a bootcamp at a big name university. The DSA stuff I self-taught because it's pretty essential to game dev, and the bootcamp taught me the MERN stack.
You can test yourself by seeing if you can answer typical interview questions which can be found online.
You can see if you can solve the stuff from Codility, Leetcode, Hackerranck in a reasonable amount of time.
Frequently it is a wildly unrealistic wish list. I have NEVER seen all of those requirements fulfilled.
...you haven't even started. If you were regularly getting offers with 50%, 100%, or 200% more than you currently earn you'd rethink that position pretty quick.