I just got a Front End Dev job. And I have freeCodeCamp to thank for it…
freeCodeCamp has taken me from a relative novice (basic HTML and Wordpress) to being able to use React, ES6 and Webpack for my job application technical task. All in 12 months. But it wasn’t easy…
It all began in October 2015 when I started logging onto FCC consistently and I am grateful to FCC for providing me the structure and challenges, as well as the community help, to make strides towards my goal. Although I have moved away in recent months, FCC has set the tone for my coding passion and I thank them for that. I would not have done this without FCC.
The last 4/5 months I have not been on freeCodeCamp as I had to embark on a journey outside the safety of FCC and Codepen in order to learn React, Webpack, ES6 and Git elsewhere (see my previous article on this). Those months were VERY intense and the BEST thing that ever happened to my learning. So again I actually thank FCC for not having the React learning section complete as I had to go out and learn so much more on my own that it allowed me to get comfortable enough with the skills to land a job starting in Jan 2017.
So why am I writing this article? To share a few insights, thoughts and tips since my last post(which was a while ago now). This is just a collection in no particular order to help inform you about the job hunting process I have experienced and the development process I encountered in coding. These are obviously my own experiences and so cannot be seen as Gospel for all coders in a similar position to me. Hope you get something useful from it :)
My experiences with searching for a job…
Point 1 — My interview process.
My interview process started with 40 min phone call with two people (one technical and one project). Discussion about my history, transferable skills, knowledge of working in professional dev environment, pros and cons of React and Node.
This lead the next day to a task that took several days involving a popular API and React as my main framework.
Upon completion, I was invited following week to interview with 3 people ( 2 technical and 1 project). This was a long 3.5 hour process that involved me speaking with the 3 interviewers about general interview questions (reasons for career change, how have I been learning etc) and personal profile enquiries (how will you fit in here, how do you communicate etc).
This then lead to me going and talking to 4 other people working at company (2 Devs, 1 tester and 1 project manager) to see how they work(JIRA, kanban, testing) and I could also ask them questions and I am sure their feedback was used to further test my suitability.
This was finally followed by a final half hour with 2 of the original interviewers from before going over feedback of my coding task with good bits and areas to address (I had to address a lot lol. But get used to it as a professional dev — work is open to scrutiny and only way we can improve).
Point 2 — The Job Market is pretty buoyant especially here…
On a similar note, one of the guys I met with at an FCC event and that I keep in contact with on Gitter also got his job a couple weeks ago on his first interview too for an SME. This doesn’t mean you are all going to get it first time and I was personally prepared to use this interview as a learning process for future interiews. Sometimes it’s just the way it works out but do not take this as the norm for everyone living in all areas. I was a bit surprised by getting a job so quickly after applying too.
Just to give you a full picture, I’ve also heard and seen things as I went on my path of attending Meetups and forums that it is getting harder to get positions even for bootcamp grads and there is definitely more competition for junior positions than a few years ago. But keep in mind this is small section of people I met and talked to who were perhaps applying to more ‘prestigious’ tech-focused companies. This is also to be expected given the rapid increase in the popularity of coding and the influx of coders. But then to counter this, I also know people working in tech recruitment who say their companies struggle to fill developer positions for months or find suitable juniors. The only common thread that I’ve heard in all of this is that once you get a foot in the door, get some experience and continue to develop your skills, then the sky is the limit in future..
EDIT – a final point I forgot to add which is a combination of conjecture on my part and things I’ve heard from others about job searching in Summer:
- Be aware of the time of year you’re applying. I am lucky I got something before Christmas but usually HR and recruitment will start to wind down towards Christmas and I definitely saw a drop off in jobs in the couple weeks I was looking in November. Keep in mind that there will also be a huge influx of CS graduates entering the job market and applying starting in the New Year onwards as we progress towards Summer.
Point 3— Pick your targets
I focused on SME businesses with less of a ‘hipster’ vibe that were looking for developers in and around the outskirts of a big city (London) as I felt the environment would be more suited to me as a junior and my personality, they would be more open to taking someone with less experience and I didn’t want to butt heads with bootcamp grads. The last reason may seem controversial but I have my reasons and I just want to say that I was about to start a bootcamp a couple years ago and so have no issues with bootcamps at all lol.
A recruitment event I attended in London in August really showed an explicit preference by almost all the companies at the event for bootcamp grads as their junior developers. I don’t have issues with this and self-taught programmers like us have to prove ourselves by going extra steps or manoeuvring around this. I didn’t want to apply to those tech heavy companies in Central/East London as I didn’t feel I could get as much of a look in against bootcamp peeps (although one recruiter had positive things to say about freeCodeCamp when I spoke with him despite expressing a preference for bootcampers).
Point 4— Learn about the professional development environment.
Learn about Agile methodology, sprints, scrum masters, Kanban, JIRA and other processes involved in professional work environment (like Slack for comms and GitHub pull requests etc). Doesn’t need to be massively detailed but a good overview is highly beneficial and I was asked about this a fair bit and was shown this extensively at my interview. They want to know how much you have cared to find out about working in communicative professional development environment.
Point 5— Own what you are.
Be honest that you’re self taught coder, relatively novice and looking for a junior position. In fact, own it. I did from the beginning. The right future employers will understand and appreciate it. Don’t try to bullshit them, they will see through you and your code in a second anyway.
I told my future employers outright I will need help and need a culture where asking is encouraged. The response to this question is very important for us future junior level developers — luckily for me they encouraged it and were VERY adamant about progression and helping and that other juniors were there already. If I had gotten an inadequate response, I wouldn’t have taken the role and I don’t suggest you do either — coding is hard enough let alone doing it professionally every day in a toxic environment. This will lead to many problems down the road.
Point 6 — Think of sites of which you love the aesthetics and/or the functionality.
This can lead to good discussions and more of an idea in your mind about which designs/functionality best represents you. I was asked about this and stumbled as I didn’t think of anything much beyond Medium (naturally).
Point 7 — Get some overview knowledge of unit testing/TDD/BDD.
I haven’t done testing in this sense myself either but I had a general overview. Companies like know that you have understanding of it as they may be implementing it now or in near future and I was asked about this in my interview. This kind of relates to the next point in all fairness but I thought I would put it as a separate concern too since it is not something novice coders look at too much.
Point 8 — Get an overview of EVERYTHING.
Get an overview of what APIs actually are, how HTTP requests work, BEM, task runners, module bundlers, designing sites for accessibility, box model of CSS, closures, scope, ES6 syntax like let, modules and lots of other things that you may be asked about. I have made a little revision document that I used to revise concepts. Feel free to have a look.
http://thatjsdude.com/interview/ https://ashleynolan.co.uk/blog/a-guide-to-front-end-interviews https://github.com…www.docdroid.net
Not many of these questions came up but they could have and I felt more confident having looked up these different topics.
Point 9 — Get your profile site made, put your Codepen code on GitHub and host the live previews on GitHub project pages or Surge .
I took care to make my profile site using React,ES6 and Webpack and it gave me something to talk about. And there were some big issues I had to overcome and that I still need to develop on in future (using react router for first time, passing data through routes, still haven’t sorted out re-rendering of pages on anchor tag scrolling on same page but different components). This gives you the ability to show you can reflect on your work.
Converting your Codepen projects to standalone projects uploaded to GitHub and hosting on Project Pages or Surge will be very good practice in itself. And you may be surprised how different your sites may look off Codepen especially if there are discrepancies with your code or styling…
Also, remember to use Google PageSpeed Insights and W3C Validator (although there are reasons against this validator being as useful nowadays too) to check all your projects. To be honest, some of my Codepen projects still need lots of adjustment as they were made in the days before using any linting or bundling/minification. Another reason to look towards life after Codepen…
Point 10— Once you get to point of being able to code well enough to apply for a job, focus on the personal aspects that will get you the actual job.
It seems in this industry, after you show you have the skill set from doing a technical task, then you won’t get questioned about your actual ability to code although you may get tested as to the extent of your knowledge (which is fair). The majority of focus then becomes how much of a team player you are and how willing you are to constantly learn as the tech evolves so much. That was the main tone of my second interview — they were really trying to figure me out and how well I fit in as human being in coding and in the team.
Point 11 – The FCC Front End Development section alone will not make you ready to apply for jobs (imho)
This will seem very controversial but I am being honest and this is the case when it comes to me . Though I know that many have gotten jobs before finishing the Front End section, I don’t think the majority of us will be in a good position to apply for companies, that have modern tooling/frameworks in their stack, with just the FCC Front End certificate and I’ll do my best to explain why…
The Front End section works solely on Codepen and has no take whatsoever on version control (comes in the Back End section), text editors, task runners/bundlers, writing websites in vanilla JS (no jQuery), styling/rendering discrepancies on different browsers and devices, Node (its in the Back End section as it technically should be, but its more prevalent now and is a bonus to learn for Front End. I got my job partly due to experience with Node).
This is the stuff that WILL get you the job as it is STANDARD for modern Front End development.
For me, the real learning came from having to figure this out BETWEEN the Front End Development and Data Visualisation sections! This is because FCC currently has no lessons for React and so you will have to go and look for yourself and every course and guide will lead you down a path of terminology that you will never have seen before. And it will be a STEEP path but traverse it you must if you want to do this professionally! At the end of the day, I did it and I know you can too.
FCC and others may say that what they have in their Front End section is technically all the aspects of front-end a coder would need to know and that all the version control, text editors, task runners etc are organisation/additional topics and preferences. That theoretically may all be true but employers won’t care less – there is a certain standard they expect nowadays and excuses like “Well FCC didn’t have it in the Front End section so I didn’t learn it” will not go down well.
Just go and look at a decent bootcamp syllabus and you will see that they all learn about Git, task runners, testing etc and use it extensively. You don’t want to be going in to interviews against bootcampers who will be much more prepared than you. You will stand no chance 😕.
The real meat of modern development is in learning how to, for example in 2016, use React with Babel transpiling the code from ES6 syntax with Webpack used to involve loaders to streamline your development process alongside Node. This will all seem like gibberish for those new to it but once you learn it in a few months you will understand the importance of it. This will open your mind to coding and the professional world and allow you to communicate with your future technical managers in interviews. Anything less will be difficult.
I really wish FCC would do one of the following:
- include all the tech stated above in their Front End section with courses provided and a guide on how to develop locally (or perhaps they will when they release their React learning section, in which case you can ignore this point 🙂). I know it’s easier said than done but the FCC team has already done such an excellent job and we as a community would have to help with code and/or donations.
- Or restructure their course layout so Node and Git is placed before/with the Data Viz section. They could then also provide optional links to third-party courses (such as Udemy etc) which already have excellent tutorials for getting set up for a professional dev environment (yes, they’re not all free, but in the meantime it would provide much needed direction for learners and produce more coders to help non-profits in the long run).
If FCC were to get this issue sorted, then I would say without reservation that the FCC Front End certificate is more than enough to get you a job.
I want to end this particular point and section on a more positive point and say this: without FCC, I wouldn’t even have had a clue about getting to the point of using React (or what React even was!!), Webpack, Node etc. FCC will improve and adapt over time and I know they will keep producing many more coders and do wonders for helping non-profits. Ultimately, FCC gave me the tools to go out and find my own way to get a development job instead of holding my hand the whole journey. And that is perhaps the greatest sign of an excellent teaching tool…
Edit — Having had a conversation with Tyler Cotton, I think I do need to say again that I am very aware that I am speaking in this article from my own little bubble of applying for jobs that required Webpack, React, Node etc and so I had to learn more complex web dev topics beyond FCC front end section. There are MANY jobs that do not require complex web dev tools such as with Wordpress agencies (although there may be design and PHP). I saw many of these when looking for jobs but I was only really applying for certain roles. My information only really extends to those looking for similar JS focused positions in and around a city like London. So, I do need to state that the FCC Front End certificate in many ways IS enough to get you some sort of job in web dev. However, since FCC promotes its ability to develop coders and the course culminates in developing full-stack projects in a professional manner for real organisations, I think it is beneficial to have an ‘advanced’ section which at least makes people aware of the more complex nature of web dev tools and frameworks.
My experiences developing my coding…
Point 2 — FCC was right about React.
React comes up a lot in job listings even for junior positions and having knowledge of React is definitely a bonus as it was for me. The company I will be working for will be moving parts of their front end to React in future. But remember there is a lot more to React as well – one thing I don’t know too well is the component lifecycle which is something I need to look at more as any course I looked at didn’t seem to cover it much.
Point 3 — Just enjoy the process and you may find what you really like
While I am not totally in love with React as of now (bear in mind I haven’t used Redux yet), I did get to learn that I do really really love the use of modules and ES6 syntax. You can use this experience and knowledge to speak on it with more enthusiasm and authenticity in interviews.
Point 4 — Webpack is hard to get your head around and configure as a novice.
Get used to it – documentation sucks and I have spent days and days debugging. But Webpack 2 is coming and it seems the config and documentation will be much improved.
Point 5 — Get away from Codepen and cloud9 as soon as practically possible.
I have spoken about this before but I need to clarify it. I don’t want to make this sound like Codepen is the worst thing ever — its not! For most of front end stream on FCC it’s fine and I learnt using it too. BUT you need learn the process of developing as a professional web dev would and to prepare for the steep learning curve for migrating away from Codepen .Look at my previous article. I personally don’t believe I would have gotten a job otherwise as I wouldn’t have climbed the Web Dev Learning Curve…
Point 6 — Find other FCC coders in your area.
This was a MASSIVE motivational and support process. Found a group of guys attending a FCC London Meetup at CodeNode. We stay in contact via Gitter and they helped me a lot in learning React. When one of the guys started his job a couple weeks ago it also sets into reality your aspiration to become a full time developer.
Point 7 — I don’t think an intense bootcamp would have been for me.
There is NO way that I could have learnt what I have now in 12 months after an intense 3/4 months. Not saying it can’t be done as there are loads of successful bootcamp grads. But not for me – I need time to internalise and develop and reflect on the processes and techniques and these are all a function of time in my case. Plus I couldn’t justify the cost personally – FCC beats them all hands down. So what if it took me 4 times as long ;). The current estimate is over 2000 hours to complete FCC and I will be honest in saying that it will likely take me much longer but I am OK with that.
These videos by funfunfunction on YouTube are excellent for getting to grips with these if they are new to you…
Point 9 — Always have a project going on.
Always. But remember to take a break when needed. I have taken several days off the laptop now and will be back on today. Otherwise you will burn out and get all sorts of neck and hand pain.
Point 10 — Shout out to FCC.
What FCC and Quincy Larson have there is freeGoldDust and I thank them for it. Besides the relatively small amounts of money I spent on a couple other courses, I have spent almost next to zero. Could you imagine this 10 years ago?? Would be no way without spending years self-learning with books and DVDs and/or getting into the industry as a junior or spending thousands on somewhat irrelevant MSc courses at uni.
Point 11 — Get to the parts of FCC when you can.
I will come back to finish the FCC syllabus and will be looking at the back end topics as time goes on although there are some projects which I personally don’t think I have the interest in completing any time soon (the Dungeon Crawler looks particularly nasty).
Point 12 — Different devices and browsers do have peculiarities that can mess up your site.
iPad and iPhones caused me issues as they render certain things differently and I had to start to learn to account for this and work around it (given that I work on Chrome and in Windows). Using things like autoprefixer helped but sometimes you need to play around with the physical devices, so make friends with people that own these devices. Unless you can afford something like BrowserStack.
Point 13 — If you don’t already, start writing Medium articles.
No one really reads mine but they help me see my progression and help me track certain courses, topics, playlists etc that I may forget about in future.
For people just beginning FCC, you will have a way to go but enjoy the process. I will only say that you need to keep an eye toward moving away from Codepen at some point.
Those already well into FCC and onto the data viz section, read my previous article and get on to moving away from Codepen and cloud9 today if you haven’t already. There are also some pointers on that article about good React courses etc.
And finally for those beginning to look for jobs, make sure your portfolio is effective and that you have a range of projects showing proficiency. My experience is very limited for obvious reasons but it seems jobs are out there and they can be had with planning the application process, companies to target and preparation. Freecodecamp lays out the foundation to get a job in the industry and I am testament to that now. I will say it again — if I have managed to do it, anyone can…
If there is one book and one book alone I could recommend to you all about taking the risk of choosing/changing a career path which suits you and has great prospects for future, I would recommend The Dip by Seth Godin.
I have a personal distaste for authors such as this and their back-cackalogue (not a typo) of pseudo-philosophy and self-empowerment masquerading as a tech startup business book, but this book is different. It’s short, succinct and really hits home about when to quit and when not to. Kept me going along this path and I am glad I did.