Programming & Experience
Learning how to program a computer takes time.
Writing a good program takes time.
An experienced programmer will note that there is a big difference between:
- code that works
- code that works which is also,
- easy to understand,
- easy to deploy,
- easy to maintain,
- efficient insofar as it runs well or can be optimised by a compiler
- efficient in its use of resources.
The good news however is that the 80:20 rule usually applies (providing there is a good requirements specification): You can get 80% of the development done in 20% of the time. The remaining 80% of the time is spent on all the extra work that turns a proof of concept into a tested, efficient and maintainable program.
For programming coursework this has important consequences. If you start early and find you’re making particularly rapid progress, it’s likely to be the 80:20 rule showing itself. Remember that 80% of the work is still to do if you want to deliver something that will garner the highest possible marks.
An algorithm invented on first encountering a problem is often far from the best possible solution, however, it provides an opportunity to learn and think about the problem. As you begin to understand the implementation issues, your solution will improve. Your first attempt may do no more than prove to you that you need a completely different approach. Over time, this trial-and-error development process becomes your experience that you can call upon to find better solutions faster. This is why you can’t just learn programming from a book overnight: you have to do it, repeatedly, so that you can more easily see potential alternative solutions and understand their relative merits.