One question I see regularly on Quora is, can I become a web developer without a degree? Given that this question comes up so often, I thought it was time to put together a guide. And since this is a long piece, before we get too deep into the weeds, I will give you the short answer, which is a resounding YES! It is indeed possible to become a web developer even if you do not have a four-year degree. In fact, one of my good friends Rick makes his living as a senior data engineer, and he never finished his college degree. His employers don’t mind because he has tons of experience and can add massive value to his team.
In order to prove you have the technical skills, however, you will have to work hard to learn the required programming languages, build on a couple of large projects and pass a technical interview. If it sounds like a lot of work, that’s because it is, but don’t let that stop you from starting this journey. There is a real shortage of technical skills in the workforce, and those who stick with learning will ultimately be rewarded.
In addition, when you are working as a web developer or in an engineering role, you will need to take a large project and chunk it down into small, manageable, bite-sized tasks. That is exactly what we are going to do in this guide. I have broken the process of how to become a web developer without a degree into fourteen manageable steps. Some of them will take an hour or two, whereas others may take you a few months to complete.
Whatever your time frame, the important thing is to keep moving forward toward your dream job. So, if you get stuck on any one step, write to me at firstname.lastname@example.org, and I will do my best to help you.
Now, onto the guide! Here is what we will be covering. I encourage you to read through the guide and then complete the steps in order. These are the steps I followed for landing my first technical role, and if you follow them, you can land your dream job, too.
- Freelance vs. Full-Time Job
- Research Skills You Need
- Learn the Skills and Programming Languages
- Build Two Large Projects
- Add Projects to Your Github Profile
- Create Your Online Portfolio
- Answer Questions on Stack Overflow
- Create Your Resume and LinkedIn Profile
- Take a Final Course to Prepare for Your Technical Interview</li>
- Work on Your Soft Skills
- Apply for Jobs
- Nail the Interview
- Land the Job
- Write to Me and Let Me Know about Your Success!
Step 1: Decide if You Will Freelance or Want a Full-Time Job
This first step takes the least amount of time. You need to decide if you will work as a freelance web developer or if you want a full-time job. There are advantages and disadvantages to both, of course. A full-time job promises a steady paycheck, but you will give up some freedoms that you’ll enjoy if you work as a freelancer.
For the most part, this guide will cover how to land a full-time job as a web developer. The path of the freelancer is a little different, which is why it is important to make this decision before going deeply down a learning path. A freelance web developer who wants to work from home should concentrate on learning the most popular programming languages like Java and Python, building an online portfolio, and starting to take jobs through Upwork. These steps are very different from what I outline below, so if you want to be a freelance developer, I encourage you to check out my article on this topic. If you’d like to be a full-time web developer, proceed to the next step.
Step 2: Research the Skills You Need
So, you want to be a full-time web developer! Congratulations, you’ve made a great choice. Should you just jump in now and start learning programming languages? As tempting as that may sound, you need to complete a crucial first step: Research.
Why Research Is Important
I encourage you not to skip this important step. The reason is that not all programming languages are popular in every region of the world or even the United States. My conclusion that technology is regional is a bit controversial, but in my experience, it is absolutely true. Yes, if you live in a city like Dallas, New York or Chicago or in an area like Silicon Valley, you could probably learn almost any language you want and get a job. But what about if you live in Sioux City, Milwaukee or another mid-sized or small city? Chances are good that not all the major technologies will be prevalent in your region. Having moved from a large city (Chicago) to a mid-sized city (Milwaukee) myself, I have found this to be true.
At the time I write this, for example, Java and Python are two excellent choices for programming languages for aspiring developers to learn because they are popular, all-purpose languages. However, in Milwaukee, where I live, the most popular, in-demand programming language is #C. C# .net is very popular in Milwaukee and the top skill to learn for web developers here. The good news is that there are job opportunities for developers who only know C#.
If you complete the steps in this guide, you could very easily start earning $65,000+ within six months.
How to Research the Skills
So, how do you go about researching the skills you need? Here’s how I do it:
- Gather information from Indeed.com. Yes, there are other job sites you can scour like Dice, but Indeed is a great all-purpose resource for available jobs. Search for web developer jobs. Unless you want to concentrate entirely on becoming a front-end engineer, I’d encourage you to consider full-stack web developer roles. Employers are increasingly expecting web developers to have experience with front-end and back-end programming languages.
- Read the job descriptions and enter the skills into an Excel spreadsheet. You will want to do this for 20-25 jobs. I know, I can hear you groaning, but you need enough information to make an informed decision about which programming languages are important to learn. And if you’re diligent, you can do this in an afternoon. If you’d like a copy of my spreadsheet to help you get started, please feel free to contact me at email@example.com, and I’ll send you a copy.
- Analyze your spreadsheet. Once you have recorded the required programming languages, technologies and nice-to-have skills, it’s time to look for patterns with the results. In no way are you going to be able to learn everything that is listed. You will just concentrate on a handful of items to learn. Some questions to ask yourself include:
Note any other technologies or skills such as working in an agile environment or the ability to work with a team through GitHub. Repeat the same process, writing down these skills in a separate column and noting the frequency of how often they are mentioned in job posts.
Step 3: Learn Required Programming Languages and Other Skills
Before you decide, read through each option and consider thinking through how you learn best.
Option 1: Safari Books Online
If you like learning through books, you can get a monthly membership to Safari Books Online for $39 per month. It may seem like a lot of money, but I recommend this membership because it was invaluable to me when I was learning how to code. I have a subscription now through my employer, but if I didn’t, I would maintain it on my own.
Option 2: Udemy Courses
Even though my Safari Books Online membership is very valuable, Udemy remains my favorite place to learn technical skills. There are instructors on Udemy who earn their living selling their courses, so you can find robust courses with 20+ hours on a single programming language. Instructors often update their courses, too, with new information as it becomes available, so I feel good about making a purchase and don’t worry much about the courses becoming outdated. It does happen, however, so before you purchase a course, make sure you read the positive and negative reviews. When scanning reviews, there are a couple of things that I watch for:
- Are there complaints that the instructor is slow to respond? I can excuse a couple of complaints, especially if the course has a lot of positive reviews; however, a good instructor will get back to students within 24 hours, or if the course has gotten large enough, some instructors like Andrei Neagoie hire a teaching assistant to help field questions. Instructors who earn a full-time living from Udemy are more likely to build hired help into their business model. As a lifelong student, I can tell you that it makes a big difference.
The takeaway is: competition for Udemy instructors remains stiff, ESPECIALLY in the web developer and software engineering instruction niche, so it is in instructors’ best interest to keep their courses current and to answer student questions. The instructors who do this will earn students for life. And that is absolutely the case with my favorite instructors on Udemy, which include Colt Steele, Andrei Neagoie, Stephen Grider and others. If there is a topic I want to learn and one of these instructors teaches it, I will likely purchase the course because I know the content is great and I’ll learn a lot.
If you prefer learning through books, though, Safari Books Online is a great option as well.
Step 4: Add Your Projects to Your Github Profile
As you complete projects for your courses, you can add them to an online platform called Github. Nearly all web developers and software engineers maintain a Github profile because it is like an online portfolio for those who code. Github is also used to manage workflow on web developer and software teams, so knowing how to use is often a prerequisite for getting hired.
If you have a membership to Safari Books Online, you can easily read a book or two about how to get started. If not, there is plenty of information online, including these guides from Github itself. There are courses as well on Udemy, especially on web development, that cover how to get started with Github. For example, Andrei Neagoie’s course The Complete Web Developer in 2019: Zero to Mastery covers how to set up your Github profile and push projects to your portfolio.
Step 5: Build Two Large-Scale Projects
At this point, you can research the technology stacks that are popular in your region and note any shortcomings and strengths that you learn about online. Quora is also a good place to ask questions about which technology stacks are best for different projects. Seasoned engineers on Quora, for example, have said recently that Python isn’t always a great choice for the web since it is not particularly fast, and yet, many companies use it. Python is also a top choice for artificial intelligence engineers and data scientists, so it really depends on what you are going to study and what is in demand in your city.
Where I live, C# and Java are the top two programming languages used in backend web development. This may be different, depending on where you live, which is why “Step 2: Research the Skills You Need” is so critical.
Step 6: Create Your Online Portfolio
In addition to your Github profile, it is a good idea to build an online portfolio to showcase your work using either the Bootstrap framework or Flexbox mode. If you don’t know what either of those technologies are yet, do not worry. They will be covered in one of your Udemy courses or in one or more of the books you read if you choose to subscribe to Safari Books Online. Using either Bootstrap or Flexbox will show your versatility and that you can handle some front-end design work.
As you are learning, you may discover that you either love CSS or hate it. CSS is the markup language that allows you to add layouts and styles to your webpages, and in my experience, web developers either love it or hate it. Personally, I enjoy working with CSS, but there are many talented developers and engineers that dislike it. If you are one of them, there is no need to worry. There are plenty of jobs for web developers who concentrate on backend technologies.
Step 7: Answer Some Questions on Stack Overflow
As you are learning, Stack Overflow will be an invaluable part of your education as you acquire skills as a web developer. When you encounter an open-ended problem and do not know how to solve it, you will likely start with a Google search to look for answers, and within the top few results for many of your searches, you will find a some possible answers on Stack Overflow.
If you are not familiar with it, Stack Overflow is a question / answer forum for those who are learning or engaged in technology in some way. No matter what your skill level, you will use it throughout your career to look for answers and workarounds to issues you encounter and need to solve.
At some point, you will be able to help someone else who is stuck and answer a question yourself. It is very gratifying when that starts to happen, and if you can demonstrate through your profile that you are an engaged community member and have knowledge to share, the right employers will take notice.
Step 8: Update Your Resume and LinkedIn Profile
Many web developers dislike writing resumes and keeping their LinkedIn profiles updated, myself included. They would really much rather spend their time building web apps! In order to get hired, however, all developers need to demonstrate written and verbal communication skills, and the same will be true for you.
You can almost think of your resume and LinkedIn profiles as your marketing materials. They are the places where you will list past job responsibilities and describe them in such a way that a prospective employer could view your past responsibilities as “transferable skills,” or skills that cross from one industry to another. This term was originally coined by Richard N. Bolles, author of What Color is Your Parachute? In his book, Bolles explains how to find commonalities between your current role and your dream job.
While working with your transferable skills is a great start, when applying for a technical role, you need to be able to demonstrate in reality that you have the technical skills, also known as hard skills. (We’ll discuss soft skills in Step 10.) Your Github profile and your online portfolio are a way to introduce a prospective employer to your technical abilities, which you will demonstrate further during your technical interview (see step 9). In addition, your resume and LinkedIn profiles are the places where you state your skills on paper and online.
Before starting a LinkedIn profile, I highly recommend scanning LinkedIn for web developers in your area who are currently employed. What skills do they have, and how are they stated on their profiles?
It is important to understand that LinkedIn functions as a sort of search engine, which is why you want to list any technical skills you have acquired, especially ones that are in demand. This way, when recruiters in your area search for keywords as a way to find potential candidates for job placements, your LinkedIn profile will come up.
Step 9: Prepare for Your Technical Interviews
This is the step that employers use to weed out those who are just starting to learn from those who can contribute well to a technical team. It is also the step that many aspiring web developers get nervous about. And while any anxiety is understandable, technical interviews are not nearly as intimidating once you know what to expect.
While you won’t complete your technical interview until Step 12, it is a good idea to take one or two courses geared towards technical interviews in your primary programming language at this point in your process. It can also be worthwhile to do some creative visualization exercises where you imagine yourself passing whiteboard challenges with ease.
What to Expect During Your Technical Interview
I will attempt to cover what you should expect during the different steps of your interview process, please keep in mind that every company is different.
Upon reviewing your resume, a hiring manager who likes your skills will likely choose to interview you over the phone first. This is your first chance to demonstrate that you can speak intelligently about your skills and your ability to contribute to projects and work on a team.
It is also helpful to know that some companies may have an intermediate step between the phone interview and the whiteboard challenge during which they ask that you complete a coding challenge remotely. Companies get a lot of applicants from many different cities often find that this is a way to save time during the interview process. Yes, you can get weeded out or rejected during this intermediate step, but if that happens, it’s nothing to worry about. Simply move on, identify what you need to work on, apply yourself to acquiring the skills, and try again.
You may have to repeat this process several times, but it’s nothing to worry about. If you continue to work on your skills, you will eventually land a job.
Step 10: Work on Your Soft Skills
Many web developers believe it is enough to demonstrate their technical (hard) skills. I personally feel that this is a mistake. More and more, employers are placing a high value on those who have soft skills as well, meaning they want to hire web developers who can work well on a team and can work effectively with others.
A good friend of mine recently mentioned that one of the most technically savvy members of his team was fired because he was inordinately difficult to work with. While he had the hard skills that many employers seek, he was disparaging to the junior developers and treated other members of the company with disdain. Enough people complained about his attitude that the company eventually decided to let him go.
In addition, it is incredibly important to remember that once you’ve acquired technical skills, you are now uniquely qualified to share what you know with others. Instead of making others feel badly about asking questions or feeling the need to show your superior knowledge, it can be helpful to adopt an attitude where you demonstrate yourself as a leader. This means that you take the time to help out someone who is struggling, like you hopefully have already done on Stack Overflow.
As someone who is new to a team, too, you will be able to build good camaraderie at your new organization if you volunteer for projects and happily accept new projects rather than grumbling about your workload.
One of the challenges you will face is that deadlines are often set by project managers who may set unrealistic timelines. You and your team may need more time than you are given, and you may be asked to work longer hours from time to time. This is not untypical, and I have personally found that taking the time to explain the challenges I am facing to the project manager in charge of the timeline is helpful. More times than not, they will work to find extra resources and manpower if it is available to help you out of your jam.
There are also issues that come up that do not make it onto their reports, so once again, written communication with the project manager is key so that the issues are documented. Sometimes web developers don’t speak up when they’re facing a challenge because they don’t want to appear unintelligent, when instead, it is helpful to reframe the challenge you’re facing.
If you tell yourself that no one could possibly foresee every challenge a complex project will have, then it becomes less intimidating to bring up problems that occur, and your team members and the project managers you work with will feel grateful that you have been vocal about challenges. Soft skills also imply that you state the issue in a professional manner without blaming anyone else. If you can keep your communication neutral and think of it as reporting the facts, then you will be able to get along with others just fine.
Step 11: Apply for Jobs
At this point, you have a list of the top skills needed for web developers in general and you have done your best to learn the skills and programming languages that are in demand where you live. You have also added these skills to your resume and LinkedIn profile and have a website that shows your portfolio as well as a robust Github profile. If you have done all of those things, you are now ready to apply for jobs.
Should I Work with a Recruiter?
You can decide at this point if you’d like to work with a recruiter or apply to jobs on your own. Personally, I have had better luck in applying to jobs than working with recruiters, though some of my friends have landed great positions with recruiter help. The problem I have encountered with working with recruiters is that they are really trying to fill openings, and they may steer you towards positions that are not a great fit for you.
It helps to remember that they are working for the company and may not have your best interest in mind since they get paid to fill open positions. I was once offered a position that was well below my skill set, and when I turned it down, the recruiter never contacted me again. Likely, he went down his list and tried to find someone else who was willing to take that job and then moved on to other people who he thought he could place more easily. This is a common experience, but as I mentioned, some web developers and other employees in the tech industry do well working with recruiters.
I have personally found that the best method for finding a great job is to apply to the job ads for which my skill set is the best fit. If you are good at networking, you might try to find a job that way, too. If you have a great skill set, though, chances are good that you will get called for phone interviews, especially if you have learned the skills that are in demand in your region and have a great portfolio with complex projects.
Step 12: Nail Your Job Interviews
Yes, job interviews is plural. You are probably going to have to go on more than one in order to obtain a job offer. If that feels discouraging, just remember: this is a process. Even before I was considered a technical employee, I would often have to go on multiple job interviews in order to receive a job offer. Even with job offers, if the company that wants to hire you does not feel like it will be a good fit, or if you notice definite red flags, you may want to take a pause before accepting an offer.
One time, I was interviewed at an ad agency, and the vice president who interviewed me revealed that he had a difficult time retaining entry-level employees. He and his manager, the senior vice president, both seemed burned out and like they didn’t really enjoy what they were doing. They never extended me a job offer, but even if they had, I would have chosen not to work there because it was evident that the work environment was toxic in some way.
Most important: your job during your interviews is not to ask about the perks and the timing of when they will hire. Your job is to convince them that you are the very best candidate who can help solve their problems. One of the ways to convince your dream employer that they must hire you is to explain to them how you will contribute. You can discover this by doing some research. Has there been an interview with the CEO, for example, in which he or she states one of their major challenges? If so, you can address that during your interview and explain how you can help solve their challenge. This is your one chance to show that you understand the issues the company is facing and what you contribute to help solve their problems.
As a hiring manager, I have conducted interviews with people who would ask about perks: things like benefits, time off, and when I (or the hiring committee of which I was a part) would be making a decision. I am sorry to say that these candidates did not progress further in the interview process. From these questions, it was evident they cared about themselves and how the job was going to serve them. They didn’t offer any information on how they contribute positively to our organization, so we moved on to other promising candidates who could answer that question.
The takeaway is this: if you can demonstrate how you will serve the employer, you will differentiate yourself, and it is likely that you will rise to the top of the list. Make your job interview about the employer that you are well-qualified to serve, and you will be well on your way to receiving an offer. Once you receive a job offer that you want to accept, you can ask more questions about perks and benefits. Until that happens, though, try to do your best to convince the employer that you are the right person for the job by making your interview about them rather than you. Doing so will pay off, especially once you receive a job offer. It will give you more bargaining power to negotiate your salary, which is the next important step in this process.
Step 13: Land Your Dream Job and Negotiate Your Salary
Hooray! You’ve received a job offer. So now you just accept the first offer you’re given, right?
Well, you could do that, but should you? Many newly hired people don’t try to negotiate their salaries because they’re afraid that their new employer will rescind their job offer. The chances of this happening are unlikely. If you’ve done your job and convinced your future employer that you’re the right person for the role, it is in their best interest as well to reach an agreement with you that includes salary.
Getting a favorable salary at the beginning is important, because it’s much harder to renegotiate salary after you’re hired. At that point, you’ve agreed to the job and the terms, and your employer won’t often be as open to giving you an increase unless it’s part of an annual increase or you’ve proven yourself worthy of a promotion.
In addition, the work that you do to negotiate your salary in the beginning pays off immediately. Let’s say an employer wants to hire you for 65,000 USD for an entry-level front-end web developer role. Depending on where you live and the skill level involved, this salary could be much higher or lower, but we’ll use 65,000 as a baseline because it’s close to what an entry-level web developer would earn in Chicago, as opposed to Milwaukee where the salaries will be lower or in New York or Silicon Valley where the salaries will be higher.
If you’re able to negotiate a 5% raise for yourself right at the beginning, say to 68,250 USD and your company has a 401k match of 5%, your retirement will be matched at a higher rate and you can save the difference of 3250 USD each year to get your retirement income off to a nice start. This is particularly helpful if you have some debts to pay off or if you have student loans. You can set aside the extra money from your salary negotiation for retirement, allowing you to use your regular income for your day-to-day concerns.
So, when your new employer calls you to offer you a job for 65,000, you can say something to the effect of, we’re in the right ballpark, but I was actually thinking of 68,250. Your future employer may agree to it on the spot, or he or she may need to talk it over with someone else and call you back. If your new boss has to call you back, it will be some of the most uncomfortable moments of your life, but in order to get an extra 3000+ in salary each year and start with a higher base will pay back many times over, compared to attempting to get those salary increases incrementally after you start working.
The sad truth is that some employers do not give everyone annual increases, and if you find yourself in that situation as I did when working for an ad agency, it will take tremendous effort to negotiate a higher salary after you are hired. I eventually tired of the tight purse strings that seemed to plague the creative team, so I eventually left for another industry. The creative jobs were competitive and scarce, so my employer held the advantage. Had I negotiated a higher salary when I was first hired, I would have at least had a bit of leverage instead of having to work hard to make up the difference later and continually demonstrate my worth and expound on all of my contributions.
All employees need to remind employers of their value to some extent, but starting at a higher salary gives you some leverage in the beginning, and if, after a few years, you don’t get an increase, you have the option of thanking your employer for the experience and finding a different position.
Step 14: Write to Me and Let Me Know about Your Success!
At You Can Learn How to Code, I am committed to helping web developers succeed, so be sure to write to me at firstname.lastname@example.org and tell me your success story! If any of these tactics or any parts of the plan worked for you, I’d love to know which information helped you. I am also open to your feedback if there is one area or another than was either confusing or that I could have expanded on more. Either way, I wish you the very best as you gain the skills you need to become a successful, well-paid web developer.