The entry-level (junior) full-stack software engineer’s guide
In my experience as a mentor, recruiter, and trainer of juniors for the last 10 years, I’ve often observed that entry-level juniors with no experience at all are eager to create a website portfolio.
I think it’s a big mistake. For me and for junior engineers it’s a bit of a waste of time.
Rather than copying & pasting stuff from the web and creating pseudo projects that don’t demonstrate anything, here’s a guide that will let you start your career out on the right foot.
JavaScript
Become familiar with the language’s foundations. Learn how variables are declared, the language primitives, how functions, objects, and arrays are used in JavaScript, understanding async behavior, promises, async-await, async control flow, etc.
Find out what the language data types are and how to use them. Discover how design patterns can be used to solve problems.
Here are some useful books:
HTML
Find out what HTML5 tags are, what semantic HTML is, forms, accessibility, and web API platforms.
Here are some useful sites for you to check out:
CSS
Learn about the box model, specificity, display types, and cascading in CSS. Try implementing the same layout using different methods, such as flex or grid.
Here are some useful websites:
Github
Get an account on Github and create your profile in a markdown file. Include one or two small projects that demonstrate your coding skills.
Add your profile readme to github, here’s github’s docs on how to do so:
Open Source Contribution
Powerful parts of the web are its eco system and thriving open source community. You can contribute to many popular projects that are eager for contributors. While it may sound intimidating, you have a lot to contribute and an opportunity to learn and advance during the process.
Helping with documentation is a great way to learn about those popular and trending techie things you heard about, fix some bugs and even release some “simple” features.
Blog about your knowledge and progress
Take on all the challenges above and blog about them. The better you understand what you have learned, known and understood, the more you can show others your viewpoint on those relevant subjects. And remember, the most effective way to learn something is by teaching it to someone else.
I’d love to hear your thoughts, suggestions, and improvements!