Getting Started With Programming
Written by Alexandra Embree
Thumbnail and Header Photo by Greg Rakozy on Unsplash
Programming is a skill that is often touted as being the key to employment in the future. The “Learn to Code” movement took off in North America a couple of years ago, as organizations like Code.org declared initiatives to improve representation in technology and start exposing children to programming at a young age.
Critics of the “Learn to Code” movement argue that programming is by no means a skill that all people need in their jobs; therefore, not everyone benefits from spending hours learning to code, especially if they don’t enjoy it. There is validity to this argument. While teaching some basic programming to students may help them improve their analytical ability and provide valuable exposure to computing that they may not get elsewhere, it’s impossible to get very far unless you understand why you’re learning what you’re learning.
Finding Your “Why”
Programming has become highly specialized over the last couple of decades. There are now dozens of languages, frameworks, tools, packages, and more. For this reason, learning how to make modern software can be an extremely daunting task. Without focused goals, it’s easy to get frustrated by the magnitude of all there is to learn.
Thankfully, you really don’t need to learn it all (or any of it at all, if you have no motivation to do so). Before beginning a programming journey, it is extremely beneficial to ask yourself exactly why you want to learn to program. Broad goals like “to get a lot of money” can be helpful to some, but may not be enough to keep at learning a skill that can take many months or even years to become highly proficient at.
Some examples of better “why’s” include wanting to learn how to automate some repetitive tasks at your job, so you have more time for other things that matter more to you; wanting to learn how to create websites so that you can become a freelancer and take ownership of your work; wanting to easily create beautiful visualizations to showcase findings within your data; wanting to improve your data modeling capabilities to simplify your research; or wanting to work on video games so that you can bring your childhood dream to life. Each of these goals will have a different learning pathway that you can follow. Narrowing down your focus can help prevent you from feeling overwhelmed and will help you translate time spent into specific capabilities that make sense for you. After some time, you can branch out and explore other areas once you feel a little more comfortable.
Play While You Learn
Once you’ve picked a programming language that aligns with your goals, there are a few ways to improve on your fundamentals in that language. One great way to get in some extra learning is through games that have been created for this purpose. The Mimo app, for example, provides bite-sized coding puzzles and solutions that make learning programming feel no more intimidating than tackling the day’s Wordle. Puzzles are tailored to your current ability, making the app valuable for both beginners and professionals.
For aspiring front end web developers, another popular game option is CSS Battle. CSS Battle challenges you to replicate a visual using only HTML and CSS, ideally using as few lines of code as possible. This one is not for the faint of heart, but if you like a challenge and enjoy the visual side of programming, it could be for you!
Building a Project
Many programmers swear that creating projects is the best way for them to learn. The premise of building a project is simple; think of an idea of something that you might like to use or think would be cool. This can be a modification of an existing service or application, or a brand new one. Then, using your IDE (Integrated Development Environment) of choice, you can start programming it into reality.
Projects can be very daunting to jump right into with little experience. Start small - a command line application or simple webapp, like a to-do list, are reasonable in scale for a first project. Platforms like CodePen can help reduce some of the pain of getting started. CodePen allows you to see a live preview of a front end coding project on the web, so that you don’t have to use an IDE and configure libraries and frameworks on your end. You can also duplicate and modify the projects of other programmers as a learning tool.
Find a Community
Finally, programming can be a bit of an isolating experience. Having a community of like-minded individuals can help you maintain your motivation, learn new things, and overcome barriers. So it’s worthwhile to seek this out if learning to code is one of your goals. Some places where you might find this include CS classes and societies, online forums like StackOverflow, or community groups on Meetup. Happy coding!