12th Practical Class:
Developer Mindset
Opinions 🤷♂️
- 💁♂️ As best we see it now
- 🤦♂️ In 5 years we may see a lot of it differently
- 💆♂️ But it is useful to try new things
- 🙆♂️ You may always go back to status quo
- 🙋♂️ Questions / Suggestions / Opinions
Developer Mindset 🤔
🙂 Rational optimist
- to create things you have to be "rational optimist"
- rational te see the world as it is
- optimistic about your capabilities and about you getting things done
You can be a critic, but provide solution.
Source: https://youtu.be/FOcD1ngbsXk
Vim jokes 🤦♂️
🤷♂️ I don't know...
- ...shell not be an answer
- ...at least for some things
- JavaScript?
- closure
- prototype
- , , , , ...
- TypeScript
- utility types
- generics
- Things you know, that you don't know
- 🤔 For how long do you want to avoid it?
🥷 Master some topics and tools
- things you use every day ⌚
- things that feels exciting 😍
📖 Learn now & ⌚ save time
in the long term.
Develop a Taste 👨🍳
- "This can be solved using ________ or ________."
- "This could be problematic in case of ________."
- ♟️ chess patterns
- See many ways how to solve the problem
- inspiration from other languages, libraries, professions
- pre <- Redux -> post
- Elm => React => SwiftUI
- Snowball effect
🚫📦 Antifragile
🚫📦 Antifragile
- When introduced to "chaos"...
- ... fragile: breaks
- ... resilient: stays the same
- ... antifragile: benefits
🚫📦 Antifragile Practices
- Cap your downside
- Seek eustress ("beneficial stress")
- Overcompensate
🧘 Focus
-
Focus is about saying no.
— Steve Jobs - avoid: 🤯
- no for me:
- 3D printing
- backend development
- MobX, Flutter, Kotlin, Rust, Kubernetes...
- yes for me:
- functional programming
- ...at least for now 😊
- no for me:
💡 Try New Things
- ✅ free time
- ✅ on project: be like The Beatles
Each album something small different...
— "The Beatles"
- 😠 change what you didn't like
- 🛟 usually safe to change ~5-10%
- one or two libraries, tools, ...
- sometimes more
- 🚸 could be dangerous!
- but sometimes necessary
- 🧘♂️ have a backup plan
🤝 Convince Others
🤝 Traps ⚠️
- XY problem: https://xyproblem.info/
- X problem
- Y solution
- asking about Y
- without explaining X
- "Can you show it to me from user perspective?"
🤝 Convince Others
🤝 Convince Others: Be Understood
- start with why (the problem by example)
- from concrete examples to bigger concepts
🤝 Convince Others
Focus (to Be Understood)
- max 3 priorities
- >3 priorities == no priorities
- only important issues (simplify!)
- pick your battles
🤝 Convince Others
Suggest Solution
- "This will not work":
- create "proof of concept" and see how it feels
- "Not enough time now":
- focus on long term vision
- "Too risky":
- backup plan
- status quo (continue how it is now)
- easy switch to different solution (Yarn vs. NPM)
- backup plan
🤝 Convince Others
Debate
- lay down arguments (benefits, consequences, risks, ...)
- listen and accept counterargument
- sometimes: repeat how you understand it (simplify!)
- but lay down possible downsides with it (if there are any)
🤝 Convince Others
Let them decide!
Revisit later in case of issues...
✊ Respect
- ...is earned
- "You know stuff"
- "You are right" (most of the time)
- If you have it, it's easier to convince others.
✊ Respect Hacks
- be focused
- during workshops and meetings
- no emails, coding, chatting, ...
- listen = care
- during workshops and meetings
- say your opinions
- be prepared
- focus on big picture (if others are on details)
- think few steps ahead
- or on details
- specific use case issues
⚖️ Balance ⚠️
- don't push it too hard 😡
- you can always improve later 😇