Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting unstuck in levelling up - Patterns for ...

Paul van der Slot
September 09, 2024
170

Getting unstuck in levelling up - Patterns for Personal development

As a software engineer, you commit to a lifetime of learning. The IT world evolves so fast, and there is much unknown in the young field of software engineering.
How can you keep learning and growing? You might feel overwhelmed by all the available information around you. Or maybe you think you know it all? Or do you feel like an imposter at work, because there is so much you still don't know? These thoughts are not helpful if you want to continue learning and leveling up. It would help if you saw how far you have come in your learning journey and what steps you still need to take.
In this talk, I will show different ways of looking at your level of seniority and how those different views can be helpful. I'll also share some important values and principles for continuous learning. Additionally, I will discuss some behavioral patterns that you can use to level up your skills. I'll touch upon themes like the Growth Mindset, Learning from peers, Unlearning old views, Creating a knowledge portfolio, and Dealing with uncertainty. In this way, you can take control of your personal development. You can make your learning path more effective and not based on coincidence.

Paul van der Slot

September 09, 2024
Tweet

Transcript

  1. Paul van der Slot Freelance Software Engineer / Architect -

    Domain-Driven Design & Collaborative Design Enthusiast
  2. Lifetime of learning My first day as a software developer

    (trainee) - Conversation with the CTO
  3. Urgency to get better in Learning From 1974 – 2014:

    Each 5 years, the population of SWEs doubled. - Clean Coder Blog Half the population has less than 5 year experience!
  4. This will not help you ( so maybe the most

    room for improvement? ) “I am afraid to challenge my beliefs“
  5. Junior / Medior / Senior (/ Staff) Different meaning in

    different company Often linked to compensation
  6. Junior, Medior, Senior (, Staff ) Years of experience Compensation

    related Different in each company Skill related Responsibilities
  7. Attitude of improving Apprentice Journeyman Master Value learning Responsible for

    own journey Inward focused Stages of craftsmanship You retain attributes of previous stages
  8. Focus on connections between practitioners Attitude of improving Apprentice Journeyman

    Master Value learning Responsible for own journey Inward focused Stages of craftsmanship You retain attributes of previous stages Different masters Sharing ideas Growing portfolio
  9. Focus on connections between practitioners Creating new tools Attitude of

    improving Apprentice Journeyman Master Value learning Responsible for own journey Inward focused Stages of craftsmanship You retain attributes of previous stages Different masters Sharing ideas Growing portfolio Training journeyman Superior skill sharing
  10. Biggest inspiration for this talk Most patterns / principles I

    mention can be found in here Free online version @ oreilly.com
  11. I don’t have all (or even most) of the answers.

    Nor are all these ideas applicable in all situations. Beware
  12. Don’t get distracted by things that don’t resonate. Search for

    insights that help YOU in your learning journey!
  13. I believe that if you follow the advise I’ll give

    you, you will improve faster then most software engineers
  14. Learn by doing Principle There is so much information around

    you. Reading or hearing about it, doesn’t make it stick Context Guideline Take time for deliberate practice Integrate experimenting in your daily job
  15. Deliberate Practice • Breakable toys – in side projects •

    Coding Kata’s • Learning hours – with a technical coach Creating an environment where it is safe to fail
  16. Expose your Ignorance Pattern Tomorrow I need to look stupider

    and feel better about it. This staying quiet and trying to guess what is going on isn’t working so well. - Jake Scruggs
  17. Expose your Ignorance Pattern You are often hearing jargon that

    you can vaguely place. Context You want to learn more, but your instincts tell you to hide your ignorance. Be honest about what you don’t know. Ask a lot of questions. Learning is part of delivering software. There are often more people with questions
  18. The Long Road – Sustainable motivations Pattern Anyone who has

    seen a programmer at work knows that programming itself […] is the biggest motivation in programming - Gerald M. Weinberg
  19. The Long Road – Sustainable motivations Pattern We live in

    a world of quick wins, fast promotions and easy roads Context Becoming a master software craftsman is in conflict with those quick wins In this stage, value learning and growth opportunities over salary and status. Find joy in programming itself. Seek an environment that brings this forward.
  20. What motivates us? Autonomy Freedom to choose task, time, team

    and technique Mastery Finding joy in getting better Purpose Having a purpose greater then yourself
  21. If you hang on long enough, people will start calling

    you “experienced,” but that should not be your goal. All experience indicates is that you have been able to survive. It does not indicate the amount you have learned, only the time you have spent. In certain parts of our industry, it is quite easy to repeat the same year of experience 10 times without making significant progress in your abilities. In fact, this sometimes can turn into anti-experience: the phenomenon where every additional year or experience merely reinforces the bad habits you have picked up. This is why your goal should be to become skilled rather than experienced. The increase in your skill level is the only meaningful testament to the effort you have spent inspecting, adapting, and improving your working habits. - Apprenticeship Patterns, Dave Hoover & Ade Oshineye
  22. Stance of not knowing Principle You are an experienced developer.

    When you recognize something, your mind connects the dots and you stop listening. Context Guideline Assume that there is always something to learn. Assume that you don’t know. Use questions and active listening. Search for new insights. Seek to understand, before you try to be understood
  23. Proclaiming that the new idea is the same as the

    old idea, gives you permission not to investigate it deeply
  24. Reflect as you work Pattern You have been working in

    software development for a while, and developed some habits Context You are not sure if you are doing things in a optimal way Start introspecting in your way of working. Why do you do things that way? And for how long have you done things in the same way? Examine if there are other (better) ways to do it
  25. Reflect as you work Pattern You have been working in

    software development for a while, and developed some habits Context Your experience increases, but you are not sure if you are doing things in a optimal way Start introspecting in your way of working. Why do you do things that way? And for how long have you done things in the same way? Examine if there are other (better) ways to do it
  26. Find Mentors Pattern Seek out those ahead of you and

    learn from them. Not one persons knows all. This can be experienced co-workers, people you admire who speak/blog, master craftsmen.
  27. Kindred Spirits Pattern Nothing is more powerful than a community

    of talented people working on related problems – Paul Graham
  28. Kindred Spirits Pattern Get in touch with people that are

    walking a similar road. Engage in communities, find people with whom you can share thoughts and ideas
  29. Rubbing Elbows Pattern You develop software mostly alone Context Your

    productivity reached a plateau and you are missing out of ideas/techniques from your peers Find ways to collaborate with another software developer, hands-on and side-by-side. Introduce Pair Programming and Collaborative Modelling methods.
  30. Expand your bandwidth Learning about what we don’t know is

    often more important, than doing things we already know how to do -Jim Highsmith Pattern
  31. “The more I learn, the more I realize I don’t

    know. (The more I want to learn)” “The more I know, the more I realize I know nothing”
  32. Sustainable motivations Pattern Motivated by mastery Internal drive of wanting

    to improve skill and knowledge, knowing that you never know everything. (Repeat)
  33. If you read even one good programming book every two

    months, roughly 35 pages a week, you’ll soon have a firm grasp on the industry and distinguish yourself from nearly everyone around you. Value of Books
  34. Reading List / Read Constantly Pattern You started reading books

    and you see the amount of information available to you Context The number of books you want to read, or are advised, increase faster then you can read Create a habit of reading (e.g. just before work) Maintain a reading list.
  35. Share what you Learn Pattern With your experience, people see

    you as a source of knowledge Context To grow further you need the ability to communicate effectively and bring other people up to speed. Start sharing knowledge. Informal in your team, in knowledge sessions or by blogging. This can be as small as something you learned on the job, you wished you knew before.
  36. Systems Thinking From Linear Thinking to Non-Linear Thinking Linear: Steps,

    can be broken down into smaller problems. Clear cause and effect – Computer program
  37. Systems Thinking From Linear Thinking to Non-Linear Thinking Linear: Steps,

    can be broken down into smaller problems. Clear cause and effect – Computer program Non-Linear: No clear cause and effect. Lots of different forces (that we do not expect at first) are in play. We get easily surprised by the system - (Groups of) people
  38. We are working in Sociotechnical Systems We have to look

    for a joint optimization of both Technical elements (software) and Social elements (humans) - Culture - How are we organized (Conway’s Law) - Social Structures, Power Dynamics - Hidden agenda’s
  39. It Depends All is dependent on the context. There are

    no answers that are always true. Decision making and Decision making process/documentation are becoming very important
  40. It Depends All is dependent on the context. There are

    no answers that are always true. Decision making and Decision making process/documentation are becoming very important
  41. Value of understanding the domain/problem "SV-like" companies think of engineers

    as value generators, and creative problem solvers. Traditional companies think of them as factory workers. - Gergely Orosz
  42. Mastery In software development, I don’t exactly know what constitutes

    mastery. But I know that being a genius, lucky, rich or famous doesn’t make you a master. I am not a master. At best, someone sharing about the road ahead.
  43. Be Humble and Kind Principle You are an appreciated developer.

    People look up to you and value your opinion. Context Guideline Stay humble and curious, you still have a lot to learn Be kind and patient to the people who are, just as you, still on their learning journey
  44. 15% Solutions Take some time to think for yourself: What

    action can I take, however small, to create some momentum in my Personal Growth? Liberating Structures
  45. 15% Solutions Take some time to think for yourself: What

    action can I take, however small, to create some momentum in my Personal Growth? Pair up with the person next to you and share your plans Liberating Structures
  46. Slidesgo Flaticon Freepik CREDITS: This presentation template was created by

    Slidesgo, including icons by Flaticon, infographics & images by Freepik THANK YOU ! Do you have any questions? Come talk to me, or reach out on LinkedIn Paul van der Slot