Skip to content

Instantly share code, notes, and snippets.

@AlexMercedCoder
Last active January 3, 2022 15:02
Show Gist options
  • Save AlexMercedCoder/70bdea680e1afeffd288ba9e93380925 to your computer and use it in GitHub Desktop.
Save AlexMercedCoder/70bdea680e1afeffd288ba9e93380925 to your computer and use it in GitHub Desktop.
Self-Taught Developer Road Map

Self-Taught Web Developer Roadmap

Job Hunt Preface

You job hunt is something that is concurrent with you building your knowledge and experience. Read the following to know what you need to have prepared to start applying for Jobs.

  • Read this Article on Building your Developer Brand
  • A resume targeted towards development jobs Video 1 - Video 2 -Video 3 - Video 4
  • Create a portfolio site that makes it easy to find your projects, your linkedin profile and your github profile
  • Write a portfolio letter to include with resume that links to your projects and explains what they demonstrate
  • Write a references letter with references and why they matter (only include if requested)
  • Write a custom cover letter for each job application that answers
    • What you find interesting about this company
    • What experience or skills do you have relevant to the job
    • Address that you are looking for a company to grow with (companies fear people who join and leave quick)
    • What qualities you have that make a you a great candidate (you love learning, you love problem solving, etc.)

Goal 1 - Learn Your Tools

Regardless what field you go into (backend, web, data, etc.) there will always be a need for an IDE, Terminal/Bash and Git so getting familiar with these tools is always a good idea. Below are some resources to get more familiar.

The BASH Terminal

The bash terminal is the default on Mac on Linux/Ubuntu operating systems, if using windows you should download git-bash and use that as your primary terminal or even better install Windows Subsystem for Linux and use the ubuntu terminal. Below are some videos for how to navigate the BASH terminal.

Main things you want to be comfortable with BASH:

  • how to know what folder your in pwd
  • how to switch folders cd foldername
  • how to create folders mkdir foldername
  • how display files and hidded files ls and ls -la
  • How to create SSH keys, this will make using git MUCH EASIER ssh-keygen
  • how to display contents of a file cat filename

The IDE/Editor

This is the tool where you'll write all your code. I recommend using VSCode it has a lot of useful features and keyboard shortcuts and a large library of extensions that make easy to use with any language.

goals with Visual Studio Code

  • learn useful shortcuts for having multiple cursors, moving lines of text, how to access the command pallette
  • learn how to open a directory in VSCode
  • Learn what the bar at the bottom is telling you, gives you lots of useful info.
  • How to install and uninstall extensions

Git & Github

Git is software for tracking versions of files, this is the most important tool when working on a developer team. It allows us to track who changed what code when, manage multiple versions of the same codebase, etc. Github/Bitbucket/Gitlab are online platforms for storing a copy of your git repositories online. Learning how to use Git and Github.com is a MUST as it is key for teams and key to deploying modern applications.

Goal 2 - Learn HTML & CSS

HTML and CSS are the foundational building blocks for describing the current visual on a web page, HTML describing the structure of its content and CSS describing its aesthetic. You'll want to get comfortable with HTML and CSS as much as possible.

How to Practice, by attempting to replicate the following They don't need to be carbon copies, but the goal is to replicate the general placement and shape of content using HTML and CSS Positioning (Grid, Flexbox).

-Advice on Building from a Mockup like those above

Goal 3 - Get Great with Javascript

You want to be rock solid with Javascript and basic programming principles. The Videos below should help you get familiar with javascript.

Metrics to Finishing this Goal:

Goal 4 - Learn how to work with APIs

Learning how to interact with third-party data using APIs is integral to being a web developer as every websites data must pulled from several different sources then displayed via javascript. Contentful is what is known as a Headless CMS where you can retrieve and add data via their API. Watch the videos below to learn about making API requests and follow the build to make a Trivia Game using Contentfuls API. (Feel free to create others apps using other APIs and Headless CMSs)

Goal 4.5 - Node

Before going further you'll need to install NodeJS if you haven't already. You should get familiar with it so here is a video about it:

Goal 5 - Learn a Frontend Framework

There are four main Frontend frameworks, once you learn one the others are easy to Learn. Ranked from easiest to hardest to learn.

  1. Svelte
  2. Vue
  3. React
  4. Angular

Ranked based on size of job market demand for the frameworks...

  1. React
  2. Angular
  3. Vue
  4. Svelte

Which you choose as your first framework is up to you but whichever you choose focus on being very comfortable with it and then later learn a second one to see how the ideas are similar between them. Below are playlists for learning each of these frameworks.

Also, to generate new React/Vue/Svelte projects use the Vite project generator npm init vite then just select the framework you want to create a project in. (use the angular cli for angular)

Your Goal to Move On:

  • Recreate a Todo List and the Contentful Trivia Game using the Framework you chose

Goal 6 - Working with Javascript on the Backend with Express

Backend code is code that isn't run in the users browser but on a server. NodeJS allows to write Javascript code that doesn't run in the browser so we can use javascript to build backend web servers. ExpressJS is by far the most popular of the Node backend frameworks.

To Complete Goal 6:

  • Rebuild you todo list twice using express and mongodb

    • once using express with EJS templates (or any templating library)
    • once by making an API with express then making a seperate frontend application with a frontend framework to consume the API
  • Rebuild your trivia game except replace Contenful with Express/Mongodb

Goal 7 GraphQL APIs

In the express videos you probably learned how to build a RESTful API, but growing in popularity is GraphQL APIs. Watch the videos below then rebuild your todo list and trivia game using a GraphQL API instead of a REST API.

Goal 8 - Learn a Second Language

Head over to devNursery.com and look at one of the playlists for a second language. Learn the basics of the language, how it's third party library ecosystem works and at least one backend framework in the language (that's right, rebuild your todo list and trivia game with it).

Recommended Langauges with Backend Frameworks: Python (Django, Masonite, Flask, FastAPI), PHP (Laravel, Slim, Symphony), Ruby (Rails, Sinatra, Hanami)

Goal 9 - Learn Typescript

While Javascript dominates web development, Typescript, which is a superset of Javascript is becoming more and more the way we create scalable javascript. Watch the videos below to learn more about Typescript on the frontend and backend, and then of course rebuild your Trivia Game and Todo List.

Goal 10 - Portfolio Projects

You want to create 4 portfolio projects, each should use different stacks. Like a good default to go with:

  • 1x Project where you create data on Contentful (or other headless CMS) and write a Frontend that uses contentfuls api to retrieve and add data.

  • One project that uses a backend framework with templating (express with EJS, rails with ERB, Django/Masonite with Jinja, Laravel with Blade) that uses a database.

  • One project where you build your own API (deploy to heroku) and then seperate frontend application (deployed to Netlify)

  • A version of of the above type of projects that makes use of your second language.

Bonus things you can try on your projects

  • Use a GraphQL API
  • Use Authentication
  • Use one to many or many to many relationships

Note: Keep the apps simple, your first few apps should literally just be a listing app where you can add, edit, update and delete something.

Example: Meal Tracking app where you can add, edit, update, delete meals (you can literally replace meals with anything)

Goal 11 - Metaframeworks

You want to start learning to build apps with a metaframework built on top of the frontend framework your familiar with.

Framework Metaframeworks
React NextJS, Remix, BlitzJS, GatsbyJS
Svelte SvelteKit, ElderJS, JungleJS
Vue NuxtJS, Gridsome
Angular Angular Universal

Build an app of your choice with the framework.

Goal 12

Learn how to create a mobile apps using the following frameworks:

Framework Mobile frameworks
React React Native
Svelte Svelte Native
Vue NativeScriptJS
Angular NativeScriptJS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment