You may have heard that tech jobs have considerably increased in supply, and that modern-day developers have almost become the new rock stars whom all companies are snapping up at exorbitant prices.
Obviously, reading the paragraphs above, you guess that real life is not as beautiful as this fairy tale.
Truly, there is indeed a high demand for developers. However, being able to overcome the different milestones you’ll encounter as you journey towards becoming a developer is the real deal.
Related: What does a developer do?
So what about it?
Is it possible to become a developer from scratch?
My name is Billy, and I had to learn programming on my own in 2017. I wrote this guide in order to help you find the answers to the questions I use to ask myself and guide you through the same phases I went through.
What does it take to become a developer?
As you may have understood, the early days of a developer’s career, even more so after being guided, is a challenge to overcome.
There is no more room for visitors and having done a bit of coding in your youth is not enough to prove your passion.
Be ready to make sacrifices
Becoming a developer will require a lot of sacrifices.
First of all, there are the financial efforts.
You may succeed to avoid spending some money on your initial training (by using platforms such as YouTube), but there are also certain side costs that will gradually be added to it.
You will obviously need a computer and probably enroll for a course.
If you have chosen to study full-time in order to accelerate your learning, you will certainly have to make a financial sacrifice.
Once your initial training is complete, the expenses don’t stop there. You will need to continue investing in your learning, in books and other online training. You may also need to purchase a few software licenses, for example.
Then there are the non-monetary sacrifices, which are sometimes more costly.
You will have to fully invest yourself in your learning process.
This means; you will have less time and less energy to spend with your family and your friends. You will need to have the support of your loved ones, otherwise, you may lose that initial fierce passion.
You will no longer be able to meetup with all the hobbies you had before you engaged in this path.
You will have to make choices between watching your favorite series on Netflix, evenings with friends, visiting family, and playing video games.
Becoming a developer is going to take you a significant amount of time and you have to be prepared to pay that price.
show determination
Even after several years of experience, a developer’s job is to solve problems and throughout his career, he will be confronted with them.
To deal with it, a developer is going to have to show determination and not give up when difficult or stressful situations arise, because they will.
Be passionate
In order to overcome these constant obstacles, passion is an essential virtue for someone who wants to become a developer today.
Be careful, not all the developers today are code enthusiasts. Some got there after their engineering schools and for them, it is only a comfortable livelihood.
On the other hand, if you want to become a developer from scratch, you have no choice but to be passionate.
You will have to work harder than an engineering school graduate, simply because you need to prove your worth when you come from this path. You will equally need to show that you are capable of improving your skills on your own.
Before embarking on this path, start learning to code on your own on sites such as Codecademy or Sololearn. Put in at least an hour a day for the next 30 days and see if you’re still interested in the field.
If this is not the case, there is no need to go further in this path, else, you would be wasting money and above all time. If not, you can consider accelerating your learning by integrating an accelerated training.
Be patient
Being a developer is a profession where one is in perpetual learning.
Not only are technologies constantly evolving, If we don’t practice certain techniques for several months, we forget certain things that we had done before.
Although we want you to believe that a few months of intensive training will make you a developer, it takes several years of supervised practice to really build skills. You have to accept that this learning process takes time.
Throughout your career, you need to accept the fact that you progress at your own pace, even if it can seem frustrating to see your colleague progressing faster than you.
Stay humble
A developer’s worst enemy is pride.
Your humility will be tested throughout your career as a developer.
Your superiors will be younger than you and will sometimes have to criticize you.
The trainees will be more competent and progress faster than you.
That shouldn’t stop you from asking for help when you’re stuck on a problem. If you know that you tend to be proud, you have to learn to put that pride aside because as a developer it will only handicap you.
Must you be good at math to become a developer?
You must not be good at mathematics or sciences in order to become a developer.
Nevertheless, you must have an appetite for solving logical problems.
A developer does not design an application as a whole. Instead, he breaks down the application into features and divides each feature into smaller issues, representing problems to be solved.
Some problems are very simple, like retrieving a specific item from a database. Others will be more complex, for example; setting up access authorization rules or filtering a display according to several criteria.
As a developer, you have to enjoy facing logical challenges that will constantly take you out of your comfort zone.
On the other hand, some disciplines such as Data Science or Machine Learning will use more statistical notions than web development.
Self-taught
The most economical way to become a developer from scratch is through self-directed learning. If you are able to learn on your own, there are several sites that will lead you through the process.
Sololearn is my favorite. It offers online tutorials that you can follow from home and at your own pace. Their training catalog covers many topics such as web development or mobile development and goes into detail on several programming languages.
FreeCodeCamp is the world’s most popular resource for learning to code. It is a non-profit initiative that has relied on the international community to build its courses, which are the most comprehensive on the web today.
Udemy and Coursera are video e-learning platforms that offer paid courses, created by anyone. They cover all subjects but the quality of these courses depends on the trainer.
There are also sites that will allow you to practice your programming skills such as Codecademy, Codewars, or Codeingame.
The disadvantage of self-learning is the time it will take you to go through it.
Development is a very frustrating discipline at the beginning because the first skills do not allow you to produce an immediate rendering.
However, if you devote an hour a day to your learning, it will take many weeks before you can produce a functional rendering.
Accelerated training to become a developer
Accelerated training is designed to teach you how to code much faster than if you were self-taught.
There are many training organizations offering courses ranging from 9 weeks to over a year. The costs of this type of training fluctuate between $3,000 and $8,000 depending on the duration and the training organization.
Their methodology essentially consists of making you do many projects at a very intense pace so that you go through as many concepts as possible.
Indeed, learning development mainly goes through practice, but bootcamps very often sacrifice theoretical notions of software engineering such as programming paradigms, design patterns, or unit tests.
The fact of linking several projects in several languages and integrating frameworks very quickly means that you will not have time to deepen your knowledge in any of them.
Accelerated training is a very good springboard for accelerating development learning. On the other hand, their communications often focus on becoming a developer and finding a job after training.
With the exception of a few profiles that will stand out, the vast majority of these developers will not be able to land their first job in record time.
How is the post-training going?
Almost all courses require their students to complete the course with an internship of a minimum of one month. A month is far from enough.
When you’re at the end of the road and looking for your internship, try to find the longest possible internship.
Indeed, companies are less hesitant to give chances on internship contracts than on work-study contracts or permanent contracts.
The longer your internship, the more this experience can be valued as a real first experience when you are looking for your first permanent contract.
Ideally, you should seek to do your internship in a company where the technical framework is solid with supervision by an experienced team.
At the end of your internship, you will seek your first job as a developer. For some whose profile is attractive, this search may be fruitful. For most, however, it will be very painful.
The biggest mistake you can make at the end of your training is to believe that your training has made you employable and that you necessarily deserve a permanent contract as a developer. Keep in mind that companies don’t owe you anything. They have no interest in “giving a chance to a junior” and the certificate in your hands has no value in their eyes.
If you have no feedback on your applications, it means that your profile is technically too weak or that you do not know how to highlight your profile.
If you go to interviews but fail at that stage, then, you’re poorly prepared and certainly don’t know how to sell yourself.
If you fail the technical tests, then, you are not trained enough.
More often than not, the end of your retraining marks the beginning of your career. In school you learned to code, now you will have to train in software engineering, Specialize in a “Tech Stack”, Choose a language and practice it thoroughly, Practice one or two frameworks of this language.
Take the time to read books on this language and on development in general.
At this point, you can continue your progress as an autodidact because you have already done the hardest part, which is learning to code. Rely on online platforms and courses.
Some will choose to return to a second accelerated training. Be careful not to redo generalist training that would make you work in several languages. At this stage, there is more value in specializing in a particular technology.
Others will choose a longer course or resume a university course. This path is longer but it offers an academic framework and a diploma at the end of the course.
At this point, many candidates give up. Whether for lack of time or means to invest in the continuation of their training or simply because they give up too soon.
Be aware, however, that successful training is not necessarily the one where you become a developer. This training has instilled in you a strong technical polish that allows you to be very credible in many tech professions.
What is the state of the job market for developers?
What are the types of employers?
The first employers of junior developers are web agencies. These companies take on web or mobile development projects for clients who do not have the skills in-house. Most often, the projects are carried out from the agency’s premises.
As a developer, when you work in an agency you will have to work on several projects each year, sometimes on several projects simultaneously. The workload is often higher than in other potential employers, but the diversity of the projects offers the possibility of seeing a lot of concepts quickly. On the other hand, the challenges will quickly become repetitive because the projects will look alike.
On average, web agencies tend to offer lower salaries than the market average because their business model involves risks taken in terms of development time on each project.
Startups are another job and internship pool for developers starting their careers. Startups are distinguished according to the stage of progress of the company and its fundraising.
The more a startup is mature and has raised funds, the more resources it has and the more it will look for confirmed and senior profiles since it has the means to pay them. On the other hand, “early stage” startups, which have raised little or no funds, will be more inclined to recruit junior developers on internships, work-study programs, or permanent contracts.
Working in a startup that is in the early stage, if there is a technical referent in the workforce, is a good opportunity to join a tech project at the start of the adventure. You will be able to contribute to the development of a product at a stage where the complexity remains affordable compared to a more mature company.
As with web agencies, startups tend to pay below market value.
Employment pools and telecommuting
With the Covid health crisis of 2020, teleworking is a practice that has become widespread, especially in the software development industry where it is all the easier to implement. However, even if more and more positions open to “full remote” are coming onto the market, companies are still very hesitant to hire a developer who has been converted to telework.
They know that junior profiles starting their careers need a lot of support, from other developers as well as from business associates. This requires a particular organization which is not provided for in most companies. It is often said that verbal communication conveys only 30% of a message. In writing or in video, it is even more difficult.
However, raising the skills of junior developer working remotely requires all the more effort, time and energy that a company will favor a candidate capable of going there. As we have seen, it is not as if the employer had no choice.
This is why your place of residence will be a factor in the success of your training, at least if you want to become a developer.
As in all sectors, companies tend to group together in job pools. For startups, it is most often in the center or near the outskirts of major cities. Large companies often have their premises on the outskirts of large cities in order to have large office spaces. Agencies are the types of employers that are most geographically distributed.
If you live within an acceptable distance from a major city, your employment pool is probably adequate. It will simply be necessary to ensure that the programming language on which you will specialize is well used by the companies of this region.
On the other hand, if you are located in a smaller city and it would not be possible for you to make the daily trip to one of these metropolises, your geographical location becomes a serious handicap.
What salary can a developer from scratch expect?
The salary of a developer “from scratch” is between $27,000 and $32,000 gross in the United States. This amount may vary upwards if you have a diploma from a major engineering or management school or if you have significant experience in a profession related to web project management.
This amount may seem surprising to you in view of the various studies on developer salaries that you will read on the internet. Know that most of these studies are a mix of all profiles.
Which profiles have the best chance of success?
For a business, hiring a developer is a significant expense. Beyond the cost of salary and expenses related to this hiring, there is a lot of time to devote, and therefore a lot of money to invest in finding the right candidate.
This is why companies have developed reflexes at the level of the selection of profiles. Some profiles offer more assurance about the quality of the application than others.
Among the profiles resulting from a self-training who are most likely to stand out and be hired quickly, we find at the top of the pack graduates of engineering schools. Their training is the least extreme and the stamp of the engineering school is a reassuring element for a company.
Then come the profiles with experience in the tech professions who wish to get closer to the code. These are profiles that reassure companies through their professional experience in the world of tech. They will probably be more familiar with the issues of managing a web project and will need less time to develop their skills, or so the employer assumes.
Profiles with initial training in IT will also be considered interesting if this is sufficiently highlighted in the CV and the Linkedin profile. The higher the degree, the more reassuring it will be, even if the person has spent 10 years outside of the IT world before retraining.
Out of these profiles, the employer is in an unknown area. He can no longer rely on your CV to assess whether your application is worth the time he invests in it or not. This is absolutely not to say that these profiles have no chance. On the contrary, there are many success stories of people who do not correspond to the perfect profile and who have succeeded in their retraining.
On the other hand, these profiles, like the autodidacts, will need to prove themselves all the more because the CV alone will not be enough to attract the attention of an employer in order to give you a chance in an interview.
And for a woman? Can you become a developer?
It’s no secret that the tech professions are mainly occupied by men. The reasons for this low level of diversity in this industry are multiple and go back to the choice of studies from the first years of higher education.
Underrepresented since studies
A study called Gender Scan, conducted by the company Global Contact showed an 11% drop in the share of women in tech jobs between 2013 and 2017. Today, it is estimated that 15% of women have a position with technical dimension inactivity.
According to Isabelle Collet, author of the book Les Oubliées du Numérique, ” Digital is a universe designed, programmed, installed and maintained by a few men from privileged socio-professional backgrounds.
While women occupied about 40% of the workforce in technical trades until the early 1980s, the arrival of the microcomputer and the emergence of the computer industry reversed this trend.
The microcomputer industry has targeted men and young boys, leaving out women who were previously seen as operators of large, room-sized computer machines.
Women have a little more impostor syndrome
In the Harris for Marie Claire study, 70% of women interested in programming said they were afraid of not having the necessary skills to work as a developer. Men, for their part, were 60% to share this feeling.
Movements to promote the place of women in tech
Despite this male dominance, most companies and their teams are very welcoming toward women. There is a real desire to promote access to tech jobs for women.
Organizations such as Women In Tech organize events to raise awareness and encourage decision-makers to change their traditions which can unconsciously lead to a lack of diversity.
In 2016, the web@cadémie training institute, under the impetus of Sophie Viger, created the “Ambition Féminine” promotion, with a view to training women in the profession of software development. Not having had enough success with women, the organization was forced to end this “girls only” program in favor of its mixed equivalent.
Become a developer past 40? Is it possible?
There is no age limit to becoming a developer. If you are passionate, show humility and determination, you can become a developer, even after 40 years.
On the other hand, the profession of a developer is traditionally considered an entry-level position in most countries. This is the first position given to young engineers coming out of the school benches who are invited to become project managers to advance their careers.
However, it is also necessary to take into account the time taken to improve your skills and develop your career. It takes about 10 years of development to reach maturity.
After this decade, you will continue to learn, but you will be comfortable as a senior developer and in the most comfortable position career-wise. At 40, you still have a little more than 20 years ahead of you to make your professional path insofar as you accept the fact that, throughout your career, your superiors will be your cadets.
Being a developer is only one option in the spectrum of possibilities. Whether at the start of your career or throughout, you will have opportunities to get closer to one of these professions and steer your career in a position other than a developer.
If in your previous career, you had experience in a profession or field that can adapt to tech thanks to your new skills, your profile will be all the more interesting.
Forties and startups
ESNs and large firms would be sufficiently inclined to hire a developer, if he is competent enough, regardless of his age. On the other hand, we observed that this was less true for startups and scaleups.
Indeed, start-ups at the start of their lives are often founded by profiles in their thirties, or even younger, with an average age often approaching 25 years. The culture of these companies, therefore, revolves around the issues of young people of this age, such as organizing after-work parties and team buildings.
Because of their young career and the youth of the workforce, they are less often exposed to the different problems that older employees may have who probably have family constraints, for example. Between the professional youth of the management and the natural difference of interests between two populations of different ages, finding your first job as a developer is more difficult than in ESN, in a web agency, or with an end customer.
What other jobs are affordable after retraining?
As I was telling you, there are tens of thousands of new candidates for junior developer positions arriving on the market every year. The job offer opposite is clearly not sufficient to offer positions to everyone.
However, retraining does not limit you to the profession of a developer. Your new skills can be used for other positions in tech companies. Sometimes, your past experiences coupled with your new knowledge in development will make you an extremely interesting profile for certain companies.
Customer Success Manager
The Customer Success Manager works in companies such as software publishers or marketplaces. Its mission is to ensure that customers use the solution well and are satisfied with it in order to have them renew their subscription and support them in the evolution of their needs to guide them towards the most suitable packages. He will ensure that customers know how to use the solution by carrying out the tasks of training, commissioning, and monitoring the proper functioning of the application.
For a publisher of a technical solution whose clients are developers, having a CSM with development skills is a significant advantage.
If you have good interpersonal skills without being commercial and you like to have the professional expertise, Customer Success Manager is a position that may be of interest to you.
Application support
Doing application support means solving technical problems that customers may have. Being in telephone support for a telecom operator is not a dream career. On the other hand, if you work for a software publisher, a cloud provider, or a service company whose clients are developers, your technical skills will be an asset and this job can be challenging.
Quality Analyst
In the agile development cycle, Quality Analysis is the stage at the end of development that comes to ensure the proper functioning of a feature. As QA, your role will be to “twist the neck” of the functionality that has just been developed in order to find the “flaws” and the edge cases that the developer will not have taken into account.
Your experience as a developer is all the more interesting because you will be able to put yourself in the developer’s shoes and you will know where to look for potential cases that he would not have thought of.
Commercial
Whether for a product, software, or service, the tech industry recruits salespeople with a vengeance. If your previous experience meant that you were in sales, your newly acquired technical skill will make you an extremely attractive profile.
Salaries can far exceed those of developers and your technical knowledge will make you a privileged interlocutor in the eyes of your prospects and your customers.
Pre-sales Engineer
If sales aren’t really your thing, there are also pre-sales engineer positions. Its mission is to support sales staff in order to be the technical contact during meetings with customers and prospects.
Recruiter or Talent acquisition manager
The tech recruitment industry is a sector that is constantly hiring. This is a profession that requires interpersonal skills, but when you approach candidates knowing what you are talking about, you immediately stand out from the mass of recruiters. Here too, if you had a position with a lot of customer or supplier relations, your new technical background will make you a privileged candidate.
ESNs, startups, large groups and recruitment firms are constantly looking for profiles for recruiter or Talent Acquisition Manager positions. The HR aspect and recruitment technique will be taught to you by your employer.
Product Owner or Product Manager
The job of a Product Owner or Product Manager is very close to that of a developer. You will constantly work with them and it can be a good bridge to transition, if you still wish, to a developer position.
A Product Owner will coordinate the development of a product. He will have to prioritize the product roadmap according to the expected functionalities, the resolution of bugs, and the expectations of the customers. He will prepare User Stories for developers. He will coordinate the different rituals that make up the Agile method.
A Product Manager has a slightly different role in that he is responsible for the direction the product is taking in terms of functionality and the needs it meets. This position is often very close to management and slightly more distant from the tech team.
UX designer
Contrary to what the title may suggest, UX design is not a designer in the graphic sense. UX stands for user experience. It will think about navigation paths, take into account the information that the application needs to collect to think about screens, and make behavioral proposals. This position is located upstream of developments, but it often happens that a UX audit is done downstream as part of continuous improvement.
Becoming UX will surely require new training, but your tech skills will facilitate your proposals and your alignment with developers.
Getting started with No Code when you’re a developer
NoCode is a movement that has experienced strong growth since 2018. More and more tools are emerging to develop complete applications by connecting SaaS software to each other. It is now possible to create a perfectly functional AirBnB clone, capable of handling 95% of use cases and on a large scale, in a very short time thanks to Bubble. This trend is not ephemeral, more and more companies are starting on these products or using them to create internal applications at a much lower cost than specific development.
As a developer who practices NoCode, you will have an excellent understanding of the tools and you will know how to go much faster than any other average user. On the other hand, being a NoCode developer makes your profile a hybrid between a developer, a UX designer, and a Product Manager. A client who uses a NoCode professional expects him to be proactive and to bring expertise, otherwise, he would create his NoCode application without your help.
NoCode is an excellent new opportunity for developers who are just out of training and who would like to go freelance.
To conclude
Is it still possible to start a career as a developer from scratch?
Yes, but this project will require a lot more effort than the training organizations will lead you to believe. You will have to accept big sacrifices, financial and personal, go down to the bottom of the hierarchical ladder of this new profession, and be patient to climb the ladder.