During my time in freeCodeCamp, I have read many posts and articles from students without previous coding experience who eventually found jobs as software developers.
As a strong supporter of free online self-education platforms, those stories have more than grounded my belief in the effectiveness of this kind of education alternative.
However, only attributing that success to the platforms would give an incomplete picture: part of that success lies on what those students did along with their studies and eventual job hunting.
A quick overview of the stories of new coders finding jobs suggests that they made a diverse range of decisions and took various actions to increase their chances. What were those decisions and actions? In other words, I wondered:
What did they do since starting to learn coding that allowed them to get a job at the end?
For this project, I analyzed the writings of 65 authors found at freeCodeCamp's Forum and on freeCodeCamp's Medium to answer that question, mainly focusing on the freeCodeCamp program.
Here is what I found.
1. Not starting totally from zero
General demographics coincided with what was found in the 2016 and 2017 New Coder Surveys.
Authors were mostly males.
Only six of them mentioned their age, which ranged between 20 and 35 years.
Those who mentioned a background said they had a degree in something and or had been working at some point, either part-time or full-time.
That suggests that they usually went after a career change due to a newly discovered vocation, because of lifestyle aspirations or because of better salary expectations and job opportunities.
The change was a risky step for some.
Some of them already had debts and family.
2. Learning web dev means dealing with complexity
The amount of information around web development is vast, complex and fast-changing. For some of the authors, web development was synonymous with "confusion."
Several authors also stressed the importance of development environment tools. According to them - the version controllers, editors, testers, package managers, module blunders and other similar tools were as relevant as the fundamentals and should be practiced right from the start.
When going further through the learning path, focusing appeared to be useful.
A large group chose to specialize in either the technologies in the program or on those that better suited the potential job market.
The few generalists saw themselves as adaptable.
Some authors also wrote about how far to go on exercises. The majority suggested focussing on the minimal requirement and good minimum viable products.
Those going beyond the requirements likely possessed exceptional problem-solving skills and exhibited talents. This was eventually reflected in their portfolios.
3. Commitment above all
Only a few suggested an explicit and thoughtful plan. However, reading carefully through the articles reveals that most of them did follow some sort of plan themselves. That plan usually consisted of setting feasible goals without specifying targets and (hard) deadlines.
For example goals were like "do networking, visit as many meetups as you can," instead of "visiting X number of meetups and make X number of connections in the next X months." Or "practice algorithms in HackerRank" instead of "complete X number of algorithms and reach an X rank in X days."
A possible reason why the majority planned that way was the uncertainty rooted in self-perceived abilities to cope with tasks with a lot of unknowns.
For many authors, the simplest way to successfully tackle the uncertainty came down to commitment: dedicating hours per day to anything related to the task until reaching a satisfactory outcome. The time of dedication varied, as shown in analyses based on the New Coder Survey.
Not many emphasized the need for taking breaks: I got the impression that many chose a rather intensive approach. Still, there were those who admitted that they included no-coding periods while still learning.
4. Things that (really!) helped them
Several authors stressed the importance of some kind of hands-on experience. I counted 35 unique authors when including all the arguments.
Half of those authors found the curriculum enough as it encouraged a non-prescriptive solution for the projects. It appeared that the more advanced they were in the curriculum, the more likely they believed that the curriculum was enough.
Those looking for extra-curricular experience turned into building their own projects, online contributions, and freelancing. People less-advanced in the curriculum seemed to prefer the first option, while those who were more advanced students preferred the second.
"you want to be a software engineer? write code for something...you want to be a growth hacker? growth hack something... a product manager? ship something... just go do it" - rahuldotiyer, Medium
Networking was also a very relevant aspect. Several praised the positive role of having access to an online community. Additionally, those who discovered and practiced face-to-face networking gained substantial rewards in the forms of useful information, mentoring, and even accessing potential jobs or collaborative projects.
Many listed alternative online learning resources. Some of them encouraged others to maintain a strong online presence, or help fellow coders on social platforms to consolidate their knowledge.
5. Becoming troubleshooters
"web development shops aren't really in the business of coding, they are in the business of solving problems" - kenrogers, Medium
For those with an engineering focus, the quote above might be an obvious one. If your main focus is design, it would be the same: your role would be to come up with aesthetic-functional solutions.
Several authors confirmed that they were preparing themselves to be problem-solvers. Many of them were asked to solve a problem during the interview process. A few also stressed that they had to learn new things in order to solve those problems.
6. Hunting for and getting the job
Applications: targeted or not?
Half of the authors who reported how they got the interviews that led to a job succeeded through less conventional channels that bypassed the HR departments and agencies. They used networking, Craigslist or direct email, for example, as opposed to conventional methods like job boards and recruiters.
However, all but five of the reporting authors were apparently in favor of applying to positions through conventional channels.
The portfolio is key
In order to get those interviews, many of the authors confirmed that the portfolio was a very relevant factor.
"you don't have jack if you don't have a portfolio" - quesurifn, freeCodeCamp Forum
There were different opinions about what the portfolio should contain. For example:
One author claimed it should consist of, at a minimum, 3 projects. They should at least show progress, and it's better if one is non-tutorial based.
Another author suggested to include only the best you have made.
There was also one who recommended that new coders redo their portfolio after gaining new skills.
Not only the content of the portfolio but how it was presented appeared to be important. Those emphasizing the engineering of web development were first in taking CodePen projects into a more website-like format.
Such a level of portfolio personalization suggests that the portfolio was used to support the "personal narrative" the applicant wanted to present to potential employers.
Motivation, commitment, and ability to learn (along with an interest in learning) were personal attributes mentioned many times during the interviews.
[my employer said] they could teach me programming whereas [they] can't teach the hard work, sacrifice and motivation that I had shown by chasing my dream - rickwest8, Medium
Other aspects that might have played a role during the negotiation were other personal skills, previous experience, and context. It seems that the simpler the portfolio, the more important those aspects.
I didn't closely go over what they wrote about technical exams, cover letters, and resumes, but I got the impression that several authors assigned more importance to the first two than the last one.
Finally, a job!
The majority of the authors started to look for jobs before completing the Front-end certification. However, this data could suggest that not advancing through the certification could have made it harder to get a job.
At the time of graduation, the proportion of students claiming the basic certification was very high compared to those with more advanced certs. But that proportion changed in favor of the authors with more advanced levels when finding jobs. Given the available data, it would be incorrect to reach a conclusion, though.
Apparently, the large majority got positions as junior web developers, assuming positions described simply as "developer" were junior positions. I can't discuss the employer's actual requirements and what was negotiated, leaving the possibility that similar positions entailed different descriptions.
7. It might take you a year of hard work, but it is doable
Several of the authors admitted that self-studying and then hunting for jobs required a lot of self-motivation. It wasn't easy, but as many of them pointed out, it was feasible.
"you know your goal , you can make it work" - derozan10, freeCodeCamp Forum
Based on reported dates, the median time between starting to learn to code and finding a job was 320 days. Those who took less were about 120 days with a minimum of 90 days while those who took longer were about 550 days or more.
We should be aware that the characteristics of the data and the implemented methodology might affect the generalization of these results.
Despite that, there are still some takeaways that we can learn from this analysis. However, instead of offering you an opinionated "pill for success," I propose that you use these results as a starting point to find your way.