Ask HN: What's the fastest way to become employable in tech

25 points by OliverGilan ↗ HN
Hello HN,

I have quite a few friends who didn't study CS and don't know anything about programming but they hate their fields and want to switch.

What's the best book, course, etc. that can take someone from zero knowledge to somewhat employable in tech? Employable is a vague term but when I think about most online college courses I imagine they teach more theory than practical skills used in most tech jobs to me.

I'd imagine learning web development is probably the fastest track to becoming employable today but I'm curious what your recommendations are for how to learn that in the fastest way.

77 comments

[ 3.0 ms ] story [ 152 ms ] thread
A bootcamp with a good reputation. Fastest way from zero to entry level SWE.
Name one?
app academy
That's a cool trick — do you do birthdays?
im sorry, do you find the quality of the candidates from app academy to be sub par compared to candidates from other boot camps?
As someone who hires, I have no idea how to tell a good bootcamp from a bad bootcamp. So they are all the same to me. I hope the applicant has projects / something outside of school homework to demo,
If it was easy, the salaries wouldn’t be so high
In my experience, the easier the work the higher the salary. No one gets paid for working hard, they get paid for demand of their skill and expetience relative to supply.
I think there can be truth to both. Consider the fact that it may seem easy to you because it's almost second nature in a sense where you're unaware consciously of how much it would take an average person to learn what you're doing from scratch.

>No one gets paid for working hard, they get paid for demand of their skill and expetience relative to supply.

I think that's generally true, but that doesn't mean it doesn't take a lot of initial hard work to gain the skills and experience necessary to work "easily" ofcourse there's some people where those skills came easily first anyways but I think those are generally at the tail end of the curve.

Learning is not work though. Hard work to learn skills is not the same as the job itself being hard for skilled people. Compare that with unskilled work like manual labor where you still might need to work hard to develop skills but the work is also hard and they pay is very low. Too much supply due to low barrier of entry.
I think under that definition, wouldn't all work be easy? The hard part is learning, after that it's all easy because you already have the skill. The only hard work that would be left out is work that is literally hard I'm it's physical demands. Even then, the mental portion would be easy.

I may be missing a subtlety of what you mean. Can you give an example of a hard job?

Most jobs actuallu. You are confusing familiarity and adaptation with ease. Yes, physically demanding jobs like brick layer are a good example, emotionally demanding jobs like EMT/paramedic too or prison guard, bomb tech, lineman,etc... some jobs due to the difficulty, people who work those jobs have high mortality,suicide, disability and other rates that indicate the body and mind deteriorating as a direct result of the job. Office jobs pay more to the most part but they are not all cushy either. No amount of learning or adaptation can make a hard job easy, only more tolerable. You will sacrifice the same amount in exchange for wages. I did not imply any subtlety, I worked somewhat difficult blue collar jobs and now I have an amazing office job where i can even work from home! I assumed others would also understand the difference. To give you a more first hand example, I troubleshooted networking problems sitting in a nice office and I did the same (layer 1) crawing in attics, outdoors, climbing poles, jumping fences and more in 105+ humid weather and even that was considered easy compared to harder jobs, I was good at both jobs (according to others/management) and I worked more or less the same hours. The difference is night and day. I am more comfortable and much less stressed out when in an offic le job. Even in the office job world, the more I progressed in my career the more rewarding work I was exposed to. Less stress, hardship, more conmfort and pay. No hidden meaning, just an observation.
A very good explanation, thank you. I didn't think there was a hidden meaning, just wasn't sure what you meant. I will say that I think you left out a category though. You covered physically & emotionally difficult jobs, but not cognitively difficult jobs. Some jobs will always keep a person on the edge of their mental capabilities, despite being office-bound.
Only because what's "easy" to some is mind bogglingly impossible to others.
You're right, obtaining is skill is hard but the work itself is easy because you invested a lot into developing skills to make it easy or at least not very hard.
You kind of missed the point. The high paid work is easy for the people who have the skills and experience. But getting those skills and experience isn't easy.
Then what they really mean is: "If it was easy, there would already be a larger supply."
That seems like an odd interpretation of supply & demand, or you mean the word easier in some other way than the work is simple/easy to do.

Because if the work is easy, and there's high demand and high salaries as a result, tons of people will flock to that easy work and the increased supply of workers would drive down wages.

I am not sure we have good language for what the OP is talking about. You have hard dirty jobs that anyone can do, but there are some where there is sort of cut off that eliminates people.

Poor analogy: The other day this lady (she was short) wanted something from the top shelf at the grocery store. She asked me to get it for her. It was easy for me, impossible for her.

They will flock but the barrier to entry is what is making supply low. It is not lack if willing workers but lack if qualified workers that makes the supply low. Obtaining qualification maybe hard or just takes too long or some other reason. Others in this thread also confuse difficulty in the entry barrier with difficulty of the work that needs to be done, these are separate things.
Why do people insist on trivialising our profession so much?

You don't get bootcamps for doctors or airline pilots. But people think they can go on some course, shit out a few lines of javascript/ruby/whatever and go get a job.

Because those professions have different requirements. Why did you pick doctors and pilots specifically? Why not carpenters and plumbers or electricians.
It's a bit more nuanced - being self-taught is a thing especially since you already have access to world class resources online. You might be missing a bit of structure or access to professors but the best learning materials are already out there and they're fairly accessible. So it's definitely possible to make it without formal education but it takes a lot of time and effort. I think that's the part that trivialises it - looking for the fastest way often means that you make compromises with how well you learn.

The other part is that even the people with formal education have learned most of the stuff that they know through self-studying and real-world experience - very often you hear people in their first job saying that university didn't really prepare them for an actual job in software. And the skills that you leave university with are just a starting point - you have to keep learning throughout your entire career anyway.

Well, you have kids that can blow away long time professionals and people who make it in the industry right out of high school. You don’t hear of as many kids who as teenagers can perform medical procedures or fly planes (if any for the former).

I think part of it is the accessibility of both the tools and the knowledge compared to other fields. The two aforementioned professions are both gatekept behind expensive credentials as well (pillows don’t need a degree, but iirc the process to get licensed isn’t cheap). Additionally:

> shit out a few lines of javascript/ruby/whatever and go get a job.

Actually seems fine for a number of roles out there. There are plenty of jobs where it’s enough to shit out code that just works, while you probably won’t be commanding the salaries people gush over in more tech centric communities such as this, you can certainly make more money that you would in the typical roles that many people find available post-education. I’ve argued about this before here, but in my experience, you don’t have to be that great of a developer to maintain some form of employment in the industry.

When you have a field, that pays well, even in some of the lower windows, has a vast amount of learning resources readily available, is not locked behind time and money expensive credentials and has all the tools needed to learn do the job for free, it seems almost stupid not to consider it.

That's because you literally can do that.
If you are highly talented, sure. There are also piano prodigies, whereas everyone else has to study for many years to reach that level of proficiency and may never reach it.

Some can pick it up mind-boggingly quickly because their brains are naturally good at formal thinking, keeping many variables in their head, and being extremely precise and logical in their thoughts without much training. But again, that's such a small share of the population that "be a prodigy" is not really useful life advice.

Being a prodigy is not necessary to set up a webpage (or whatever). I’d argue most jobs are processing low-grade data with legacy frameworks, which is a test of patience and not prodigy IQ.
> Being a prodigy is not necessary to set up a webpage

True, but you are not going to get a tech job because you can set up a webpage. Maybe in 1999 San Francisco, but the world has moved on.

There are actually not that many jobs open to people who just know how to deal with a web framework.

I just looked for Drupal and Wordpress jobs and they exist ($60k/year seems normal). Since the whole point of these frameworks is to abstract out actually writing the bulk of server code, I’d imagine a large part of the job is dealing with legacy quirks, uploading photos, and keeping servers up.

There’s clearly a business need but as far as I know, there isn’t a mathematical-type of hardness to managing these types of websites. And on Wallstreet you have trading being performed with VBA Excel scripts…

It's interesting you say that because South Korea had scandals where unlicensed nurses, office managers, and receptionists were performing surgery, not to say it isn't difficult to perform surgery, but I think it was doable at all because the core skills you need aren't difficult to pick up for the majority of cases, but the breadth and depth of knowledge you need to deal with more complicated surgeries is why there's a lot of gatekeeping and licensing for professions like surgery or airline pilots.

In fact being licensed for small aircraft in the us isn't much different from a bootcamp in terms of time and effort, but that jump from personal to commercial airplanes is largely in more flight time and some specifics related to larger aircraft, but largely the skills are very similar.

I think the same is true of most software jobs.

Because it has the lowest barrier to entry with highest potential to make a lot more money than a lot of shitty jobs. I don't necessarily disgree with you but just explaining the reason behind the gold rush with "learn to code and make six figures".

I don't really blame someone who is stuck in a shitty low paying job with no job guarantee. They have nothing to lose but try the whole coding thing and see if they can hit it big. The only issue with that is that if they don't enjoy learning how to code and are just doing it for quick money, they wouldn't be able to sustain that for a long period of time. I know a few people who tried bootcamps and then never got anywhere.

If you have a mid level IQ and are willing to put the work in and can self learn, coding is one of the best things you can try to get to six figure income. It literally costs nothing except your time for the most part.

There are only a relatively few places where you can make six figures writing code, and they aren't places everyone would be happy living. So you need to consider what kind of non-work life you want to live. Also nobody is making six figures with only boot-camp experience.
Yeah, hate to break it to you but starting salary here in NYC is about 100k. If you have a 4year degree or a bootcamp and you get through the interview, we pay you the same.

When I started 9 years ago bootcamp grads made significantly less. My first gig, starting was 60K, now I'm making close to 200k.

Because 90 percent of the profession is trivial?
I think we’re heading for programming as 80% a job program for INTJ/P and aspergers people and 20% as a technical profession.

You can mass throw neets at le epic coding bootcamp and hire those that perform decently. Like a repeat of the outsourcing trend during the 2000s.

Because our profession is a lot less like “medical doctor” or “airline pilot” and a lot more like an amalgam of various specialized medical technicians, levels of nursing, and medical doctors all in one “profession”, without hard boundaries, and with hiring processes that can probably reliably distinguish the equivalent of a phlebotomist from a the equivalent of a cardiac surgeon, but not super reliably distinguish lots of other qualification differences that would be distinctly different professional qualifications if the industry was like medicine.

And there are programs for the lower levels of that amalgamated medical grouping that are much less involved than typical coding bootcamps.

Unserious and lazy thinking devs give off the impression that we are unprofessional. No institutional barriers into the trade reinforce that. If we didn't have such a demand for workers, maybe those barriers could be erected.
It's because we don't have a strict distinction between worker, technician, engineer, architect. People tend to assume all kind of roles, informally. There are also lots of flat hierarchies, with everyone contributing to decisions. Sometimes the job is just shitting out a few lines of Javascript/ruby/whatever, there's no need to know about theorical stuff.

Another thing is that since you have almost all the necessary info online, and that open source is a very big thing, there is way less gatekeeping compared to other industries.

You do for pilots - its just a lot longer and more expensive
> You don't get bootcamps for doctors or airline pilots.

There are essentially bootcamp programs to get pilot licenses. Most people I know who have or were pursing a license would do a couple hour class once a week or so, but you can also sign up for bootcamp style courses where you do a focused, 8ish hours a day, 5 day a week program for a month or so and assuming all goes well, end up with a pilot license. Of course, a license doesn't get you a airline job, you'll need to do additional training and acquire flight hours.

Software jobs don't have hours requirements like many professional fields (usually through license requirements), so that makes it a lot easier to get in.

Why the fastest way ? Usually people ask for the best way.
If you already have a college degree, just write your own program that does something. That's the best way to learn and gain marketable xp at the same time.
- When you try to do things as quickly as possible you often end up cutting corners, sometimes too many corners.

- There's a lot of people trying to fast-track their learning and get into software and it's not an easy position to be in. It's a saturated market.

- It might turn out that software isn't for your friends either - personal preference, interests, aptitude etc.

I would point them to some beginner resources and let them explore it for a while in their spare time before jumping in and committing seriously.

Start in tech support. You'll learn an insane amount and be right near the people you want to become.
This so much. I’ve had friends wanting to make the switch from totally non-technical industries, who only want to be hired as a full stack developer after a taking some online classes.

In my opinion, the absolute best way to make the switch is to start in tech support. It’s the same concept of the only true way to learn a 2nd language is immersion by living in the country. The only true way to make the switch to tech is to be immersed in it.

Starting in tech support at a small-to-mid-size startup is such a strong and viable path, it’s a shame most people don’t realize that.

Tech support is just saying people to switch on off stuff and troubleshoot things which already have pre-made solutions. How can a person switch from this to a full blown career in tech ? My advice would be to start from being a manual test engineer move to automation test engineer work closely with devs in this position and slowly switch to a software dev. I say start with manual test engineer, because the entry barrier is very low and you can work your way up to become a software engineer. Will definitely take time ( years easily ) but its achievable this way I feel.
Respectfully, I couldn’t disagree more. I’m not referring to the traditional call center “is it plugged in?” Tech support.

I mean working as a “support engineer” for a start-up SaaS company whose users can be fairly technical themselves. For example, working on the support team of a B2B SaaS company who makes a tool for IT teams.

These types of roles can be filled by just about anyone, and there is so much to learn just by being around the environment. Lots of things we (people already in tech) take for granted is just how much one can learn by being around devs, sales, success, QA, devops, etc teams on a daily basis.

If you're doing call center tech support, sure.

If you're doing tech support for a smaller org, you're also going to do system setup and delivery, and you're probably going to touch provisioning systems and your boss or your bosses boss is going to be managing people that run the corporate IT systems. There's a path to developer there, usually by doing some automation on the day to day work and being recognized and asked to help out with more things and eventually a job title. Or at least, working with people who do what you want to do, and asking them what it would take to get there.

Manual test -> automatrd test -> writing the things that need testing is also a valid way though.

Really? I don't treat tech support as anywhere closer to developers than scrum masters or IT project managers.
It's infinitely closer than being out on the street. It's a foot in the door.
Related to starting in tech support, try to get an entry-level job in quality assurance (QA) / quality control (QC). You'll get exposure to software engineering and software engineers, then make more an informed decision about the field.
That's how some of our engineers started.
6 month cyber security study and then go blue team. Don’t bother with penetration testing.
Why not bother with pentesting?
Pentesting is much more saturated than defensive security is. Everyone wants to be a hacker.
What does “blue team” stuff typically include. A lot of the security people I’ve worked with in large enterprises just run canned tools, configure appliances or think about compliance stuff and then fill out a shit ton of paperwork. Makes sense why everyone wants to go offensive in that case.
The trick is to find a company that has to take security seriously, and then that company will have some meaningful blue-team work even though there is an ocean of tool running, compliance paperwork.

So for example, Microsoft, Google, Amazon, they all have good product security teams that do meaningful stuff, where "meaningful stuff" is defined as:

- design and development of security features and defense mechanisms

- design reviews, code reviews

- innovative tool development (as opposed to just running)

- development and improvement of Big data/statistical analysis

You just have to find a team actually doing that, and not a team doing compliance stuff. But there are such teams.

Bootcamp.

Friend of mine did a bootcamp recently, and had three offers two weeks after finishing. It was pretty intense at 6 days a week 10h each. They seemed to cover a lot of ground. There are bootcamp comparison sites that show how the people landed after a few month. The market is pretty hot right now which seems to translate into easier entry for new people, which was usually the hardest part.

The market is also full of less-than-ethical companies exploiting exactly the type of people OP described.
Unpopular view here, but if they want to do code just because they hear it pays well, steer them away.

Coding is not easy. And it requires a lot of fiddling with things and a lot alone time trying to figure things out. Transcribe your own solutions in working code and communicate elegantly about them is also an art form by itself and it’s not accessible to many.

This. Please, we don't need any more wage slaves in this industry. I already work with a bunch of people who don't have any interest in correct solutions but would rather just ship code. Feedback is non-existent or unwelcome. If their code is wrong, it's not, you're wrong. I'm 10-years professional and I have never met such a rude and entitled generation of bootcampers who think they deserve six-figures for figuring how how to return an array,

Rant over.

Please join tech or engineering because it genuinely excites or interests you. Not because the wages are higher.

I have 10 years of experience. I can say with authority that I know very little. The only thing I learned is to recognise faster when my code sucks (I still struggle to write a good code)
I identify with this, a bit. I’m getting more serious about writing testing, and it seems to give me some confidence.

I recommend a few books. Growing Object Oriented software guided by tests. It lays out a clear plan on starting and how one can approach building tests.

Next would be dependency injection: principles and practices.

Maybe try the GOOS book first and see if it resonates with you.

One thing to remember is that a lot of people who start out coding end up somewhere else in a Tech company.

I've worked with a lot of people with Engineering and CS degrees who worked as developers writing code for 2-3 years and didn't enjoy coding full time. Then they moved to other teams where they coded only a little bit (e.g. PreSales) or didn't code at all (Product Management, Project Management, Marketing, Sales, Education, etc).

Sometimes learning to code is the easiest entry point into a "Tech" job.

I dislike this take, for many reasons.

1. Software development isn't some magic field that is different from anything else. People do it mostly because it's good money. Sure, some genuinely enjoy it, but almost no one would do the kind of work they do full time if they weren't getting paid well.

2. Even people who start off with a "love of the craft",so to speak, are usually doing it "for the money" after 5, 10, 20 years.

3. People might not realize whether or not they enjoy coding without trying. Filtering people before they even start because they don't realize whether they like it or not is not a good idea.

4. Most importantly, people are the judge of their own lives. Development might be hard (though arguably a easier than other fields), but people can decide for themselves whether, given their current circumstances, it's worth the hard work in order to earn more money.

Are they intelligent and conscientious? Look for DevOps engineering jobs. Great, low risk way to gradually become tech savvy that can lead to more technical, higher paying gigs over time. Fake it till you make it, just like any other career.
Since when is DevOps a junior position?

Who is going to let some one new to the game learn in their infra?

I would invest learning to develop for enterprise tools. Things like episerver, sitecore adobe cms, Shopify or sap stuff. Definitely would say it’s the most interesting way to develop software but companies are willing to shelve out the big bucks after buying some of these obscenely expensive license’s. Pretty well paid cushy jobs
> Definitely would say it’s the most interesting way to develop software but companies are willing to shelve out the big bucks after buying some of these obscenely expensive license’s.

This does make it sound pretty appealing. What makes developing enterprise software interesting to you?

I suspect it’s a typo. Either that or the commenter is really stoked about integrating platforms.
First get a job in Customer Operations, Technical Support, Manual QA or Platform Configuration Management.

Then try to find a mentor in your work place that will champion you and help you grow into the area of tech that you want to do, whether that product, data, engineering or what ever.

Side note: Software engineers never graduate. The moment an engineer at any level decides to stop learning because "they know it all," their career will go into a death spiral. I state this because there's no fast and easy way to do something. Any corners you cut upfront you'll need to figure out later on in order to move your career forward.

Hmm… Google “top frameworks for JavaScript,” go get a book that teaches the hottest framework, and then demonstrate that knowledge by building something with it. Host on GitHub pages.

See if that framework has a local meetup group. Attend to network. Being associated with a meetup helps.

At that point, find a job posting or a recruiter looking for people who know that framework and try to land the gig.

In my experience, the barrier of entry of dramatically less for front end roles than other roles. Once you’re in, it’s easier to move away from front end if that’s what you want.

Be nice and enthusiastic in the interview to make an impression.

I think that’s the fastest way?

Warning: programming is challenging work and not everyone is cut out for it. It can be miserable work.

Steer non-CS people away from software development. In the python world the number of people who don't know the basics are terrifying.
I don’t think Python is any worse than say JS, which is what most bootcamps push.
I imagine there are always opportunities around to solve technical problems, and pursuing those opportunities builds momentum towards a tech career. Most businesses interact with databases, personal computers and the Internet, for example.

Small org tech support appears to be the best answer. It fits with my suspicions that a willingness to be humble about doing ops or support entry-level work gains one valuable exposure.

The right starting point is probably "what are their skills and interests" and based on that what is the simplest thing to segue into. Obviously this forum is mostly focused on developers but there is a while world of business analysts, technical writers, testers etc out there and these are often pretty convenient to get into if a person comes from a more 'liberal arts' / soft skills type job.