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

10 ways to improve

10 ways to improve

While contributing to open source for more than 10 years, I started to wonder what was the purpose of my contributions. This talk is a short list of ways to improve yourself as a programmer and as a person by using self awareness and mindfulness.

It is interspersed with some coding examples and ideas for the CakePHP community going forward.

José Lorenzo Rodríguez

June 10, 2017
Tweet

More Decks by José Lorenzo Rodríguez

Other Decks in Programming

Transcript

  1. PAY ATTENTION TO YOUR JUDGEMENTS PROGRAMMERS, WE TEND TO BE

    JUDGEMENTAL ▸ We like to believe that the reasons that took someone to do something we don’t approve, don’t apply to us. ▸ It’s easy to project our fears and insecurities onto others ▸ We feel comfortable adopting the group’s view on someone to not feel excluded ourselves.
  2. PAY ATTENTION TO YOUR JUDGEMENTS DO’S ▸ Observe your urge

    to judge ▸ Pay attention to your seeming need to act about it ▸ Be aware of how it feels like to judge something ▸ Take a few moments to ponder whether your reaction is bringing any value for yourself ▸ Why pay attention? healthier community and work environment
  3. WRITE CODE WITH TEACHING AS A GOAL IMAGINE YOU HAD

    TO TEACH WHAT YOU CODE ▸ Try writing a small tutorial on how to use your code (ideally before you write the code itself) ▸ This may change you original design decisions ▸ Be mindful of what you think or feel in the process. You may have resistance to change something for the wrong reasons
  4. ▸ We can now combine the previous tips into a

    more powerful one. ▸ Mindfulness means to pay attention without judging. ▸ This includes not judging yourself. ▸ You are not the code you write. ▸ They are not the code they write. Learn more with: https://vimeo.com/191078784
  5. EMBRACE THE ERRORS CAN WE LEVERAGE ERRORS AS TEACHING DEVICES?

    ▸ Everyone make errors. ▸ They are probably the most consuming and boring part of developing an app. ▸ Can we use errors as a way to point to the solution? ▸ This requires thinking with a beginners mind again!
  6. BE KIND TO OTHERS WHAT IS KINDNESS ABOUT? ▸ Meet

    people at the level they currently are ▸ Help people at the level they want to be helped ▸ Understand that learning requires repetition. Lots of it. ▸ Understand that there are people who do not want your help, and that’s OK.
  7. WRITE WITH READABILITY AS A GOAL WHAT MAKES THE CODE

    READABLE? ▸ Intent is clear ▸ Indirection is minimised ▸ Logic is linearised ▸ Accidental complexity is kept to a reasonable low ▸ PHP seems to be going on the opposite direction!
  8. BE KIND TO YOURSELF IT’S IMPORTANT TO TAKE CARE OF

    YOURSELF ▸ You don’t have to be perfect all the time ▸ You don’t need to be more harsh on yourself that you are onto others ▸ It’s ok to make mistakes ▸ Embrace your ability to change. you are not fixed in stone
  9. WRITE CODE YOU WON’T FEAR TO CHANGE WHAT MAKES CODE

    MAINTAINABLE? ▸ Code can be called “maintainable” if you don’t fear someone else refactoring it without introducing new bugs. ▸ Traditionally: Automated tests, automated code analysis, design patterns… ▸ Future: Make APIs that make it impossible to introduce ambiguity
  10. BE UNDERSTANDING HOW TO UNDERSTAND OTHERS? ▸ Don’t assume other

    people’s intention, it’s better to ask. ▸ Always assume that other people are trying their best, even if it does not look like it. ▸ If someone makes a mistake, assume it came from a confused state of mind, instead of thinking it was intentional. ▸ Don’t define people by their mistakes