How and Where to Start Your Developer Journey
Tags: codenewbie, beginners, javascript, python
Published: 2020-10-04 22:02:13

I started my developer journey around 2016. It's taken me longer than I wanted to get on the path I'm currently on. It took me so long because of the mistakes I made along the way. 

I hope the lessons I've learned from those mistakes will help developers just starting their journey.

But let's begin at the beginning. If you want to be a developer, where do you start?

## Where to Start

My first mistake was spending too much time looking at all the different languages, trying to figure out which one was "best" to learn. Python? JavaScript? C++? C? C#? Haskell? I couldn't decide. 

![JoJo Suzie Q Picking Out a Dress](https://dev-to-uploads.s3.amazonaws.com/i/haqrez05zchawa6dsnaa.jpg)
<figcaption>I'm regularly like Suzie Q in JoJo trying to pick out a dress. I can't make up my mind! Do not succumb to analysis paralysis</figcaption>

I ended up sticking with JavaScript because that's what the company I was working for as a content marketer was using for front-end and back-end. I did this despite knowing I wanted to do back-end. This was mistake #2. JavaScript is a really great and well-used language, but it's used for much, much more for Front-End work than Back-End work.

![State of JS 2019 Job Title Demographics](https://dev-to-uploads.s3.amazonaws.com/i/15qdmc28c2v9hovpvanw.png)
<figcaption><a href="https://2019.stateofjs.com/demographics/" target="_blank" rel="noreferrer noopener">2019's State of JS really hammered this for me.</figcaption>

## How to Choose

So I'll help you avoid these two mistakes with two questions:

1) Do you want to build visual things, stuff that people are going to look at and use? As an example, think about all the things you interact with on Facebook or Twitter or DEV.to.

And 

2) Do you want to work with servers and terminals and databases? This is harder to think about since you don't really experience that stuff as an end-user. The short-cut I'd use is if you aren't that interested in what I described in the first question.

If you answered yes to #1 and no to #2, pick JavaScript. If you answered no to #1 and yes to #2, pick Python. If you answered yes to both and are equally excited about both, flip a coin: heads for JavaScript, tails for Python. If you answer is no to both questions or you're really unsure, I'll recommend Python.

JavaScript and Python are both extremely popular, have large communities, and are (relatively) easy to learn. 

For Question #1 stuff (Front-End development), JavaScript reigns supreme and even though the work you'd be doing for a company will likely be with React, Vue, or another framework, JavaScript skills are fundamental for your success.
<img alt="JavaScript is King of Front End" src="https://dev-to-uploads.s3.amazonaws.com/i/u7hbhhoczd4780a0fc5s.jpg" width="50%"/>

For Question #2 stuff (Back-End development), Python does a great job with Django and Flask. It's also used all over the place for things like machine learning and data analysis.
![Python is King for not Front-End](https://dev-to-uploads.s3.amazonaws.com/i/fu4lu11ldthi68ft7tv7.jpg)

For JavaScript, I'd recommend learning the basics first. How? Well, I'd Google "Learn JavaScript" and pick one of those to start with (Google your problems is a core skill you want to start working on now). Then, I'd jump into [JavaScript30](https://javascript30.com/).
[![JavaScript 30](https://dev-to-uploads.s3.amazonaws.com/i/q099f039codzv9kswp8q.png)](https://javascript30.com/)

For Python, I'd recommend going through [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/), a book that teaches you Python basics and then has you build some simple automation scripts.
[![Automate the Boring Stuff with Python](https://dev-to-uploads.s3.amazonaws.com/i/yjvrvpyy13e8a3nq0ey2.jpg)](https://automatetheboringstuff.com/)

For either, it is key to get started and to get into the habit of **Learning by Doing** which is what I'll talk about in my next post.