Home > Computers & Technology > Software > Software & Web Development
Created on: August 15, 2008 Last Updated: January 11, 2009
In the early days, software development was more art than science and developers were looked on as geeks and quasi-magicians. Over the years, methodologies have evolved that have brought the software development process more into the mainstream. Here are ten recommendations for the modern programmer. Get to know these tools and you'll be in high demand in the software development field.
In no particular order:
1) SQL Structured Query Language is the Lingua Franca of database programming and all modern business programming requires some database interaction. Having a strong SQL understanding will ensure you can talk the database language when the time comes. There are many good resaources available online and in print. I recommend starting at http://www.sql.org/.
2) Database Design Good database design is a key factor in any modern complex system. You may never have to design a database from the ground up but you will certainly need to know key concepts like indexing, foreign keys and table normalization. Ask.com has a good amount of information at http://databases.about.com/
3) UML The Unified Modeling Language isn't really a language at all but rather, it's a mechanism for expressing relationships and processes in any system. UML is widely used in commercial software design and development, and it will greatly enhance your ability to communicate and understand complex systems. 'UML Distilled' by Martin Fowler and Kendall Scott is very accessible guide to the topic.
4) Object Oriented Design Good OO design skills are required in most software development today. While UML might be used to express a system's design, the software developer must be able to actually design the objects themselves using good OO design skills. In an analogy, UML might represent the written sheet music, and the OO design would be the process of composing the music. 'Designing Object-Oriented Software' by Wirfs-Brock, Wilkerson and Wiener provides a great introduction to OO design and delves deep into the most essential concepts.
5) Refactoring Refactoring is closely related to OO design. It is the process of improving an existing implementations by applying sound design principals and making changes accordingly. Martin Fowler wrote a great book titled 'Refactoring: Improving the Design of Existing Code'
6) Design Patterns Software developers often face similar or even identical problems while developing disparate systems. Some problems, and their solutions, are so common that they have been
Below are the top articles rated and ranked by Helium members on:
Good tools for Software Developing
Helium Debate
Cast your vote!
Is Microsoft Office Professional a better software suite than OpenOffice?
Click for your side.