Note from Jimmy Hua: What a developer to do? Technology is always changing. Below are some tips. My advice is just continue to look and be informed of new technology and dabble in what interests you.
This post is shared through my Google Reader from another source. All credit of the post belongs to them which you can access by going to Constantly Changing Technologies: What’s a Software Developer To Do?
Brett Miller is the president of Custom Software by Preston (CSP). For more than 10 years, CSP has impressed clients with highly effective software solutions and teams of multi-talented software engineers.
New technologies and devices are propagated at a frightening pace. Demand for the evolving skill sets of software developers creates an environment where it can be difficult to find the expertise to handle the needs of a software development project. There are more potential skill sets and opportunities to pursue than ever before.
Fortunately for a person interested in entering one of these new software development fields, the technology is so new that years of experience aren’t always a prerequisite. Being able to demonstrate even a cursory ability level may be enough to get started.
Unfortunately for the developer, many of these new technologies flash in the marketplace and are quickly gone. They lose their marketability in favor of the next generation’s technology and patently better ways of doing the same functions. The drawback for a developer is obvious: a constantly evolving learning curve. There is no period of static production; there is always a new technique or a new programming language to master in order to stay current. And there is no choice but to remain current. Many technologies that were cutting edge just a few years ago are completely outmoded today.
Factors That Ease Market Entry
Many of the most popular software development tools are free online (or have trial versions), and authors provide detailed descriptions of the concepts and techniques to learn them. Online tutorials and information to overcome common difficulties allow developers to quickly recover from any typical “sticking points” in the learning process.
Credibility can quickly be established through building a sample online (like a website, for example) or publishing a small app in an app store. A simple app can instantly highlight a developer’s skills and abilities — and verify his or her credibility.
What Technologies Are Next?
In the past three years, a larger number of experienced developers have been changing their focus from developing for computers to developing apps for mobile devices like the iPhone, Android and BlackBerry. New devices and operating systems, like Windows Mobile 7, make the smartphones market a competitive bonanza for whoever has the appropriate skills. Constantly changing tastes in apps, technologies and capabilities help prevent these markets from reaching saturation — the apps and technologies supporting them simply change too fast for that to occur.
Two new technologies that are poised to have greater demand in the future and could potentially reshape software in revolutionary ways are Internet-connected TV and the Kinect device.
Internet TV represents the merging of Internet capabilities and traditional TV. Just as smartphones made application miniaturization commonplace, the attributes of the larger TV screen and distance from the device will tend to create new usage patterns and technological specialties.
Kinect turns your body and voice into the input device for interfacing with an XBox 360. A simple wave of a hand can control and manipulate the content that is displayed on your screen. One day quite soon, Kinect-like features will be repurposed for use on computers or other devices as a supplement to your keyboard and mouse. Just imagine the software development possibilities; it’s simply staggering.
The question for potential developers is how much time they would be willing to dedicate to learning these new and ever-changing technologies and positioning themselves as experts in the field. Exciting? Yes, but there is the ever-present risk that the forecast demand may be fleeting or may not ever occur.
What Determines Which Areas to Focus On?
Job Situation and Current Knowledge: A developer’s current job situation is the main area where skills are utilized and refined. Management usually directs which of the major technologies are used (ASP.Net, for example), but individual developers might control the sub-technologies (like LINQ, MVC and Ajax). Even if there is no exposure to newer technologies, the understanding and usage of modern project methodologies (like Agile) and design patterns should be continuously studied and refined. Beyond just a paycheck, a job also has the added value of providing exposure to new technologies. This exposure shapes the job that developers can qualify for next. Developers’ primary responsibility is to the job or project at hand, but they can’t forget to maintain marketable skills.
Risks of an Out-Dated Skill Set: The continuous release and refinement of technologies shortens the lifespan of individual language usages and versions. Individual companies may lock into technologies that limit a developer’s ability to gain exposure to new concepts. Developers must strive to stay current rather than allow skills to become stale. Some developers choose the stability of employment, but even an employer that provides that stability will one day update its systems, so modern skills are critical.
Motivation to Learn New Technologies in Free Time: Developers differ in how they want to spend their free time. Some thrive on learning new things and continuing to play with technologies even in their off hours. Others need to step away completely to refresh themselves for the next day’s set of required development tasks. Software development in general is a risky vocation, if you want long-term usability of a specific language skill. Modern technology only guarantees one thing: change.
Interest in the Device and Platform: The interest a developer feels for a device or technology may be the largest motivator in learning the details and launching a career using that skill.
Predicted Longevity of Language Demand: Many language usages are merely derivatives of prior versions or subsets of the language. A developer’s flexibility to follow a language through its popular usages (whether a new version or on a new device) can be critical to the success of his or her career.
Availability of Tools and Resources to Learn Languages: Development tools are readily available with guidance online (and in books) to learn the various required skills. One of the greatest things about being a programmer is the availability of tools and information.
Demand of Skills, Competition and Hourly Rate: This is basic economics: More competition brings lower hourly rates; the greater the demand for the skill, the higher the hourly rates. Oddly enough a solid resume, years of experience and a solid background in software development principles seem to have become a lesser focus in the hiring process. Today, hiring managers target the last couple years of employment and the developer’s usage of exact skill sets. Aptitude and a wide range of skills (in general) don’t necessarily guarantee employment.
Ability To Market an Idea: The App Store model that has become so popular gives developers a new revenue stream option. However, just being a good developer isn’t enough to make money selling software. A developer must be able to identify an appropriate need in the market and have a marketing plan to promote the product. An old adage suggests “If you build it, they will come.” But know that without that solid marketing plan, they probably won’t come.
There are additional drawbacks for developers using the App Store model. The app certainly does get exposure, but competitors can potentially copy and improve on your idea. Plus you’ll likely have to share the revenue with whoever built the store (Apple, Google, etc.).
Manage a Developer Career Through Technology Changes
Developers must take the responsibility of managing their own career. Status as an employee or as a contractor doesn’t lessen this responsibility. They also need to be cognizant of the effect that a short technological life-cycle may have on their career. They need to know their own strengths and weaknesses and how to prepare for industry and employment changes.
Managing these responsibilities properly allows developers to position themselves in the most advantageous way, when change, inevitably, comes knocking. Software development is a highly volatile industry. Outmoded technologies, plus the jobs and careers of the people who become stagnate in them, get left behind.
More Tech Resources from Mashable:
– Tough Tech: 10 Rugged Gadgets That Will Go the Distance
– 5 Predictions for Game Mechanics in 2011
– 3 Things to Consider When Staffing a Software Development Project
– 6 Great Gloves for Touchscreen Gadget Lovers
– 10 Chrome Web Apps to Check Out
Image courtesy of Flickr, e2.
Reviews: Android, App Store, Flickr, Google, Internet
For more Tech coverage:
- Follow Mashable Tech on Twitter
- Become a Fan on Facebook
- Subscribe to the Tech channel
- Download our free apps for Android, iPhone and iPad