# Land a Software Job in 6 Months!

> I have JS, PHP, HTML & CSS, but where would you suggest I go next? There’s so much to learn and it’s very confusing. I’m really scared of getting things wrong. Or asking for a road map if you like. 

This is a hard question to answer. You need to ask yourself, "What are my goals"?
- Do you want to be able to build apps? Web apps? 
- Do you want to design very pretty-looking websites? 
- Do you want to want to make cool websites and get them to be on the first page of Google (SEO)? 
- Are you interested in AI or ML? Do you like databases?

Once you figure out your goal(s), you can put a plan in place. I can help you figure out what steps you should take forward! All you need are some stepping stones. We can create a road map on how to accomplish your goal. Here is a simple roadmap for becoming a web application developer. 

🐦 Follow me on [Twitter](https://twitter.com/ninan_phillip) to see even more content! 🐦

## !IMPORTANT!
This is a high-level roadmap. This is not intended to turn you into an expert. This is ONE of MANY ways to HELP you land an entry-level web developer job. I have close to a decade of experience writing code. I regularly interview entry-level developers. If you were to complete each of these steps, absorb the material, and be able to speak intelligently about these topics I would be impressed. Take this advice with a grain of salt.

## 1. Learn HTML and CSS
[FreeCodeCamp](https://www.freecodecamp.org/news/the-html-handbook/) is a great resource for this.  HTML and CSS is the foundation for any web application. Allocate 2-3 weeks for this.

## 2. Recreate 3 Popular Websites
Develop a landing page(s) using only HTML and CSS. [Apple](https://www.apple.com), [GitHub](https://github.com), and [Netflix](https://www.netflix.com) are great choices! Understanding how popular websites are built will allow you to follow great patterns when you develop your own. Allocate 1-2 weeks to accomplish this.

## 3. Learn JavaScript and NPM
[FreeCodeCamp](https://www.freecodecamp.org/news/learn-javascript-full-course/) and [MDN](https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics) are great resources for this. All modern websites utilize some sort of JavaScript framework. [Node and NPM](https://www.freecodecamp.org/news/tag/npm/) are tools used to work with these frameworks. They allow you to use libraries and tools that someone else has already written! Allocate 2-3 weeks.

## 4. Recreate 2 Popular Websites with JavaScript
Pick 2 complex projects and recreate their basic functionality using JavaScript, HTML, and CSS. [Soundcloud](https://soundcloud.com) and [Twitter](https://twitter.com) are great examples. Allocate 2-3 weeks.

## 5. Learn How Computers and the Internet Works
Search [YouTube](https://youtube.com) and [Wikipedia](https://wikipedia.com) and focus on the Application layer, HTTP, and how modern web apps work. You need to understand the basics of how web applications communicate. Allocate 1-2 weeks.

## 6. Learn Git and Deploying
All software projects should use source control. [Atlassian](https://www.atlassian.com/git) has great git tutorials. Deploy your projects to [Netlify](https://www.netlify.com) or [Vercel](https://vercel.com). Allocate 1-2 weeks.

## 7. Learn NodeJs and Express
Use [official tutorials](https://expressjs.com/en/starter/installing.html), then [YouTube](https://youtube.com) and [StackOverflow](https://stackoverflow.com) if you don't understand something. I have a getting started tutorial [here](https://blog.phillipninan.com/getting-started-with-expressjs-in-5-minutes). Express and Node are great frameworks for build web applications QUICKLY. Allocate 2 weeks.

## 8. Learn ReactJS and Redux.
I am a big advocate for Angular. But I think ReactJS is in the [biggest demand right now](https://javascript.plainenglish.io/top-5-in-demand-javascript-frameworks-for-front-end-development-in-2020-a59c4340d082). [Kent C. Dodds](https://epicreact.dev) has a great course. [Udemy](https://www.udemy.com/topic/react/) also has some great courses. Allocate 3 weeks.

## 9. Learn GraphQL
Use [official tutorials](https://graphql.org/graphql-js/) and YouTube (Udemy if needed). Then transfer your created apps to GraphQL. It should be relatively easy to migrate a small project to GraphQL, especially if you've gotten this far! Allocate 1 week.

## 10. Learn TypeScript
Learn it using [official docs](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html), YouTube & Udemy if needed. After, transfer all created apps to the TypeScript. I have written a [great article](https://blog.phillipninan.com/how-to-convert-expressjs-to-typescript) describing how to convert ExpressJS to TypeScript. Allocate 1 week.

## 11. Build 2 Complex Applications
Pick a popular service and recreate the core functionality using learned stack: ReactJS, [React Ecosystem](https://www.toptal.com/react/navigating-the-react-ecosystem), GraphQL, TypeScript, and ExpressJS. Then you will deploy it and put it on your resume. Allocate 2-4 weeks.

## 12. Create a resume, LinkedIn profile and apply for jobs
It should take you 1-4 weeks to land a job.

## Conclusion
This should take you roughly ~6 months. This roadmap is not meant to make you an expert. But it should make you competent enough to land an entry-level software developer job. If you complete this roadmap I am very confident that you will be a very marketable developer! Good Luck! Reach out to me for ANY help!

🐦 Follow me on [Twitter](https://twitter.com/ninan_phillip) to see even more content! 🐦

This roadmap was inspired by [Nick Bull](https://twitter.com/nickbulljs/status/1358326430204125185)!

