pointer-image   5   Keep Up with Change

 

“Technology changes so fast it’s overwhelming. That’s just the nature of it. Stick to your old job with the language you know; you can’t possibly keep up.”

images/devil.png

“There is nothing permanent except change,” said Heraclitus. That has been true throughout history, but it’s especially true now. You’re in an exciting and ever-changing field. If you graduated with a degree in computer science or some related professional field and thought you were all done with learning, you were dead wrong.

Suppose you graduated in 1995, a mere ten years ago or so. What did you know at the time? You probably knew C++ fairly well. You saw some new language called Java. A concept called design patterns was gaining interest. There was some talk about something called the Internet. If you then went into hibernation and resurfaced in 2005, what you’d see around you would be overwhelming. A year would not be enough to learn all the new technologies and return to your former level of proficiency, even within a fairly limited area of technology.

The pace at which technology evolves is incredible; take Java, for instance. You have the Java language with its series of updated features. Then you have Swing, Servlets, JSP, Struts, Tapestry, JSF, JDBC, JDO, Hibernate, JMS, EJB, Lucene, Spring…; the list goes on. If you are into Microsoft technology, you have VB, Visual C++, MFC, COM, ATL, .NET, C#, VB.NET, ASP.NET, ADO.NET, WinForms, Enterprise Services, Biztalk…. And don’t forget UML, Ruby, XML, DOM, SAX, JAXP, JDOM, XSL, Schema, SOAP, web services, SOA; yet again the list goes on (and we’re starting to run out of short acronyms).

Unfortunately, just having the right skills for the job at hand isn’t sufficient anymore. That job won’t even be available in another few years—it will be outsourced or outdated, and you’ll be out of a job.[6]

Suppose you were a Visual C++ or VB programmer, and you saw COM come out. You spent time learning it (however painful that was), and you kept up with what distributed object computing is all about. When XML came out, you took time to learn that. You delved into ASP and understood what it takes to develop a web application. You didn’t become an expert on each of these technologies, but you didn’t stay ignorant of them either. Your curiosity led you to find what MVC is and what design patterns are. You played around with Java a little bit to see what all the excitement was about.

If you had kept abreast of these technologies, then taking the next step and learning .NET is really not that big a deal. You didn’t have to suddenly climb ten floors; you were climbing all along, and you likely had to step up just one or two floors at the end. If you stayed ignorant of all these technologies, then climbing up those ten floors would leave you out of breath at best. It would also take a long time—and all the while newer technologies would keep coming along.

How can you keep up with the pace? The good news is we have lots of technologies and facilities available today to help us continue our education. Here are some suggestions:

Learn iteratively and incrementally.

Set aside some time every day for catching up. It doesn’t have to be long, but it should be regular. Keep track of concepts you want to learn more about—just jot down a note when you hear some unfamiliar term or phrase. Then use your regularly scheduled time to investigate it further.

Get the latest buzz.

The Web contains vast resources for learning about new technology. Read discussion forums and mailing lists to get a good flavor for the problems people are running into and the cool solutions they’ve discovered. Pick some well-established tech blogs and read them regularly—and check out what the top bloggers are reading (see http://pragmaticprogrammer.com for current suggestions).

Attend local user groups.

Local user groups exist in many areas for Java, Ruby, Delphi, .NET, process improvement, OO design, Linux, Mac, and all manner of other technologies. Listen to the speakers, and plan on participating in the question-and-answer sessions afterward.

Attend workshops or conferences.

Computer conferences are held all over the world, and many well-known consultants and authors conduct workshops and classes. These gatherings can be a great opportunity to learn directly from the experts.

Read voraciously.

Find good books on software development and nontechnical topics (we’d be happy to recommend a few), peer-reviewed journals and trade magazines, and even mass-media press (where it’s fascinating to see old news presented as “cutting edge”).

images/angel.png

Keep up with changing technology.

You don’t have to become an expert at everything, but stay aware of where the industry is headed, and plan your career and projects accordingly.

What It Feels Like

You feel aware of what’s going on; you know about technologies as they are announced and adopted. If you had to switch jobs into a new technology area, you could.

Keeping Your Balance

  • Many new ideas never make it to full-fledged, useful technologies. The same is true for large, popular, well-funded endeavors. Gauge your effort.

  • You can’t be an expert at everything. Don’t try. But once you’re an expert at a few things, it becomes easier to gain expertise in selected new areas.

  • Understand why a new technology is necessary—what problem is it trying to solve? Where can it be used?

  • Avoid the impulse to convert your application to a newer technology, framework, or language just for sake of learning. You still have to evaluate the merits of a new technology before committing to it. Writing a small prototype might also be an effective antidote for overly extreme enthusiasm.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.146.105.137