Hello 👋! Thanks for subscribing.
Here are the articles from last week:
Published on: 2021-12-16
tags: Lab, Notes
Here are the bulletpoints from the ~ 30 minute video What All New Software Developers Need To Know by Dave Farley.
Nobody Knows Everything
Everyone is a junior in something. It’s OK to say “I don’t know”.
Apply “Engineering Thinking” to Solving Problems
Learn from your failures.
Make Progress in Small Controlled Experiments
Get comfortable with not knowing. Always work in small steps.
Be Suspicious of Your Ideas and Guesses
Always test your assumptions.
Look to chose your own boss. Interview the organization you apply to.
Seek Out Pair Programming
Find Like Minds
Go to meetups, find open-source projects to contribute to.
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.
Focus on the Problem You Are Solving
Your real job is not coding.
Write Lots of Code - Play With It
Explore. Try coding exercises.
It’s About Thinking, Not Typing!
Learn the fundamentals and apply them. Learn test-driven-development.
Fundamentals Are More Important Than Tools
Tools come and go, but the fundamentals stay.
Language & Frameworks Should Be Incidental
Spend some time to learn them, but look for the deeper, profound skills.
Solving Problems > Design > Coding > Language & Frameworks
TDD Focus Maintain Focus on the Problem & Improves Design Quality
Take Coupling/Dependencies Seriously
Concurrency Requires Caution
Optimise for Learning & Discovery
Make progress as a series of experiments.
Observe. Evaluate ideas in the real world.
Optimise to Manage Complexity
Create modular systems. Improve cohesion. Separation of concerns. Manage Coupling. Use abstractions.
Published on: 2021-12-14
tags: Lab, Notes
It’s still a useful resource and I liked the tips for solving problems.
The tips come from the book How to Solve It by George Polya. It’s a book on mathematics, but the principles apply to programming, too.
Coming up with examples can help you understand the problem better. Examples provide sanity checks: user stories and unit tests.
Use pseudo-code or code comments. In an interview, explain the steps you want to take without worrying about details like language syntax.
If you can’t solve the complete problem, try to solve a simplified version.
Thank you for reading my blog.