Four modes of learning in software engineering

Most of your learning as a software engineer falls into one of four modes. Each of these modes helps us to broaden or deepen our knowledge and skill in some way. Each serves a different purpose, and neither is sufficient without the others.

Note that these modes are cyclical, recursive. They are not an ordered prescription, or a hierarchy. Each of these supports, and is supported by, the others. They’re all interconnected. They can all be be adapted to suit any level, from beginner to expert. Choose the mode that suits your needs in any given moment.

Mode 1: Broaden Your Knowledge with Introductory Content

The first mode of learning is consuming introductory content. Videos, tutorials, courses and classes, podcasts, etc. This mode of learning helps to broaden your knowledge. It is valuable, but it is not fully effective until supplemented with other modes of learning.

See [[Learning Mode 1 - Broaden Your Knowledge with Introductory Content]]

Mode 2: Deepen Your Knowledge By Reading Books and Documentation

The second mode of learning is consuming deeper, more challenging content. This includes books on technical topics and best practices, as well as official specifications and documentation. This type of reading covers topics on a much deeper level than you can expect from introductory content.

See [[Learning Mode 2 - Deepen Your Knowledge By Reading Books and Documentation]]

Mode 3: Deepen Your Knowledge By Reading Code

Reading code is a third mode of learning, and is one way to start bridging the gap between knowledge and skill. Reading code will help you to understand how other engineers applied their knowledge of software engineering to solve a specific set of problems, with specific goals and constraints. This is where you start to bridge the gap between knowledge and skill.

See [[Learning Mode 3 - Deepen Your Knowledge By Reading Code]]

Mode 4: Build Your Skill By Writing Code

Writing code is both how you build your skill and how you apply your knowledge. Wrestling with technical problems and business problems, and creating effective solutions in code, is what software engineering is all about.

See [[Learning Mode 4 - Build Your Skill by Writing Code]]

See Also:

  • [[Break Out of Tutorial Hell and Overcome Impostor Syndrome]]
  • [[Knowledge and skill in software engineering]]
  • [[Depth and breadth in software engineering]]
  • [[Necessity and curiosity in learning software engineering]]