How 30 Days of Code Helped One PhD Improve her Fundamentals & Ace Interviews
Although she’s spent most of her life in the United Kingdom, she moved to Nigeria during her most formidable years of high school, where she saw a vastly different world.
But it wasn’t the education itself that was so different. There’s a massive wealth of knowledge and information in Nigeria, she says. The thing that’s different, though, is they didn’t have row after row of computers in a lab like they do in the UK. Although she knew some of the basic of computing, she wasn’t exactly sure where the “on” button was on until she went back to the UK for college. There’s no shortage of knowledge in Nigeria, but there’s fewer opportunities to actually apply the knowledge in a practical way.
Upon entering college and university, she dove into computer science at the recommendation of a relative, not knowing what she was really getting into. Having never had access to so many resources, she studied hard and soaked up everything she could. Ri even scored a scholarship to do her PhD in information security, which was co-sponsored by British Telecomms.
Fast forward post graduation, as she started to apply to jobs, she realized that her fundamentals were weak. By the time you graduate, it’s hard to remember what you learned in one semester years ago. At various stages of interviews at Facebook, Yelp, JP Morgan, and Winton Capital, Ri struggled because she needed to exercise her fundamental algorithm and data structure muscles.
And that’s when she saw HackerRank’s 30 Days of Code. We sat down with her to see how it went for her:
Why did you decide to join 30 Days of Code?
30 days is short enough to commit to, but long enough to learn some cool things. It sounded like just the perfect exercise to improve my coding skills.
A part of me however was very reluctant of jumping into coding because of two things: Frustration and fear. I felt frustrated because I had spent four and a half years in academia finishing a PhD in information security only to discover that my coding skills were not up to scratch. I felt fearful of realising how bad my programming skills were, scared of competing in a live contest against really smart people and fear of not finishing the contest at all.
In early December, I started working my way through Gayle Laakmann McDowell’s Cracking the Coding Interview to start practicing. I was learning a lot so I decided to try 30 days of Code. I had nothing to lose.
What were your initial thoughts? How did you get motivation?
Day 1 was Print out Hello World. Really? I thought, this might not be so bad after all…
I was 5 days behind so I did some catching up. I continued by looking at the challenges for Day 2 and 3 which involved Data Types and some other fundamentals. These refreshers were great. After submitting quite a few answers to the coding challenges, I visited the leaderboard to see where I ranked #10,028. Cringe.
Still, somehow I found some motivation by looking at a few more tutorials and exercises. I caught up to Day 5 – If-statements, Classes, Loops and more. Then, the curious part of me wanted to know where I ranked on the leaderboard, so I checked again…this time I ranked #1!
Screenshots were made for moments like these.
I was feeling excited (and rather proud of myself), so I shared my happy moment on social media. Apart from excitement, I also wanted people to jump on the bandwagon. So far, this was fun…
I definitely think sharing my commitment to 30 Days of Code with my friends and family helped me hold myself accountable to finishing.
— Riyanat Shittu (@_Riyanat) January 6, 2016
So, tell us about your biggest learnings. How important was this experience?
It was really important because practicing your fundamentals make you a better coder. The problems I enjoyed the most were those that involved data structures – from maps to lists to nodes and trees. It’s amazing how simple a problem can become when you use the right data structure! Also, Kathryn Hodges (@BlondieBytes) who did the tutorial videos is great at explaining complex concepts using examples you can relate to. My favourite? Learning how to put together your own custom exceptions. If you think there is no relationship between hot chocolate and exception handling you are wrong! Trust me, she’s good!
Did you participate in forums or work with other people? Or were you solo?
Participating in technical forums was great not only to find answers but also participate to help yourself and others. The challenge that I struggled with the most during 30 Days of Code was on Day 27 on a challenge that involved writing tests “Testing your Code.” Like many of the coders, I watched parts of the tutorial and jumped into the challenge without fully understanding the question.
Hours later with lots of failed submissions, I finally took the time to patiently read and understanding the problem. After a few discussions on the forum and a lengthy explanation by a HackerRank team member, the question finally made sense. It was a simple question but one that involved attention to detail. I had my code reviewed and I reviewed other coders’ code.
What was the biggest challenge?
Time can be a limiting factor for anyone. There’s always a reason not to sit down and practice. But having just one small challenge per day made it more doable. It’s hard to make time for learning new things when you are really occupied. I did 30 Days of Code while I was finishing my PhD and preparing to defend my PhD (VIVA). At various points I missed out on some days, but the cool thing with 30 Days of Code was that you had the opportunity to catch up as long as you did the catching up before the last day of the 30 period.
What do you want others to know about 30 Days of Code?
Coding challenges like this one isn’t about competition, it’s about learning: My initial fears were soon put at bay. I was learning new things and demystifying difficult concepts. In addition to 30 Days of Code, I was going through other programming text books and I gradually realised that my programming knowledge needed a lot of brushing up. And this isn’t a bad thing.
Did 30 Days of Code help you get a job? And any final advice?
Finishing is good, but starting is even better.
If you never start, you’ll never finish. It’s that simple. I started 30 Days of Code, reluctantly but eventually, I’m glad I did. 30 Days of Code pushed me to solidify my fundamentals. A few weeks later,I landed an amazing job. I now work as a junior software engineer at the Financial Times.
Want to improve your fundamentals like Riyanat?