10 ms·
Ask HN: Self-taught roadmap to multiple big tech offers in a few years?
This question might've been asked a few times here, but I've added my personal spin to help be more specific.
This is not a "I want to become a career developer after many years in an unrelated career" situation. This is "I tried building my dev career for 10 years and want to (almost completely) start over".
I have held multiple jobs as a contract web developer, doing sporadic PHP and Ruby work. While I'm not exactly a stranger to cubicles and meeting rooms, my position as a temp worker really doesn't allow me to grow or make very meaningful contributions to a company.
In addition, I don't get compensated well for an engineer (US citizen for context). Most I've made in a single year is $55k gross in a MCOL area. Almost all is 1099 work
Back to the problem I want to figure out, I know I have a difficult road ahead, what with 2.5 years unemployment and sporadic contract work. Over a thousand job applications and zero offers. I have no interest in trying to run a business. My priority is financial stability (never had 401k or company health insurance) and having a more "mainstream" software engineer career.
(I'll also need to rebuild my network almost from scratch as my former colleagues do not reply to my inquiries about jobs anymore. It's kind of difficult with lockdowns still putting IRL meetups on hold, but I'm part of a few tech professional chat groups.)
The usual route for a CS student is to maintain good grades, participate in research, academic publishing and extracurriculars to help them get good internships, and one of them may convert to a FT job, all in a few years.
I am trying to construct a similar "self-taught" version plan of that. Take those gradual steps over a span of 2-3 years. Complete some similar bodies of work that gets the large companies want to interview me, and hopefully get a couple offers lined up.
I'm not asking for shortcuts. I just want to expand my options beyond just doing interview prep and digging into my network, which after 2 years without a single "yes", feels like I'm beating a dead horse.
- Hakashiro 4y ago> I don't get compensated well > 55k Lol.
- djellybeans 4y agoIt's still on the low side for engineers in a MCOL area. 55k was my best year. Usually I make under 25k.
- pcthrowaway 4y ago55K is low for entry-level in the U.S. It sounds like OP has >5 years of solid experience
- groffee 4y agoHonestly if it's not happened for you in 10 years, it won't happen now. You can't change who you are.
- jareds 4y agoIf you can never change who you are I'd never have gotten married or had kids. I'd still be at the same dead-end job because of my fear of change. I don't have great advice for you because I don't work at one of the big tech companies. I really hope HN doesn't represent the majority of our industry and people who want to better themselves because if it does maybe I should look at leaving software development.
- djellybeans 4y agoI suppose he's believing that there's a sunk cost fallacy given it's been 10 years. But I am trying to redeem myself. My story is not quite the same as the start of those that made a great turnaround by changing careers, which I've read many of. I'm curious to hear how a story of turning a new leaf in the same career would pan out.
- yowlingcat 4y agoIt's hard to give advice as you haven't given a sense of what your career and academic history looks like. Some questions: - Are you self taught? - Do you have a bachelor's degree? One in CS? - What does your work history look like; have you been full-time employed at any point since entering the work force or has it always been part time contract work? - Most importantly, why have you only done contract work -- is there something that has prevented you over the course of the last decade from applying to and succeeding in full-time work? - Do you simply not want it, have you tried it and it hasn't worked out, perhaps a combination of the two? Based on that you can determine what your next paths forward are. One approach is applicable if the will to work in a professional capacity is there, as well as the capability, and that all that's missing is that, for lack of a better term, you've been on "sabbatical." If that's the case, doing work on Toptal/Gun.IO/Facet (probably would recommend any of those over Upwork although it is an option of last resort). You should be able to get a decent stream of contract work that way, sharpen your skills and then eventually move to a FT position from there. The most important thing is to get into a rhythm where you are doing work on a regular basis that is useful to your employer so that you have something of value for when you decide to move. Another approach is taking a reset because you can't do the former. Ways to do a reset include either a bootcamp or an MS program (assuming you have a bachelor's; if not, the bachelor's is an option), as both will likely have placement programs after you complete the program. They will also give you a foundation of some kind to think about problem solving in a structured environment with instructors, all of which increases the possibility you'll have a shot at finding gainful employment.
- triceratops 4y ago> Over a thousand job applications and zero offers That doesn't tell us very much. How many interviews did you get from those applications? Are you drawing interest but not converting? Or is there zero interest? > my former colleagues do not reply to my inquiries about jobs anymore Because you've asked them too many times already? Do you have any insight into why none of your your temp stints have turned into permanent roles? You mentioned you live in a MCOL area but where, exactly? Have you tried changing your location on LinkedIn to a hot tech area, such as the Bay Area, Seattle, or NYC? A lot of interviews are all online now. And even if not, you can pay out of pocket to fly in.
- bko 4y agoA few things that aren't clear from your post. - Do you have a degree? If so, which subject - You claimed you sent in over a thousand job applications and zero offers. What kind of jobs are you applying for? How far along in the process do you get? I think your problem can be broken down into two parts: getting an interview and performing well in the interview. The first part is trickier IMO because its kind of a black box, although I managed to get contacted by big tech without a CS degree. The second part doesn't take years, it takes months of just cramming leetcode interviews. It's no secret what they look for and ask. They want you to do well and give you all the tools to do well. It's just putting in the effort by grinding leetcode an hour or two a day for a month or two.
- djellybeans 4y agoBA, Art degree in 2007 I apply only to software engineer jobs. Full-stack, front end, or back end, I'm shooting my shot at all three. 95% of those are for mid-level and lower. Other 5% are for senior level. I get zero interviews for senior jobs, though. I share similar views on passing an interview vs. getting an interview. The former is pretty codified these days- there's so much reading material to cover on leetcode/tech interviews. Comparatively it's very tricky to figure out what goes into making your resume turn heads for big tech. It's great that I can read about top Lyft interview questions, but how to get Lyft to 1st round your resume to the top, though. Leetcode practice is useless if you don't even get the chance to use it.
- edude03 4y agoIt's hard to say without more details however the bit about applying to 1000 jobs definitely raised my eyebrows. How do you apply to jobs? If you're simply going on indeed or LinkedIn and clicking easy apply I can see why you might not get many responses. For reference I think I've only applied to maybe 20 jobs in my life and got at least a first interview for 18 of them. That said my process for applying to a job takes at least a few hours if not days, because I research the company, try and understand why they're hiring, try and find people who work their to talk to, then I tailor my resume to the position and apply by asking someone to pass it along to the relevant person. I don't have A CS degree, a deep network or any notable opensource projects so I'm fairly confident this approach would work for anyone.
- brailsafe 4y agoIt seems like this strategy is basically not viable anymore unless you do already have a lot of luck in the industry. I'm much more close to the OP, and the application cycle has become absurdly detached from what you describe. Maybe it works for some companies, idk, but genuinely even applying to jobs automatically puts you in a timed coding competition from Step 1 most of the time. Getting to speak to someone on the team is an almost laughable pipe dream, and putting in any work ahead of time won't help unless you win the hacker rank thing that's sent out to anyone who applies. Beyond that, if you get into an interview, every companies wants to mitigate risk as much as possible, and even after 6 interviews with everyone and their sister getting to ask similar vapid questions, you can be rejected with an automated email. It's pretty soul sucking. If I lose my current job, which took me 2 years of misses to get, I'll probably have to leave tech
- edude03 4y ago> if you get into an interview, every companies wants to mitigate risk as much as possible, and even after 6 interviews with everyone and their sister getting to ask similar vapid questions, you can be rejected with an automated email. > It's pretty soul sucking. I agree, 100%. That said, I would consider filtering out those sorts of companies as part of my pre-application process. I'd want to know upfront, what the interview format is, how many interviews there are, what other candidates experience has been with the interview etc, before even considering putting together an application for the company. I'm guess (and please correct me if I'm wrong) that the major difference between the world OP and yourself describes and my experience is mostly in that it seems you two are trying to get "a job" (any job) whereas I'm saying, I find companies that I think I would enjoy (pre, during, and post interview) then tailor my application and approach specifically to that company. Otherwise, it seems unlikely that you would still end up with companies with a terrible interview process, despite doing your due diligence to filter them out
- wagslane 4y agoSo interesting that you post this, it's really what I've been working on in my spare time for the last few years. I have a GitHub with my current roadmap: https://GitHub.com/bootdotdev/curriculum https://GitHub.com/bootdotdev/curriculum
- deleted 4y ago[deleted]
- Blackstrat 4y agoWithout knowing your age, your actual background, business knowledge, etc. this is just guesswork. It sounds like you’ve approached your career somewhat haphazardly. Further, it seems you’ve alienated your network. That’s a red flag that shows up when we start looking at references. I’m assuming you don’t have drug or alcohol related issues. If you do, deal with them first. Your resume likely has significant gaps, probably not any specific industry focus, and based on your plan above, no education in software development, computer science, etc. Having hired many developers in my time, I can tell you that you have an uphill battle. So my first question is what are you bringing to the table? What are you really good at? What business domains or industries do you know well? What makes you a better choice for the hiring manager than other candidates? Do you really want to be in software development or do you just like the earnings potential? If by Big Tech offers, you are talking FAANG then as others have stated, it’s not a likely outcome. Best case, grinding through a CS like self study program over a couple of years is a big undertaking. My suggestion may offer a viable alternative solution. Instead of pursuing a Big Tech job, I would suggest signing on with some staffing firm that offers full benefits, e.g. Robert Half, any similar small local firm, etc. that finds the jobs and places individuals in companies. And should you manage a placement, work your tail off learning not only the technology but the line of business. And deliver quality product. Always be learning and always accept whatever assignments, regardless of whether they sound particularly exciting. Your goal is to build a track record of results, preferably with a specific focus. Once you start building a better resume, think about completing your education more formally. Bottom line, you have a tough road ahead of you that will require discipline, focus, and commitment. Can it be done? Yes, others have done it. Can you do it? That’s up to you.
- djellybeans 4y agoMy age is 39 and doing on-and-off work since 2008. Single and no kids so I have no other commitments to make. If you added all the time that I was actually hired as a developer I think it is roughly 9 years. There's really no social or network issues related to drug issues, or strong personality dysfunction issues. And there's nothing in my past that'll stand out in terms of business-related controversies or illegal activity. I have none of that in my record. I tend to be one of the quieter ones at work, hardly raising my voice or starting drama. I don't consider it to be as much burning bridges. I built my bridges poorly and they collapsed from neglect. I still have an interest in software development. I make personal projects from time to time, since I was a college student, and put some on Github. Not paint-by-numbers stuff, but things that directly relate to my interests and problems I want to solve. Many people have really good engineering careers without having uploaded a single thing to a public repo so I know it's very possible to attain. Will joining a staffing agency be easy and no-sweat in terms of interviews? I had interacted with Robert Half in the past, granted that was almost 10 years ago, but they made me sit in front of a computer to take a technical test. Some of the questions were arbitrary trivia knowledge- they seemed to care more for explicit knowledge over tacit knowledge. I didn't pass the test so there was not much they could do for placing me for work. I also tried Triplebyte because their more novel approach got my attention. It really heavily favored people that can finish the tests fast. I was never fast enough in my three attempts so didn't get into the phase of company selection. You finish off by saying I should think about completing my education more formally. I swing back and forth on this thought often. I wonder how necessary this is, given that the common advice I receive on education is, the job experience you have trumps education. In other words once you have like ~5 YOE your degree no longer matters. With my background, is it still worthwhile to formally complete the CS degree?
- Spooky23 4y agoTake a civil service exam and get a gig with the government or university. You need to establish some normalcy.
- djellybeans 4y agoA lot of questions are being asked already, many of them similar, so I'll try my best to answer most of them, starting with the basics. - 4 year Bachelor's degree in Fine arts (digital media concentration)* - Male, age 39 - from 2008-14 my jobs came from Craigslist. Call it a habit from applying to PT jobs in college. I moved onto LinkedIn and other more "real" career boards in 2015 and the job search got much tougher - I would count at least 2000 applications from 2015 onward. No offers came from applying on LinkedIn etc. Instead they were all from word of mouth from a local tech group that I am a part of. All of them part time, and temp contract jobs - At least 1000 applications from 2020-present, interviewed at around 20 companies. Most with LinkedIn Easy Apply. A few interviews from direct emails from some manager/sourcer that came across my resume. - I took an application break to cut back on burnout. The last 6 months are almost application-free - Nearly all jobs applied are for software engineering. 95% are mid-level or lower rest are senior-level (just to feel things out). I might get as far as 3 rounds with a few interviews. * Actual time it took to finish the degree was 6 years because I changed majors prior. At year 5 I was in my final year in Art, and I also had a growing interest in comp. sci, but I had to make a tough choice. Graduate at >5 years with the BA degree, or double major BS in CS with Art graduating in >8 years. I thought it would look awful to stay in college that long (plus my debt really started growing at that time) so I cut my losses short and graduated with just the BA.
- Hermitian909 4y ago> Nearly all jobs applied are for software engineering. 95% are mid-level or lower rest are senior-level (just to feel things out). I might get as far as 3 rounds with a few interviews. This stands out as the most likely reason you are not finding any interest. 10 years of experience and not being senior is a massive red flag. While it may not be true, the signal that sends is that you're uninterested in or incapable of growth. You need to do something to combat that perception. I would recommend either: 1. Applying to senior positions only 2. Hiding your years of experience during the interview process > I would count at least 2000 applications from 2015 onward This should tell you that your resume is not interest, consider finding and paying someone specializing in tech resumes to polish yours. If you're sufficiently dedicated, a much more extreme option is to move to the bay area and start socializing. Show up to a few regular meetups and charm the right people and it you can get referrals to a dozen tech companies.
- Hermitian909 4y agoAs others have pointed out, more background on what your current skillset would make it easier to give advice, I’ll share my journey though. My bonafides: I’m a college drop-out with a background in mathematics who went from teaching and having almost no coding experience to working at a big tech company in SV in ~3 years. The result is not typical, but I’ve seen it repeated enough to know that I’m not just a fluke. I recently saw another college drop-out make the jump in 18 months. I befriended a software engineer enough to get a basic idea of what was needed to break into the industry. I needed to learn web development and be able to deploy apps that worked and were well tested. I also needed to pass whiteboard tests. I started with “eloquent javascript” and learned how to write JS and use the DOM. I then taught myself React, express, and just enough SQL to write things to postgres, and set up a super simple app. I then deployed the app to heroku. After deploying to heroku, I learned to redeploy it to AWS. I added on various features that felt “production-y” like OAuth with Google to show I could write business code. While I was working on this project I read “cracking the coding interview” and began doing what we now call leetcodes. I also accompanied my leetcodes with Skienna’s “Algorithm design manual” for when I got out of my algorithmic depth. I was also reading hacker news which was very useful in filling out “unknown unknowns” like the dangers of having too many dependencies etc. The site also pointed me to some inspiring characters like Rich Hickey from whom I derived much of my early engineering philosophies. A note here: Because of my math background, algorithms were easier for me than they will be for most people. I had been taking graduate courses in mathematics when I dropped out (long story) and nothing I’ve encountered in CS has been mathematically difficult by comparison. After 6 months of prepping like this, hundreds of applications, and doing a lot of networking in the bay area was enough to get a 1099 contracting gig. I kept studying very hard during my time contracting. I read multiple books on design to make up for my lackluster CS skills, “Don’t make me think”, “Cadence and slang” “About Face” all come to mind. The sensibilities from those books gave me a lot of rope with the team as I learned to not write terrible code a lot of the basics of development (command line tools, how to write a PR, etc.) I also continued to study CS. I worked my way through CLRS (“Algorithms”), “Operating Systems: Three Easy Pieces”, “Engineering a Compiler”, and “Networking, a top down approach”. I did most of the problems in these books as well as projects meant to be paired with them (either from the book or from university sites I could find). This took me roughly 2 years on top of my job, which I converted to full time from contract. I then went back to job prepping, practicing leetcode every day. After 3 months I started interviewing and got multiple offers. I’ve been at big companies ever since. In retrospect, I probably over-prepared for the jump and could have made it faster. The bar for a software engineer at a large company was a lot lower than I imagined. I’ve continued to study through other textbooks, I’d say it’s made me stronger than most of my peers who took classes that may have targeted only a few chapters. I’d say if you can be disciplined enough to study in this way I imagine you could get better paying tech job as well. Best of luck.
- kleinsch 4y agoI do interviews at a FAANG. If you don’t want to post identifying info here, send me your resume and a paragraph intro and I’ll tell you what gaps hiring managers are seeing. Email is in my profile.
- djellybeans 4y agoLooks like I'll message you shortly.
- yourapostasy 4y agoPlease list all your skills. PHP and Ruby cannot be your only skills at this stage of your career. The bar for US-based web developers these days is usually full-stack; lower than that and your competition are offshore developers. We're usually looking for skills in JavaScript, CSS, debugging inside the browser, NPM, SQL in a couple different flavors, basic network troubleshooting (know your way around confirming DNS is working, SSH key exchange debugging, pull and interpret the basics of a TCP dump), SSL certificate management (know how to create a CSR to installing a certificate in a trust store, manipulate a trust store, pull a cert from a server, renew a cert), working in two out of the top three cloud vendors enough to create your own free tier tiny homelab, CI/CD (Git/GitHub, Jenkins, CircleCI), Jira, and containers. This is for a Linux-oriented stack. Decide whether you want to go towards a Linux-oriented skills portfolio or Microsoft-oriented one, trying to tackle both in your situation will quickly lead to frustration, leave it for later when you're established if you really want to pick up both. One out of many possible "self-taught" version plan of the "usual route for a CS student" for your current situation is to volunteer in your gigs going forward to help anytime there is any crisis or blocker outside your competence area, outside of billable hours. Promise you won't ask questions, only offer remedies to try if you know of any. Start by offering to take on-call duty off the clock as the go to for applications you develop for the operations team to turn to for X months, for as long as you hold a gig there. This will keenly develop your sense of where your application fits into the overall infrastructure, and how to defensively code against false positive alerts that your application "failed"/"hung"/"crashed". When you get to a point that you don't get calls for months at a time, then broaden your offer to help out issues only indirectly related to your application(s), also off the clock. Actively listen into the conversations about the issues. At first, this means furious Googling of terms you don't understand, more furious Googling of a seemingly straight vertical wall of seemingly impenetrable technologies, and challenging yourself to understand every character of every command and operation you see spill across the screen. Every flag argument, every value of each flag argument, every command, etc. Challenge yourself to understand the interrelationships between the technologies. Offer to record the session for attaching to the issue ticket, and if transcription is available, enable it. Review the recordings over and over until you understand what you are seeing, or until the next problem comes along, whichever comes first. Then challenge yourself to understand why someone typed a command when they did, what information they were trying to gather, who they needed help from, how they knew they needed that command at that time. Then challenge yourself to work this all out as it is all going in real time. Then challenge yourself in real incidents to pre-anticipate what the lead troubleshooting engineer is doing before they do it. When you get to the point you're correctly anticipating >80% of the time what they're going to do before they do it, start offering your own suggestions of what to try at the rate of once per session. Feel your way towards increasing the number of suggestions of what to try before it is done. Simultaneously, broaden your understanding of the technologies by implementing them yourself on your own in your own cloud account. When you start being consistently asked what you think during these troubleshooting sessions, start to volunteer to actually fix the problems as they come up. When you start consistently solving these problems, switch your time spent on them to billable hours if you haven't already. Wrap all this in a can-do, pleasant, easy to work with personality no matter how much someone goads you. Focus on the mission, get it delivered, pull it across the finish line, positive persona. Be the relentlessly, persistently optimistic glue that gels together the team even under the most stressful production break fix sessions where millions of USD are being lost per unit time, and executive VP's are screaming unhinged into the conference call because the CTO, CIO and CEO are on the other line making ominous noises, because they are on their other line with the BoD making ominous noises. By this point, you will be asked to switch contract to perm way more than you will ever get offers from blind-applications like you are submitting now. Recognized troubleshooting skills as the "go to debugger" across disparate problem and skill domains is far more rare than any kind of roadmap, self-taught or college-taught, and are highly-sought after no matter the macroeconomic climate. People who can solve problems consistently and faster than anyone else available are the ones who get return calls and high compensation. Every single contract you've had up to now has offered you this opportunity in the guise of even the smallest problems.
- gregjor 4y agoYou list the trifecta of red flags for employers: * No academic or employment history that communicates significant expertise in software development. * Scattershot and stale work experience that looks bad. At best it looks like you’re not serious about your career. At worst it looks like you have a problem keeping a job. * Little or no professional network, probably the most important resource when looking for work. On top of that applying to hundreds of jobs online is the least efficient way to find a job. To fix these problems you need to reset. 1. Study modern web development (or whatever you want to do) so you can get through interviews and actually do the work when an opportunity comes your way. You can find plenty of free resources online, you just have to put the effort in. For web development that means, at minimum, knowing HTML, CSS, Javascript, a back-end language like PHP or C#, relational databases such as MySQL or PostgreSQL. You should understand HTTP, SSL, DNS, and cloud services reasonably well. I have done WordPress work for $150/hr, and there’s plenty of that work available. 2. Find a small or medium size company that doesn’t have its own IT/development staff. That includes many companies, you will have to ask around. If I were in your situation I would look for companies in my area that are advertising for developers and contact the hiring manager directly, even going to the office in person. Show some initiative. When someone does take a chance on you bust your ass to solve business problems and deliver value. The best way to learn programming is on the job, but you need to add value, not just treat the job as a training opportunity or stepping stone. 3. Socialize with colleagues and people you know and meet who have jobs and run businesses. Not just other programmers — you can get job leads from people who work in management, marketing, sales, finance, etc. Marketing departments often have good budgets and outsource web work because the IT staff doesn’t have the skill or bandwidth, so cast a wider net for professional contacts. I have some articles on my site typicalprogrammer.com you might find useful (free, no ads). Good luck.
- djellybeans 4y ago>You list the trifecta of red flags for employers: Incredibly I never went out of my way to do everything as wrong as possible. It just kind of happened without thinking about what is really bad, for the first couple years of my career. I would have assumed that to have so many red flags you'd have to actively work to get them, but here we are. I've been following point 1 by making side projects that make more use of modern web development. Have some on Github and one on Heroku as well. What is unclear to me is which kinds of topics are usually taught in on-boarding and which are left to the candidate to learn for themselves. I don't have experience with mentoring or on-boarding situations which is why I ask. As for the next point, I am trying to avoid companies with no IT staff as I've heard many times that they are not well suited to grow your career in tech. I also know from experience, been there, done that, hasn't worked for me, so it's time to move away from them. They are more "cost center" than "profit center" jobs and am following different advice to choose companies where software is at the core of their business. I'll see what I can do with socializing with others for professional talk. The only people I speak with face to face are the places I grab a bite or coffee, etc. and typically otherwise just converse and chat with people in tech focused communities like this one.
- weatherlite 4y agoBig Tech is hard. Even if you can get an interview you're competing against so many people it's not likely you will get in (statistically). But let's rephrase what you're asking to "I want to get good/better offers" - the process you need to go through to get those is the same as to get into FAANG. Namely - drill hard on job interviews. You can get good offers from smaller businesses - those will usually actually test your skills as an actual software developer, so make sure you are skilled. If you want more famous names the interviews tend to be more algorithmic. So what is the problem - is the problem your resume isn't actually yielding any interview opportunities? In that case consult with an HR pro, you will need to embellish your resume a bit. If the problem is you're getting interviews but not passing - drill as I said. It's also a matter of luck so you just have to keep trying. FAANG is a nice goal to have, I don't want to dissuade you from trying, just keep in mind many many people want to be there and there isn't room for everyone. There's plenty of good jobs outside of FAANG. Another thing that can really help is having a thing that separates you from the crowd - a good Github profile, a good technical blog or even a good Stackoverflow profile (it actually helped me get an offer as the manager was impressed I had a nice Stackoverflow score).