People are interested in coding for a variety of reasons, but a significant one is to get the skills they need for a new career.
It’s not hard to see why: Software developers are in high demand, and they tend to be paid well. In the United States, the median salary is $107,000, and it’s expected to grow by 20 percent, according to the Bureau of Labor Statistics. Similar trends exist in other countries.
What You Should Know About Coding Jobs
While these are real pluses of programming, there are minuses, too. While a majority of developers are satisfied with their jobs, satisfaction is lower than some other fields. And getting a job in the field can be challenging.
For example, while many coding bootcamp graduates find a job, a 2019 report found ten percent do not. This isn’t to discourage you from a career, but to better prepare you. Switching careers is a challenge, but is often a worthwhile one.
There will be setbacks and times you seem to have stalled. While it’s possible coding isn’t for you, many of these obstacles are temporary. Continue the work!
Skills Successful Developers Have
Before going into the various options for learning to code, what skills do you need in the first place? There are three main areas to focus on: coding skill, overall technical ability, and communication skills.
Solid programming skills
The first skill is probably the most obvious—you need to be a solid coder if that’s what you want to do for eight hours a day. You don’t necessarily need deep expertise, however. Most of the code in a project doesn’t and in fact, shouldn’t, require technical wizardry. Straightforward code is often better than clever or complicated code because it’s easier to verify, fix, and change.
The next group are generic technical skills that are applicable to any language or technology.
The biggest ones are the ability to pay attention to details, work with complex systems, and continue learning. Bugs and design problems often come down to relatively small details, so overlooking details means you can’t write working code or fix it when it breaks. Being able to work with complex systems is partly practice and partly learning techniques to help you cope.
For example, getting better at moving between code using your editor or IDE means you can call up details rather than trying to remember them. Finally, as new technologies emerge and existing technologies evolve, it’s essential to keep up.
Communication and Collaboration Skills
The final group are communication and collaboration skills. These help in situations like documenting your code, describing bugs precisely to ensure they’re fixed, facilitating meetings to make good design decisions, and communicating with end users.
Full disclosure: A significant number of developers don’t prioritize these “soft” skills at all. There are a few reasons to value these skills anyway:
- Formal research—and frankly, simple observation—reveals that developers spend significant time working with others.
- When surveyed, hiring managers indicate that they prioritize these skills.
Depending on your background, you may already be strong in these areas. In fact, you might be better than experienced developers, especially if you worked in an industry where these skills are more widely valued.
But even if you don’t need dedicated practice, make sure you integrate these skills as you acquire new ones to keep them sharp and develop good habits.
Standalone Online Coding Courses
The advantage is these tend to be much cheaper (or even free). The downside is that it’s often up to you to select the right courses to cover the necessary skills, which is difficult as a relative beginner.
Some of these services package their courses into larger tracks, packages, playlists, or programs, and may even offer a certificate. These tend to cover all of the specific technical skills to, say, become a web developer.
Consider using online courses early on, to build confidence and to start learning some of the basics. It’s also useful to confirm that programming is what you want to do, and, if you haven’t taken a course in a while, gets your brain used to a classroom, virtual or otherwise.
Finally, they can also be useful to add additional technologies to your resume after a bootcamp or other program.
Coding bootcamps are perhaps the most visible way to switch careers because they’re usually designed and marketed for exactly this situation. Ideally, this means the instruction are tailored to both your background and your goals.
Bootcamps range in quality and require a significant investment in time and money, so it’s crucial that you carefully research them before signing up. While the best bootcamps will honestly represent their staff’s experience and student outcomes, some do not.
Be especially wary of bootcamps that charge you after hiring based on your salary. These have the advantage of giving the school extra motivation to get students hired and cost less upfront, but the pricing is harder to understand than a single sticker price. While the size of their cut and the length they’ll be taking it are important, don’t forget to read all of the conditions—you may have less flexibility in turning down a job, for example.
You may even want to run through different scenarios: if I get a lower paying job, will I be able to afford the quality of life I expect; and if I get a high paying job, will I be okay with the amount of money they’re taking?
Managing Expectations for Programming Bootcamps
It’s also important to set realistic expectations. Although bootcamps sometimes promise or imply that they will teach you everything you need to know, many students’ experience is that they need to do additional learning.
This is partly because teaching yourself is common among coders, regardless of any formal or informal training. But it’s mostly because many bootcamps are simply too short to be comprehensive: An eight or even sixteen week bootcamp is drastically shorter than a Bachelor’s in computer science or an Associate program focused on programming.
Unfortunately, some hiring managers are wary of bootcamp graduates because of inadequately prepared bootcamp graduates. This attitude might carry over to software developers as well: some students also report that they are taken less seriously by coworkers with traditional degrees.
On the other hand, some hiring managers actually prefer bootcamp graduates to CS program graduates because bootcamps focus on recent technologies, whereas CS programs have a greater focus on theory.
All in all, if you want a practical focus and can find a reputable program, bootcamps can be a strong option.
Programming Degree Programs
Computer science and related degrees are well-regarded and for good reason: they give a solid grounding in theory and plenty of opportunities to practice writing code. If earning a first or additional degree is a personal ambition, that can be another reason to go this route.
This depth comes at a cost, however, particularly in the United States, where tuition costs have risen much faster than inflation or the median income.
And while many of the courses involve coding, the coding you do might be less practical. For example, you might be asked to write algorithms from scratch or program in assembly, experiences that are educational but not directly relevant to many jobs in coding.
On the whole, they’re a good option for people who can afford them, are interested in theory as well as practice, and like learning in a traditional academic environment.
Other Ways to Develop As A Coder
Even if you prefer courses and other structured ways of learning, you’ll likely find some skill that’s left out or discover that a promising job requires expertise in a particular technology you have yet to learn.
And if you strongly prefer self-learning, you could even use books, tutorials, and videos for the majority of your skills—just be aware that you’re more on the hook for ensuring you both learn the right skills and learn them well.
Different materials have different pluses and minuses:
Books about coding can provide the breadth and depth of courses, as long as you don’t forget to practice what you learn. If learning the topic well is important, try to look for books with many exercises. You don’t have to do all of them, but having a variety makes it more likely they range the gamut from simple to challenging.
Note that some technical books are available for free online by the author or publisher, so it’s worth checking out the book or author’s website before you hit up Amazon.
Tutorials and blog posts are good for explaining how to a accomplish something specific, like how to work with census data in R, or familiarizing yourself with the very basics. Occasionally, online tutorials or blog post series are as comprehensive as books and courses.
Programming How-To Videos
Individual videos are great for learning or reinforcing concepts, like how CPUs predict upcoming instructions to optimize speed or what caching is. They are less convenient for going over actual code, although sometimes the code is available for download separately.
Personalized Coding Lessons
Coding tutors can be a great resource for many different stops along the way: getting a good overview of the entire process at the very beginning, helping you get your environment set up to write your first programs, clarifying a concept that has you stumped as you study for a midterm, advising you on which electives or additional courses are a good fit for your goals, and helping you prepare for interviews.
Tutors often have industry experience, so even if they took a more traditional route than yours, they can help you focus on what’s relevant to getting and succeeding at a job coding.
If you find the one-on-one instruction of tutors helpful, you may even want to find a few: perhaps a veteran of the industry for hiring and big-picture advice and a recent graduate who remembers what it’s like to struggle with sorting algorithms for help with specific programming concepts.
Coding Projects and Challenges
Projects and coding challenges have a small but important role to play in turning coding into your career, given you experience actually using skills. Work with a computer programming tutor to help you shore up your knowledge, because actually working on a project with a professional is a great way to find gaps in your knowledge.
Polishing Your Projects
When you’ve gotten your project working, consider taking the time to ask an educator to help polish it, and upload it to a site like Gitlab or Github, so companies can see it when you’re applying to jobs.
If your project doesn’t get to that stage, it’s still highly useful for grounding your skills in something practical and helping you fill in any gaps.
Thinking Of Becoming A Coder?
Building any new career can be tough, but there are an increasing number of ways to build one in coding.
As you sign up for courses and embark upon bootcamps, don’t be afraid to pace yourself. Sometimes the conversation around upskilling goes beyond encouraging you to push yourself to making you feel inadequate for even contemplating a break. There’s some evidence breaks and vacations make you more productive, but even if they don’t, they ensure you don’t get burned out on coding before you’ve even started your job.
It’s also good to remember that you’ve done this before. Even if your previous training and jobs don’t form an idealized career arc, you still had to master skills, take on responsibilities, write applications and interview, and learn how to work with managers and coworkers. It may feel like starting over, but you can bring those skills, experiences, and confidence into your new endeavor.