The tech industry has never been bigger. Pretty much everything we interact with from day to day relies on computers or technology in some form. If you’ve decided to start to code with the goal of making it a career path or a hobby, there are many ways to get started. This article identifies possible pathways you can make into the industry and lists what you need to start to become a minimum viable coder (MVC).
The following is merely advice – your particular situation and journey may vary, and that’s all right. Every individual has their own unique path. The purpose of this article is to get you to reflect on you and what you would like to do, even if you’re a beginner.
Step 0: Questions to Ask Yourself
There are many entry points into the industry – there is no one “right” way to do it. The first step is to evaluate what you would like to get out of the experience. Ask yourself:
What is your learning style?
Are you able to evaluate how you approach learning something new? Think back to the last couple of projects you have done – the last cake you made or the last home improvement project you did, for instance – how did you tackle those projects (especially if it was something new to you)?
What did you learn on the job while doing the projects? Or did you research first? Knowing these answers will help you craft a journey into coding tailored to your learning style. Learning to not fight with your learning style and instead work with it is imperative to your success.
If you haven’t done a project lately, you should complete something new and take notice of how you approach the project. This kind of initiative will help start to learn to code and identify what your learning style is.
Why do you want to learn to code?
Is there a particular reason why you want to learn to code? Do you have an end goal in mind? What kind of lessons are you looking for?
If your goal is to supplement your current job skills with the ability to create a website or newsletter, for example, an expensive bootcamp may not be the most viable option. An inexpensive self-paced option would probably more suit your style.
When your goal is to switch to the tech industry, you should start looking at more comprehensive classes and bootcamps that will teach you best practices and give you a competitive edge when it comes to the job hunt. Using a self-paced option is 100% feasible if you have the self-discipline and self-motivation to make it work.
If you have no goal yet, what interests you in general about technology? What do you find cool or awesome about it? Writing the answers can help you narrow the field down to a couple of different pathways if you feel there are too many options to choose from.
What skills do you already bring to the table?
When looking at a path you might consider when getting into coding, it’s very helpful to look at what you can bring to the table as an individual. Many times, past skill sets can translate well into learning how to code – the lessons of the past can help you now. Make a list of what you can bring to the table, and see if you can match that with any of the pathways into the tech industry.
- Data Science – Likes to find patterns in data, a natural organizer.
- Backend Engineer – Crafting things comes naturally, enjoys puzzles.
- Frontend Engineer – Likes to perform or be creative and show it off.
- Full-Stack Engineer/Mobile Engineer – Feels equally comfortable in being creative and solving puzzles.
- User Experience Designer – Artistic and creative, likes the psychology of why and how a user feels about a website or application.
These are certainly not the only qualities that describe these particular positions. Hopefully, this gives you a bit of insight into the type of qualities you may already possess that will be beneficial on a particular path.
How much time and attention will you be able to devote to this pursuit?
Coding is very much like playing a musical instrument or competing in sports: you have to stay fresh, practice, and get those reps in to succeed; you challenge yourself to get better. It will be important to devote consistent time and practice to not only pursue this career path but also stay relevant in it as well, even if it’s as little as 30 minutes a day. Consistency is key as you are developing a habit to learn new things and think like an engineer.
Knowing how much time you can devote will be key in finding an approach that’s right for you.
Thinking upfront about what part of the tech industry you would like to see yourself in will save you time down the road. That said, it’s perfectly normal if you’re unsure of what you want to do with the coding knowledge you will gain. These are just questions you should think about as you traverse your journey.
Step 1: Programming Languages and Key Concepts
One of the things you can do to jump on your coding career before you dive headfirst into a particular career track is to choose a language and learn it.
At this point, even if you’re unsure if you want to be a front end web developer, mobile developer, or a data scientist, you can at least get a start on learning the terminology used. Beginner-friendly languages include Python and Ruby.
There’s not particularly one language that’s better to learn over the other, except that Python is a little more popular. That status could change at any time and differ depending on the technologies that are popular in the area you live in.
Python and Ruby Tutorials to Get You Started
The most important thing to take away from a Ruby or Python tutorial or course is to learn the concept of how data flows, and learn key vocabulary words to take with you to your next destination in your coding journey. Here are some Python and Ruby tutorials to help you get started:
Head First Python by Paul Barry is a fairly comprehensive and “brain-friendly” way to learn Python. It’s currently in its second edition and covers Python 3. Covers all the basics and has project ideas in the back of the book.
Invent Your Own Computer Games with Python is a fun and interactive way to learn the language. In its fourth edition, the lessons are updated for Python 3, and it teaches concepts like flow control and data structures to learn how to choose the right tool for solving a problem.
This website has a companion book to go with the course.
Paul Craven’s course on creating arcade games with Python and Pygame can be a fun blast to the past for those familiar with arcade games like Breakout or Galaga. In this course, Craven starts with simple concepts like printing expressions to the console and then graduates to using Pygame and the arcade library to add graphics and movement to our applications.
Codecademy’s Python 3 course has an excellent interactive tutorial to learn the basics of Python 3. It covers all the basics. Codecademy does have a Learn Python 2 course that’s free, but with the deprecation of Python 2 by the language’s steering council, it’s recommended to start all new projects and update existing projects with Python 3.
This Career Karma article sums up the differences between Python 2 and Python 3 to make an educated decision on which to spend your time on.
Ruby Learning, Satish Talim (online, free)
This Ruby tutorial by Satish Talim is one of the first resources listed on Ruby’s documentation for those learning the language for the first time. His study notes cover most of the main aspects of the language.
Learn Ruby by Codecademy (online, free)
According to Codecademy, in this free course on Ruby, you’ll come away with the basic knowledge you’ll need to go forward in your coding journey: variables, loops, conditionals, control flow, etc. Like the Python 3 course by Codecademy, it has an interactive element where you complete exercises along the way while learning concepts.
Introduction to Programming with Ruby by Launch School
Introduction to Programming with Ruby by Launch School starts from the very beginning with a primer on how to get started with Ruby, work with an IDE, and more. It’s great for code newbies who have never programmed before.
Learn to Program by Chris Pine
This book is dedicated to those who have never programmed before and is recommended on Ruby’s website as a guide to learn programming concepts before doing a deep dive into the language.
Whether you choose Ruby or Python, these tutorials will give you the knowledge you need to step forward in your coding career, whether that be continuing at a self-paced, self-taught track or going through an education program.
Remember that the main concept to get out of learning one of these languages is to learn how to recognize patterns, define key concepts like a variable, a loop, and a function, and overall start the process of thinking like an engineer. This move will help you when you begin to formally learn the fundamentals of web development, mobile development, or data science.
- Learn how to program using Python or Ruby – these languages are the most beginner friendly.
- While learning how to program, investigate career paths in web development, discover a bit about yourself and how you work and learn, and recognize where your strengths and opportunities to improve are. This knowledge will give you more of an idea of which pathway will be right for you.
Step 2: Choosing a Track to Become More Competitive
At this point, you most likely have a good idea of which direction you’d like to go in terms of your tech career. In the process of learning a programming language, did you pick up on any concepts that you were particularly good at? Liked but need to work on more? Anything you didn’t like?
These answers will help form your decision of where to go next. Here we’ll go over the three main tracks that most people follow: web development, mobile development and data science.
When you think of a coding bootcamp and what tracks they offer, a web development program is likely on your mind. Web development encompasses frontend and backend development. If a bootcamp or coding school teaches both in the same program, you’ll graduate as a full stack developer.
There are a lot of resources out there, so let’s take a look at some of the better options so you can hit the ground running:
Learn HTML and Learn CSS, Codecademy (online, free)
The beauty of the Codecademy courses is that there is a built-in IDE to help you as you progress. The HTML and CSS courses offered here give a great basic understanding of these languages that will prepare you very well for any bootcamp program.
HTML Concepts to Start Your Web Development Journey, and CSS Concepts I Wish I Had Known Years Ago, Career Karma (online, free)
Career Karma recently submitted guest blog posts to repl.it that covers checklists of fundamentals for HTML and CSS. Unfamiliar with repl.it? It’s an awesome sandbox to practice coding skills. If you prefer to learn by reading and researching before you start practicing, these articles cover the essentials to get you ready for pre-course work to a web development program.
FreeCodeCamp HTML and HTML5 Lessons and Basic CSS Lessons, FreeCodeCamp.org (online, free)
Freecodecamp is another site that offers HTML and CSS basic tutorials to help guide you through the basics using a lesson-based curriculum with mini-quizzes that you need to pass to move on to the next lesson.
Flexbox Froggy – CSS only (online, free)
If you are looking for a more interactive tutorial on how to use flexbox, Flexbox Froggy is for you! The gist of this site is to use flexbox to get frogs to their lilypads. This will exercise your ability to use flexbox to adjust position on a webpage. There is also a CSS Grid counterpart to the game as well!
Flexbox Zombies – CSS only (online, free)
Flexbox Zombies is an interactive game that features a storyline where your objective is to use flexbox to aim your crossbow or your laser weapon to do away with the undead.
Here are some tutorials to set you on your way:
“So easy your human companion could do it too!”
This prepares you for interviews where you might have to describe, for instance, the difference between a variable declaration with ES5 keyword “var” vs. a variable declaration using the ES6 keyword “let”.
Freecodecamp works well in this regard with its presentation of the material. The learning platform is very similar to the platform used for their HTML and CSS lessons.
URL: YDKJS README.md screenshot
The series is also available in paperback ($).
This portion of the article covers the surface of information available to you to learn web development. If you can work through even half of these tutorials, you are well on your way to a new career in web development.
Mobile application development encompasses pretty much anything you would create for your smartphone. Most companies specialize in either Android or iOS development, but some developers choose to do both. The challenge that comes with mobile development is that you have to think about creating apps to meet user expectations without losing efficiency.
Why choose mobile development over web development? It’s all about what you’d like to do, what’s available in your area, and what types of problems you’d like to solve. In this section, we’ll talk about the differences between learning Android and iOS development, and the languages you’ll need to start learning to create mobile applications.
Android development involves the use of Java to create applications. Due to legal issues on Google’s use of the language to build its Android operating system, the tech giant has started to encourage developers to use Kotlin for their newer Android apps.
Coming into the mobile development field with no knowledge possibly of either language, you have a choice to make: should you learn Java, Kotlin, or both?
My answer will always be: the more you learn, the better. But, when time is limited, and there is more legacy code out there in Java, I would recommend learning Java first. Learning Java will make learning Kotlin easier since Kotlin is essentially a more efficient way to write Java. Java and Kotlin share many of the same concepts, but Kotlin is less verbose.
Of course, please go with whatever is more popular in your area. If you see more job opportunities asking for Kotlin experience, go with Kotlin; if you see more asking for Java experience, go with Java.
Here are a few tutorials in both languages to help get you started:
Learn Java, Codecademy (online, free)
Codecademy is at it again with another great tutorial to learn the basics of Java. They have an interactive environment that has an IDE, along with tutorials, to lead you through a basic Java curriculum.
Java Programming Basics, Charles Mulic on Udemy (online, free)
Udemy has a fairly short free course on Java programming that starts with beginner concepts such as variables, types, and classes. Mulic covers how to get started with the Java SDK so that you can quickly practice coding. This is a helpful primer to help you get started before you get to more difficult topics.
This is one of the only tutorials that talks about programming basics in addition to teaching about the Kotlin language. This works great if you need a lecture-style video to help you along.
Kotlin Bootcamp for Programmers, Google
This course for folks who have decided to learn Java first and want to branch out to Kotlin to become more competitive in the job market.
Apple’s mobile operating system (iOS) is featured on all of its portable devices. When Apple embarked on the mobile development journey, they used a language called Objective-C to create those applications.
Since then, a language called Swift has replaced Objective-C as the preferred way to create mobile apps. Apple hails Swift as “Objective-C without the C”. If you’re anyone other than an experienced programmer, what does this quote mean?
Think of Swift as the Kotlin of iOS. It’s a bit more distilled than Objective-C, just like Kotlin is a less-verbose version of Java. Swift improves upon what Steve Jobs created so long ago and is being pushed over Objective-C as Apple’s favored language selection for iOS apps. Here are some primers to get you started:
Learn Swift, Codecademy (online, free)
Codecademy has created a fairly comprehensive introduction course on Swift that will get you started on your iOS development career.
100 Days of SwiftUI, HackingWithSwift.com (online, free)
100 Days of SwiftUI focuses on building applications, and learning programming concepts from the ground up to form a habit. The first 15 days take a look at basic programming concepts and how to do them in Swift. The following concepts focus on the UI and how to create a beautiful interface for users.
Choosing mobile development is an excellent way to go if you want to focus on creating applications for mobile devices. Whether you choose to go the Android path or the Apple path depends on your experience with the devices, job prospects in your area, and what you would like to do. These study guides will help you figure out which direction in mobile development is more for you.
The final track we’ll take a look at has a fairly robust history but only has recently been defined as a specific career pathway: data science. It’s a term that was only first published in an article on the subject in the early 2000s. As a mashup of computer science and statistical modeling, the field requires an understanding of statistics and programming.
The programming/coding aspect of data science involves Python mainly, although R is becoming increasingly popular. Since we talked about beginning Python tutorials at the beginning of this guide, here’s a list of data science libraries that you will need to learn:
There are many, many others, but these are the main ones to get familiar with. The documentation for each of these libraries is fairly good and straightforward.
As the need for data analysis grows, the need for people who can interpret and create visualizations of data grows. Data scientists are probably one of the fast-growing careers today and, depending on where you live, can be desirable.
In addition to learning the concepts above, it’s good to practice coding using the programming languages listed above. This way, you don’t lose the skills you’ve developed already. Create an account on Codewars or Hackerrank and start to code up simple algorithms when given a prompt to solve. This mover will come in handy when you start to prepare for interviews when you look for a new job.
There are so many ways to learn to code for free online. With a little bit of time, patience, and a lot of grit and tenacity, you’ll become a web developer, mobile developer, or data scientist in very little time!