Sunday, November 30, 2014

Developer Skills

What skills new developers are often lacking:

  • Basic project skills
    • time management
    • effective meetings
  • Platform
  • Server maintenance
  • Development environment
  • Version control
  • Task management
  • Practises
    • Reviews
  • Object-oriented design
    • Liskov SP, Law of Demeter 
    • Interfaces
  • Patterns
    • Design
    • Architectural

What even old developers are often lacking:

Good bug reporting
  • What you did, what happened, what should have happened
Clarity of code
  • Naming
Good object-oriented design
  • SOLID
  • Information hiding
Design
  • Underengineering vs. overengineering
  • Discussion in terms of
    • flexibility
    • clarity
    • complexity
    • development time
In-depth understanding of version control
  • e.g. in Git terms
    • merge
    • rebase
    • bisect
    • status and logs
  • Parallel development models
    • Feature branch and pull request
    • Development branch with continuous integration
    • Release branches
Advanced IDE features
  • Regex search/replace
  • Navigating to related parts in the codebas
  • Automatic refactoring
  • Commenting
Debugging of problems
  • Reproducing problems
  • Manual binary search
  • Checking logs
  • Log correlations (what was logged in different places at the same time)
  • Debuggers
  • Profilers

How to really stand out from other developers:

  • Read books
  • Contribute to open source