Even the simplest distributed system – yes, even integrating against a single API – can pose significant challenges (more than 80% of solutions that SMEs have). Mind-blowing, right!?
Getting started - Robert C. Martin - Clean-Code
This article is part of the serie: clean-code
Knowing the right things is the way to move forward quickly and produce great results.
This post is intended for developers eager to enhance their skills. It’s equally valuable for CEOs, CTOs, VPEs, and Technical Leads who oversee a team and aspire to deliver quality products. Half of the videos do deal with management related-topics.
If you are here, you are likely either a CEO, Founder who wants their developers to quickly master the most important part of software engineering…
…or you’re a developer who just aims to get better in their profession.
Either way, you’re welcome.
To achieve great results, we don’t need to know everything; we just have to know the right things.
Unfortunately, the usual learning and mentoring process is broken.
We learn new frameworks, new APIs, new architectures, but we often lack the wisdom of creating clean, readable code, which is a prerequisite for manageability, extensibility, scalability, and low-maintenance products.
This series of articles (posts) will help you to:
- Learn the basics
- Learn it quickly
I’ll share content from various sources, so feel free to identify the ones that resonate the most with you, and begin your learning path with the resource that suits your comprehension preferences.
Overall, I’ll strive to minimize redundant information, as I aim to facilitate your rapid advancement!
So, after this lengthy introduction, we’ve arrived at the threshold of our inaugural lesson.
There’s one piece of bad news I have: We will start with probably the longest journey. As what I will share now is a series of six YouTube videos, each being far beyond an hour long.
The good news is:
- For junior developers, the first two videos are the ones to watch.
- The rest of the videos touch on topics from management.
I do have the book and have read it (but don’t expect me to post a photo with it), I usually prefer books, but I still find the video version more enjoyable. Perhaps it’s Robert C. Martin’s unique way of presenting, the intros, or the speed you get by watching instead of reading, but it makes it unique to me.
Anyhow, here are the links and also functioning links to specific chapters of those videos (great for quick future reference).
Stay tuned - Summaries of the videos will be coming soon!
- Clean Code - Uncle Bob / Lesson 1 - YouTube
- 3:41 Uncle Bob Introduction / My Tribe
- 4:49 How Far is the Sun?
- 10:52 Introduction to Clean Code
- 12:21 The current Society works with Software
- 19:47 Volkswagen case / Introduction to the Ethics of Software Development
- 24:28 Why are Programmers so slow?
- 32:13 What is a Clean Code?
- 40:09 Analyzing some lines of code
- 43:43 Long code is not Good Code
- 49:25 Good Code / Refactored Function
- 52:40 Polite Code / Rules for writing a newspaper article
- 55:25 Shrunk Code / The Rules of Functions
- 1:00:23 Shrunk Code / Drawing a Function
- 1:05:36 When and why was Java invented?
- 1:08:52 Prose Code / Arguments
- 1:16:13 Avoid Switch Statements / Problems and Evolution of some programming languages
- 1:26:15 The Uncle Bob’s wife message (funny moment)
- 1:27:22 Output Arguments No Side Effects / Garbage Collection
- 1:32:21 No Side Effects / Using Lambda
- 1:34:26 No Side Effects / Command and Query Separation
- 1:35:30 No Side Effects / Prefer Exceptions to returning error codes
- 1:37:05 DRI Principle (Don’t Repeat Yourself)
- 1:39:21 Structured Programming / Edsger Dijkstra Vision vs Actual Vision of the programming
- Clean Code - Uncle Bob / Lesson 2 - YouTube
- 0:00 Where did the moon come from?
- 4:56 What is the Purpose of the Comment? / About Fortran
- 8:47 Schindler List / Right and Wrong reason to do comment
- 10:02 Comments are a last resort / The proper use of comments
- 11:02 Comments Lie
- 13:07 Comments do not make up for bad code / Explain Yourself in code
- 15:11 Legal and Informative Comments / About Design Patterns book
- 20:43 Explanation of Intent / Clarification
- 23:21 Warning of Consequences / TODO Comments
- 25:59 Amplification / Javadocs in Public APIs
- 27:35 Bad and Redundant Comments / Mumbling
- 31:25 Mandated Comments
- 33:01 Journal Comments / Source code control system
- 34:16 Noise Comments / Scary Noise / Use explanatory code, not comments
- 36:20 Position Markers / Closing Brace Comments / Attributions and Bylines
- 37:43 Commented - Out Code / HTML in comments ICK!
- 40:05 Non - Local Information
- 41:45 How many lines should there be in a source file?
- 46:31 Analysis of the lengths of lines
- 50:11 Names are Everywhere / Reveal your intent / Rules to write Names
- 58:44 Disambiguate / Avoid Convenient Mispellings
- 1:00:41 Number Series / Noise Words / Distinguish Names Meaninfully
- 1:02:55 How much time should you spend on a Code Review?
- Clean Code - Uncle Bob / Lesson 3 - YouTube
- 0:23 About our genetic origins
- 9:36 I am your new CTO / About the growth rate of programmers and its effects
- 7:25 Expectations / We will Not Ship Shit
- 21:36 We will always be ready / Iteration Length
- 25:51 Stable Productivity
- 28:14 Inexpensive Adaptability / The software must be changeable
- 30:38 Continuous Improvement / The code should improve over time
- 31:46 Fearless Competence / Conquer the fear with Test
- 42:35 We will not dump on QA / QA will find nothing
- 46:30 Automation!
- 51:20 We cover for each other / Teamwork
- 55:40 Introduction to “Honest Estimates”
- Clean Code - Uncle Bob / Lesson 4 - YouTube
- 0:51 Honest Estimates / What is the chemical formula of water?
- 7:16 Selection, Sequence and Interaction / No innovations have been made in the software for decades
- 13:48 The Hardware has gone crazy!: comparison between the innovation level of hardware and software today
- 17:33 You to say “No”
- 21:40 Test-Driven Development / TDD rules
- 36:14 Our code is a document / Double entry Bookkeeping
- 40:22 About inheritance / Mutation Testing
- 43:48 Demo of Test-Driven Development
- 1:12:23 Some tips to learn and practice Test-Driven Development
- Clean Code - Uncle Bob / Lesson 5 - YouTube
- 11:19 Diffraction: Why do incandescent lights glow?
- 15:27 Architecture Introduction / I’ve built lots of apps / “I want to be a programmer” anecdote
- 6:09 The Architecture rules are independent of every other variable
- 29:21 Working vs. Right
- 30:45 What is Design in Architecture?
- 31:50 What is the goal of Software Architecture?
- 33:28 Case study of bad Architecture
- 38:55 Executive View / What went wrong / Secret to going fast
- 44:43 Messes aren’t faster even in the short term
- 48:15 Solution of the Executive’s Dilema / Two Values of Sofware
- 52:41 Behavior / Are we going to see self-driving cars?
- 1:00:14 Scope vs. Shape / Stakeholders want changes
- 1:10:33 Urgency and Importance / Eisenhower Matrix
- 1:13:09 Fight for the Architecture
- 1:15:14 A Rails App / The web is a Delivery Mechanism
- 1:19:06 Architecture Floor Plans / A Use Case Driven Approach
- 1:24:05 Interactors / Entities / Interfaces Objects
- 1:27:11 Request Model
- 1:30:21 What about MCV? / Design Patterns / How MCV goes wrong as a web Architecture
- 1:34:53 Model View Presenter / Dependency Rule
- 1:39:10 What about the Database? / The Database is a detail / ORM
- 1:48:00 Fitnesse: a wiki page project development
- 1:53:54 A good Architecture allows major decisions to be deferred! / About IntelliJ and Visual Studio
- 2:03:44 Frameworks / Plugin Model
- Clean Code - Uncle Bob / Lesson 6 - YouTube
- 0:18 Leds / Introduction.
- 6:54 How do you manage a software project?
- 12:54 Finding the optimum solution / Data
- 21:04 What is the first thing know about project / The Management Paradox
- 23:33 The Waterfall Model
- 34:13 Iterative Development / Calculate Day
- 39:09 The Control Knobs of project mgmt
- 48:51 Short Cycles / Agile Software Development Practices / Extreme Programming
📌 Make sure you and your team subscribe (follow me) on LinkedIn so you don’t miss out on the latest insights!