View Single Post
rob
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 8,232

Old April 16th, 2014, 11:16 PM
I've been doing development for over 30 years, and there's really only one core bit of wisdom that I think is most critical. My advice is to get exposure to a wide assortment of languages if you can. There's no need to master all of them, but do some personal projects in them to get a sense of how they work. Obviously, you'll also need to master one or two of them.

The single most valuable thing you can do (IMHO) is get a fundamental understanding of all the concepts that underlie software development. If you zero in on one language, you'll often end up focusing on the implementation of that language instead of the core concepts and abstractions. By having a solid understanding of all the concepts, you'll find it comparatively much easier to move between languages, environments, problem-solving approaches, and development methodologies.

Each language, environment, approach, and methodology has its pros and cons. Each is effectively a tool that you'll have in your toolbox. The more tools you have at your disposal, and the more adept you are at identifying the optimal tool for a particular task, the more successful you'll be at your craft.

The only thing for certain is that things will evolve and change, but all the underlying concepts remain largely the same. If you focus on the concepts - not the language itself - you'll position yourself the best for both now AND the future.

Have you ever given a young child a shiny hammer? EVERYTHING looks like a nail. The wall. The coffee table. The window. I've encountered LOTS of programmers out there who operate similarly. They know one or a couple "tools" (typically languages and environments) and then try to solve every problem with those tools. Sometimes you need a hammer. Sometimes you need a screwdriver. Sometimes you need a saw. Depth of knowledge of a particular tool is valuable, but it's also relatively common. The truly valuable developer (IMHO) is someone that has diverse knowledge and can readily bring a wide range of "tools" to bear on solving a particular problem.

Those are my six cents (factoring inflation since I got my start doing this for hire).

P.S. Thanks for the kudos on our products. It's greatly appreciated!
rob is offline   #5 Reply With Quote