2022 Reading
Links to articles I read in 2022 with a few notes to remind me of the topic.
January
Meetings would go faster if people took the time to listen
- How to listen in meetings: 1. Understand what’s being said. 2. Interpret what’s been said. 3. Verify what’s been said. 4. Consider how your point of view relates to what’s been said.
- “Instead of hastily blurting out a counterargument, consider how your points relate to what has just been said…. Aim to make your response build on what’s been said, so it becomes a fuller discussion.”
Agile Scrum is not working
- Agile Scrum is often applied to many situations for which it doesn’t fit well.
- “Technical leaders need a better understanding of R&D patterns – knowledge of why, how, and when to apply them.”
Developers can’t fix bad management
- “Traditional management needs to evolve; they should start by listening to what developers are saying management should do.”
- “Predictive planning is used to organize known duration manufacturing and order fulfillment tasks, not software projects.”
The Right Way to Respond to Negative Feedback
- Take time before responding to critical feedback and make sure to understand it better.
- “It can be harder to change the perceptions of our behavior than the behavior itself.” Find something highly visible that symbolizes the intent to change.
- Don’t avoid the people who give honest feedback. Continue to work with them on improving.
- If a weakness is something not easily changed, work to communicate that weakness better.
February
How Developers Stop Learning: Rise of the Expert Beginner
- The Expert Beginner is “voluntarily ceasing to improve because of a belief that expert status has been reached and thus further improvement is not possible.”
How Software Groups Rot: Legacy of the Expert Beginner
- “You have a person or people in positions of authority that have the culturally lethal combination of not knowing much; not knowing what they don’t know; and assuming that, due to their own expertise, anything they don’t know isn’t worth knowing. This is a toxic professional culture in that it will force talented or ambitious people either to leave or to conform to mediocrity.”
- “Retaining a healthy degree of humility, constantly striving for improvement, and valuing objective metrics above subjective considerations will go a long way to preventing yourself from becoming an Expert Beginner.”
How Stagnation is Justified: Language of the Expert Beginner
- “The Expert Beginner takes something that’s considered an industry standard or best practice, admits to not practicing it, and offers instead something completely unacceptable (or even nonsensical/made up) as a stand-in, implying that you should accept the switch because they say so.”
- “The only thing [Expert Beginners] can offer is the evidence that they have of their qualifications–their relative position of authority. And so, during any arguments or explanations, all roads lead back to them, their position titles, their time with the company, and the fact that their opinions are inviolate.”
Up or Not: Ambition of the Expert Beginner
- “Being deluded about one’s own competence isn’t a viable, long-term success strategy…. Better outcomes are more likely if you have an honest valuation of your own talents and skills.”
- “You can generally have success on your own terms through the right combination of strategy, dedication, and earnest self-improvement, but to improve oneself requires a frank and honest inventory of one’s shortcomings.”
March
It’s now your fault they don’t know about it
- For some people, “something’s always wrong, and if you refute their points, they will pivot to find something else…. They chose their outcome before they even started the conversation, and they’re on rails, headed for that outcome and no other.”
I Just Don’t Want to Be Busy Anymore
- Create goals for reducing burnout, and ask peers for support. Nobody is going to just do this for you.
Celebrate tiny learning milestones
- “I think it’s much more healthy to be flexible about your goals and to celebrate the milestones you do end up getting to instead of feeling bad about goals that you “failed” at.”
- “I do think it’s important to celebrate these milestones somewhere. It gives me a real sense that I’m making progress and it helps me stay motivated to keep learning about the thing.”
Wasted Talent: The Tragedy of the Expert Beginner
- An expert beginner will put in the work up front to become competent enough, then coast through on “good enough” rather than further investing in their future.
April
Embracing Impostor Syndrome
- “I’m grateful for the feedback, rather than defensive, because I never held the idea that my work was perfect.”
- “Knowing that I might be wrong… prepares me for the inevitable failures. They’re no longer surprises. They’re expected and embraced.”
Nobody cares about your beautiful code
- “Users couldn’t care less about the programming language you used or how beautiful, clean, modular and maintainable your code is.”
- Startups make the trade off between quickly iterating to beat the competition and steadily growing maintainable software.
May
Professional Programming: The First 10 Years
- “You can’t predict the future; try and you might end up in trouble”
- “The goal is to provide value to your customers. The trap: it’s often easier to write software than to deliver it. But delivering is what it’s all about.”
- “You can refactor a codebase and clean it up significantly, making it easier to understand for everybody and easier to extend, but all of that won’t matter if that codebase gets deleted four months later because the project didn’t help the business.”
- “It’s not about the rules! It’s about the problems these rules are trying to prevent. If you don’t have the problem they’re trying to prevent, or you can prevent it another way, you don’t need the rule.”
Inbox, diary, to-do list: now choose just two
- Many people will neglect some of their responsibilities to give focus to other ones.
- Finding a way to manage our time and work should be part of our professional skills.
June
A Project of One’s Own
- Feeling ownership over a project can help you feel excited and engaged.
- “It’s easy for something new to feel like a project of your own. That’s one of the reasons for the tendency programmers have to rewrite things that don’t need rewriting, and to write their own versions of things that already exist.”
July
Giving a Shit as a Service
- “Find yourself work you can give a shit about. And work with people who give a shit. It’ll make shit a lot more pleasant – I guarantee it.”
August
Instagram Founder Kevin Systrom’s 5-Minute Cure for Procrastination
- “If you don’t want to do something, make a deal with yourself to do at least five minutes of it. After five minutes, you’ll end up doing the whole thing.”
- “Finally, getting started on something, even just briefly, activates a psychological phenomenon known as the Zeigarnik effect, in which it’s much harder to get unfinished tasks out of your brain than completed ones.”
Please Stop Using Local Storage
- “Here’s the only situation in which you should use local storage: when you need to store some publicly available information that is not at all sensitive, doesn’t need to be used in a high-performance app, isn’t larger than 5MB, and consists of purely string data.”
I am a mediocre developer
- Keep things simple so there is less complexity to keep track of.
- Use tests, reviews, and other automated checks to reduce errors.
- “If we want to write good software we need to constantly learn how to do it. There are no short ways or magical tricks. Just learn how to be better every single day.”
September
How to interrogate unfamiliar code
- “Effective coding requires both context and confidence: you need to understand the environment your code will live in and feel sure your work adds value.”
- Local refactors can improve readability. Unit tests can increase understanding. These changes might also be worth committing.
- Use the tools provided by the IDE and debugger to learn how the code works.
- “Programmers who are good at writing code are valuable, but programmers who are good at reading code are arguably even moreso. When there’s a bug in production or a feature urgently needs to be built, the first and most important step is understanding. Reading code is what will get you there.”
Code quality: a concern for businesses, bottom lines, and empathetic programmers
- “Code quality affects the mental state of a programmer, communication within their team, and the incentives attached to their work. Improve your code and you can improve your organizational health and competence as a whole.”
- “Code is not sudoku, with a single correct solution for each problem. There are infinite ways to write any computation task, and some are simpler and more predictable than others.”
- “There is no product or tool that can automatically and definitively rate the quality of a codebase. However, there are heuristics you can use to get a feel for code quality and see where issues may lie.”
- Unit tests encourage quality code, since such code makes writing the tests easier.
- “Programmers can’t speed up a project by thinking harder or typing faster. When a deadline approaches they generally take the only shortcut available to them, which is reduction of quality. This can be avoided by careful planning and strategizing around deadlines.”
October
“This project will only take 2 hours”
- It can be easy to underestimate a project at first glance. Take some time to think about potential complexities and clarify assumptions.
“From zero to 10 million lines of Kotlin”
- Lessons learned from shifting Meta’s Android code from Java to Kotlin.
November
“When life gives you lemons, write better error messages”
- “A good error message… explains what happened and why, provides reassurance, is empathetic, helps the user fix the issue and gives the user a way out.”
“How to become a programmer, or the art of Googling well”
- A personal story about feeling inadequate when first entering the workforce as a programmer.
- “It’s not about what we already know, it’s about how we learn. It’s about the tenacity of sitting in front of a computer and googling until you find the right answer.”
December
How to achieve career growth: opportunities, skills & sponsors
- “Skill alone doesn’t matter. If no one but yourself knows about your skills, you won’t get any opportunities.”
- “Being your sponsor allows you to take charge of your skill improvement without waiting for opportunities from others.”