This series is now not going to be continued at Liquid Think. You can continue watching for it at The Cyber Cult
Welcome to Liquid Think's Introduction in a long to-be series of Programming Tutorials, dubbed the "100 Program Challenge".
This series, the first of such on Liquid Think, will go through 100 different Programs, taken from a post on 4chan, and build them using Python. The programs range in difficulty. Starting relatively easily they progressively becoming harder and harder until the challenge is complete at the 100th program. The goal of these posts is to make me, and the reader, a better programmer.
Before we get into any programming tutorials, I would like to explain my reasoning behind some of the things in this series, as to make everything clear before starting.
When I first stumbled upon this list on a rogue thread in 4chan's /g/ subsection, Python immediately stood out to me as the best choice to undertake these programs.
But First, here are the 100 programs we will be going through:
So here are my three reasons for using Python:
It's Easy for a Beginner to Get the Hang Of
Python is a high-level object-oriented language, which makes it easy for a beginner to learn it. Since this series will be targeted at beginners, it only makes sense I use a beginner-friendly language. If you haven't already, I highly suggest heading over and doing Code Academy's Python course. Although this course won't make you a 1337 Python programmer once you finish it, it does teach the basic programming concepts and Python syntax that I will assume the reader already knows whilst going through these programs.
Python is a Great General Programming Language
What do I mean by this? Well, arguably, Python is not great at any one specific thing. Rather, the best use I found for it are your everyday programming problems. Python allows for great variety in what you do, and since there are 100 programs here, a flexible language able to tackle many different problems is a must.
It's Not so Obscure as to Alienate
Python is a known language. Sure, if I wanted to make this some crazy 1337 programmer challenge, I would choose Haskell. Maybe if you have your own blog and scoff at the beginner-friendly-nature of this series, you can go ahead and do the same challenge alongside mine in Haskell. I would love some collaboration :). Most every programmer has heard of Python, and even if one does not know the basics, they know the general programming concepts behind it and can pick it up relatively easily.
For some programming projects, there will be "Bonus Challenge" for those seeking more of a thrill. In this content, their is potential for:
- A more complex program.
- Delving into more languages than just Python (EX: using an SQL database to store Names in the Random Name Generator)
- Anything extra that doesn't totally relate to the base program, but makes the program overall more useful
- The Challenge will be in a separate post from the original programming challenge. So make sure to check back every once in a while, to make sure you are not missing any bonus challenges
If your one of those people who like a challenge, make sure to keep your eyes peeled for this content. The completion of this bonus content is not needed in order to complete the 100 Program Challenge.
How the Posts will Look
Each post will be split up into 4 sections:
Part 1: The Concept
Part 1 will explain the concept of the program, as well as any other concepts that the program encompasses. For example, challenge 4 deals with simply Encryption/Decryption. In that post, I will explain what Encryption is/What it Does/How it is used in Today's World/How we will tackle the Problem before getting into any coding. This part will most likely consist of the most subsections out of all other parts.
Part 2: The Psuedo Code
Here we put down the psuedo code for the program. The idea of how we want the program to work/any planning before going into building the program.
Part 3: Building the Program
This is where actual Python Code comes in. In this part we actually build the program.
Part 4: Program Completion
In this part the program is already built. I will go over any problems/bugs that I encountered.
Here is the overview of the challenge. What I thought was done well, what I thought could be improved upon or done differently in order to arrive at a better end result.
These parts are subject to change as I go through the challenge. Their may be a better layout that I am not aware of, but may present itself later in the challenge.
And that's it for the Introduction! If you would like to know anything else about this series, make sure to comment. I will respond with an answer ASAP :).
I will have the first programming tutorial up soon, so until then, Happy Coding!
UPDATE: The programs do not range in difficulty. Rather, they are meant to be randomly assigned based on the last three digits of your 4Chan post number.
© 2014, insidious All Rights Reserved.