Background
If you’ve read any of our other articles here at Red Bear you know that we love learning about learning. You know that we’re always looking at ways of being as efficient and effective as we can be about every aspect of our lives. The latest learning journey that we have embarked on is learning how to code. Our journey is far from over and in reality it may be closer to the starting line than the finish line but we’ve learned a few things along the way that may help some of you on your journey.
As a disclaimer we want you to understand that learning how to code, in relative terms, is not the easiest skill to pick up. You have probably heard of a friend or two that tried to teach themselves how to code and then eventually dropped it altogether. This is a common occurrence given the nature of task and we want to help you avoid falling into the same trap. For the most part it will take a lot of time and effort to understand thoroughly but have no fear we’re here to help!
Where to start
When it comes to getting started there are a couple of different approaches you can take and you can pick which avenue works best for you but when you are COMPLETELY new to coding there are less wrong ways to start. Any exposure to the concepts that you are interested in learning will inevitably prove some benefit when you are brand new to the concept. There are a couple of things that you definitely want to avoid and we’ve listed them below but your approach may still vary.
Your Environment
We’re actually talking about a couple of environments here, your learning environment, and your development environment. When it comes to your learning environment this might go without saying but you’ll want to make sure that you have some dedicated resources to learning how to code. You don’t need to dedicate an entire room in your home to coding but your workspace should be as distraction free as possible and comfortable because you will probably spend a lot of time there if you want to make decent progress. The only other physical requirement you need from there is a computer, although multiple monitors and a good set of peripherals for a laptop can really make things easier.
The other environment you’ll want to set up is your development environment. In order to follow along with any tutorials or courses you will want to be able to reproduce the code live on your own machine. In order to do this you are going to want to have an Integrated Development Environment (IDE), which is just software that will allow to write, build, and debug code. If you have no existing preference or even an idea of what an IDE might be then just go with Visual Studio Code. This is by far the most popular and arguably one of the most powerful IDEs used by developers everywhere. Of course there are others that could work but VS Code will make your life simpler because most instructors in courses and tutorials will be using VS Code so it will be easier to follow along.
The Learning platform
You have a few different options for learning how to code but here are some of the most popular ones. Know that out of all these the only free one is YouTube. We love free stuff here and recommend leveraging free resources as much as possible but just understand that you might encounter some more friction when using free resources. This is not to say that it can’t be done, sure you can learn how to code entirely on free YouTube videos but your experience might be just a little better if you pay for some resources. We would recommend starting with YouTube for free if you are unsure about your commitment and then maybe paying for courses and classes when you know you are going to stick with it.
Youtube
Youtube is a great place to start your coding journey and it’s where most people start. The most important thing to understand when using Youtube is that you WILL NOT learn how to code just by watching videos. You absolutely need to code along and we recommend taking your time to play with the concepts you are learning about. Get comfortable with pausing the videos and using your own variables and breaking the code and maybe even trying concepts more complex than what is in the video that you’re watching. This is the only way you’re going to learn how to code and frankly this is not a concept exclusive to Youtube videos, it’s just where everybody starts. When you don’t know any better you might think that you can just watch and learn but the fact is you’re going to need to code and learn.
Online Courses
When we say online courses we are talking about any specific course designed to either teach you a programming language start to finish or a programming concept. Most of these are going to be paid courses but some of these you might find for free, or on discount. For us, Udemy worked really well and here’s what we have to say about it. We know sometimes Udemy has a negative reputation but our experience with the platform has been extremely positive. Some of the courses/instructors are a little bit less than professional but the content is still effective. We have never paid more than maybe $20 for any course (yes even the ones that are $180+) and you shouldn’t either. We’ll go ahead and shoutout this post from Travis Media that helped us accomplish this feat but this also helps with being able to look past some of the less than professional content.
Bootcamps
We have never tried a bootcamp but they are a valid option and we have heard a few stories about them being effective. In a nutshell a coding bootcamp is what is sounds like, you basically spend all day learning how to code in a cohort taught by seasoned instructors and ideally go home and continue to learn how to code some more for a period of a couple of weeks to a couple of months. However this becomes difficult because in order to make this happen you need a couple things:
- A readily available lump of cash
- A readily available lump of time
This is really the cost for all things isn’t it? Time and money. In a bootcamp you will be spending large sums of both with one ultimate goal: to learn to code fast…. and ideally land a job. Some of us have very finite amounts of the two required resources so it can feel a little bit out of reach, but in reality most people don’t have the time and money to spare, they find creative ways to acquire both for their goals. In all honesty in order for a bootcamp experience to be effective you probably need to be really hungry and highly motivated so it makes sense that those would be the same kind of people to pull a rabbit out of a hat to come up with the time and money to begin with.
The backfilling method
In this article we talk a bit about the backfilling method and why we have found it to be an effective means of learning many new skills in our lives. This may be an effective approach for you as well if you don’t like the more traditional learning path. The best way to leverage this is through the beauty of Open Source. Find an open source project that is in a field that interests you, branch the repository, and customize it to your needs. This is a great place to start because this will expose you to all of the moving parts of a particular software or firmware.
We say firmware as well as software because a lot of time it is easier for people to find interests in physical tools and projects like 3D printing, custom keyboards, or robotics. All of these leverage different firmwares and there are tons of open source projects available to get started with.
Lean into your interests
If you want to learn how to code effectively in a short period of time then you need to know what you’re up against and you need to know who your own worst enemy is. Unless you have some other enemies taking up a lot of your free time which if that is the case then you might need to deal with those first then your worst enemy as you embark on this journey is going to be yourself. What we mean by that is that you have to know and understand the human psyche, or at least well enough to not become victim of the programmatic evolutionary traits that make us human.
As human beings we are generally speaking, inherently lazy. We instinctively take the path(s) of least resistance. We don’t put our bodies or our minds through pain and suffering unless it is something of necessity. There are maybe a few outliers out there but for the vast majority of us these rules will apply. So what does this mean to us and why is it important? Well the path to becoming a developer or just learning how to code is one of arduity and of high possibility of attrition. If you have ever tried to learn programming in the past then you may have halfway committed or even gave it your all just to feel like you were getting no where fast and gave it all up in frustration.
Something that will help you overcome all of these tendencies is to lean into your interests. In the grand scheme of things your coding journey is largely going to be a balancing act between your internal motivation and all of the friction you will face that could lead you to quitting. Ultimately which ever one of these tips the scales in their favor will determine whether or not you are successful. That being said, the more things you have motivating you the better. Leaning into the hobbies and interests that you already had before you decided to embark on this code journey will enable you to be most successful.
For example if you look at some of the other categories of technology that we cover here at Red Bear such as programmable keyboards or 3D printing you’ll note that these were some of our first introductions to programming. These are examples of two very popular, open source, and heavily developed projects that foster this type of learning method but your interests may not translate in such an obvious way so you might need to get a little creative.
Some things to avoid
Do NOT worry about the magic, just believe
Something that can be really difficult to come to grips with when you are first starting to learn to code is the lack of understanding of how computers work. The problem, if you can really say this is a problem, is that the technology has advanced so much that there are so many layers of abstraction to wrap your head around. For a lot of us if somebody told us that behind the scenes of our computers and smartphones they were all powered by magic we wouldn’t even know how to begin to prove them wrong. This is OK, we promise. If you are fortunate enough to have even the slightest understanding of computer science when you decide to start your coding journey then great. If you have absolutely zero understanding that’s fine, don’t sweat it. Just focus on the coding and believe in the magic in the beginning and you can worry about becoming a magician later.
Worry about the concepts, not the syntax
As you progress through your journey and get a couple of programming languages under your belt you’ll start to realize that there are some common concepts that exist across multiple languages. If statements, for loops, and such related concepts are going to be ubiquitous among many of the programming languages you decided to learn. The important thing is to know and understand how such logical functions work, their implementations, as well as their limitations. The syntax is going to be a little different across different languages but the point that we are trying to get across is that it is going to be more beneficial to know and understand the basic functions of any given programming language over the specific syntax.