Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Reflections on Skills of the Skillful

by eyepopslikeamosquito (Bishop)
on Jun 30, 2009 at 07:50 UTC ( #775943=note: print w/replies, xml ) Need Help??

in reply to Reflections on Skills of the Skillful

I think I am looking to hear about SUCCESS STORIES.....
Further to my earlier general response, I remember a few specific anecdotes that helped me improve as a programmer:
  • Read books. Be careful to read only top quality books. Especially avoid books with titles like "Learning Perl in 24 minutes Unleashed, in a Nutshell for Dummies". Reading those can do more harm than good. When I learnt C, I chose K&R; for Perl, The Camel; for C++, anything by Stroustrup. I deliberately chose books written by the creator of each of these languages so as to get the most out of my limited time. The creator of a language usually has greater insights, especially into the why of a particular language feature. Another book that changed me as a programmer is The Pragmatic Programmer and I still heartily recommend it.
  • Study a large body of high quality code. Learn from the masters. For C, I remember how studying the source code to Andrew Tanenbaum's Minix operating system was an eye opener for me. It taught me how to structure a large body of C code.
  • For Perl, writing a CPAN module taught me a lot. After all the reading and the theory you've got to practice. Doesn't matter that I wrote a frivolous module. I learnt a lot about the CPAN, pause, CPAN testers, dependencies, Kwalitee, module naming, how to design a module's interface, how to test a module, POD and how to document a module, and various tools (e.g. Devel::Cover, Test::Pod::Coverage) that I could never have learnt as well without actually doing it. Researching how others wrote CPAN modules, browsing many CPAN modules looking for a good model for mine was also a great learning experience.
  • My final anecdote is that posting code for review to a public forum (such as Perl Monks) is a great way to improve as a programmer. To get the most out of this, you must develop a thick skin and not be overly sensitive to criticism ... or even being flamed. Goes with the territory. But if you can develop a thick hide, it's a great way to improve as a programmer.
These are just a few things I remember that worked for me. You'll need to tailor your learning program based on your own personal likes, dislikes, strengths and weaknesses.

  • Comment on Re: Reflections on Skills of the Skillful

Replies are listed 'Best First'.
Re^2: Reflections on Skills of the Skillful
by gwadej (Chaplain) on Jun 30, 2009 at 13:33 UTC

    Although I agree with all of the points above, I should also point out that it is possible to learn from reading low-quality code as well, provided you understand that the code is bad.

    Reading other people's code with an eye towards what works and what doesn't is a very important skill. Pay attention to the points that are hard to change or understand, these are things you don't want to do.

    Negative examples can still help.

    G. Wade

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://775943]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2021-10-21 20:44 GMT
Find Nodes?
    Voting Booth?
    My first memorable Perl project was:

    Results (84 votes). Check out past polls.