How to learn to code
by experiencehood | Jun 08, 2023Hey everyone, I am Brian. I am a front-end web developer who is enthusiastic about most things in web development. I will document my journey of exploring different sections of web development, mainly front-end web development, but there will be some cross-over to back-end development.
“Learning to code can be very intimidating because things often don’t work the first time you try them.” – Me.
Initial installations
When I was learning to code, the first problem I encountered was installing the necessary files for a programming language. Websites for programming languages could be more user-friendly for beginners and even intermediate programmers, and knowing which and how to download the correct file often requires a tutorial. Finding a good tutorial is another issue because they often feel rushed and sometimes need more clarity in installing a program.
Another problem is that part of the installation process differs from the usual installation process that people are accustomed to when installing an app. Some installations have multiple ways to install, which adds to the confusion, especially when your installation doesn’t work.
Following Tutorials
There are many tutorials available, both free and paid. The quality of a good tutorial is independent of how much money you spend on it. I have used plenty of free tutorials that are high quality and have great clarity in their instructions. I had purchased a tutorial before and was not pleased with how the content was delivered. Free tutorials are enough to learn how to code.
Anyone who has written code has encountered some error that does not allow your code to run as it should. When I first met errors, every error seemed more severe than it exactually was. This created the discomfort of not understanding why it was happening and not knowing how to fix it. Even when I found a good tutorial, I was confused by not understanding why my work didn’t work. I often restarted a tutorial because I felt it was easier to reset than trying to figure it out. Eventually, I became more comfortable resolving errors.
Jumping ahead
When I started to learn how to code, I wanted purely to be able to build a website. That motivated me to learn to code but also slowed me down. I was more interested in getting to the good stuff and less in fully understanding the basics. Understanding the fundamentals becomes a priority only when I hit a sticking point.
Even though without a complete understanding of the fundamentals, I was capable of building websites, it always felt like I was limited in my capabilities.
Learning Multiple Languages
When learning to code, plenty of suggestions exist on which programming language to learn. The first languages I learned were HTML and CSS because I wanted to create websites. HTML and CSS are not enough to display a website to the world. I had to learn an object-oriented programming language, and the first suggestion was Ruby.
Object-oriented programming is much more complicated than HTML and CSS. Learning Ruby was attractive, but I wasn’t doing what got me interested in programming. So, when I got a like understanding of Ruby, I jumped to Ruby on Rails. Ruby on Rails is a framework that allows you to build out the functionality of a website, such as an authentication system. As I mentioned, this became a problem because I was missing some basic knowledge and eventually hit a sticking point.
Determined to learn more about programming, I came across Python. It was a popular choice for many programmers, especially anyone who wanted to build websites. The Syntax for Python was similar to Ruby but less to write, which meant fewer chances of getting errors. Plus, Python had a popular framework Django that allowed me to make dynamic websites. Learning Python was easier to understand because of its similarities to Ruby, and because it was a new language was more interested in learning more of the fundamentals. Like before, I jumped ahead when I felt a little comfortable with the syntax and started creating a website.
Now, you must wonder if you want to build a website; what about JavaScript? Well, JavaScript is more of a bandage to CSS, meaning it was there to do things that CSS can’t. I did try it, but at this point, I couldn’t find a reason to learn JavaScript because CSS had many functions, and I could use Python for anything else I needed.
I understood object-oriented programming better by working with Django and Python, but sometimes I felt I didn’t understand programming. I gained a fundamental understanding of object-oriented programming when I was allowed to learn Java at a company I worked for. Java, to me, had felt like a programming language that you had to be competent to understand, and it was intimidating to think about learning.
Learning Java confirms that using it requires a different level of understanding. Java is stringent in its syntax, and unlike Python, you can’t get away with not fully understanding what’s going on, but surprisingly it was not difficult to learn. Its strict nature made me focus on the detail of what was going on in object-oriented programming.
Web development still played a role in my learning Java, even though it was for a job. I learned about Spring, a framework that assists in creating microservice such as building websites. It took much more work than Django, but I understood the process better, just like Java.
I also took a second look at JavaScript and learned more about what it can do for a website. This leads me to learn about libraries such as React. I even checked out TypeScript.
What’s ahead
That’s a summary of my experience of how I learned how to code. The learning doesn’t stop; there is more to explore, and new technologies for the web are still coming. This series will record me researching different techs for the web.
If you are interested to see more of what I do, check me out at Brian Mccollin