To get this weekly dose of Reality delivered by email, sign up on our Substack page.
A Quick Plug
Episode 59: FOSS, Mentorship, and Doing Great Work
Katherine Druckman and Doc Searls talk to Travis Carden and Petros Koutoupis about maintaining open source projects, mentoring contributors, Drupal, and automated testing.
Please remember to subscribe via the podcast player of your choice.
The first step toward getting involved in an open source project is likely getting past the inevitable impostor syndrome. Gill Corkindale’s “Overcoming Impostor Syndrome,” published in Harvard Business Review is an enduring resource for understanding this phenomenon that plagues most of us.
It starts with recognising it in yourself and others. Imposter syndrome can be defined as a collection of feelings of inadequacy that persist despite evident success. ‘Imposters’ suffer from chronic self-doubt and a sense of intellectual fraudulence that override any feelings of success or external proof of their competence. They seem unable to internalize their accomplishments, however successful they are in their field. High achieving, highly successful people often suffer, so imposter syndrome doesn’t equate with low self-esteem or a lack of self-confidence. In fact, some researchers have linked it with perfectionism, especially in women and among academics.
The Reading List
Last week’s podcast was all about contributing to open source and doing great work, and as there was much to discuss, we didn’t get a chance to talk about Travis’s book recommendations, so we’ll include them here. Happy coding!
On software construction/clean code:
Clean Code: A Handbook of Agile Software Craftsmanship would be my top recommendation for its balance of breadth, comprehensiveness, length, and accessibility. It's companion book The Clean Coder: A Code of Conduct for Professional Programmers, though on a little different topic, is also highly recommendable. Both were highly formative for me. The more recently published Clean Architecture: A Craftsman's Guide to Software Structure and Design in the same series is also excellent.
The Art of Readable Code (Theory in Practice) and Code Simplicity: The Fundamentals of Software are great smaller, more focused books that are less exhaustive but easier reads. They would be good for a gentler introduction or a less ambitious project.
Code Complete: A Practical Handbook of Software Construction, Second Edition is the "advanced placement" option. It's very thorough. It's also very lengthy and quite advanced. I definitely wouldn't start with it, but someone who reads Clean Code and is interested in the subject would be benefited to continue with this title.
On software testing:
Test Driven Development: By Example is a great resource for anyone getting started driving their own development or struggling "where the rubber meets the road". It's hands-on and practical.
xUnit Test Patterns: Refactoring Test Code is the most comprehensive and authoritative book I know of on unit testing--for those who want to get really good at it. It's a long read at 833 pages, but it covers most issues you're likely to encounter on your way to proficiency. It's organized in such a way that it can be used as a cookbook or pattern library even if you don't read it straight through.
As always, we encourage you to send us our thoughts here in a comment, or on any of our social outlets, or via our contact form.
Site/Blog/Newsletter | Facebook | Twitter | YouTube | Mastodon
This Week’s Links
acquia/orca: A tool for testing a company's software packages together in the context of a realistic, functioning, best practices Drupal build — ORCA (Official Representative Customer Application) is a tool for testing a company's Drupal-adjacent software packages. It ensures their cross compatibility and correct functioning by installing all of them together into a realistic, functioning, best practices Drupal build and running automated tests and static code analysis on them. Its guiding design principle is to use company packages as a customer would. It installs the latest recommended versions via Composer and performs no manual setup or configuration.
Liskov substitution principle - Wikipedia — Substitutability is a principle in object-oriented programming stating that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e., an object of type T may be substituted with any object of a subtype S) without altering any of the desirable properties of the program (correctness, task performed, etc.). More formally, the Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called (strong) behavioral subtyping, that was initially introduced by Barbara Liskov in a 1987 conference keynote address titled Data abstraction and hierarchy.
Drupal Cloud: Acquia CMS - YouTube — Preview of Acquia CMS.