Ten Tools Every Software Developer Needs


by Joseph Pescatello - Date: 2006-12-23 - Word Count: 509 Share This!

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.

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.

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.

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.

5) Refactoring - Refactoring is closely related to OO design. It is the process of improving on existing implementations by applying sound design principals and making changes accordingly.

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 cataloged into a common set of design patterns. The more of these patterns a developer knows, the more productive he or she will be.

7) Web Apps - Web application programming is evolving rapidly and it's a completely different model than traditional desktop or client/server application programming. The modern developer will become familiar with the evolving technologies and stay abreast of the changing landscape.

8) Client/Server Apps - Client/Server apps operate in more controlled environments than Webb apps and come with their own sets of concerns. Many C/S applications run today's businesses and will continue to through the foreseeable future.

9) Programming Language Skills - The basis for all software development is the programming language. Languages come in and out of favor and the modern developer has to keep current on the languages that are in-demand. At the time of this writing, Java, C#, C++, HTML, XML, and other Web-oriented languages are in high demand.

10) Infrastructure - Although the hardware, operating systems, network topology and administrative concerns that go along with those things aren't directly tied to software development, they are very closely related. A software developer who has in-depth knowledge of any of those topics along with the previous 9 tools will be highly sought after in today's marketplace.


Related Tags: web development, software development, software professional

Joe Pescatello is an author and commercial software developer. Visit http://UncleBobsAttic.com for a sample of his work.

Your Article Search Directory : Find in Articles

© The article above is copyrighted by it's author. You're allowed to distribute this work according to the Creative Commons Attribution-NoDerivs license.
 

Recent articles in this category:



Most viewed articles in this category: