Inspiration for my editorials comes from many diverse sources. Sometimes I get inspired from a song on the radio, a conversation with a friend, or a line from a movie. If you have read my past editorials you will find numerous references to people like Fred Durst and movies like Fast Times at Ridgemont High.
This editorial comes from a different source?the CODE production staff (a primary reason this magazine continues to get better). As you well know, CODE Magazine is a cutting edge magazine focusing on the newest modern development tools and methodologies. The ability to edit this magazine requires knowledge of numerous technologies and lingos. This can be tough on editors, especially ones that are not developers themselves.
I started in this industry at a time most would consider the dawn. In college I learned WordPerfect 4.2, Lotus 123 v2, dBASE III+, and FoxBase Plus 2.1. The network server at my first job was a 286 machine with 640K and a 72MB (yes megabyte) hard drive.
I clearly remember learning DOS and its numerous incantations such as:
DIR *.*
DIR /S
REN *.txt *.bak
I also remember taking a class from Art Sanchez (my professor, advisor, and friend) on the dBASE III+ language. He taught me every dBASE COMMAND and FUNCTION from A-Z in one college quarter.
After one year in college I landed my first job as a FoxBase programmer and network administrator. At that time you could learn quite a lot of the prevailing technologies in a short amount of time. The biggest database development tools for the PC included dBASE III+, Paradox, and RBase. There were not too many tools to choose from.
What's my point? I ask you, “Where does a new developer begin today?” The past 10+ years have seen monumental changes in the technologies that developers use to create applications. If you want to start in the IT field, where would you begin? You have many different tools to choose from. In this issue of CODE Magazine alone you can read about C#, Visual Basic .NET, SQL Server, XML, Regular Expressions, and the .NET Framework. Along with that you have object-oriented programming, event-driven programming, GDI+ operations, and others. I became inspired to write this editorial by a conversation where someone asked me to explain the difference between abstract classes and concrete classes.
What do the colleges teach today? My guess is that the colleges spend time teaching Linux/Unix and C++. I know a guy, who tutors a high school junior who is just finishing a Java class. That high school also offers classes in configuring Cisco routers and networking. Is this useful to people looking for work in today's job market? The answer is MAYBE!
When I was in college, my instructor, Art Sanchez, taught me to understand the concepts of what I was doing and not to get too hung up on the details. This advice was invaluable. I don't know how many times I have heard developers rant on and on how their development tool is so much better than another. What BS (pardon me). Give me a good developer over an average one and they can develop software in any language or tool.
I say, spend your time learning the concepts of developing software and don't get too hung up on the tools. Learn good development habits. Learn good database design. Learn good UI design. Spend your time understanding the concepts and you will succeed in any software endeavor you come across.