About 2 years ago, I switched careers from marketing to web development. I won’t bore you with the whole story of why or how I did it. Find any other millennial that attended a coding bootcamp, and I’m sure my story is very similar.

However, I will say that the switch to web development has been without a doubt the greatest major life decision I’ve ever made. But it hasn’t been without its struggles. This post is for aspiring and newly minted web developers to pass along whatever knowledge I’ve gained in my first couple years as a web developer.

Learn the Basics

The first step towards becoming a web developer is to learn the basics about programming. Strings, floats, variables, arrays, hashes, objects, loops, etc. You have to start learning the vocabulary of developers and how to create simple programs that solve simple problems.

Many people suggest learning the basics with Ruby, JavaScript, or Python. I think that’s good advice since all are 1) very beginner-friendly and 2) are likely the languages you will be using in your first job as a developer. By “beginner-friendly”, I mean that the languages are high-level; they don’t require you to deal with such things as a multi-step build process or garbage collection. They all also have robust features.

Here are the resources I highly recommend:

Practice Coding Exercises

After you’ve got the basics down, the next step is to practice the crap out of coding exercises. If you plan to attend a coding bootcamp, you will most likely have to take a coding assessment as part of your application. That assessment will consist of several coding exercises that will test your ability to solve problems using code. If you don’t plan to attend a coding bootcamp, these types of coding exercises will come up in job interviews. And even if you just want to learn to code as a side hobby, coding exercises help you learn about algorithms, data structures, features of the language, and how to write efficient code. Practicing coding is so important.

The resources I’ve used for coding exercises are:

Start Building Web Applications

This step is a little more broad than the others. I count my time at my coding bootcamp for this step.

There are so many topics you can choose from, but I think a good place to start is by building a front-end application using a popular JavaScript framework such as React, AngularJS, or Ember.js.

You could also start by learning jQuery, but trust me, you don’t want to become a jQuery expert. You might not know what jQuery is, but just know that it’s the past. The future (and really the present) of front-end web development is JavaScript frameworks. But starting with jQuery will give you an introduction to DOM (Document Object Model) manipulation and browser events.

After learning some front-end development concepts, you could venture to the back-end. Ruby on Rails is a popular web framework that many companies use. Node.js is a JavaScript runtime environment that is becoming hugely popular right now. Django is another large web framework (like Ruby on Rails), but it uses Python.

Learning about databases is also good. Learn the differences between relational and non-relational databases. And definitely learn some SQL, as many many companies use relational databases such as MySQL and PostrgreSQL.

Some good places to start learning web development concepts are:

Level Up with Computer Science Fundamentals

This last step should probably be done continuously and while doing the other steps. But I’m putting it last because CS fundamentals are often tested during job interviews.

By CS fundamentals, I’m talking primarily about data structures and algorithms. Data structures such as linked lists, binary trees, binary search tress, and graphs. Searching and sorting algorithms such as binary search, merge sort, and quick sort.

To get more practice with CS fundamentals, try:

These are roughly the steps that I followed for my transition to web development. I don’t claim to know the best way to learn web development, but I found these resources useful, and I hope you do, too.