Everyone seems to think that just because I like to write code that I want to do it for my career. I don't.
I don't really like programming for other people. They always have their rules and demands and they always seem to get in my way. I hate it when my creativity is restricted by other people. I want to program for fun or to make my life easier. I don't want to sit there and dawdle while someone lists all of the requirements that I'm going to have to meet like a teacher giving students an assignment. Boring.
I want to be a designer and an innovator. I don't want to be trapped by standards and rules; I want to make new things and do things that haven't been done. Technology is expanding quickly and lowering the barrier of entry to that sort of thing. These days, I don't have to have years of experience in a garbage programming job to get an enjoyable job or to make a living. All I have to do is make a high-quality, unique, and awesome app or game for smartphones and hope that the ever-expanding reach of app stores will help propel it.
I don't have to follow the familiar standards of whatever kind of app I'm building. I don't have to use an existing application as a model. I can disregard history. I can develop solutions without people saying "That's not how it's supposed to work!"
Stop being paralyzed
Look at you. You're young and you're scared. Why are you so scared? Stop being paralyzed. Stop swallowing your words. Stop caring what other people think. Wear what you want. Say what you want. Listen to the music you like. Play it loud as fuck and dance to it. Go out for a drive at midnight and forget that you have school the next day. Stop waiting for Friday. Live now. Do it now. Take risks. Tell secrets. This life is yours. When are you going to realize that you can do whatever you want? You only live once. So die laughing.
A Memory of Younger Days
The flow of time is always cruel... its speed seems different for each person, but no one can change it... A thing that does not change with time is a memory of younger days...
Sheik, The Legend of Zelda: Ocarina of Time
Coderbyte Programming Challenges
As someone who enjoys programming as a hobby, this was an awesome experience. I spent a night on it and finished all of the challenges that I was able to and left fairly satisfied. Having some previous experience with "programming competitions/contents/challenges", I've found that often times they were actually "mathematics competitions/contests/challenges". Don't get me wrong, math is pretty great, but it's not what I want to challenge myself with. I want to think about programming, not calculating. I don't want to think of intricate formulas to deduce the exact number of times a certain card-shuffling algorithm will have to run in order to produce the original deck. I want to write a program that takes an argument, does something creative or unique with it, and then spits out a result.
For example, in the CodeSprint 2 competition, I was given the following challenge:
You have an unbiased coin which you want to keep tossing until you get N consecutive heads. You've tossed the coin M times and surprisingly, all tosses resulted in heads. What is the expected number of additional tosses needed until you get N consecutive heads?
Wait, what? How does this involve programming? It's asking me to figure out a formula and write it in a programming language. It's not an ideal question to ask if you want to test someone's programming knowledge. If you want to test their statistics and probability skills, ask away, but if you want to see how good they are at the kind of thinking programming requires, maybe you should reconsider.
Coderbyte, however, gave me a plethora of excellent programming challenges. I'm not saying that every question was a stellar example, because a few were a bit mathy, but it had a much more favorable programming to math ratio. For example,
Have the function
strparameter being passed and return a compressed version of the string using the Run-length encoding algorithm. This algorithm works by taking the occurrence of each repeating character and outputting that number along with a single character of the repeating sequence. For example:
"3w2g1o2p". The string will not contain any numbers, punctuation, or symbols.
This is a question that tests my programming. I don't have to figure out all of the possible non-intersecting diagonals of a polygon with N vertices (another CodeSprint question), I have to make a few variables and loop through a string, keeping track of some stuff as I go. It's that simple.
I realize that the two competitions are designed with two radically different goals and difficulties, but I still feel that a "programming challenge" should stay true to its name - programming - instead of fleeing to the treacherous territory of math.
Strictly as an aside, I would also like to strongly advise that any aspiring programmers at least attempt the challenges on Coderbyte. The best way to improve your programming is to program things, and Coderbyte has quite a few entry-level programming challenges that are perfect for beginners. If you have any interest at all in becoming a good programmer, do these challenges.
Little solace comes
to those who grieve
when thoughts keep drifting
as walls keep shifting
and this great blue world of ours
seems a house of leaves
moments before the wind.
House of Leaves
The Final Day
I... I shall consume. Consume... Consume everything.
Moon, The Legend of Zelda: Majora's Mask