Author: Ho Yin Cheng
/
Created: December 2, 2017
Coding Challenges are fun ways to practice programming and can help you explore new concepts. Since I’m trying to retrain myself to be employable as a software engineer, I figure that picking up a coding challenge would be a good way to prepare myself mentally for Fizz Buzz style tests in interviews. It would also make the process of going through my own computer science syllabus far less monotonous. So, the obvious question that follows is, which one should I attempt?
There are quite a few that I was already aware of and many more popped up during my research into this topic. Quick list of examples broken down into types:
And there’s a ton more. Out of all the ones I knew of, a few stood out that caught my attention. From those, these are the ones I ultimately decided to use as my motivators for practicing programming. And yes, I am doing multiples at once because why not? Many overlap and you shouldn’t limit yourself!
Currently ongoing! Ludem Dare is a game jam that gives you a theme and a set amount of time to create a game from scratch. Right now Ludem Dare 40 is running from Dec. 1st to Dec. 4th with the theme: “The more you have, the worse it is.”
It’s a bit late for me to get in on this, but I may try this anyway since it’s over the weekend. I can also challenge myself at my own leisure with themes and rules from the older competitions. Old Ludem Dares are also a great way to get gamedev ideas! Which leads me into the next challenge.
I learned about this one from the latest episode (140) of the TalkPython[‘Podcast’]. In the episode, PyBites was interviewed about how they did the challenge with Python. What drew me to this particular challenge were:
The biggest problem the PyBites duo ran into was getting ideas for the 100 days. I’ve thought about it and combined with their suggestions, I think I’ve got a good way around this:
Lastly, I won’t be sticking to a single language for this challenge. After all, I will also be doing Ludem Dares every now and then and don’t plan on sticking to a single game library/framework/engine. I want to test out a lot of technologies that interest me. This should give me enough flexibility to keep the ideas flowing. That said, I will try to keep the majority of the daily challenges in the languages I plan to use professionally.
I learned about this one from reddit just before writing this article. It runs for just the month of December, and the rules overlap with the challenges I’ve already settled on:
I, Ho Yin Cheng, will participate to the next Devember. My Devember will be to make a game. I promise I will program for my Devember for at least an hour, every day of the next December. I will also write a daily public devlog and will make the produced code publicly available on the internet. No matter what, I will keep my promise.
I hereby dub my Devember, gamedevember. I’ll be using the theme from Ludem Dare 40 as the goal for the game I plan on making. I won’t be working on the game every day as I will also be doing the #100DaysOfCode challenge. I will be jumping languages and libraries/frameworks/engines as I haven’t made up my mind on what to use. I will follow-up with what I settled on and blog about my progress.
I’m already a day late as the two cats I’ve been fostering started taking over my computer last night, so I’ll double it up this weekend to catch up.
The last of the challenges I’ll be embarking on. I’ll be taking on this challenge in a much more relaxed manner as the only rule is this:
There are no rules. This is a personal challenge. Have fun and be nice.
Also, the theme for a given month may not overlap with Ludem Dare. For example, this month’s theme of Jam certainly does not unless… hmm… I may have something but I’m not sure if I’ll be able to get it done in time to submit to Ludem Dare.
My goal in taking on this challenge is twofold:
Simple and not entirely serious. If I can’t finish a game, I’ll at least post my progress every month.
Figuring out what I want to do is only the first step. A hard first step given that I’m often hit by analysis paralysis, but now that I’ve made my determination, I need to find a way to keep myself on-track and focused. Knowing myself, I’ll start with these strategies and refine them as I go along. If I can make doing these challenges a routine habit, then I’ll know I’ve made a real change in my life.
I’ve seen this recommended a lot but this methodology never worked for me. I have an odd paradox of procrastinating and yet being a workaholic. I get things done but never the things that I want to do as personal goals. There are rare bouts of productivity but never a sustained run. So why?
I have a page in my journal with this as the very first link: Procrastination Is Not Laziness This article rang so true to me that it hurt.
“You see, procrastinators tend to be people who have, for whatever reason, developed to perceive an unusually strong association between their performance and their value as a person. This makes failure or criticism disproportionately painful, which leads naturally to hesitancy when it comes to the prospect of doing anything that reflects their ability — which is pretty much everything.”
Give me a boss, clear metrics, and a deadline. I’ll get the job done.
Give me a vague personal goal, no endpoint, and just myself to rely on. I’ll stall hard.
There’s a page in my journal analyzing myself and talking to myself over the contents of that article. I need to reread it every now and then to “reset” myself. It helps but eventually, I’ll fall back down into the self-confidence rabbit hole. So everything I’ll be trying this is built to prevent this downward spiral.
Every day I plan on doing the following:
Simple, right? Well not really. I need something to code and write about. I also want to achieve my goal of getting a job as a software engineer. To accomplish this, I’ll be supplementing my daily checklist with these tasks:
If all goes well, I hope to accomplish the following:
Wish me luck!
Copyright © 2011-2020 Ho Yin Cheng