Self-Taught Web Development: What Was It Really Like? || Six Developers Share Their Stories

Today you’ll meet Shane, Ian, Mika, N0vice, Jr., and Donovan. While their backgrounds, tech stacks, and geographical locations are different, all six of these devs share their coding journeys with clarity, candor, and insight into the self-taught web developer world.

Clockwise from upper left: Shane, Ian, Mika, N0vice, Jr., Donovan.

No glossy pamphlets, no YouTube pre-roll ads, no random talking head from the marketing department: Welcome to the What Was It Really Like? series.

In this short but illuminating series, you’ll meet software developers who learned their craft from a variety of sources: from traditional college education, to self-paced video-based platforms, to coding bootcamps and beyond. How we learn to code is one of the most important stories we can share during our developer journeys.

Let’s meet the devs.

Name: Shane
Main Learning Platforms:
Udemy + freeCodeCamp, Codecademy & Treehouse for essentials
Current Role: Webmaster
Socials: YouTube: LevelUpDev 
Twitter: https://twitter.com/slmwebdesignco
Blog: https://levelupdev.co

I discovered web development about four years ago while homeless and struggling in Houston, TX.
I was first introduced to Udemy by Joe from CodingPhase on YouTube. He always mentioned 5 specific courses on Udemy that he used to learn the skills that helped him become a developer. I bought and completed a few of those and started branching out to other courses from there. Udemy played a huge role in me learning the skills that ultimately got me my first job in web development.

I think as a self-taught dev, there are many advantages.

The biggest one is that in the process of learning different technologies, you can take your time and learn on your own schedule. Compared to trying to keep up with a set curriculum, which could cause you to have to skip over certain concepts before you fully understand them. Another advantage is that you can skip around to certain courses and topics at your own leisure, and focus on the things you need to learn the most without wasting time with filler subjects. In my opinion, the self-taught route is much more efficient, and in general a higher quality of education.

The only thing I would consider a drawback while using Udemy, like any self-learning platform, is that there is no one “in person” who can help you when you get stuck.

The beauty of this problem is that it naturally teaches you the most powerful skill you can have in web development. This skill is learning how to use Google to quickly find solutions to the problems you get stuck on. It is impossible for any human to remember every CSS property perfectly, or even basic syntax of multiple languages. Even the most experienced developer is looking up basic things on a daily basis. The key is to get very efficient in this process and knowing how to retrieve the information you need and get back to the project ASAP. The more you code, the better you will get at this by default.

Besides the most important skill (in my opinion) that I mentioned above, I would say just be consistent and code everyday, even if it is just 30 minutes.

Obviously the more you put in the more you will get out of it, but persistence is key. You will get way more value out of coding daily for 30 minutes than only coding one day a week for hours. The information will stay fresh in your mind and you will have moments of clarity where concepts seem to click more often.

To anyone who might be skeptical about going the self-taught route, I would say at least give it a try and give yourself a chance. Start out with some free resources and see what happens. After you try this for a while and if you still feel like you need more structure and guidance then I would say go to a bootcamp or school only as a last resort. I want to say that as a self-taught developer, who made it into the industry, I did it all on my own and it was the greatest thing I have ever done. The fact that I went from homeless to building a career in web development out of nothing, gives me a pride that is unexplainable.

One thing I can say with 100% confidence, if I can make it into this industry then anyone can do it. It just takes dedication, commitment and persistence.

It took me about 3 years from the time I started learning web development until I started applying for jobs. I waited way too long might I add. I know I could have found a job after the first year or so. My advice to everyone is to start applying as soon as you have a portfolio with a few nice looking projects in it. Also apply to the jobs regardless of if you fit the requirements or not. If you have good quality projects in your portfolio that show you have the skills they need for that job, then you can get a job.

The top 3 Udemy courses I would recommend:

Portfolio Advice for Newbies:

I think the key to having an effective portfolio is simply having real projects that look professional. When I say real projects, I mean live websites for actual businesses, or an app that is complete and functional. While everyone isn’t great at design, including myself, make sure your projects look modern and clean. You need to show prospective employers that you know how to put a project together and that you have the skillset that they are looking for in an employee.


Name: Ian
Main Learning Platforms:
Udemy & YouTube + CodingPhase for portfolio projects
Current Role: Web Developer

We live in a time of prosperity when it comes to learning.

YouTube has always been the go-to for learning and picking up new things. I like YouTube today because of the sheer amount of information that exists on the site. If I need to learn something quick, I can count on YouTube.

Udemy is an awesome resource for in-depth learning for a very cheap price. There is almost nowhere you can go to get full courses from bootcamp and university teachers without paying an arm and a leg except for platforms like Udemy.

I like CodingPhase because of Joe’s attitude and teaching style. There have been times when I have watched just 15 minutes of one of his videos, and learned something that helped me figure something out that I have been struggling with for weeks. He connects the dots with his training. Also, codingphase.com is very project oriented. If you do all the project courses like the React, HyperApp, Node, and ecommerce courses you can build a portfolio strong enough to get a job (for a decent price).

Many of these instructors I give thanks for because without them I’d have to pay thousands at a bootcamp or hundreds on a website in order to get access to. There are those that complain too much about how hard it is to get into the industry because you need to learn all this stuff…well, choose your hard.

Either the backbreaking labor job where your boss cares nothing for you or taking the time, over the course of a year (a lot of times sooner), to acquire the skills you need to get the job you want. It’s your choice…we are all going to get old anyway…why not make it count.

Ian fused CodingPhase, Udemy, and YouTube to learn in-demand & modern dev skills on his own.

I first learned programming in 2003 and the first language was ActionScript 2.

It was a time before you could just go on YouTube and just look up ‘JavaScript’ and see millions of videos show up. It was a literal grind to learn how to program in comparison to today. I did go to ITT tech from 2003 to 2005 where I picked up HTML, CSS, Javascript, Actionscript, and PHP…but in order to get good I had to learn on my own. I looked out for any books, bought CD/DVD courses, and went to any site that had programming on it. A few sites that helped me a lot [were] tinkernut.com and developphp.com.

I also didn’t have a community of people that I could utilize to help with programming…My friends who went to school with me wound up leaving the programming world after we were all laid off from our first dev jobs in 2008. It was seriously like pushing a boulder up a hill…after trying freelancing for years, working for Walmart, the Government, a bank, a small tech company (not in that order), I finally was blessed with my second dev job making $30,000 a year working at a debt collection agency in 2011. Sometimes you have to grind in order to get to the top. Now at my 4th dev job, I am still grinding to get to that top…but now I have an actual plan to get there.

We are all self-taught and we are all learning from someone.

Even going to a school to learn code, you won’t be spoon fed, you have to learn yourself…and if you pull up a Udemy tutorial, you are also learning from someone as though you are in school. Those that look down on people who would rather teach themselves without schooling have to realize you will have to be self-taught anyway. Unlike how the world used to be years ago, where you could go to school, get a job, and work the job for 40 years and never advance; today, if you don’t ‘self-teach’ you will get left behind.

Things are changing so fast that tech is considered old after a few years. You will wind up pigeonholing yourself into a position and finally when you look up and say ‘Hey, I think I need a new job’ you will find out that you have to start back at square one. That is actually what happened to me. At my second dev job, I worked 3 years on a company’s propriety software and I left there to my 3rd dev job working with ActionScript. When I looked up to try to find a new job, I realized I had to start over from the beginning because no one was hiring an ActionsScript 3 / VXML developer.

Insider Tips for Newbies:

1 — Code every day for at least 3 to 4 hours a day (8 hours if you don’t have a job). You cannot treat this as a hobby. If you miss a day that is OK, just get back on the grind the next day…Your job/part-time job is to get a dev job. Treat it as such.

2 — Post your progress on social media especially LinkedIn. This will give you the look of a more seasoned developer. Plus when recruiters search LinkedIn for a specific skill, your posts of the code and projects that you are working on will come up and recruiters will start to reach out to you. You can also create a blog or a YouTube channel…the purpose of this is so that when companies search your name, they will see your progress…from an HTML newbie to a JS master.

Portfolio Advice:

Just make sure that the projects you put in there are your own. It’s OK to use projects that you created or developed from a course…just make sure you change things like the color, the name of functions and variables, and even use different technologies — like if the app you built uses the MERN stack change out MongoDB for MySQL, or change out Node/Express for ASP.NET, etc.

Top 3 Udemy Courses for newbies:

Top 3 CodingPhase.com courses:

  • React Quick & Easy
  • HTML Email Frameworks
  • HyperAppJS/Build-a-Restaurant App

Name: Mika
Main Learning Platform:
YouTube
Current Role:
Web Developer (Contract)

How did you decide YouTube was a good fit?

It was the first resource I used and all I needed was there to find.

I never really had the need to test anything else.

I tested two Udemy courses, but everything [that] was inside these courses you can also find on YT.

Did you participate in chat groups, forums, etc. while learning, or did you mostly keep to yourself?

I joined various Facebook groups to ask questions about HTML, CSS and JS.

There are very nice people in these groups.

How long did it take you to find a good collection of YouTube channels?

17 hours and 12 minutes ;)

Seriously: When I found a good video to a specific topic, I checked if this tutor had more good videos on his channel.

So my collection grew from time to time. All in all there are about 10 channels that had everything I needed. Channels for HTML+CSS, JS+Frameworks and other stuff (mindset, tips, portfolio reviews, etc.).

Mika leveraged the YouTube ecosystem to learn web development.

Do you think there are certain things that can’t be learned online?

I think you can’t learn everything online, because you don’t know what ‘everything’ contains. There were things I even didn’t know existed before I started working on a team.

I wanted to learn enough to get a job [so I could] learn much faster at the job’s environment with other developers. For example Git, JIRA and Scrum. I think I learned Git much faster at the job as I would have learned it at home.

JIRA and Scrum… never heared about these before :)

With all the suggested videos on YouTube, how did you limit your distractions while learning there?

When I think about it… I never had that problem.

It was more like programming videos distracted me from entertaining videos.

How long did it take you to learn enough to be confident to apply to jobs?

About 7 months. When my portfolio was almost finnished I was confident enough.

I applied for 2 jobs just to check how my portfolio [was performing] in the field. Fortunately I got 2 invitations for a job interview and got hired in the end (8 months after writing my first line of HTML: <h1>hello world</h1>).

I want to mention here the importance of a “good” portfolio. After two weeks on the job they told me that they liked my portfolio so much and that this was the reason they took me over other (more experienced) candidates.

Mika emphasizes that a good portfolio can put a job candidate far ahead of other candidates. Photo by Joshua Aragon on Unsplash

Tips for newbies:

  • Take time for breaks.
  • Find videos that are up to date (not older than 1 or 2 years).
  • Go and find websites you like and rebuild them. I built 5 or 6 websites, experimented alot. Then I decided which projects I wanted to show in my portfolio and built them.
  • Your personal website should be the last one you create, because you are on top of your skills at this moment.

Fundamentally I think there is not [just] one and only way to learn web development. Just build website after website and the upcoming questions while doing this will navigate you through the jungle.


Name: N0vice
Main Learning Platforms:
Udemy + YouTube & W3Schools
Current Role:
Freelancer & Part-time dev gig
Portfolio:
http://www.trwebdev.com

I’m 17; I started learning web development just over a year ago.

I was watching a small streamer called th3halogam3r and thought it would be cool if he had a website. He did not have the money to buy one so I made it. I started learning from [YouTube], got the basics down but could not put all the knowledge together to make a good looking website, so I took Build Responsive Real World Websites with HTML5 and CSS3 by Jonas Schmedtmann. And it went from there I guess.

YouTube was just my default place to find information about anything so it seemed natural to me to use it to learn code. Brad Traversy was advertising his courses on his YT channel and Udemy was a lot cheaper than other platforms that require a monthly subscription.

To learn JavaScript I don’t think there is anything better than Modern JavaScript From The Beginning from Brad Traversy.

I think self-paced type courses are better for most people because it does not require you to stop everything in your life. It allows you to still study or work while learning on the side. It also allows you to learn what you see fit, meaning you can avoid learning things that might be out of date (which some college courses have).

N0vice’s modest yet powerful collection of Udemy courses helped him learn web development.

How did you overcome your stumbling blocks while learning?

One main thing at the start was motivation. You don’t have classmates or a face-to-face teacher to push you. It is up to you to set the work, think of assignments for yourself and actually do them. I don’t think I have completely overcome this but I can definitely see a project to the end, which is something I had difficulty with before I really got into learning web dev. I think it is always better to bring someone else on board with you on a project; they give advice, new ideas, new skills and give you a reason to work on the project. With a partner on board you are doing it for more than just yourself, so you are more likely to open your IDE and get to work. That is my experience.

Tips for newbies:


Name: Jr.
Main Learning Platform:
freeCodeCamp
Current Role:
Freelancing + Seeking Enterprise Role
Socials:
Instagram: instagram.com/dirtyetherealmusic
Medium: https://medium.com/@jrcenina
Twitter: twitter.com/jrcenina
Portfolio/Projects: jayaardvark.github.io

It must’ve been about two years ago when I first heard about freeCodeCamp. I would sometimes watch Matt Tran’s YouTube channel, Engineered Truth, and I found it interesting and pretty against-the-grain that he was offering debunking advice to would-be engineers going the traditional 4-years-of-university. What I mean is that he would interview people who spent 4 years or more getting various kinds of engineering degrees only to find that the work they ended up doing was not at all what they imagined it would be and actually pretty unrewarding. The few videos that I saw at the time more-or-less implied that a significant number of engineering students were being duped by the educational paradigm.

However, when he talked about the route of coding bootcamps (an alternative to the traditional route to a job in STEM) he didn’t seem to have the same sort of scathing-unveiling-of-an-illusory-veil tone that he had when talking about, for example, spending four years getting a computer science degree if one’s goal was to do web development.

One of these alternate-route options that he mentioned was freeCodeCamp and I wrote the name down. He seemed to respect the freeCodeCamp project and freeCodeCamp gained credibility in my eyes considering the criticism that the Engineered Truth channel had for many other STEM curricula. It wasn’t until over a year after did I actually check out freeCodeCamp but it was mainly because of that YouTube channel’s endorsement.

(also, freeCodeCamp is free — so…….)

When I reached the JavaScript Algorithms and Data Structures section of the curriculum, I found myself stumped on an aspect of a problem that I couldn’t quite grasp and needed a nudge. I didn’t want a straight-out answer but just the right amount of elders’ guidance to help me see what I wasn’t seeing.

I got a response — two responses! — within an hour by two freeCodeCamp forum sages.

People are ALWAYS on that forum and I appreciate the forum for its serving as a kind of island away from the isolating seas of self-study. The journey of self-study is long and feels anti-social but the FCC forum provides some sense of community that I think is necessary for staying mentally healthy and motivated (e.g. instead of quitting out of frustration, you can ask for help).

This might sound like a paradox but one advantage that I think the “self-taught” route has over the others is that you can easily get off track and stop making progress while self-teaching.

What I mean by this is that if you can see the self-taught route through, then you are either highly self-motivated and disciplined or you will have developed self-motivation and discipline as a result of going the self-taught route.

Having to answer to exterior deadlines set by someone who isn’t you, although obviously effective, seems more a passive impetus in the sense that it gets you moving by the will of someone else. On the other hand, accomplishing the rigorous goal of learning full-stack development in 6 months to a year by your own will and planning seems more proactive and likely to level-up your self-starter stats more.

What are some notable stumbling blocks you faced when learning on freeCodeCamp, and how did you overcome them?

As I mentioned earlier, I began facing resistance to my progress when I reached the JavaScript Algorithms and Data Structures portion of the curriculum.

This stumbling block is notable in that I had to develop a systematic approach to solving these problems. I couldn’t just sit in an armchair pondering an algorithm challenge and expect to find a solution.

This systematic approach involved setting a clean piece of paper down on a clean desk and writing out — in neat hand writing — the exact steps my code needed to follow in order to pass the algorithm challenge. The clean paper, clean desk, and neat hand writing were mandatory prerequisites to getting through the algorithm challenges for me. This ritual gave my mind a clinically clear perspective that allowed me to focus on what was relevant and what wasn’t for each coding challenge.

I made a point of coding EVERYDAY when I started the freeCodeCamp curriculum — even if it was only 20 minutes.

I have a written log of how much time I spent doing coding-related activities. Furthermore, I even wrote down what portion I worked on in the freeCodeCamp curriculum for each day. So, if you ask me what I coded on the night of December 31st I could tell you (yes, I was coding on New Year’s eve!). This kind of dedication is what worked for me doing the “self-taught” route.

I would eventually like to end up at a company that encourages creativity and innovation.

My ideal place of eventual employment would make full use of my wide skill set. I’m a musician, language lover (I enjoy studying “dead” languages), electronics tinkerer, and budding programmer.

Basically, it would be ideal to end up somewhere that requires me to be both “right-brained” and “left-brained.”

Jr.’s dream job involves maximizing his many skills, from music to electronics and beyond.

What advice or insight can you give to people who may be skeptical about being self-taught?

I believe that any skepticism of being a self-taught developer is understandably justifiable.

If someone attends a strictly structured bootcamp or college, they have that institution essentially vouching for them in the form of completion credentials.

However, anyone who has successfully gained their knowledge by means of self-teaching has a demonstrable amount of initiative. It takes a lot of determination to see something through without outside support and I’d even go so far as to say that it reflects a genuine interest in the material. You can guarantee that someone who is self-taught in a discipline is hard-working and genuinely interested in the material learned.


Name: Donovan
Main Learning Platform:
Udemy
Current Role:
Front-End Developer
Socials: Twitter: https://twitter.com/browncdonovan
LinkedIn: https://www.linkedin.com/in/browncdonovan
Instagram: https://www.instagram.com/brown_c_donovan/

About six years ago when I first was interested in making that career change from Computer Support to Web Developer, I searched the good old Internet to find good resources for learning how to code. Way back then you had very limited choices. Udemy.com stood out to me because of the various courses you could take, the one-time buy of a course and it’s your for life! You can take courses anytime at your own pace and lastly, those sweet, sweet, sweet monthly sales of Udemy.com courses that are over $100 dropped down to anywhere from $10 — $35. You really can’t beat it.

What advantages do you think the self-paced, self-taught dev route has over something more structured like a coding boot camp or college?

Self-taught/self-paced you can take your time and learn at your own pace — it’s much less expensive than going to a coding bootcamp or college. This is great for people with jobs, family or any other high-priority responsibilities.

Coding bootcamps can be expensive and you will most likely have to drop almost everything to attend a coding bootcamp and not everyone can afford to invest in these types of commitments. College is also expensive and yet you will probably learn outdated skills by the time you are finished. Plus you don’t need a degree to be a developer.

What are some notable stumbling blocks you faced when learning on Udemy, and how did you overcome them?

Taking a course once and declaring you are a “master” because you have taken a course: To avoid this, take notes, code along with the instructor, and if you don’t understand a concept replay or rewind that video again, ask questions in the Q&A board or Google it. Really try an put in an effort to understand at least as much as possible of what is being taught to you if you can. I like to take a Udemy.com course from start to finish 2 to 3 times so the core concepts will stick with me.

Taking various courses all a once: Do Not Do This! Especially if you are a beginner, stick with just ONE Udemy course only at a time. Figure out what you want to accomplish or specialize in, stick with that course then move on to the next course.

Donovan stresses the importance of focusing on one Udemy course at a time, even taking it multiple times to ensure the knowledge sticks. Photo by Chase Clark on Unsplash

Taking poor quality Udemy courses: If you are interested in a Udemy course I highly suggest checking the student reviews and see what other students are saying before investing in a course. If you happen to buy a course you are not satisfied with or you are having difficulties understanding the instructor, Udemy offers a day 30 money back guarantee so take advantage of that for courses that don’t meet your learning standards. I typically invest in courses that are no lower than 4 stars reviews.

Advice to code newbies:

Make time to study and learn: since you are self-taught, you are held accountable for your success.

I like to study and take courses for anywhere from at least 30 minutes to about 3 to 4 hours a day and take breaks when necessary using the Pomodoro technique (look it up if you are not aware of this technique) for taking balanced breaks so your brain can have the opportunity recharge. I personally don’t have kids or a family to look after so your personal commitment times for learning may vary.

Learn self-discipline: Kinda piggy-backing of the previous statement. There might be some things you may need to sacrifice in order to be successful as a self-taught dev. I spent less time playing video games (HUGE gamer of here!), watching anime, attending comic book and gaming conventions, hanging out with friends / spending less time with toxic people and shutting down my Facebook account. I didn’t give up these completely while learning to code (except Facebook). I would at least allocate some time for learning daily if possible.

Donovan ditched Facebook so he could focus on more important things, like learning to code.

Find a way to fight off those temptations and I promise the results will show.

One learning hack I like to do kinda goes back to the Pomodoro technique. Often on a weekend, I’ll study/learn code at a local cafe for a couple of hours then I’ll reward myself knowing I spent a good amount of time learning code to come home, play video games or hang out with friends. I find getting into the right atmosphere without the distractions or temptations of procrastinating really helps me to stay focused for long periods.

Go to Meetups if you can. If you are not aware, there are various coding-based meetups on Meetups.com in just about anywhere in the world.

Meetups are in nearly every city and cater to numerous web development niches, from vanilla JavaScript to web design.

Join a coding Meetup and network with other tech professionals. You may find someone who is also learning and can provide each other tips, help, become study buddies or could eventually network your way into a dev job. If you are expecting to look for a dev job after learning how to code having a good solid network for landing a job is key.

How long did it take you to learn enough to be confident to apply to jobs?

Five years as a self-taught dev! And I am going to save you 5 years of wasting time. :)

Figure out what you want to specialize in whether it’s front-end development, back-end development, full-stack development, mobile, etc. And stick with it!

In a previous RTC blog post, I mentioned that I wasted precious time jumping from stack to stack, technology to technology, programming language to programming language thinking that this was the right way to become a successful dev and at that time I didn’t have a mentor or a guide to tell me that this was absolutely wrong and I am wasting time. Long story short, I learned this lesson the hard way. News flash, you don’t have to learn everything about programming and development to be successful.

Top 3 Udemy Courses:

Thank you to these six developers for sharing their stories with the world! If you enjoyed this piece, please max out that the applause button and show them some love!

And be sure to subscribe to me on YouTube where I make videos on just about every facet of modern web development: https://www.youtube.com/realtoughcandy

Twitter: https://www.twitter.com/reatoughcandy