How to become a Web Developer
October 31, 2020
Over the years I’ve gotten questions from a number friends on how to get started as a Web Developer. I’ve put together all the links and advice I’ve shared, and created this post.
If you want to just get stuck in go to https://www.freecodecamp.org/ and off you go. If you want to know more read on.
There are 3 main ways to learn coding:
- Self Taught - online learning
- Online/In Person Bootcamps
- College Courses
This document focuses on the Self Taught route. I’ve included some links to learn mode about bootcamps.
The route you want to follow will depend on your circumstances.
Bootcamps are generally the fastest way to get job ready, but are costly. They tend to be more specific than college courses.
College courses, give you a more general grounding in many different computing concepts but take longer. They can be cheaper or more expensive that bootcamps depending on your location.
Self learning is cheaper but will typically take longer. It will suit some people but not others. The challenge with self learning is often sticking to a schedule as there is less structure.
What Language to learn?
In short it doesn’t matter so much which language you learn, its more about learning the concepts. Certain languages are easier than others. Certain languages are more used than others. Some popular languages are:
- JavaScript
- Python
- c#
- Java
- GoLang
I recommend starting out with JavaScript. You can use it for websites, for the frontend code and also for the backend server code. Its flexible, relatively easy to learn and widely use.
Below are links, resources and tips on how to become a web developer. These all focus on JavaScript, CSS & HTML.
FreeCodeCamp
This is a great place to start. It is project based, has a great community to turn to if you need help. The curriculum is great to keep you on track. You will likely need to supplement the curriculum with other learning resources.
Following the curriculum is a great start. Along the way you will have questions. Below are a few places to get those answered.
FreeCodeCamp Forum
This is great when you stuck on some small issue or need some advice on learning resources. People are generally friendly so post up here as much as you can
http://forum.freecodecamp.org/
Stackoverflow
This site is used a by beginners and professional developers alike. Its a great place to search for specific errors. If you post here try an full code snippet and a details explanation of your problem.
Communities
Here are some handy subreddits. Try not to get sucked into them too much. Some of the info on these will not be helpful until you’re a few months in
https://www.reddit.com/r/learnprogramming/ ⇒ Good for questions on where to find learning resources
https://www.reddit.com/r/webdev ⇒ Good for career advice from people currently in the industry. Good for reading about trends in the industry
https://www.reddit.com/r/cscareerquestions ⇒ Good for questions on interviewing/ starting your careers in software development
https://www.reddit.com/r/javascript/ ⇒ Good for finding out about
dev.to
Good place to read articles. Handy if you want to do some dev stuff but need a break from writing code.
Chingu
https://chingu.io/plans ⇒ Not sure how good these are but worth a look. You get linked up with others who are learning to code and do a project together.
Learning Resources
MDN
JavaScript encyclopedia. Great for referencing functions and syntax. https://developer.mozilla.org/en-US/docs/Web/JavaScript
Web Bos
One of the best creators of Web Development courses out there. Recommended once you have the basics of HTML, CSS and JavaScript down. https://wesbos.com/courses
- Beginner JavaScript
- What the Flexbox
- CSS Grid
- ES6 for Everyone
CS50 Introduction to Computer Science
This is Harvards intro to computer science. Haven’t done it myself but it gets high praise online. I watched the first couple of lectures and they seems very good. It would be a good compliment to freecodecamp as it covers some of the more lower level computing concepts that are probably glazed over in freecodecamp. I would wait to do this once you’ve a few months under your belt. The lecturer is very good.
https://www.edx.org/course/cs50s-introduction-to-computer-science
https://www.youtube.com/user/cs50tv
One of the lads in work did the course and did a bit of a write up on it:
https://medium.com/synapse/learning-computer-science-online-3d16cbcd73a5
Full Stack Job Ready Curriculum
This is like freecodecamp++. Its a big list of resources that is very comprehensive. Some of it is probably unnecessary for a Junior position. You could go down a rabbit hole here, but there are some good links and ideas for projects there.
https://github.com/P1xt/p1xt-guides
Udemy
Udemy has a huge amount of courses.
- They are cheap (you can always get them for less than $20 if you visit using incognito mode in chrome).
- The quality varies a lot. I find that they are good to get a basic understanding of stuff.
- Once you want to dive deeper you are better off doing more detailed courses like the ones from Wes Bos
Here is a list of good intro courses: https://forum.freecodecamp.org/t/the-best-udemy-web-development-courses-top-free-courses/188730
Front End Masters
This is a pricier option. They vet their instructors, so the quality will be higher than Udemy. They have learning paths for beginners as well as more advanced courses.
Bootcamps
These guys have made their curriculum available for free:
List of online bootcamps
https://learntocodewith.me/posts/online-coding-bootcamps/
Tools
Online Editors
CodeSandbox
One of the best online editors. Has lots of helpful features, great for JavaScript. Choose the Vanilla
sandbox to start off with
CodePen
Good for CSS and HTML but is missing a lot of features that codesanbox has.
Hosting
Cheap and easy platform for hosting websites: https://www.netlify.com/
Easy backend hosting: https://www.heroku.com/
Backend & Front end hosting: https://vercel.com/
Desktop Software
Its best to start off with online editors, but once you get to the stage of developing on your desktop these are a good set of tools to use:
VSCode - https://code.visualstudio.com/
iTerm (Mac or linux) - https://www.iterm2.com/ ⇒ for running terminal commands
Source Tree - https://www.sourcetreeapp.com/ ⇒ git desktop UI
Notion - notion.so ⇒ note taking and organization
Books
You Don’t Know JS Yet - https://github.com/getify/You-Dont-Know-JS
Eloquent JavaScript - https://eloquentjavascript.net/
The Pragmatic Programmer - https://www.amazon.co.uk/Pragmatic-Programmer-Andrew-Hunt/dp/020161622X
Effective JavaScript - https://www.amazon.co.uk/dp/0321812182?tag=hackr-21 . (advanced)
General Tips
- Learning to code takes time. Prepare yourself for the slow burn. You will get stuck for HOURS on a single problem. This is normal.
- If you get stuck for a long period of time, step away, take a break and come back to the problem. If you still want to work on something switch to a different section, or do some reading.
- Imposter syndrome will hit you. Everybody doubts themselves. You got this https://www.freecodecamp.org/news/what-is-imposter-syndrome-and-how-do-you-overcome-it/
- Here are some stories from self taught developers https://forum.freecodecamp.org/c/career/299/l/top