I’d like to talk about a skill that is extremely useful: Programming.
My first experience with programming came at university. I had to complete a course in C as part of my first-year engineering. While I did pretty well at the course (I scored a 93%) which brought my average up, I never really thought much of it.
Fast-forward 10 years from then, and I use my programming skills, both, at work and at home almost every week. Jobs which would take me days, even months to complete and completed in a matter of hours. A skill like programming is critical, especially if you find yourself in many situations that require you to perform a bunch of tasks that are repetitive. Programming can take the drudgery out of these tasks and makes it somewhat… fun.
Let’s take a very simple example: your music. You probably have a ton of mp3’s on your computer that are floating around. If you’re like me, you organize your music in your own way. Say you’d like to go ahead and change the names of all the music files you have so that they fit a certain format. How would you go about doing this? For a few tracks (maybe a hundred or so), I think it would be perfectly reasonable to do it by hand. Sure, it would take a lot of time to do, but it is doable. But say your naming convention is now a lot more complicated, and you have a few thousand tracks to get through. A task like that would seem insurmountable. That is, unless you can program.
The main appeal of programming for me is the puzzle-solving fun it provides. Programming allows you to take very simple instructions, piece them together and produce something complex. For me, the fun in programming stems from trying to achieve a certain goal. Watching a piece of software I have written do something I wanted it to do correctly, and near-to-instantly is like watching a magic trick. It provides a huge sense of reward.
At work, I can’t even begin to state how many hours of company time were saved because I was able to program. Tasks that would take hours to complete can now be completed in a matter of seconds. Of course, you have to consider the time taken to actually write the program (which itself can take hours or days, depending on the complexity of the code). But if you find that the task is routine and repetitive, it is almost always better to write a quick script to carry it out for you. It will save you a lot of time in the long run.
So, if you’d like to get into programming, how do you go about doing that? Most programming languages have a similar structure. The hard part is getting into _how_ to program. After that, jumping between languages is more of an inconvenience, than a challenge, because most programming languages are very similar.
I’d suggest you start with a site like HackerRank, which will teach you how to write simple code first (I talked about it in this post). If not, there are a ton of other sites that will teach you how to program, such as CodeAcademy (although it will only teach you how to code for websites). Remember, Google is your best friend when learning how to program. Always have a look on sites like StackOverflow and the MSDN. Very likely, someone before you has run into a similar problem and asked for help. If you can’t find what you’re looking for, there’s no harm in just asking. That is, as long as you’ve taken a stab at it yourself. You learn from your mistakes.
At the end of the day, the initiative has to come from you. Programming isn’t particularly difficult, but it does have a bit of a learning curve if you have had no prior experience. But once you’ve gotten your foot in the door, it’s very easy to translate between most programming languages. This with the help of Google to find what exact function you’re looking for. As a skill, I find programming to be so important, and getting more important by the day. So important, that I seriously think that programming should be mandatory in school and should be made part of the curriculum.
So what are your thoughts about programming? Do you know how to program? What languages do you program in? Are there any sites you would recommend for beginners? How about experts? Let me know in the comments!