I bet you are as sure as anyone that the times are changing, and learning to program is becoming increasingly important. What I mean is that society and everything in it have been taking steps into the digital unknown. We are becoming increasingly tied to electronic networks for our outlets, our entertainment, our businesses, and even our interactions. All of these are dependent on the code that run these networks.
What does it mean to live in an age of computer technology? It means that we are not only reliant on it, but it is reliant on us. Humanity and Technology have been symbiotic for millennia. Stopping that relationship now isn’t a great idea.
These are some of the thoughts that have troubled me as I finish up my undergraduate degree in Engineering. I’ve developed excellent problem-solving skills, have a deep understanding of applied math, and I have learned scientific computing via two rather boring programs: Matlab and Excel. I still can’t sleep at night thinking of the long strides Deep Learning, GPU technology, and cloud server technology are taking. I realized that unless I wanted to crunch statistics for a large corporation for the rest of my life I would need to understand the technology I’ve been using for so long.
Understanding the web and the technologies behind it are the greatest tool for the digital age’s entrepreneurs. There is so much to learn out there, and it is all just waiting for passionate artists.
A great way to start is to try to connect with a community that can help you. I was lucky to have friends in my classes that knew some basics and good practices. This is probably the best way to get set up with the software and start making projects on your laptop. There are a million websites out there designed to find you a coding community.
Be sure to use the resources at your fingertips and find educational content on the web. Most interactive learning out there is cheap if not free. Learning to program is becoming more and more of a simple and seamless experience. Don’t expect actual programming to be the same way, but don’t worry because that is part of the fun. You can use these resources to grasp syntax and structure, and then start coming up with your own unique projects from there.
Here are a few websites I would recommend from personal experience:
- FreeCodeCamp (Free). I mentioned this one above as well because it as an excellent community. Definitely one of my favorites.
- CodeAcademy (Free or Intensive Paid Subscription)
- UDemy (Charges per course)
Also, you might want to check out some university courses from Standford or MIT. Last time I checked, the CS classes post all lecture material and assignments online. You can take a college Computer Science course tuition-free! All you need is to be consistent and self-critical. I haven’t followed one of these courses yet, but once I finish my undergraduate degree this year I’ll try one out and see how it goes. Maybe I’ll even make a blog about it.
Another great resource, which I’m sure you might’ve guessed, is Youtube.
There are a million channels out there to help you start learning. Some are very structured and feel like a college course, whereas others are more lax and situational. I’d recommend finding a personality you like and start following their projects. It’s amazing how many nuances you can learn about by watching a professional develop a project.
Don’t forget that you can find a solution to almost anything on Youtube. Sometimes you’ll need a problem-solving video and sometimes you’ll just need a video for inspiration. Remember that Youtube, unlike an educational website or college course, centers around you and your needs. It can be a very powerful tool if you use it right.
These three programmers are some of my favorites on Youtube.
Last but not least is Github. There is no other programming community out there like the community on Github.
It may be worth your time to watch a video on exactly what Git and Github are, but I can give you the gist of it in a few sentences.
Github is a website for developing projects with a community to support you. You can create several different revisions/branches of your program to try some different things out. All of these new revisions can be saved as their own projects while you still maintain your original file in the “master branch.” You can also add suggestions to other people’s codes without changing their master branch. As you may have guessed, you can commit suggestions from other users on your own program if you think their suggestion improves your script.
Overall, it is a fantastic tool and website for managing your more difficult projects.
Not to mention there are tons of skilled users out there showing off their projects. All of the posted code is open-source so you can download a huge variety of examples and learn from them.
This is also an excellent website to use if you have a few friends that are also new to programming and want to work with you. So what are you waiting for? Go make some friends and create something magnificent.
To be continued…
Despite the fact that I am giving all of these tips, I am still a total programming noob. I only started teaching myself mid-2017, so I still have a long way to go. Still, I am getting much better every day and I can’t begin to explain how much I have learned since I started this journey. In fact, I learned more about programming in 6 months of self-study than I did in 4 years of university engineering!
I hope I’ve inspired some of you. If you are interested in following along, I’ll continue to write these learning to program blogs to track my progress and document my journey.
Good luck in your endeavors and may you find no errors!