7 ms·
Job experience is a cheap proxy for the ability to get things done: if you've had multiple programming jobs, then you've probably been able to get things done a
by phphphphp 4y ago
Job experience is a cheap proxy for the ability to get things done: if you've had multiple programming jobs, then you've probably been able to get things done and so hiring you is a safe choice. The absence of programming job experience doesn't mean you can't get things done, it just means you need to demonstrate to employers that you can get things done in other ways.
You don't need to do a bootcamp (and I'd argue it would not help at all) rather you need to ship something and then layer that with previous non-programming job experience to demonstrate that you can deliver things as part of a team. My greatest value (as a software engineer) is in the non-code value I bring to my team. Given the choice between 2 candidates, 1 with only experience as a software engineer, and 1 with experience of non-programming jobs, I'd be giving strong consideration to the person with a broader range of experience. Leverage your non-programming work experience to show that you can deliver value.
Regarding passing coding challenges: coding challenges are a very lazy method that companies use to filter out candidates. Passing a coding challenge is easy and doesn't mean much (they're also just as easy to fail) so don't focus on them at all. Your focus should be almost exclusively on interviews, and you should work towards giving the interviewer as much confidence as possible that you'll be a valuable member of their team.
Also, don't assume that levels (junior, mid, senior) correspond to the amount of programming job experience you have. If you can ship code yourself, you're already mid or senior level at most companies.
- kfk 4y agomid to senior with no work experience seems quite unrealistic… work experience is not only a proxy for shipping code, but also for working well in a team, communicating well, being dependable and… so much more.
- franciscop 4y agoI'd argue that part of "the ability to get things done" is exactly what OP is likely missing as a hobbyist: the ability to work with peers and superiors effectively. Doing a bootcamp is IMHO a good way to help on the ability to work with peers; while it's not the focus and you might get bored on the coding side of things, that's also good because it gives you time to think and act on how to collaborate more effectively (but only if the money you pay is something you can happily spend; don't go into trouble otherwise IMHO). Then you also need to be able to get your boss, stakeholders, etc. tasks and needs into account to build something for them. As advice here, you could probably try freelancing to get more knowledge. As a hobby, now you get an idea and have self-learned how to implement it. With clients or bosses, you need to get them to explain the idea, and go back and forth enough to understand it well enough without becoming annoying/more trouble than it's worth. Some clients will delegate more and give you more creative freedom, some will delegate less, and both might have different abilities to express their thoughts. It's your task to make sure you understand it all and are able to execute on their idea, complementing it with your creativity when needed. If you are in a good enough position, I'd start trying freelancing for family and friends small business at a discount, then try to get more and more real-ish clients. Once you have become good enough at freelancing that you are ready to find a job, you might even be able to convert some of those freelancer jobs into part or fulltime jobs, or at the very least showcase your work so far. I did that with a couple of internships and then a bit of freelancing. Note: this advice won't get you in Google, but IMHO it's a good path to get in the industry.
- robocat 4y ago> I'd argue that part of "the ability to get things done" is exactly what OP is likely missing as a hobbyist: the ability to work with peers and superiors effectively Completely disagree: in plenty of other jobs people learn to get things done, and how to work with peers/bosses/reports. There is not much signal about the OPs soft skill level so you are making an assumption. Interpersonal skills tend to be strongest in people that are always working with others (particularly clients and peers) rather than sitting in front of a computer. I would rather work with a cook/hairdresser/etc that became a software programmer than developers completely lacking in motivation or lacking interpersonal skills (I have had the distinct displeasure of working with plenty of low-EQ developers in my past). There are specific interactions in software that are somewhat specialised. However the generalised interpersonal skills are what it is difficult to be good at, and the specialised software soft skills are learnable. (Edited: clarity)
- franciscop 4y agoAgreed, I've made an assumption and I explicitly added adjectives to note so, like "likely", "IMHO", etc. It's not a crazy assumption though, OP seems pretty lost career-wise, no previous dev experience, unable to land a job in a world hungry for devs, and I'd argue they don't seem to have enough people-skills to figure these questions without resorting to the internet, all of which suggest to be either a student or pretty early in their career. Could be mistaken of course, just saying assuming it's someone early in their career to base my answer on something tangible doesn't seem crazy.
- robocat 4y agoIt turns out your assumptions were somewhat hasty ;) Neontomo wrote in comments (perhaps after you commented): “I'm 29 and started working at 18! I've worked outside the service industry too (recently at Apple) but yes that's my main experience.”, and “I did some work for a hotel and sped up their marketing and IT stuff quite a bit with automation”. And georgyo wrote “There is a lot of comments, but no one took a moment to look at your profile and visit your website.” —— I always forget to do that! Even though I sometimes backtrawl all comments by a particular hn user (which might have been useful in this situation). > without resorting to the internet Asking for “expert” (?) advice on HN seems like a reasonably skilful approach, if used with other information sources (hard to know given we don’t know their context). It looked to me that they got heaps of really valuable feedback, validating their approach? To me your second comment seems to repeat the mistake of the first. I hope I don’t come across to you as foolishly critical - I think we are all trying to help!
- ptero 4y agoI also feel that broad experience with general technical exposure is very valuable. But it can be hard to sell it to the management. In my previous job I was highly respected, both technically and as a technology PM, but I still failed to sell many candidates without a good paper background. "Her degree is in music? That's not great.", even though it was science focused, she had several acoustics and waveform analysis projects, strong math background and would fit well in our signal processing group.
- tejohnso 4y ago> Passing a coding challenge is easy Something must be wrong with me then because I've been programming for decades in multiple areas productively, but successfully completing three leetcode medium/hard within 45 minutes while also talking through my thought process is not something I'd call easy. > so don't focus on them at all I'd suggest most people aren't going to get past the first level if they follow this advice. As for the OP though, since they already passed coding challenges, the advice might be appropriate for them. I'm actually surprised that there was no offer on any of the interviews where "a bunch" of coding challenges were passed. > If you can ship code yourself, you're already mid or senior level at most companies. I'd go with this idea. Make it clear that you can ship. If you can complete coding challenges, then you should be able to make a small game. And a decent website. And a SaaS project. And so on. Get a portfolio going.
- tonmoy 4y agoIf you know how to study and practice passing programming challenges are definitely significantly easier than programming for decades in multiple areas productively
- yellow_lead 4y agoI think three in 45 mins is a bit hyperbole. Interviewing at Google I got 45 mins for each. At Amazon I got an hour for each. (Both mediums)
- spacemadness 4y agoYes, most places it’ll be one question with follow ons related to it if you do well.
- turdprincess 4y agoReportedly Facebook asks two mediums in 45 minutes.
- tejohnso 4y agoNot hyperbole. Direct quote and confirmation from FAANG recruiter. Maybe even after confirmation they were misinformed. Or maybe that was the suggested practice goal rather than what would actually happen in the interview.
- timwaagh 4y agoBeing able to ship code yourself is a requirement for getting to junior level at most places. It's much easier than working on an existing codebase as part of a team
- roland35 4y agoWe may think coding challenges are easy - but after interviewing many "senior" engineers I've found that it's very helpful to have _some_ sort of coding as part of the interview. Algorithm and Data Structures based questions are not really popular, but they are at least a known quantity and can be studied for as a candidate. I prefer more realistic scenario type coding interviews (ie implement a new feature, fix a buggy function, etc), but in any case it is impossible to actually verify what a candidate actually coded in their previous jobs.
- andrew_ 4y agoimo falling back on those kinds of code challenges indicate a lack of imagination and creativity on the part of the hiring personnel. the industry has grown so much and there are so many new tools available, people work in so many new and creative ways, that there's no reason to use methods that predate when most candidates these days were born.
- josephg 4y agoI don’t agree at all. If it’s so cut and dry for you, what other forms of assessment would you recommend instead? I think technical assessment needs to assess lots of skills, but obviously one of the skills to test is how good someone is at programming. There’s a few ways to do that - my personal favourite is to have a few hundred lines of buggy code with failing tests and ask the candidate to debug it for you. But from the data I’ve seen, asking someone to code something from scratch also provides a lot of signal even if you also get them to debug something. (If you were going to pick one test, coding from scratch is a better assessment for juniors and debugging is better to assess seniors). But I think some form of practical programming assessment is necessary. You won’t learn if someone can program well by talking to them. And take home programming tasks are too easily gamed. I do think you should make the programming challenge relevant to the job though. If you’re hiring a frontend dev, get them to make a webpage. A backend dev? Get them to make a set of rest endpoints wrapping a simple database. Algorithm challenges make sense for systems programming, or when you’re hiring generalists at FAANG and such. (Source: I’ve interviewed over 400 people and worked with data scientists who looked at the per question results.)
- neontomo 4y agoI agree that the coding challenges are quite different from real world application of code, they always catch me a bit off guard as the type of problem to be solved is so far from what I've solved before. It's fun though, and I enjoy the challenge even when I get a bit stuck. Thanks for your comment.