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 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 |
In Section
Seekers of Perl Wisdom