Alec the Geek

Reflections on software and related things from an older geek

What a young developer needs to know

Posted by Alec The Geek on 3 November 2008

(Updated 5/Oct/08 and 11/Nov/08)

I occasionally ponder on what skills and knowledge a novice who wants to become a skilled developer should acquire. In no particular order here is a suggested list of things to consider:

  • Basic accounting: This is useful from both an IT perspective — a lot of IT systems are used for financial management; and from a general work perspective because it helps with your future in business
  • Version control concepts and tools
  • Waterfall Software Development Lifecycle (SDLC): Requirements, design, building, testing, release
  • Agile SDLC such as XP and/or Scrum
  • How to use a command line
  • Basic compiler architecture — the 7 phases of compiling
  • Data representation: Number bases (binary, Hex, BCD); character sets; XML markup
  • Basic algorithms: Sorting, Linked lists etc, recursion,…
  • Important design patterns
  • Testing and quality as a substantial stand alone topic
  • Programming in at least three languages: C (or Java, C++, Ada etc), Perl (or Python, Ruby etc) plus one other (e.g. Lisp, Haskell). At least one needs to be an OO language and OO programming should be a familiar habit. Perl does not count as OO for this discussion.
  • How to use a word processor and spreadsheet
  • Basic SQL, RDBMS architectures, 1st, 2nd & 3rd Normal forms and basic DB schema design
  • TCP/IP networking and basics of http, email, ftp, etc. Needs to include conceptual understanding of DNS and related security issues
  • Basic IT security concepts
  • Basic IT System Management
  • Personal task and work management (e.g. GTD or GSD, suggested by Sinewalker)
  • Maintaining personal work records in a  log book

Further topics

  • More advanced RDBMS use and schema design
  • Embedded systems
  • How to use LaTeX or Docbook
  • Application engineering for quality (maintenance, extensibility, performance etc)
  • OS design
  • Requirements engineering
  • UML

Further suggestions anyone?

About these ads

7 Responses to “What a young developer needs to know”

  1. sinewalker said

    I would add time management skills. GTD has the best overhead-to-work achieved ratio and maps well to developer mind-sets.

    Also recommended reading

    The Career Programmer: Guerilla Tactics for an Imperfect World
    by Christopher Duncan
    Apress © 2002, ISBN:9781590590089

    Just about every chapter in that book is pertinant to young (and seasoned) developers who want to swing freely among the branches of the corporate tree. Yup, my goal is to become *that* kind of “code monkey”…

  2. aabs said

    Hi Alec,

    You haven’t mentioned the ‘soft’ skills without which a young idealistic developer will be eaten up and spat out. I’m talking about taking the ‘ideal world’ software engineering principles espoused by university CompSci lecturers with a pinch of salt. The worst part for me was the complete and utter disillusionment that I felt when I got out of uni into industry. I felt very much as a medieval monk must have done when leaving his cloisters for the first time, only to discover that the world outside was either peasants living in mud huts scratching fleas or avaricious robber barons.

    My offering is – don’t get your hopes up. In fact, don’t leave university at all. If you must leave uni (for want of money etc) then try to be as choosy as you can with your jobs. Decide whether it’s better going blind in a scriptorium or being burnt at the stake for evangelising to the mob.

    ;^]

  3. Alec said

    So Aabs, I think the soft skill you are proposing is a healthy dose of cynicism?

    Can’t argue with that ;-)

  4. James Stansell said

    * patience mixed with inquisitiveness
    * an open mind and an attitude of learning
    * how to recover your work when your cat walks on the keyboard

  5. Alec said

    James, I think the cat problem is covered by “Version control concepts and tools”?

  6. [...] I’m looking forward to seeing how well the new text works, and of course once basic programming has been mastered we can move onto “What a young developer needs to know“ [...]

  7. I recently found http://altdevblogaday.com/2011/08/06/demise-low-level-programmer/

Sorry, the comment form is closed at this time.

 
Follow

Get every new post delivered to your Inbox.

Join 273 other followers

%d bloggers like this: