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.
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.