Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Where Do I Go Next?

by eyepopslikeamosquito (Canon)
on Jul 17, 2011 at 00:09 UTC ( #914904=note: print w/ replies, xml ) Need Help??


in reply to Where Do I Go Next?

I suggest you start at least thinking about the basic skills needed by working developers. My experience with new graduates at our company is that, despite having studied "computer science" for a number of years, there are often gaping holes in their basic, practical software development technique, such as:

  • Always use a revision control system.
  • Use a single-step automated build.
  • Avoid duplication (DRY).
  • Descriptive, explanatory, consistent and regular names.
  • Useful commenting and documentation.
  • Design the module's interface first.
  • Sound domain abstractions.
  • Wise program decomposition.
  • Encapsulation.
  • Highly cohesive, loosely coupled modules.
  • Minimize the exposure of implementation details.
  • Minimize the scope of variables, pragmas, etc.
  • Write components that are testable in isolation.
  • Write the test cases before you write the code.
  • Add new test cases before you start debugging.
  • Establish a rational error handling policy and follow it strictly.
  • "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live" (Damian Conway)
Many of these tips were taken from On Coding Standards and Code Reviews.

Many years ago, I was lucky enough to meet Bjarne Stroustrup. I remember him telling me that "you can't learn to ride a bicycle by a correspondence course". That is, becoming a good programmer takes practice, lots of practice. So you will need to find a little project to develop, to practice many of the techniques above. See also code kata.


Comment on Re: Where Do I Go Next?
Re^2: Where Do I Go Next?
by perl.j (Pilgrim) on Jul 17, 2011 at 01:08 UTC
    I liked the last tip :). This was great help. The only problem I have now is figuring out what to do with all of the info, advice, and tips I'm getting from everyone but I'm sure I can do that myself :).
    A Newbie To Perl

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (7)
As of 2014-07-30 22:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (241 votes), past polls