It didn’t come easy, but it did come very fast in my opinion. Could you become a doctor, mechanic, engineer or whatever higher paid profession in ~6 months?.. I don’t think so! Let’s begin!
- FCC challenges are very good to INTRODUCE you to different technologies and give you a proper path to follow. My biggest issue, in the beginning, was that I didn’t know WHAT to learn. FCC helps A LOT with that!
- Don’t limit yourself to one resource. Do FCC stuff, then watch some youtube videos - there are some great channels with tons of content. If you’re still uncertain, buy a course on Udemy (it’s only 11$).
- What worked for me is “staging” the learning. For example, I just learned ES6 arrow functions and promises. Instead of moving on with the course (and forget the thing I learned before), I build some small project where I’ll use arrow functions and promises throughout the whole project for it to “sink in”.
- Use FCC forum, coding Discord, and Slack channels, coding Facebook groups, Stackoverflow and many more. Put yourself out there. Ask questions, participate in debates, help people. Even if you’re just starting out, you maybe came across clip-path techniques in CSS and some other guy asks the question about it! Teach him! BY TEACHING OTHERS YOU’RE NOT ONLY GIVING BACK TO THE COMMUNITY, BUT YOU WILL UNDERSTAND THE MATERIAL YOU’RE TEACHING MUCH BETTER!
- I know it’s been said many times but it’s so true. CODE EVERY DAY!!! Even if it’s just a minor tweak in CSS that took you 20 minutes. Be consistent. Ever since that October 2017, I didn’t skip a SINGLE DAY without code. Most of the time I was learning/coding/reading for 8 - 10 hours a day.
- When you get stuck on something for way too long, don’t hammer it. Give it a break, do something else. Even the smallest break of 10-15minutes can make a big difference in noticing that extra “;” in line 147.
- This may sound stupid to you, but try it anyway: Ask yourself questions and explain them to yourself. Explain them as deep as you can, just like you’re teaching somebody. Do it often and believe me, you’ll realize how much you don’t know and what you need to learn better!
Aight, you finished most/all of the FCC, watched some Youtube videos, did a course or two on Udemy and feel like you should create a proper portfolio site to WOW your future employers. So, what do you do? You put all the FCC and other learning projects into it, right? WRONG! By doing that, you’ll be the same as other 1923213 junior devs and you DON’T WANT THAT! Put yourself in employer’s shoes. Will they need a dev that knows how to build calculator, weather app, ToDo app…? I’m telling you they DON’T! You want to show that you can build sellable things…
- Your portfolio website. It’s your very brand, the very first impression they get. If you make it look good, you can impress them so they might turn the head on some mistakes you made in your code. Take your time on this one. Plan ahead. Don’t be afraid to spend the whole week just searching for ideas and making some wireframes/prototypes. Send a clear message that you know this stuff very well. Don’t make some weird UI so they can’t find a button that links to your social media. PUT CONTACT INFORMATION RIGHT IN THEIR FACE!!! Don’t measure your skills by putting progress bars or 8 out of 10, or 85%. If you don’t know something well enough to be able to build an average project with it, DO NOT LIST IT!
- Digital agency presentational landing page. Show off that CSS animations skills. Make it look out of space, modern, convincing. Show them that you can build a clean and trendy UI. If you are not that creative and cannot think of something that looks good, “borrow” ideas. Make sure not to blindly copy stuff, but use it as a reference.
- Fashion website with products split by categories/type/whatever. Here you can show that you know how to deal with the data. Implement several sorting methods (name, price, popularity etc). Use that flexbox/grid to it’s fullest potential. Create frontend logic that filters products based on the category.
- User management dashboard (go an extra mile and connect it with Google Firebase for the real-time database). Show them that you know how to make HTTP requests to get, post, put, patch, delete entries from a REAL database. LocalStorage/SessionStorage/JSON is cool, but companies do not use it for their products. Important thing is to deal with errors and show them that you care about user experience and know how to catch errors and display them properly.
- Quiz with user authentication (add google oAuth as an extra feature), ladder and custom quiz creation feature. Make it so the data persists by saving it on some of the free database services, Firebase being the one. Here you can show your logic awesomeness by implementing winning/losing conditions, dealing with the score for each question answered (maybe add bonus points if a user answers 3 questions in a row, and some more extra if 6 in a row… etc). Be creative!
- Build a couple HTML email templates. It’s easy peasy and many companies are using the email advertising and might give you a plus.
- Build some simple Google Chrome extension. For example a notification icon for all your emails. It’s not hard to build, all you need to do it search for email API.
For every project and everything you plan to present to your future employers, make sure to have this checklist:
- It looks good - gradients, shadows, reflections, animations, HD images… etc
- It is fully responsive - learn those media queries well, you will use them EVERY DAY!
- The code is documented - develop a habit to write comments for every logical function(or group of functions) in your code. This one is very important, practice it and other developers that will work with you will appreciate it.
- Push your code on some version control service - GitHub, GitLab, SVN etc. They like to see it all nice and green!
- Test your projects before adding them to the portfolio - If you’re not familiar with Mocha, Jest, Jasmine etc. Do a manual testing by just using your app in a weird way like try pressing back button while answering the 3rd question in your quiz app.
You probably think that these projects are hard and that you cannot build it. You are probably right. And it is intended. Remember that we are problem solvers. We encounter new and unknown issues every day. Prove it to yourself that you’re up for the task. Go outside of your comfort zone, challenge yourself and feel amazed, satisfied and proud once you finish it - and you WILL finish it!
Don’t be afraid to fail. With every failure, comes the experience. You will maybe try 5 different ways to extract a deeply nested value from an object and 6th will do the magic. But now you didn’t only solve your problem, you also learned the other 5 methods that you can apply in some other situation!
APPLYING & INTERVIEWS
There’s not much to say about it. It’s a numbers game lads! You did your part by building a rich portfolio. You learned a lot. You’re sending the right message. But you still don’t get any response or you keep getting rejected.
Don’t worry. Remember that many companies put job posts just to see the demand and check salary ranges. Also, you have to take into consideration that you’re not the only one applying. Maybe there was someone better or somebody offered to work for less money. There are many factors that impact the decision that you just have no control over.
Your job is to stay focused on your goal, keep learning every day and keep applying to jobs. With every failed interview you’ll learn something new. At least you’ll know what you don’t know, so you can learn it! As Denzel Washington said: “Fall seven times, get up eight!” Keep that mindset and be confident.
One of the biggest mistakes I’ve seen on resumes and portfolio sites is the title. It says: “Some Name - junior Frontend Developer”. Don’t put yourself into that basket. Let them decide at what skill level you are. Don’t limit yourself.
Don’t spend too much time explaining where did you learn from and how did you do it, unless they ask of course. Tell them about problems you encountered in your projects and how did you solve them (good thing is to write them down during project creation or you might forget it).
What I learned from my interviews, and boy I did over 50, is that they’ll smile/laugh a lot to make you feel comfortable. To make you think about how you are friends. And then they’ll use that against you to get some information that you wouldn’t share otherwise. Play their game but be smart.
Pardon my bad English, I hope that this wall of text was informative and will help you not make the same mistakes I did. BIG THANKS to Quincy Larson and FreeCodeCamp community for educating, directing and motivating me. You guys made me change mine and my family's life for the better!
If any of you need assistance, code review, advice… just about anything, do not hesitate to contact me.
Wish you all best of luck in your job hunt. Stay strong!