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

Re: Where Do I Go Next?

by eyepopslikeamosquito (Archbishop)
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.

Replies are listed 'Best First'.
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?

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2023-12-03 11:01 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (20 votes). Check out past polls.