Here are the bulletpoints from the ~ 30 minute video What All New Software Developers Need To Know by Dave Farley.

What All New Software Developers Need To Know

  1. Nobody Knows Everything

    Everyone is a junior in something. It’s OK to say “I don’t know”.

  2. Apply “Engineering Thinking” to Solving Problems

    Learn from your failures.

  3. Make Progress in Small Controlled Experiments

    Get comfortable with not knowing. Always work in small steps.

  4. Be Suspicious of Your Ideas and Guesses

    Always test your assumptions.

  5. Seek Mentors

    Look to chose your own boss. Interview the organization you apply to.

  6. Seek Out Pair Programming

  7. Find Like Minds

    Go to meetups, find open-source projects to contribute to.

  8. Don’t Be Obsessed With Tools

    Software development is about understanding the problem we are working on. Develop the skills to analyze problems. Talk to other people, make diagrams.

  9. Focus on the Problem You Are Solving

    Your real job is not coding.

  10. Write Lots of Code - Play With It

    Explore. Try coding exercises.

  11. It’s About Thinking, Not Typing!

    Learn the fundamentals and apply them. Learn test-driven-development.

  12. Fundamentals Are More Important Than Tools

    Tools come and go, but the fundamentals stay.

  13. Language & Frameworks Should Be Incidental

    Spend some time to learn them, but look for the deeper, profound skills.

  14. Solving Problems > Design > Coding > Language & Frameworks

  15. TDD Focus Maintain Focus on the Problem & Improves Design Quality

  16. Take Coupling/Dependencies Seriously

  17. Concurrency Requires Caution

  18. Optimise for Learning & Discovery

  19. Work Iteratively

    Gather feedback.

  20. Work Incrementally

    Make progress as a series of experiments.

  21. Be Empirical

    Observe. Evaluate ideas in the real world.

  22. Optimise to Manage Complexity

    Create modular systems. Improve cohesion. Separation of concerns. Manage Coupling. Use abstractions.