So You Want to Code…
Disclaimer: I am by no means an expert, so take my words with a grain of salt.
A man is sitting at his table, the computer screen begins to turn black. All of a sudden red error signs start flashing. Green lines of 0s and 1s flowing down the screen followed by intense keyboard clicking sounds/noises. He intensely starts writing lines of code when finally, he hits enter. In a deep relieved voice, he whispers, “I’m in”.
Programming is not as fast-paced and dramatic as movies exaggerate it to be. In fact, it can be very hard especially when you have no idea how one line of code affects everything else without given a visual.
There are many misconceptions including the one I mentioned above. A majority of people strongly believe that they need to have strong calculative skills to code. While it’s good to have some mathematical skills for programming, it’s all about problem solving and creativity. For example, software engineers might be solving questions such as how can we use code so people can post? How can we rewrite the code so that the players have a better experience? Solving problems is the key skill programmers have. A majority of code is used to solve problems. Take Instagram as an example. Software engineers are always coming up with new solutions to make it easier to connect with loved ones and friends.
But in reality, programming might not be for everyone. Some people might be good at it but not enjoy it. While some people are more adept and can pick up a new language very easily, with enough time, effort, and most importantly, practice, anyone can code.
While coding is a valuable skill to have, many are discouraged due to the steep learning curve that comes with more complicated languages. Learning a new programming language is like learning a new language. There’s no shortcut to mastering a language. It takes practice every day to master a new language. If you don’t actively practice, you’ll lose your grip. From writing lines of code to creating a large-scale project, that’s a big jump. Not to mention, debugging takes a long time. For example, small mistakes like not capitalizing a letter can affect your entire project without you noticing. However, don’t let that discourage you. Everyone has to start somewhere.
Before jumping in and learning new languages, ask yourself — what do I like?
If you don’t know, I suggest you dive deep. What problem do you want to solve using code? It could be something simple like making a tool to track your emails or something complex like making the next triple-A video game. Whatever it is, look at your end goal realistically. If you know nothing about programming and your end goal is to recreate Twitter, try starting with a project on a smaller scale and then work your way towards your goal. However, keep in mind that your end goal will change as you explore and create more projects. For your first programming language, do you want to start learning the easiest language, the language that’s the most popular, or the one that will make you the most money? Whatever it is, don’t limit your options and take the time to research before you start. There are too many and it really depends on what you are passionate about and what you want to get out of learning the language. My advice to you is to have fun with it and don’t learn a new language just because you want to add a shiny achievement on LinkedIn because chances are you may or may not enjoy the learning process.
Here’s a chart down below explaining what almost every programming language can be used for:
But I’m scared…
Programming at first can be intimidating, but believe me when I say that it takes curiosity, grit, and persistence. The best advice I can offer you is to shift your mindset. One of the best ways to learn is to get a coding buddy or to set tangible SMART goals for yourself. Keep yourself accountable. I highly recommend you use Notion or a kanban board to plan out every step or task you want to complete every time you code. From there, you can break it down into even smaller steps. For example, writing code for the header tag of your website. To take it even further, program the menu bar at the top of your website.
Everyone has their own unique learning style. Some people (like me) love learning under pressure. Another way to overcome the steep learning curve that comes with learning how to code is by attending a beginner-friendly hackathon. During the duration of the hackathon, there will be people who will also be figuring out what went wrong in their code. Hackathons have various tracks or prompts you can follow. Even if coding isn’t for you, you can submit a UX design of your idea. Nowadays, hackathons are changing to include topics other than computer science. Some are combining business aspects (XDHacks) while others are incorporating policy writing (Merge hosted by the Hack+Policy Foundation and Policy for the People). A majority of virtual hackathons use Discord or Slack as their main communication platform. By joining a community server, you can always find people who are willing to help out with any problems in your code.
Of course, there are tutorials and courses online. However, more often than not, while this may work, don’t copy and paste into your project because you don’t know how it will affect the rest of the code. You could be creating a bug in the process. As I mentioned before, do your research and look at any comments on the tutorial if there are some. People who have watched the tutorial or have finished the course can advise you that it may not be beginner-friendly.
I think that hackathons are the best place to start. There is a downside though. You have to make a project within a short amount of time and with every skill you learn, there will be that steep learning curve. I suggest that a beginner attend a beginner hackathon and attend some workshops. Take your time with learning. If you choose to go solo, learn the basics first and then build your project. Ignore the due date because in the end, would you settle for less or more? It all depends on what you want to get out of your experience, learning a new skill, or building a new project.
My Take on Programming
I know that not everyone learns the same way. When I first started, I watched videos and tried different methods until I found something that worked for me. For my style of learning, I usually split it up into stages:
I first learn the basics of the programming language so I understand what each line of code is for and any statements that help run the code. For example, the opening and ending tags <> and the paragraph tag <p></p> in HTML. Some websites I like to learn from including Freecodecamp and Codecademy which have free content up to a certain point.
In the second stage, I follow a tutorial and build my first project. This stage is called replicate because I replicate what has already done. In short, it’s a beginner-level project. After I’m done, I try to build it again without a tutorial or if I’m feeling confident, I move on to replicate something more complicated. This stage takes the longest as understanding the language takes the longest. I usually replicate the first project anywhere from 3–6 times before I move on to something more complicated.
Finally, I take what I’ve learned and try to create something new. This stage is where I achieve my end goal. Depending on how complicated my goal is, I might make some changes to my original plan. What’s more important is that I take what I learn and try to make something new by myself. Sometimes, I usually use the previous project as a base and build something new. Don’t forget that when you get stuck, you can try asking others for help. Don’t expect to be a genius after coding a few projects and know everything. This is the hardest stage, but once you’re done with your project, the satisfaction you feel from this project is the best feeling ever.
Depending on how you view it, programming can be a daunting task or a fun puzzle to solve. Always stay open-minded as you never know what you might unexpectedly learn. Based on experiences from my friends and connection, anyone can start learning. Don’t let age stop you. I strongly believe that if you keep at it every day, one day you will be able to build something!
- Coding is more than what is seen on TV
- Anyone can code as long as they practice every day
- There is a steep learning curve with programming
- Learn languages based on your end goal
- Keep yourself accountable and break down your goal into attainable tasks
- Everyone’s learning style is different. You can learn from hackathons, coding buddies or mentors, tutorials, etc.
- Hackathons don’t just include challenges for hackers but for designers as well
- When attending a hackathon, what do you want to get out of it? If you want to learn, sign up individually
- How I learn is I first learn the basics of the language, build a beginner-friendly project multiple times, and then create a project by myself
- Stay open-minded!