August 08, 2003

Staying sharp

I recently received an email from a reader asking me for advice about improving his developer skills.

I am not sure there is any straight answer to this question but let me throw a few random ideas.

  • I have certainly found that reading (a lot of reading) is certainly a great way to accelerate your skills and to force your brain to expand its horizons.

    Reading Java books is one way of doing it but the most important thing to me is to try and vary the books I read as much as possible.
  • Studying other languages is also a fantastic and fascinating way of learning new concepts that change the way you think.  Somebody once said "learn a new language every year" and I can't agree more.  And just like natural languages, the more languages you know, the easier it becomes to learn new ones.

    Things can get really interesting when you start "cross-pollinating":  mixing concepts read in several books.  For example, trying to apply concepts that are particular to a language (e.g. closures) to a language that doesn't support them (e.g. Java).

    Also, don't be afraid of marginal or complex languages.  I see this practice similar to mathematics:  it's something that you study not because it will be directly applicable to you, but for all the wonderful benefits it will indirectly bring you.  For example, the complexity of C++ is daunting and you might not want to be involved in such a language as long as you don't really need it, but that would be a mistake.  Pick a book by one of the gurus and look at the amazing things they can do just by tweaking the concept of templates (partial specialization, traits, etc...).

    Similarly, more abstract languages such as Dylan or CAML are quite confusing at first but they will reshape your way of thinking in interesting ways.

  • It is very rare to find "curious" colleagues.  What I mean by curious is simply what I just described:  people who are not only good at their job but who also like to explore other areas and discuss them.  If you happen to have somebody like that in your work environment, take every opportunity you can to have lunch or coffee with them.  There is nothing more exciting than two curious spirits bouncing off ideas.  Separately, you and him will spark interesting ideas, but if you put both together, the total knowledge will greatly exceed the sum of its individual parts.
  • Of course, all this would be useless if all you did is read and never practice.  At all my jobs, I have always saved some time every day to do something "on the side", something that doesn't pertain to my work directly.   Working on side projects is definitely a way to sharpen your skills, especially if you can be involved in a project for a long time, which will allow you to go through all the cycles involved in the development process.  If you can do this, it's worth it.  Don't forget to have a life and enjoy your hobbies, though, this is a lot more important than it may seem.  If you are not balanced, you will quickly plateau at work, no matter how dedicated you are.

  • Finally, there are a lot of books I could recommend.  I try to maintain a list of books I read, feel free to take a look.

How do you guys "stay sharp"?

Posted by cedric at August 8, 2003 07:03 AM

All agreed ;)

I'd add one thing though: how do you know what new things to study? how do you know where the cutting edge is moving to?

One great way to continuously open your mind to new stuff is to read selected blogs regularly (aggregating them).

And Cédric's weblog is definitely one on my list! :P


Posted by: François PLANQUE at August 8, 2003 10:08 AM

Nice list. I want to learn some ruby, too. But I'm also interested in programming something native for my OSX. ;-)
Just a few comments: What do you thing to add PEAA or CoreJ2EE 2nd edition? Both books offering alternatives for the EJB way and PEAA

Posted by: Tobias Rademacher at August 8, 2003 10:08 AM

I also to try to read something about a topic I completely dislike ...
Two possibilities eventually :
1) you know for sure that you really don't like this topic
2) you've killed one of your prejudice and you have learned something new

Most of the time, the latter applies ;-)

Posted by: Pierre CARION at August 8, 2003 10:51 AM

Make learning a life-long habit is wise advice - and not simply restrictly limited to learning computer languages - ideas and insights can come from all sorts of unexpected sources! Being a developer is a multi-faceted career. Hanging out with smart and curious people is particularly good advice!! In all of this though, remember to make effective use of your time (particularly at work) - time has value and a sense of purpose (goals) helps to make the best use of time.

Posted by: Marc at August 10, 2003 05:27 PM

One thing though: in order to stay sharp, you have to be sharp in the first place.
That might be obvious, but only smart people have the capacity to acquire and apply new knowledge.

If you always had this nice aptitude to learn since your youngest age, staying sharp is a piece of cake. Learning natural languages depends of what happens between 0 and 6 years old. If your brain is used to recognize different sounds and that you keep it trained, you will not have any issue to learn new natural languages (like this Blue Elephant restaurant manager I know who speaks 11 languages ranging from French, Thai to Arabic!).

I believe it is the same for all the different categories, not only natural languages, but also science, management, culture, …)

I usually find that the smartest people are the people who have a broad range of interest.

How to stay sharp?

Answering that question would mean that I am a smart person! Do I want to answer it?

I, sometimes, consider myself, not smart enough to understand things that go beyond my comprehension (superstring theory, IGM chess games, …); but one thing I like is to try to understand :-), therefore, I read a lot.

Thierry Janaudy

Posted by: Thierry Janaudy at August 11, 2003 06:52 AM

Very good list. I can't agree with you more. Where do you start, though? I think by reading "Pragmatic Programmer" and "Code Complete" will put you on a right track: it will give you guidence to stay sharp -- it definitely put me in a driver's seat. :-)

BTW, I have great interest in "Staying Sharp," as I have a blog called "Stas on Software-Eng: becoming a software craftsman" (the URL) where I'm basically explaining what I think will help me and others get to the top and stay there. Stay sharp, that is. :-)

(Nice list of books read.)

Posted by: Stas Kubasek at August 27, 2004 09:17 AM

Hi - I was looking for some political sites with articles on the recent US election and found your nice site. The comments from others on here are pretty good so I just thought I'd add my thoughts also!

Elaine Cooper

Posted by: zone diet extreme at November 4, 2004 12:18 PM

Does this form work like a guestbook?

Posted by: Ming HoLee at November 8, 2004 11:46 AM

I stumbled on this from Google and wanted to say hello

Posted by: Jenn C at November 9, 2004 01:37 PM

I'm just browsing around your site for the first time, interesting read

Posted by: natural & big at November 13, 2004 06:02 PM

Warm welcome to Alnemat TheGrace Arabic Christian Internet Magazine, We love you! Please visit us at:
سلام لكم في محبة الله.نتأمل زياراتكم الكريمة لموقع النعمة موقع مجلة النعمة يقدم كلمة الله الكتاب المقدس الإنجيل رسالة السيد يسوع المسيح قراءات مختارة مواضيع مصيرية قصص واقعية شهادات شخصية ترانيم ممتازة ردود مؤكدة كتب بنّاءة رسوم تسالي تأملات يوميات
Bible Read search in Arabic Studys Stories Testimonies Acappella Hymns and Poems Answers Books Links Daily devotions Acappella Music Graphics /Alnemat Journal Arabe Chrétien La Grâce la Revue Arabe sur Internet offre La Sainte Bible Al-Injil L'Evangile de Jésus Christ gratuit, Bienvenue a La Grâce.

Posted by: TheGrace / النعمة at September 5, 2006 09:57 AM

I love music!

Posted by: All Else Failed at September 13, 2006 08:37 AM

Nice site. Keep up the good word.

I would just like to add that in addtition to reading, you should play some games also. Activities such as playing chess, board games, card games, etc tend to stimulate the brain as well.

Posted by: mansour salahmand at November 3, 2006 12:15 PM

Nice site. Keep up the good word.

I would just like to add that in addtition to reading, you should play some games also. Activities such as playing chess, board games, card games, etc tend to stimulate the brain as well.

Posted by: mansour salahmand at November 3, 2006 12:16 PM

Staying abreast of the law is another way to be informed. Learning about the nuances of the law can be a great brain booster. Learn about the eviction process.

Posted by: azar baradar at December 20, 2006 03:40 PM

pnwfahty tmzsvdyt wwkfwdop bvinfwpq [URL=]clanbyda[/URL]

Posted by: xmkibvqr at March 10, 2007 09:30 PM
Post a comment

Remember personal info?