In defense of learning on company time

Isaac Lyman - Oct 23 '23 - - Dev Community

Based on my own experience and interactions with many other developers, I'm going on the record with a possibly controversial opinion:

If you're a dev, especially one in the first five years of your career, you should be spending at least 10% of your on the clock time—at least 4 hours of your 40 hour work week—studying the fundamentals of programming. Put aside your assigned work for those 4 hours. Schedule them in your work calendar. Mark yourself unavailable on Slack. No matter how busy you are, protect that time.

Everybody wins here. The time you spend improving your fundamental skills will pay itself off almost immediately, then yield continuing returns for the rest of your career.

Why is this controversial? Because many developers would say it should be 25%.

To clarify, I'm not talking about "just-in-time" learning (looking up the APIs and patterns you need to finish a task at work). I'm talking about focused, academic, non-urgent study. Books, tutorials, courses, videos. Stuff that you could survive without, maybe indefinitely. Stuff that will help you swim instead of just treading water.

What are the fundamentals of programming?

For the programming language(s) you specialize in:

  • Syntax
  • Standard library
  • Best practices
  • Variable scope and lifetime
  • Memory management
  • Asynchrony, scheduling, threading, and concurrency
  • Compilation toolchain
  • Code navigation & IDE features
  • Automated testing
  • Debugging
  • Top 10 packages

For programming in general:

  • Data structures
  • Big O notation
  • Design patterns
  • Software planning and architecture
  • Quality assurance
  • Functional programming concepts
  • Recursion
  • Information hiding/encapsulation
  • Continuous integration/continuous delivery
  • Threat modeling
  • UX and user behavior
  • Documentation
  • Test-driven and interface-driven development

I'm sure I missed a few. Comments are open for additions/corrections.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player