DEV Community

Cover image for What I Learned From 2 Months of Teaching Myself To Code
Josh Nelson ⚡️
Josh Nelson ⚡️

Posted on

What I Learned From 2 Months of Teaching Myself To Code

I’ll preface this article with some background. I am just almost 3 months into committing to learning how to code, and before this, I had no prior coding experience. And 3 months later, I don’t have a job or a portfolio.

This post will walk through my timeline, and what I’ve learned both physically and mentally.

OCT. 12

I started officially on Oct. 5th. I ordered HeadFirst HTML + CSS and got same-day delivery on Amazon. When the book arrived, I dove right in. It took no longer than a week to fly through that book.

After the week of reading and completing the projects in the book, I took to CodeCademy and started on the Front-End Development Path. I got a decent way through the CSS portion when I realized there are cheaper ways to learn HTML + CSS.

I then took to YouTube and spent the next three weeks diving heavily into CSS. Mostly just coding along to the videos and practicing. During this time I went to two free meetups at my local Bootcamp where they talked HTML and CSS, but it was truly basic knowledge for people new to coding.

NOV. 14

It was time to test the waters in JavaScript and I was scared. Having liked the Headfirst book so much, I bought the JavaScript version. But after building visual things, there was no way I could sit and learn through a book again.

I then dove right into freeCodeCamp and their JavaScript curriculum. In the beginning, I loved it. I was learning so much, loved the interactive platform and videos, but then after about two weeks got frustrated. I wrote a post on that experience here. Needless to say, I started looking elsewhere.

It was during this time I took a week off for the holidays.

I spent the next week or so on YouTube watching Coding Train videos. But soon needed some direction.

DEC. 5

I buy Colt Steele’s Web Dev Udemy course. I start working my way through the beginning of HTML and CSS and after breaks for my college finals and the holidays, I am now working through Bootstrap.

--

That catches you up with how I structured my learning in the past two months. No it was not super intensive or demanding, but I put in the time I could. Now, here’s what I learned.

What I Learned – Coding

Starting with coding specifics, I have learned a great deal about HTML and CSS. My HTML is solid, CSS is getting there. I realize that CSS is responsible for the majority of the visually appealing minimalistic websites that I loved, so I decided to double down and focus on CSS in my free time.

As for building things, I have built some mediocre buttons and landing pages from scratch. Nothing crazy and no real projects. I’ve been holding off until I’m done learning JavaScript before I focus heavily on projects.

JavaScript related, I understand the syntax and how the language works, but currently have not built anything meaningful with it besides a clock that changes color.

Most of the stuff I have built is from coding along with videos, other than a few landing pages.

Outside of code, I have spent a good amount of time learning UX design primarily through YouTube. I learned how to use Adobe XD, and have built some practice projects and wireframes from a design standpoint.

UX design is my favorite thing to learn, mostly from Caler Edwards and Design Course on YouTube. My goal with learning design is to become a full-stack UX designer that can design and code websites, web apps, and mobile apps from scratch.

To be honest, I am very confident in my understanding of HTML and CSS, but UX and JavaScript are currently what I am focusing on learning.

What I Learned – Mental

This is arguably the most important part of learning to code. Without building the mental skills, teaching yourself is probably unattainable.

The most important skill I learned was patience. I have no intention to rush myself into learning how to code to get a developer job. I am taking my time to make sure I am ready and comfortable to join the workplace.

Could I bring myself to be ready to apply for jobs within the next two months? Probably, but I would rather solidify my learning to land my dream job instead of a random one.

Next, is focus. Learning to code on your own is hard. Bringing yourself to sit at your computer and focus every day for hours on end is brutal at first, but it gets easier. Get some headphones, light loFi music, and tune everything else out.

If you can focus on one task and not get distracted by other courses, tweets, or videos, you’ll speed through the learning process. It just takes discipline.

Last is perseverance. Learning to code is frustrating and you will hit roadblocks. If you want to give up on the first roadblock you’ll never make it. Take a step back and remember why you are learning to code.

Being able to get over the small hurdles like not understanding something, or not being able to focus will help you on your journey tremendously.

--

Closing

I did not make the most of those 2 months learning to code, but I stuck with it and made progress. The things I accomplished took some 15-20 hour weeks, some 5-10 hour weeks, and then even some weeks off.

Don’t burn yourself out and set unrealistic goals. I found 30 minutes a day to not be enough for me, so I would try to find a time where I could commit 2-3 hours a day. This worked for me, and it may not work for you.

As with everything, find and test what works and then put your head down and grind.

My plan for 2020 is to continue learning front-end development and UX design. I have no rush to get a job or build a portfolio, as I plan on doing so once I am ready.

I’ll be writing another post with my plan for 2020 and beyond so stay tuned!

Resources Mentioned

Colt Steele Web Developer Bootcamp
freeCodeCamp
Caler Edwards
Design Course
CodingTrain
Grand Circus Bootcamp
Headfirst HTML + CSS
CodeCademy

Additional Resources
Dev Ed YouTube
CSS Tricks
MDN
Dribbble

Latest comments (4)

Collapse
 
brycebba profile image
brycebba • Edited

Keep at it and really put focus on JavaScript and it will pay off. Without good working knowledge of JavaScript your site will be little more than a visual with very limited functionality. A pretty face with no brains in other words. JavaScript opens the doors to endless functionality turning that website into a functional web application. I have been a developer professionally for 7 years and was a casual coder before that and the learning never ends so get used to that. At first you are hired to do basic things and then you come across something you don't know and you have to learn about it. Then your skill set is stronger and you move to working on the more advanced things that you have now become comfortable with but then there is something again you need to do that you don't know be it a new language, more advanced knowledge, etc. This cycle repeats itself endlessly which is what makes the profession so challenging and so rewarding. Like I said, keep at it and you will get there, push yourself to new challenges. I don't mean this in an insulting way so please don't misunderstand my point, anyone can learn basic HTML and CSS but what takes you to the next level is functional programming aka the business logic and the drive to learn more all the time which it sounds like you have. Btw,I'm not dogging on web designers by any means, a designer brings the visual art to the site and that can be a specialty by itself at advanced levels and requires artistic skills but it just sounds like you want to do more regarding the website which is why I was recommending to dig deeper on the programming side. Good luck!

I would set your sights high and try to make a site that does things, a true application and it's totally fine to struggle through it and copy/paste stack overflow answers or any other answer to your question at that moment. You will learn through the exposure and curiosity of why those words written that specific way accomplish what you wanted functionally. It will start to click after a while.

Oh and don't get caught up in the trends of using plugins or modules to help you accomplish tasks while you are in the beginning. All that teaches you is blind acceptance of someone else's code that you don't understand how it works. It might be frustrating for a while because "it would be so easy to do X thing if I just used jQuery or Y framework or library" but are you really learning how to make your code do what you want in a way you understand. Vanilla JavaScript can be "harder" to do things in which is why people create js frameworks and libraries to make X thing easier so you don't want to short change your education by using the easy way without being able to understand what made it possible under the hood if that makes sense.

Collapse
 
kmwill23 profile image
Kevin

You are focusing on the funnest things 😁

If you've never been exposed basic code syntax, that will be the largest struggle. If you are good at math, you will pick it up fairly simple.

Collapse
 
jshn profile image
Josh Nelson ⚡️

I'm decent at math, and oddly enough I actually love code syntax – I just find it visually appealing!

Collapse
 
edgarnegronrabell profile image
Edgar A Negron

Hey, congrats on getting started. I’m going to be honest, you’re doing great, give yourself more credit, you don’t need to get cocky but give yourself some credit for doing so much in these last couple of months. In my experience, it has taken me longer to get a grasp of all three languages, Colt Steele’s course is great, as long as you keep at it you’ll get really good. Might I suggest that you look into Michael Hartl’s courses, they really helped me out a lot. If you can’t afford it, you can apply for a scholarship and get the courses for free. Also, there are some really great courses on Coursera that you can apply for scholarships also id you have a student email. You’re more focused than you think and you have a great structure going on. Keep going, celebrate yourself and you will make it. But taking a slow and steady pace is also a great way to go, so do it the way that’s best for you.