password
username
Sponsored by CakeMail, an email marketing software.
Newsletter preview

Tuesday, April 8, 2008 

Build rich, interactive applications with Adobe Flex 3

Adobe® Flex® 3 is a highly productive, open source framework for building expressive web applications that deploy consistently on major browsers, desktops, and operating systems. Learn more about the no cost Flex SDK and the Adobe Flex Builder™ software.
Download Adobe Flex Builder
 Perspective

Hot off
the Press!

jQuery in Action
New guide to the jQuery Library for client-side JavaScript
Laszlo in Action
The first developer's guide to OpenLaszlo
Flexible Rails
Build next-generation RIAs

Special!
Save 25% Enter DZJAN25 at checkout

www.manning.com


Be sure and
check out a
No Fluff Just Stuff
Java conference
coming your way!

4/18-4/20 Chiacgo
4/18-4/20 Seattle
4/25-4/27 Reston
05/02-05/04 Denver
05/16-05/18 Atlanta
05/16-05/18 Okla. City
06/05-06/08 Dallas

 
 A Developer's Perspective
 Next section
Scott Hackett lives in North Carolina where he works at SlickEdit as a software developer. He loves working on products that he can use every day, and enjoys reminiscing about his old TI-99/4A computer.

The Next Programming Skill You Should Learn
By Scott Hackett

Change and growth are faster than ever in software these days. There’s Silverlight, LINQ and WPF from Microsoft. There’s AJAX, REST and Rails 2.0 in the web development world. Java has JavaFX. There used to be a time when you had to pick one language and run with it because it was just too overwhelming to master more than one. Now it’s impossible to keep up with new developments within even a single language. This has many developers scrambling to figure out what to learn next. No one wants to invest countless hours in a losing technology... you want to learn something that will be useful in the long run. I have just the skill for you, and it doesn’t matter what language you work with.

Learn to write well.

"But that’s not a programming skill!" you’re probably saying. Or maybe you’re disappointed because you thought I was going to be talking about the very latest cutting-edge API you can’t live without. Good writing skill is probably one of the most useful talents you can develop as a software engineer, and ignoring it is one of the biggest mistakes most programmers make.

Working in a cave

I used to work with a programmer who we jokingly referred to as a "walking MSDN". He knew all the Win32 APIs, he could tell you the int values of const definitions and could enumerate the parameter lists to functions overloaded 30 times over. As a programmer, when given an assignment, he would go into his cave, hammer out a solution and would re-emerge from his cave with something that worked. I mean that in the most serious way... he would hammer his code into submission until it worked. There was no such thing as elegant code to him; it worked or it didn’t.

His manager both loved and feared him because he would do everything required on time, but he had no idea what happened in that cave. There was no visibility at all into what he was doing, and his manager had to blindly rely on the fact that he had a history of getting stuff done on time.

Programmers loved and feared him because he was incredibly knowledgeable and could answer any question about how this or that API worked. But whenever someone had to get inside his code, it was a pure mystery. There was no documentation, no models, no code comments - nothing but the raw code itself. For mister MSDN, this was no problem, because it was all in his head. For everyone else, it was like being lost in a big city with no map.

Was he a good programmer? Most people that worked with him would say yes... he was technically proficient and met his deadlines. But most of those same people would also say that they had a very difficult time working with him. That element of fear that he generated was a direct result of not being able, or willing, to communicate. He couldn’t communicate his plans or designs to other programmers. He couldn’t communicate his status with his managers. He couldn’t communicate his interfaces with other teams. Eventually when he left, his code left a wake of terror felt by those that had to pick up where he left off.

The lifespan of a tech skill

Technologies come and go. Seven or so years ago, I felt like I was completely on top of my game when it came to programming technology, at least in the Microsoft world. I had a very deep understanding of COM and ATL, thanks to Chris Sells, Brent Rector and Richard Grimes, and I coupled that with VB6 on the front end. This was a really potent combination and I thought I’d be working with that for years and years. But, as with most technical skills, it didn’t last long… .Net came along a year later, ATL became outdated and VB6 just disappeared into the sunset. Now that I’ve mastered C#, I find that I haven’t even touched the new stuff in .Net 3.5. The point is, no matter what technology you learn, with very few exceptions, it will disappear or be overshadowed by newer technologies (and probably sooner than later).

Writing skills will last you a lifetime, though. You will always benefit from it, regardless of what language or technology your use, or whether you’re even a programmer or not. Good writing skills are universal and will never be replaced.

The golden rule of documenting software design

Try to document whatever you are working on. It doesn’t have to be the worlds most perfect UML and you don’t need an expensive tool to do it. In fact, Wordpad and Paint are sufficient, and don’t tell me you don’t have those. Write in a way that best expresses your intent and your thought process in coming to the design decisions you did. I have a golden rule of documenting software design:

Describe your design to others as you would have others describe their design to you.

When you spend the time to do this, you’ll find that many benefits will follow. You’ll get feedback from others that may have tried to solve a similar problem and have insight you may not have thought of. You’ll leave a clear trail to follow for those that work on the code after you. Most importantly, you’ll shed light on your work, which everyone who depends on your work will appreciate. Even if no one else reads what you write, you’ll still have worked through problems in your head that can only lead to better design in the long run. There is no downside to documenting your designs.

If that wasn’t enough, consider the fact that someday you may be looking for another programming job. You’ll sit down with other developers and managers in an interview and try to describe how great your technical abilities are. You are now one of the vast sea of programmers trying to get that job. With your resume alone, a company has only your answers during the interview to base their decision on. With your documentation in hand, though, you can show them in full detail the type of work you’ve done and give them deeper insight into your thought process than they could ever get from interview questions alone. Your documentation serves as a body of work that travels with you, long after you’ve stopped working on this or that code, and speaks for your experience.

Of course, these skills won’t write code for you. But think about how much time you’ve devoted to learning programming based skills. Think about how many books you’ve purchased and read about programming. It’s a huge investment in time and money to keep up with. The next time you have some free cycles to sit down and pick up something new, consider skipping the software development section of the bookstore and pick up a book about technical writing. Here are some good books on this subject:

Until next time,
Scott Hackett
http://blog.slickedit.com/

 

Code Smarter! Join the Java Power Tools Bootcamp

Come to this innovative hands-on workshop that covers best-of-breed open source tools and techniques for Agile Development in Java. Optimize your development process, hone your programming skills and know-how, and ultimately produce better software. And have fun while you're doing it!

Code Faster - Find a City Near You

 DZ Top Links
 
 DZone Top Links
 Next section
 Back to top
most clicked this week from dzone.com

dzone

Most-clicked links this week

 
 Popular at JL
 
 Popular at Javalobby
 Next section
 Back to top
A recap of some of the most popular and active Javalobby.org discussions this week.

SwingSet 3 in JDK 6 u10 Beta

Part of the new Sun JDK 6 update 10 also called Consumer JRE is a new SwingSet demo, named SwingSet 3. I've decided to run it and to give you a few screenshots. So here it is:  

6 replies - 4223 views - Submitted 04/04 by Anthony Goubard in News

Java Jobs in Decline? Not So Fast!

If you read Tom H's recent posting on Java Programmer Trends, then you may have the feeling that all is not well in the Java jobs marketplace. From a peak in late 2006 to the present there has been a sharp...

14 replies - 3889 views - Submitted 04/07 by James Sugrue in Articles

Hosting Java Web Applications: Why Is It Still So Hard?

Hosting Java Web applications is far from trivial. Ask anyone who has tried it and you'll start to understand why Java Web applications are not popular outside the enterprise.

26 replies - 3626 views - Submitted 04/04 by Robert Enyedi in News

Java SE 6 Update 10 Beta: Optimized Consumer End User Experience

Java SE 6 Update 10 Beta is available. Its focus is very specific—new features and enhancements aimed at providing an optimized consumer end user experience.

24 replies - 3041 views - Submitted 04/03 by Geertjan Wielenga in News

Closures Solution: Include Groovy in the JDK?

The closures debate often seems to consist of two separate discussions—first there's the discussion around how best a closure could be expressed in Java; secondly there is a discussion around a meta...

46 replies - 2815 views - Submitted 04/04 by Geertjan Wielenga in News

 White Papers & Announcements
 
 Product Announcements
 Next section
 Back to top
Product and service announcements for Java developers.

NetBeans 7.0 Plans Uncovered: NetBeans to Become an Online IDE

I shouldn't be writing about this, because we were saving it as the big announcement for this year's JavaOne, but the information has already leaked: I've seen several NetBeans developers blogging about...

31 replies - 4976 views - Submitted 04/01 by Roman Strobl in Announcements

JBuilder 2008: Now With More Smarts

Yesterday, CodeGear announced the availability of JBuilder 2008, including new tools for code re-use and the inclusion of Swing Designer from Instantiations. It looks like quite a release.

6 replies - 2229 views - Submitted 04/02 by Matthew Schmidt in Announcements

STAN 1.0: Structure Analysis for Java!

Odysseus Software has just released STAN 1.0. STAN is an Eclipse-integrated/standalone bytecode analyzer, offering excellent dependency analysis, essential quality metrics and reporting. A free demo is...

0 replies - 1382 views - Submitted 04/02 by Christoph Beck in Announcements

Release of wingS 3.2

The wingS development team is proud to announce the general availability of wingS 3.2. Besides numerous bugfixes and stabilization issues, the most important improvements addressed by version 3.2 are as...

0 replies - 1203 views - Submitted 04/03 by Holger Engels in Announcements

JBoss Web Services adds Metro and CXF Integration

JBoss has announced the general availability of JBossWS 3.0.1 which includes integration with the Metro Web services stack as well as the Apache CXF open source services framework. JBossWS is a JAX-WS...

1 replies - 892 views - Submitted 04/02 by Nitin Bharti in Announcements

ztemplates: Yet Another Web Framework?

ztemplates is a small and easy to learn open source action web framework. Let's meet its author and find out what it's about!

0 replies - 856 views - Submitted 04/07 by Gerd Ziegler in Announcements

Taglets Collection 2.0.3: Even More JavaDoc Tags!

The Taglets Collection is a set of general pupose taglets for use with the JavaDoc tool. It provides a standard set of new tags and lets you create new ones by configuration or using simple Java interfaces.

0 replies - 829 views - Submitted 04/03 by Bruno Essmann in Announcements

Decoration 1.0, Japplis Toolbox 1.0 and Ant Commander 1.3 released

As this last week I've released a few pieces of software. I've decided it was worth an announcement in Javalobby.

0 replies - 803 views - Submitted 04/04 by Anthony Goubard in Announcements

Jazoon'08 Program Published

Jazoon'08 - The International Conference on Java Technology takes place in Zurich, Switzerland this year on June 23 - 26. The program has just been published.There's a wide variety of speakers at the...

0 replies - 751 views - Submitted 04/01 by Jürg Eberhard in Announcements

Citra FX Photo Effects 2.5: Image Filter Effects for Digital Photos or Images

KIYUT just released Citra FX Photo Effects 2.5, an image filter effects for digital photos or images. It allows anyone, regardless of experience, to turn digital images into unique artistic looks. Citra...

0 replies - 550 views - Submitted 04/04 by Tonny Kohar in Announcements

WizTools.org RESTClient 2.1—Getting Started

WizTools.org RESTClient is a Java Swing application for testing RESTful web services. It might be used for testing other HTTP communications too. This is a short introduction of this tool explaining its...

0 replies - 494 views - Submitted 04/07 by Subhash Chandran in Announcements

 Your Account
 
 Your Account
 Next section
 Back to top
Manage your account info for this and other Javalobby publications.
Manage your Javalobby membership details

Click on the following links to:


 Contact Info
 Next section
 Back to top
Here's how to reach us, we love to hear from you.
Email us
Send news items to editor@javalobby.org
Send questions, complaints, or suggestions to feedback@javalobby.org
Send advertising inquiries to advertise@javalobby.org
 
Call us
Our number is (919) 678-0300. We'd love to hear from you!

 Legal
 Back to top
The fine print we'd rather avoid completely.
Feel free to redistribute this newsletter in part or in full to your friends.

Javalobby News is a service mark of DZone, Inc.
Copyright ©2001-2008 DZone, Inc.

Thank you for your continued support of Javalobby and DZone. If you prefer not to receive the Javalobby weekly newsletter, send an e-mail to ***-jlnews@javalobby.org and please ensure the actual email address to be removed is present.
DZone, Inc., 113 Legault Drive, Cary NC 27513 USA