Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 1 urmăritor
Articole: 41
  1. Everything you want to accomplish with a piece of software depends on only two things: Understanding Executing on that understanding When I say everything you want to accomplish, I mean everything.

  2. The Helpful Developer

    Over the past few years, we have been so focused on worrying about the future of our own profession that most of us have failed to notice the most important thing that’s about to happen: Everybody will be able to write software.

  3. What is an Engineer?

    As I write this, it’s the start of 2026 and many people are in a crisis about what their job is.

  4. How to Build a Great Platform

    In the field of software engineering, we often talk about using or building a “platform.”

  5. I’ve been working for over 20 years in the field of “developer experience,” where we help developers be more effective, efficient, and happy, by improving tools, systems, and processes.

  6. Sometimes, I have to explain software development to people who are not software developers.

  7. About a year ago, a Twitter user tagged me and some other programming authors in a thread where they described the barriers to accessing computer programming books in their country.

  8. What is a Monorepo, Really?

    There are often discussions at software companies about whether they should or shouldn’t have a “monorepo,” meaning “a single, version-controlled repository for all code at the company.”

  9. Reasoning and Choice

    One of the most important properties about any software system is the ability to understand what it is going to do without having to run it.

  10. The Definition of Simplicity

    Many years ago, I wrote a blog post explaining what was wrong with computers, and essentially saying the problem was complexity.

  11. Fires vs. Strategy

    There’s a point that I’ve been making to engineers recently that I realized would be valuable if shared more widely.

  12. How to Learn to Program

    One question that people ask me all the time is, “How do I become a programmer?”

  13. There are three key factors to being or becoming a great programmer: awareness, understanding, and responsibility.

  14. Understanding Software

    Hey everybody.

  15. Kindness and Code

    It is very easy to think of software development as being an entirely technical activity, where humans don’t really matter and everything is about the computer.

  16. Sometimes people have a very hard time debugging.

  17. Refactoring is About Features

    There’s a point that I made in the book but which I have had to point out to people a few times since then, and so I wanted to emphasize it a bit more.

  18. Often, people who work on engineering productivity either come into conflict with the developers they are attempting to help, or spend a long time working on some project that ends up not mattering because nobody actually cares about it.

  19. Almost as long as I have been working to make the lives of software engineers better, people have been asking me how to measure developer productivity.

  20. Two is Too Many

    There is a key rule that I personally operate by when I’m doing incremental development and design, which I call “two is too many.”

  21. Here’s an obvious statement that has some subtle consequences: Only an individual programmer can resolve code complexity.

  22. Today there was an interesting discussion between Kent Beck, Martin Fowler, and David Heinemeier Hansson on the nature and use of Test-Driven Development (TDD), where one writes tests first and then writes code.

  23. The Purpose of Technology

    In general, when technology attempts to solve problems of matter, energy, space, or time, it is successful.

  24. When I talk to developers about code complexity, they often say that they want to write simple code, but deadline pressure or underlying issues mean that they just don’t have the time or knowledge necessary to both complete the task and refine it to simpl…

  25. Make It Never Come Back

    When solving a problem in a codebase, you’re not done when the symptoms stop.

  26. The Philosophy of Testing

    Much like we gain knowledge about the behavior of the physical universe via the scientific method, we gain knowledge about the behavior of our software via a system of assertion, observation, and experimentation called “testing.”

  27. In the world of software, it is the job of software developers to solve the problems of users.

  28. One thing we know about software design is that the future is important.

  29. In June, I released a second revision of Code Simplicity.

  30. Software as Knowledge

    I don’t often dive deep into the philosophical underpinnings of Code Simplicity, but I’ve been realizing more and more that there are a few philosophical principles behind the writings that would be valuable to share.

  31. What if every software developer could gain the knowledge of long experience without having to go through the pain of repeated failure?

  32. Clues to Complexity

    Here are some clues that tell you that your code may be too complex: You have to add “hacks” to make things keep working.

  33. Developer Hubris

    Your program is not important to me.

  34. Growing and maintaining an open-source community depends essentially on three things: Getting people interested in contributing Removing the barriers to entering the project and contributing Retaining contributors so that they keep contributing If you can…

  35. Readability and Naming Things

    Many people think that the readability of code has to do with the letters and symbols used.

  36. The Power Of No

    How many times have you used a piece of software that was full of incredibly convoluted features, strange decisions, and unusable interfaces?

  37. Before You Begin….

    One of the major goals that I have with researching software design is the hope that we can take people who are “bad programmers” or mediocre programmers and, with some simple education and only a little experience, bring them into being good programmers…

  38. In the context of The Equation of Software Design, it is now possible to reduce the primary principles of software design into just two statements: It is more important to reduce the Effort of Maintenance than it is to reduce the Effort of Implementation.

  39. So today I was playing around with a little equation that may in fact explain nearly all of the principles of software design.

  40. Privacy, Simplified

    So, there’s a lot of talk on the Internet about privacy.

  41. Why Programmers Suck

    A long time ago, I wrote an essay called “Why Computers Suck” (it was given the title “Computers” and “What’s Wrong With Computers” in two later revisions, and the original title never saw the light of day).