If you’re wondering how to learn programming and change careers, you’re not alone. With the tech boom creating a demand for more software engineers and computer scientists than are available in the current talent pool, many professionals are pivoting their careers to focus on a more technology-centric trajectory.
In 2016, Glassdoor released a list of top 25 jobs for the year and technology positions dominated. The trend isn’t stopping anytime soon with initiatives like TechHire from the White House and the digital age moving at lightning speed. However, many software engineering and programmer jobs remained unfilled because companies cannot find qualified candidates to hire fast enough.
But what can you do to become a highly sought-after programmer if you don’t have a traditional background in computer science?
It is easy to believe that you are not capable of training for such a position, especially post-undergrad. Perhaps you have a non-technical education, or you've been out of college for a long time and haven’t practiced skills once learned. Thankfully, there are many resources that can get you back on track and able to change careers.
We will examine where to begin your research on learning to program, how to prioritize the important material while setting aside the distractions, and how to determine if a more formal education may be beneficial for you and your goals.
Clarify Your Goals & Start Solving Problems
Programming is all about problem solving, first and foremost.
Experienced programmers can learn any language and solve any problem because they have spent their education and careers finding the best ways to solve problems. Experienced programmers use multiple approaches and processes that they’ve developed over years of practice. They can choose from many programming languages, various mathematical concepts and functions in order to find efficient solutions.
But experienced programmers have only gotten to this point of expertise through practice. They try and fail and then try and try again. They ask for help. They search for answers. When confronted with a new problem, they research, make a game plan, and (only then) start coding.
When you are starting out, your main goal should be to build a system for yourself to tackle problems. There's a lot to take in, especially when learning your first programming language, but when learning the basics, you want to find straight forward projects and goals for yourself.
Start small with projects that will help you learn to think logically; help you learn the way a computer works. Don't focus on creating a huge website, a complex app, or a 3D video game, even if that is your ultimate goal one day. There are resources online such as this GitHub account full of small, simple projects that a beginner programmer can use to get started. These are the kinds of problems you’ll find in traditional data structures textbooks - another options. Small exercises to help you learn a programming language and trains you to solve computer science related problems in those languages.
Still doubt that you can change careers and move into programming? Here's a story on Reddit from a user who went from knowing nothing about development to being employed in one year. By their own admission they spent many hours focusing on their skills, but this process can be done in a longer period of time if you are studying in the evenings and weekends. Another is Colin Cross, an MPCS alum who had only dabbled in computer science before deciding to get the education necessary to pursue a career full time.
Note that we do not discuss formal education at this time. That’s because learning how to problem solve is the first step that you need to succeed. Formal education is a longer term goal. You should first see if you want to sit down in front of a computer and code a solution to a problem. If not, you will find it difficult to learn programming and change careers. By forming problem solving skills first, and seeing how you like that type of work, you can better determine if a technology career is the right fit early on.
Gain Momentum with Small Projects
For the vast majority of developers, programming revolves around the world wide web. A website that dynamically responds to input from the user may appear simple in your browser, but it takes a lot of skilled design and engineering to make it work the way it does.
There's the part of the code that involves giving your browser information to display and receive input from you, often referred to as front-end development. There's also the portion of the website that processes all this information and does the heavy lifting. Creating this is called back-end development. A large percent of modern developers work in web development, and the programming languages they use are designed to be easy to use, yet have the power to do what they need.
Learning how a simple website works is an excellent place to start your self-study, and there are countless resources online to help you.
Another resource in a similar vein is this post on Medium, where the author gives a one-year timeline on coding fundamentals. If you begin working through this author’s suggestions, you’ll be working with tutorial material that thousands of people have used before you. The author cites tools that are geared towards helping you develop professional skills.
The material is more important than the timeline, so it’s more important to start than to worry about not being able to commit the time he recommends.
Do I Need More Education?
Coding is a trade and like any trade, it requires, practice, diligence and focus to truly master the concepts. Online resources can help you get a leg up and get started. If you work through self-guided projects and tools, you can certainly start to think of yourself as a programmer in early stages of their career.
When thinking of programming as a trade, let’s consider an example of different industry - building and construction. As an early programmer, think of yourself as a construction worker building houses. You can build the house, and build it well, and that's very valuable. You can recieve instructions and specs and build something with the right skills
But perhaps you want to design houses. Or you want to understand the fundamentals of what makes a house work to make them more efficient or stronger? What do you need to do then?
In the case of programming, perhaps you want to design your own sofware, build the blueprint for a new feature, or be able to fundamentally improve systems in speed, efficiency, and accuracy.
These kind of goals is when pursuing a more formal education can give you an extra step to truly become a leader in the field. Pursuing a degree can help develop the kind of career and reputation that brings mid-level, senior or even executive professional opportunities to you.
If you want to move up into that level of programming and software development, as many programmers do, you will want to seriously consider an educational program. Pursuing a degree will give you the coaching, mentoring, and credentials that show you’ve through a high level of rigorous training.
There are two primary options for formalized education for career changes, bootcamps or Masters programs. Let’s look at the differences between the two.
Bootcamps vs. Masters Programs
Bootcamps and intensive programs in the US today are designed to bring career changes up-to-speed for a specific set of skills. They generally work like full time jobs, so you could potentially spend 40 hours a week for several months learning with other students. Think of this kind of program as similar to the self-studying mentioned earlier, just with some extra tools and motivations to help you stay focused. Many people have found success in these kinds of programs, and you will likely come out of them with your head full of knowledge and a new network of friends with a similar skill set.
These programs are not equivalent to college degrees though, so do not go into them feeling like it’s the same thing. They help fill a gap in talent shortage, but what you learn will be relatively specific and limited. The information they provide is likely quite similar to projects like The Odin Project so, it’s more related to self-study material than college material.
Bootcamps can certainly make you hirable for specific positions as they teach practical computer programming skills. The downside is that they do not have the time to dive into traditional computer science and build a foundational understanding of the discipline. As such, this may limit your growth potential in years to come and eliminate you from going after any roles that require the advantages of a degree program.
Pursuing a Masters in Computer Science is really for people who want to rise to the top of the industry and have access to the top companies, salaries and opportunities the industry offers. A Master’s degree aimed at redirecting your career is the longest term and most beneficial goal for most. Many have immersion courses that can bring you up to speed, similar to the bootcamps, before the full coursework begins.
Earning a Masters in Computer Science, or MSCS, is the most holistic approach for those with longer term goals. You study algorithms and fields ranging from computer graphics to networking to working with big data. It can also offer you access to teachers and mentors who are highly respected in the industry and a powerful alumni network in the top tech companies in the world.
This is the biggest investment you can make, with both time and money, and should be entered into only if you understand the commitment and are prepared to take full advantage of it. The more time you have to study while getting this degree, and the more time you have to hone your coding and problem solving skills, the better position you will be in to intern while in school and graduate with a job in hand.
The tech industry is constantly growing, and there is room for smart and dedicated individuals to change careers. There are a large number of free resources online designed to get you started.
After following along with some projects and perhaps getting a few interactive web pages up and running, ask yourself if this is something you like enough to stay committed. If so, and you want to accelerate your understanding, you can consider pursuing more formal education.
When you are ready to make a commitment of time and money towards building a top career in a fun, lucrative industry, Masters programs like the ones offered at the University of Chicago can help you reach the highest heights.
At the University of Chicago, we have degree programs for career changers without a background in computer science and those currently working in the industry looking to take the next step in their careers. When students work with us, we help them develop a plan for their education based on their goals. Over 95% of our alum are working in related roles within 6 months of graduation. We would love to talk with you to see if what we offer matches with your goals. Review the following to help determine if a summer immersion session or alternate placement exam is right for you.