HackerRank: Slithering In To Your Brain

Programming is becoming more and more common profession as years go by. As more people become reliant on technology, people want things better, faster and with more bells and whistles. Hardware can only go so far to improve user experience, leaving this burden in the hands of software engineers and developers.

Since the internet is a massive entity that contains virtually all of mankind's knowledge it can be very daunting to try and learn something online. I have struggled with this myself. When I was 13, I wanted to learn how to code in C/C++ so I could use an Arduino that my dad gave me. Having to wade through the mass amounts of information online was tedious. This was in the early years of  Arduino so documentation and tutorials were much harder to come by and often frustrating as they lacked structure. 

After tearing my hair out I finally managed to put together a few simple circuit. Clap your hands to turn on LED, start a fan when it is too hot, turn on the lights when they go out. Nothing terribly difficult but things that a guided online education would help resolve. 

Fast forward to third year electrical engineering. I am proficient in C/C++, Matlab and have dabbled with a few other languages. My skill set is lacking in object oriented programming. Being in electrical engineering I often end up hearing about IEEE (Institute of Electrical and Electronic Engineers) competitions for undergraduate students. One competition was a 24-hour programming competition. Had I not been away at a judo tournament I was considering competing. 

What I didn't know about the competition is how they were offering it. The system that was being used to write, and test code was what is called HackerRank, an online system that will present you with a programming problem that you can answer in pretty much any common programming language. 

The beauty of HackerRank isn't the language variations, and in my thoughts isn't even in the potential for job connections. The greatest feature of the site is the test cases and example problems. They have hundreds of programming problems from algorithms, machine learning, statistics, databases and many many more. Each problem will have an arbitrary number of test cases which must be completed to score 100% on the problem. 

The way that HackerRank has helped me grow as a programmer is in looking for those extreme cases that might break your code. They don't actually tell you what they are looking for. This does sound counter-intuitive but it does truly help identify issues that could arise. 

Writing bulletproof code is something that everybody should be able to do. I am finishing up a solar powered thermal control system for a school project (and my Dad's house) where almost every line of code has me stopping and thinking about how things could go wrong. For this I was really glad that I had been practicing using HackerRank to polish up my programming skills. 

Many people are building for themselves and others. Why not take a turn?


Popular posts from this blog

Ongoing Linux Cheatsheet

Data Processing: Matlab, Python or Octave?

Baremetal Drivers: RFM69HCW and FRDM-K22F