No glossy pamphlets, no YouTube pre-roll ads, no talking heads 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.
Name: Shane Main Learning Platforms: Udemy + freeCodeCamp, Codecademy & Treehouse for essentials Current Role: Webmaster Twitter: https://twitter.com/slmwebdesignco Blog: https://levelupdev.co
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.
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.
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
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.
Ian credits Coding Phase, Udemy, and YouTube with helping him learn modern web development.
I first learned programming in 2003 and the first language was ActionScript 2.
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.
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.
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.
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.
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.
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.
Name: Mika Main Learning Platform: YouTube Current Role: Web Developer (Contract)
Q: 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.
Q: 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.
Q: 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.).
Q: 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.
Q: 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.
Q: 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.
- 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 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.
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).
Q: 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.
You don’t need to spend loads of money to learn web dev. There are loads of great videos on YT, loads of great websites and loads of great courses.
I recommend to hunt for coupons or wait for Udemy sales before buying any course: https://couponcause.com/stores/udemy-coupon-codes/
Don’t just take courses: think of fake companies and use the knowledge from the course to make a website for it. For example, don’t just take a WordPress course and call it a day… Make a custom WordPress theme for a few friends.
Name: Jr. Main Learning Platform: freeCodeCamp Current Role: Freelancing + Seeking Enterprise Role Twitter: twitter.com/jrcenina Portfolio/Projects: jayaardvark.github.io
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…….)
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.
Q: What are some notable stumbling blocks you faced when learning on freeCodeCamp, and how did you overcome them?
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!).
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.”
Q: 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 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.
Q: 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.
Q: 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 and 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.
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.
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.
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.
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.
Q: 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.
Thank you to these six developers for sharing their stories with the world!