Becoming a Developer in 2022 - Expectations and How

Alex Merced - Jan 22 '22 - - Dev Community

Your Mission if you choose to accept it

So you want to change careers to become a developer, this is a very wise choice. Being a developer is in high demand and that's not going to change as the need for new applications for every aspect of our lives are needed. This blog post hopefully will frame the path to becoming a developer to keep expectations realistic and the path clear.

Join the devNursery.com slack channel to meet other aspiring devs for mutual support and encouragement

Setting Expectations

Think of a skill of having 1-5 stars of competency, and think of earning a star as investing 2000 hours of practice and learning (equivalent of 1 year full time work). This is why you always see (5+ years of experience) on job ads cause they want the unicorn master of the skill that has invested 10,000 hours of time into a particular skill (considering we need to balance many skills, this is rare and non-existant at the entry level as much as job ads wish it so.)

But you do need at least one star on your belt before you're likely to have the skills and knowledge to secure your first role (maybe less, but let's keep expectations realistic). So go into this thinking about hours, not days, not months. How much time can you put in to reach that 2000 hours.

Step 1 - Dip your toes into programming

Before you make any big investments, you want to get some exposure to development to make sure this feels like a right fit and also some prep will make an investments in live instruction more valuable.

I would undergo the following which should eat up the first 100 hours of your journey.

(Note: This guide will mainly result in your of learning web development skills, they are great entrypoint with lots of demand, but the concepts, tools and knowledge are easily portable into other spaces like mobile, data, blockchain, etc.)

Step 2 - Next step

At this point you'll have a good foundation in what writing code feels like and many of the basic concepts, the question is what is the next step. You'll have three choices.

  1. Enroll to get a Computer Science Degree - This is by far the most expensive choice and is more practical if you want to do something very low level (hard) like working on operating systems or creating new databases and data tools as the in-depth understanding of how the computer works and data structures will play big in designing software where speed is top priority.

  2. Enroll in Bootcamp - This is a MUCH more affordable option which is about 15-25 thousand dollars for a 3 month program with about 500 hours of in class time and probably another 200 hours of solo homework and project time. This is a great option for most people as it provides the structure and accountability many won't be able to provide themselves along with providing job search guidance. Bootcamps vary in quality, having been and student and an Instructor at General Assembly I would highly recommend them as an option but completing all the tasks in the first step of this guide will go a LONG way in maximizing the value of the bootcamp experience. A bootcamp can reduce the total time needed for the first start to about 1500 hours because of the time saved in having a focused path.

  3. The self-taught route is a viable path but you need to be very self-disciplined to make sure you put in the time and you'll need to put yourself out there to get experience in things like team work and working with best practices. Another challenge is that the girth of education materials out there is vast, but the range of quality is vast, and some of the quality stuff can quickly go stale cause of how the industry evolves. Being self-taught requires discipline, good judgement, and determination. Expect you'll need the full 2000 hours to get to 1 star status, but no costs.

Step 3 - What you need to learn

Regardless which path you choose, there are some things you really need to make sure your learn and get comfortable with along the way. I'll list them below along with any videos I have to teach that concept.

Working with the Bash Terminal

Most web servers run the linux operating system and don't have graphical interfaces (to save resources), so the only way to talk to most web servers is through the command line, usually using the BASH shell (shell just means a command line environment). Since this is the case you'll find many tools and programs that will make your life easier as a developer revolve around terminal, so you MUST get comfortable with it. If your on Mac your terminal uses ZSH which is the same as BASH, if your on windows download the git-bash software.

Learning an IDE (Integrated Development Environment)

Having a good editor/IDE and learning how to use it will make your life a lot easier when writing code. There are many out there such as WebStorm, Atom and my personal recommendation, Visual Studio Code. You can use VSCode with any language and it has a robust set of tools, the videos below I'll show you the basics of working with VSCode.

Git and Github

Git and Github can be hard to understand and work with at first, but it is arguably along with Bash the most universal and important tools you'll use. Whether you are working in Web, Mobile, Data, Blockchain, etc. you will regularly be working with Git, Github and Bash so make sure you get comfortable with these (overtime) but do not think they are something you can ignore.

Deployment

Your web applications can't be used by anyone outside your computer unless you deploy them somewhere to be publically hosting.

For frontend applications that run in the users browser you can use Netlify, Vercel, Render and more.

For backend application, Heroku will be your main option until you become more seasoned.

Programming Concepts

My recommendation is to focus on getting comfortable and good with javascript but I have many playlist for learning different lanaguages at devNursery.com. Whatever language you learning what matters is getting a firm grasp of the following concepts which just means writing code and experimenting as you learn.

  • What are datatypes, why do they matter
  • Creating variables, the scope of the variables
  • Math Operations (adding, subtracting, etc. with numbers)
  • String operations (how to reverse, split, manipulate strings)
  • Boolean operations (how to as true/false questions in code)
  • Control flow (how to use boolean expressions to branch code with if statements and loops)
  • Collections (how do we bundle multiple datapoints into ordered and unordered data structures)
  • functions (what are arguments, what is a return value, what is a pure function, first clas functions)
  • Classes (What is object oriented programming? What are are constructors, properties, methods)

Learn the web frameworks in the language you choose to focus on and create and deploy a few web application as you get more comfortable with the language.

Here is a list of language and the web frameworks to learn in the order you should learn them.

Language Mini-framework to learn first Robust framework to learn second
Javascript/Typescript Express, Koa or Fastify NestJS or FoalTS
Python Flask or FastAPI Django or Masonite
Ruby Sinatra Ruby on Rails
PHP Slim Laravel
GO Echo or Revel Buffalo
Rust Actix Rocket
Java Spring Boot or Play
Kotlin Spring Boot
Scala Play
Groovy Spring Boot
Swift Vapor or Kitura
OCAML Dream
C# .NET

Computer Science

There are several things you want to know about how computers work that will make your life a lot easier.

MY COMPUTER SCIENCE PLAYLIST

  • What is RAM how is it different than a hard drive
  • What is TCP (Transmission Control Protocol)
  • What is HTTP (Hypertext Transfer Protocol)
  • How does the web use TCP and HTTP
  • What is an internet browser
  • The Http request and response cycle
  • Types of Data Structures
  • Types of Design Patterns
  • Types of Algorithms

Step 4 the Job Hunt

So your at the 1500-2000 hour mark, you've deployed some applications, now it is time to begin the job search. Here are some resources to help you hit the ground running.

Conclusion

Bottom line, budget two thousand hours of learning, practicing and building things and you should be on your way to becoming a full-time developer.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .