Keep Knowledge in plain text

14.-The Power of Plain Text

Drawbacks

The Power of Text

15.-Shell Games

Use the power of command Shells

Can’t you do everything equally well by pointing and clicking in a GUI? No. A benefit of GUIs is WYSIWYG—what you see is what you get. The disadvantage is WYSIAYG—what you see is all you get.

16.-Power Editing

Use a Single Editor Well

Editor “must” features

17.-Source Code Control

Always Use Source Code Control

18.-Debugging

Fix the Problem, Not the Blame

Don’t Panic

A Debugging Mindset

Don’t waste a single neuron on the train of thought that begins “but that can’t happen” because quite clearly it can, and has. Try to discover the root cause of a problem, not just this particular appearance of it.

Where to Start

Debugging Strategies

Bug Reproduction

Visualize Your Data

Use the tools that the debugger offers you. Pen and paper can also help.

Tracing

Now what happens before and after.

Rubber Ducking

Explain the bug to someone else.

Process of Elimination

It is possible that a bug exists in the OS, the compiler, or a third-party product—but this should not be your first thought.

“select” Isn’t Broken

The Element of Surprise

Don’t Assume It—Prove It

Debugging Checklist

19.-Text Manipulation

Learn a Text Manipulation Language

20.-Code Generators

Write Code That Writes Code Two main types of code generators:

Code Generators Needn’t Be Complex

Keep the input format simple, and the code generator becomes simple.

Code Generators Needn’t Generate Code

You can use code generators to write just about any output: HTML, XML, plain text - any text that might be an input somewhere else in your project.

Based on The Pragmatic Programmer Book by Andy Hunt and Dave Thomas