Literature
Africa |
ProgrammingAdvanced< Programming Tutorials | Programming | Program Debugging > Advanced topicsAs you go beyond the basics of programming, and you start write longer and more complex code, it does pay off to spend a little time learning how to design software, and how to handle a long term project which may be subject to considerable changes along years. The first point is to learn about well-known basic algorithms and data structures, so that you will not need to reinvent the weel; Patterns are very useful guides on how to design and implement cases which are often recurring in coding; and finally, Refactoring and Unit Tests are well established methods to deal with the hard fact that programs do need to grow and change in time. Algorithms and data structures
Design PatternsDesign Patterns are another important tool for a programmer. Patterns offer a general repeatable solution to commonly-occurring problems in software design - so that you don't reinvent the weel.
Similarly to Design Patterns, there are Analysis Patterns? and Refactoring Patterns?. (haven't found a good link yet) Extreme ProgrammingXP - Extreme Programming is a "deliberate and disciplined approach to software development". The main reference site is http://www.extremeprogramming.org/. It might seem too "extreme", but many concepts of XP are actually a very good guide for the undisciplined Physicist/programmer - especially the Test First, Refactor Mercilessly and
Optimize Last. Plenty of information on Refactoring, and good links, can be found on Wikipedia. Let me also repeat: "Premature optimization is the root of all evil." UMLUML Unified Modeling Language has been, and possibly still is, the holy grail of software development. Not everybody agrees, anyway. |