Cover of The Pragmatic Programmer by Andrew Hunt, David Thomas - Business and Economics Book

From "The Pragmatic Programmer"

Author: Andrew Hunt, David Thomas
Publisher: Addison-Wesley Professional
Year: 1999
Category: Computers

🎧 Free Preview Complete

You've listened to your free 10-minute preview.
Sign up free to continue listening to the full summary.

🎧 Listen to Summary

Free 10-min Preview
0:00
Speed:
10:00 free remaining
Chapter 3: The Basic Tools
Key Insight 2 from this chapter

Power Editing

Key Insight

Editors are considered the most significant software tools for a programmer, functioning as direct extensions of one's hands due to text being the fundamental raw material of programming. The objective is to achieve effortless text manipulation. While previous advice suggested using a single editor for all tasks, the current recommendation is to use as many editors as needed, provided fluency is attained in each. This fluency offers substantial benefits, including measurable time savings; for example, a 4% editing efficiency gain over 20 hours of editing per week for a year can accumulate to an extra week of productive time.

However, the primary advantage of editor fluency transcends mere time savings. By becoming instinctively proficient, the mental burden of mechanical editing actions diminishes significantly, allowing thoughts to flow directly into the editor buffer. This seamless connection between thought and action greatly enhances programming productivity, akin to the difference between an experienced driver controlling a car instinctively versus a novice consciously performing every action. Fluency is defined by a comprehensive set of capabilities, including moving and making selections by character, word, line, and paragraph, as well as by syntactic units in code (e.g., delimiters, functions, modules).

A fluent editor user can also reindent code, comment/uncomment blocks with single commands, undo and redo changes, split and navigate multiple editor panels, jump to specific line numbers, sort selected lines, and perform advanced searches with strings and regular expressions, repeating previous searches. Advanced capabilities include temporarily creating multiple cursors for parallel text editing, displaying compilation errors, and running project tests, all ideally achievable without a mouse or trackpad. To attain this, identify repetitive editing actions and proactively seek more efficient methods. Once a new, useful feature is discovered, integrate it into muscle memory through conscious, frequent repetition, aiming for unconscious use within approximately a week. Most powerful editors are extensible, and users should explore extensions to overcome limitations, even delving into extension languages to automate tasks with minimal code or developing and publishing full-blown extensions if a specific need is unmet, as others are likely to share the same requirement.

📚 Continue Your Learning Journey — No Payment Required

Access the complete The Pragmatic Programmer summary with audio narration, key takeaways, and actionable insights from Andrew Hunt, David Thomas.