My Self-taught Programming Journey
Tags: beginners, codenewbie, webdev
Published: 2020-07-30 15:52:54

So you want to learn how to code but don’t know where to start?
Or you've already started your learning journey (well done you!), but you're feeling a little lost? 

I personally felt like I needed some sort of structure during my learning journey, so I've been making notes along the way hoping to support anyone who's looking into learning to code.

This article includes some tips, resources and personal learnings which might help you achieve your coding goals. Please note I'm learning front-end development specifically, so the article will be geared towards that.


# #100DaysOfCode
Setting yourself goals will set you up for success, whatever success means to you.
Taking part in the #100DaysOfCode on Twitter helped me stick to my goal of staying on a consistent learning journey and also held me accountable as I publicly committed to the challenge. Documenting your journey is important. You can look back and marvel at what you achieved during that specific timeframe.
You can join the #100DaysOfCode conversation, connect with other people who are on the same journey and have the support of other communities such as #CodeNewbies, etc. 

{% twitter 1288534037347344384 %}


#[FreeCodeCamp](https://www.freecodecamp.org/)
Free
At the beginning I looked for an online bootcamp that was not only free, but could be a good starting point for beginners.
I took the Responsive Web Design to start with, and I think that was a wonderful way to grasp basic HTML/CSS concepts.


#[Codecademy](https://www.codecademy.com/)
Free
I started the free version to test it out, and really enjoyed the platform and the engaging content of the courses.
I eventually moved to the Pro version (£15.99-£31.99/month or $19.99-$39.99/month), which I found worth the monthly cost as it lets you apply the concepts you’ve just learned into practical challenges to solidify your newly-acquired knowledge. With Pro, you can also get a certificate at the end of program. There's plenty of paths and courses to choose from. To be completely honest, I tried out the Pro version as I soon found out I much prefer video-based learning.

#[Codecademy](https://www.codecademy.com/) Go app
Free
The Codecademy Go app is really good for quick reviewing and practicing concepts, on the go. It gives you handy, randomised flash cards on the concepts learned in your chosen course and then fun little quiz style questions. Perfect for catching up while you wait for the bus.


#Video-based bootcamps
There are plenty of intro to coding bootcamps (HTML / CSS / JavaScript / Python / etc) led by some of the best instructors in the industry... for free!
One of the best out there is the [Frontend Masters Bootcamp](https://frontendmasters.com/bootcamp/) which is taught by Jen Kramer (Harvard University) and Brian Holt (Microsoft), where you also create some fun projects.


#Videos
When you’re new to a programming language, especially if you’re still at the beginning of your learning journey, it’s highly likely that you can’t quite grasp the entirety of a language's potential.
Questions such as ‘What can I actually *do* with JavaScript?’ might pop to mind which is completely normal. I found that watching videos on YouTube can help you a ton by giving you an overview of how powerful that language is.

[Youtube: Learn JavaScript - Full Course for Beginners](https://www.youtube.com/watch?v=PkZNo7MFNFg)

[Youtube: JavaScript Crash Course for Beginners] (https://www.youtube.com/watch?v=hdI2bqOjy3c&t) 


#Guided projects / tutorials
Before you feel confident enough to jump into your own personal projects, with little guidance, I found that learning through guided projects and tutorials was a great way to build that confidence. Tutorials help you grasp new concepts, and you have those training wheels helping you.
There's a plethora of great tutorials online, so why not learn from the best? Wes Bos is a legend and if you're learning JavaScript, he created the perfect tutorial-driven challenge: [JavaScript30](https://javascript30.com/).
It's essentially a 30-day challenge where you build 30 things in 30 days, with video guidance. You can follow up on Twitter with #Javascript30 to connect with other fellow coders on the same journey as you.


#Jump to non-guided projects when you feel ready
Tutorials can be a blessing and a curse, with the downside being that it's easy to feel trapped in the tutorial-led stage of learning. You'll learn better by crafting your own code and algorithms. I would recommend [FrontEndMentor](https://www.frontendmentor.io/ ) for this, as they provide beautifully designed challenges that you can sort by level of difficulty. You can always check out solutions submitted by peers if you're stuck or curious.


#Online courses
Online courses can go from fundamentals to advanced topics, such as specific frameworks, etc, so there's a lot of choice if you want to take it a step further and tailor your knowledge:
- [Frontend Masters ](https://frontendmasters.com/)
- [Udemy](https://www.udemy.com/courses/development/)
- [Traversy Media](https://www.traversymedia.com/), from Brad Traversy. He creates some of the best courses available in Udemy.
- [Wes Bos](https://wesbos.com/courses), possibly my favourite instructor, he created a range of free and paid courses for web developers.

#Debugging / Queries
It can be a lonely ride if you don’t have other programmer buddies, so once again the answer is the internet.
[Stack Overflow](https://stackoverflow.com/questions/) is the holy grail for questions and answers. Just search for similar issues, because it’s likely you’re not the first person asking that question. 
Look out for an answer with a green tick ✅ next to it - that will give you the right solution.


#Emotional resilience
It can be a pretty lonely journey learning something new on your own. 
Some days can be tough and you might find yourself doubting everything, yourself and your capabilities. You might get frustrated and wanting to give up, but pleeeeeeease remember that’s all part of the learning journey. Be your own cheerleader. Step back and look and what you’ve accomplished so far. Last week you didn’t know the things you do today. Last month it was inconceivable to think of where you are right now. Just compare yourself to the same day last year. 
It’s a long journey, so when you find yourself waddling through the valley of despair, try to refocus and regroup. Gather your strength and persevere.


These were my learnings during my self-taught programming journey. Would love to hear other recommendations.


You got this!