•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Software Development category of DaniWeb, a massive community of 374,046 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,889 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Software Development advertiser:
Dec 30th, 2006, 7:59 pm
Line Rider is an extremely addictive web game. (Try playing it, and see when you can stop.) Now a lot of programmers would rather play that than work on their project. But actually, if you program right, you can actually make it fun instead of being a dreary bug-fixing experience.
First, what are the elements of Line Rider? There's 3 parts. There's the fun factor, which is achieved by watching the cartoon sledder drive over the track that you created. The more complex the track, the more "fun" you get by watching it.
Next, there's the design factor. Getting the actual control of where the sledder is going to run next is also fun. Using a pencil, you actually draw the track. In more advanced versions, you can use an eraser to take out mistakes.
Lastly, there's the problem factor. When you design the track, it's going to be prone to problems since you cannot exactly calculate where to rider is going to be thrown. This presents the challenge of fixing the problems to make the rider go smoothly. Even problem solving can be fun, if the problem can be overcome. Additional tools such as an eraser in other clones of Line Rider increase the ease at which users can fix their track.
So how does this tie into programming? It's actually fairly simple. When you are writing the program, you are essentially builing a track. When you test the program, you get enjoyment watching the output (hopefully).
So why do programmers not work for free, since they're essetially "playing Line Rider"? Well, usually the biggest problem presented in programming is the bug fixing. Every program is prone to them, and they usually prevent or halt execution of the code you have written. But wait, don't Line Rider tracks have problems when you're building them?
Imagine trying to build a huge track in Line Rider all at once, with flips, jumps, and wheelies all planned, and then testing the track only after you've completed the last detail. What would inevitabily happen is the rider would crash after the first few "tricks" that it would have to do, leaving you with the task of fixing all those problems in the track before it will run.
So, the way most people create Line Rider tracks are in sections. They test out the section, correcting any faults right away, and once it works, they move on to the next section. This is exactly how someone should write software.
Too many people, especially programming newbies, start off with a project. Even if it's not beyond their capability, they often end up failing because they write the whole program, and only after they've finished writing the source code do they try to test it. They soon become overwhelmed with the errors, and giving up on the project completely saying, "It's too complex for me".
But here is what complexity really is: just a group of simpler problems. So the key to solving a complex problem is to break it down and solve each smaller problem individually, and you will end up solving the bigger problem. And this apply to all problems in life, not just programming.
First, what are the elements of Line Rider? There's 3 parts. There's the fun factor, which is achieved by watching the cartoon sledder drive over the track that you created. The more complex the track, the more "fun" you get by watching it.
Next, there's the design factor. Getting the actual control of where the sledder is going to run next is also fun. Using a pencil, you actually draw the track. In more advanced versions, you can use an eraser to take out mistakes.
Lastly, there's the problem factor. When you design the track, it's going to be prone to problems since you cannot exactly calculate where to rider is going to be thrown. This presents the challenge of fixing the problems to make the rider go smoothly. Even problem solving can be fun, if the problem can be overcome. Additional tools such as an eraser in other clones of Line Rider increase the ease at which users can fix their track.
So how does this tie into programming? It's actually fairly simple. When you are writing the program, you are essentially builing a track. When you test the program, you get enjoyment watching the output (hopefully).
So why do programmers not work for free, since they're essetially "playing Line Rider"? Well, usually the biggest problem presented in programming is the bug fixing. Every program is prone to them, and they usually prevent or halt execution of the code you have written. But wait, don't Line Rider tracks have problems when you're building them?
Imagine trying to build a huge track in Line Rider all at once, with flips, jumps, and wheelies all planned, and then testing the track only after you've completed the last detail. What would inevitabily happen is the rider would crash after the first few "tricks" that it would have to do, leaving you with the task of fixing all those problems in the track before it will run.
So, the way most people create Line Rider tracks are in sections. They test out the section, correcting any faults right away, and once it works, they move on to the next section. This is exactly how someone should write software.
Too many people, especially programming newbies, start off with a project. Even if it's not beyond their capability, they often end up failing because they write the whole program, and only after they've finished writing the source code do they try to test it. They soon become overwhelmed with the errors, and giving up on the project completely saying, "It's too complex for me".
But here is what complexity really is: just a group of simpler problems. So the key to solving a complex problem is to break it down and solve each smaller problem individually, and you will end up solving the bigger problem. And this apply to all problems in life, not just programming.
This blog entry was written by John Altenmueller, staff writer aka John A. It has received 10,581 views, 1 comment, and 102 linkbacks. 2 voters have rated this entry an average of 5 out of 5 stars.
•
•
•
•
api apple bits blogger blogging c c++ ccna cocoa code coding competition compilers computer debugging desktop developers development errors evaluation framework gdata google high-performance innovation java languages linerider linux mcse microsystems networking online open planning platform practices programmers programming python rss software step steps sun tools tutorials windows xml
All Recent Tags Comments (Newest First)
mattyd | Posting Maven | Jan 2nd, 2007
•
•
•
•
This is an excellent article for both new programmers as well as seasoned veterans. I program for a living but I also do it for my own pleasure. It can be enjoyable and should always be to one degree or another; I find it hard to visualize doing such tedious work as software design\programming if I was not empassioned and rather obessive about it.
It can be akin to a game: lighthearted, thrilling, rewarding. But, without a sound strategy it is easy to suffer defeat. Always plan your programs at least in your head if not on paper; even while I am building the actual program on the compiler I have a large sketchbook beside my mouse where I take notes, work out mathematics, draw diagrams-- whatever is needed to suceed in my task(s).
Thanks for the great article.
sharky_machine
It can be akin to a game: lighthearted, thrilling, rewarding. But, without a sound strategy it is easy to suffer defeat. Always plan your programs at least in your head if not on paper; even while I am building the actual program on the compiler I have a large sketchbook beside my mouse where I take notes, work out mathematics, draw diagrams-- whatever is needed to suceed in my task(s).
Thanks for the great article.
sharky_machine
Post Comment
•
•
•
•
Only community members can start a blog or comment on blog entries. You must register or log in to contribute.
•
•
•
•
•
•
•
•
DaniWeb Software Development Marketplace
Related Blog Entries
- SF Password Hijack Highlights Importance of Process in City, State IT (1 Day Ago)
- Security Holes Spring Up in Java Framework (8 Days Ago)
- iPhone 3G: It Was All Yellow (9 Days Ago)
- iPhone App Store to open Friday, Jailbreakers could care less (16 Days Ago)
- Cross-Platform RealBasic 3 IDE Ships Today (16 Days Ago)
- Coders Can be Frugal When They Use Krugle (17 Days Ago)
- Microsoft Publishes File Format Specs, 'Open Connections' (18 Days Ago)
- FreeRunner Linux Phone Liberated on July 4 (21 Days Ago)
- Apple Leopard changes spots (23 Days Ago)
- With ‘Ganymede’ Release, Eclipse Community Gets it Done (24 Days Ago)
Related Forum Threads
- Program reading in lines from a file. (each line individually) Please Help (C++)
- Featured Blogger (Geeks' Lounge)
- Programming Ideas (C++)
- need help to make path for a line (C++)
- how would you make your own programming language (Computer Science and Software Design)
- how to start out (C++)
- What do you do with your knowledge? (Visual Basic 4 / 5 / 6)
- Alright, Computer Science major... take it or not? (IT Careers and Business)