I recently chatted with a neighbor who was interested in getting into tech. They already have a degree (two, in fact) and a full-time job, but have always been interested in computers and weren't using that skill in their day to day. When I mentioned what I do for a living, they asked how they might transition into the field.
I offered a few ideas as we chatted, but realized it'd be more helpful if I collected my thoughts. I ended up writing this guide and sharing with my neighbor.
I think we can break this down into phases:
- Research and decide which specialities interest you.
- Once you do that, take a few free self-guided intro courses.
- If that works out, do a more in-depth self-guided online course.
- If that works out, enroll in a proper bootcamp.
Each phase comes with an increasing level of commitment. Start by dipping your toes in the water and getting in gradually, rather than diving in head first and realizing too late this isn't for you.
1. Decide what interests you
First, I’m a designer who works on websites and applications (software), so that’s what I’ll focus on here. There’s also a hardware track (networking, servers, I.T. help desk) that I don’t know as much about, but those jobs are being consolidated as everything is moving to the cloud. So software is where it’s at, in my opinion.
There are two main software tracks: Software Designer and Software Developer. Designers focus on the visual aspects of a site, how it works, and generally what you see on the screen. Again, this is what I do. Developers focus on code, data, security, and infrastructure. You can think of it like a restaurante: You have the dining area that customers actually interact with (designers) and the kitchen that folks don’t typically interact with but definitely experience (developers).
Designers and developers work closely together and there’s often overlap, so you can do a bit of both but you generally specialize in just one. Both design and development contains several specialities within them, but these two tracks can be roughly summarized:
|More visual||More technical|
|Uses psychology||Uses logic|
|Solves mostly people problems||Solves mostly computer problems|
A typical project goes something like this:
- The whole team (designer, developer, project manager, whoever) identifies an abstract problem to fix.
- A designer interprets the problem and uses a program to draw pictures of what the solution might look like. If you’ve heard of Photoshop, it used to be used for this.
- A developer uses these pictures to write code and make a working website or application.
So think about which part excites you the most. Do you want to decide how the problem is solved (a designer) or how the solution is built (a developer)?
2. Self-guided intro courses and videos
Once you’ve identified what you want to explore first, it’s time to learn some of the foundational skills you’d be using. Luckily there are several places that offer online, self-guided intro 101 videos and courses for free (some sites require you to create an account).
When doing these, it’s good to dedicate at least 30-60 distraction-free minutes at a time, so do them while the kids aren’t around and you’re not distracted.
- (Video) Learn web development as an absolute beginner
- (Interactive) Code Foundations
- (Interactive) Learn JavaScipt (basic programming, useful for any other language too)
Specific Development Areas (after you get a basic understanding)
- (Book/Online) Introduction to iOS with SwiftUI (first section is free)
- (Book/Online) Introduction to Android with Kotlin (first section is free)
- (List of Resources) Python’s “Beginner’s Guide for Non-Programmers”
Feel free to spend a lot of time here and go at your own pace. You have a full-time job and a family. It’s perfectly fine to spend several months here exploring until you find something you enjoy.
3. More in-depth, self-guided courses
So now you’ve identified one or two things you enjoy and have learned the basics, time for a bit more of a challenge (and commitment).
These courses are similar to the ones above, but they’re longer, cover more intermediate topics, and aren’t free. The cost is low (anywhere from $15 to a few hundred bucks), so feel free to spend more time with the free courses until you’re ready to commit.
- Khan Academy - Bite size lessons and interactive challenges, self guided.
- Udemy - A series of video lectures with exercises along the way, self guided.
- Udacity - A series of lectures, reading material, and exercises. Looks like you have a teacher, but this is online and mostly self-guided.
- SuperHi - On the expensive side, but I know a few folks who went through this, currently hold full time tech jobs, and would recommend it.
Again, it’s ok to spend more time here before you do a bootcamp or formal class. These courses are still something you can do while working a full-time job and spending time with your family, and you can learn a lot here.
If you’re enjoying what you’ve been doing and understand it at a basic level, it might be time for a bootcamp to take you from “hobbyist” to “professional.” Bootcamps are a lot of information to take in at once. Bootcamps usually have 6-8 hour classes for several weeks, so most folks attend bootcamps full-time (vs. working and attending part-time). So it’s a lot of info in a small amount of time, but at least you’ll be done quickly (vs. a year or two of college).
I spoke with a few folks who went through a bootcamp and they said that people coming in with zero knowledge typically struggle, but people coming in with at least some existing knowledge fared much better. Again, spend as much time as you need in the previous stages before committing to a bootcamp. Here are a few worth looking into:
- Flat Iron
- General Assembly
- Iron Hack
- Freemote - If you choose development, this is compelling (and cheap).
- Big Nerd Ranch
Again, this is something I wrote for my neighbor, but I posted this here in the hopes that others might find it and get something out of it. If you followed a similar path, or know someone who did, I'd love to hear your story.