Follow @nxtchg

Author Topic: Being a better programmer (2)  (Read 147 times)

NxtChg

  • Overlord
  • *****
  • Posts: 1114
  • Respect: +61
    • View Profile
Being a better programmer (2)
« on: June 29, 2017, 08:36:02 am »
+1


Part one is here.

Have you ever considered, what is the most important tool for a programmer?

Text editor, of course. Text editing is one common thing between all our projects throughout our whole career.

I will not go into specifics here because it's a matter of personal preferences, but I will outline what every programmer should have or be able to do.

1. Typing

Although we're not in the business of typing, but in the business of thinking, it still helps if you can type as fast as you think.

Then the interface between you and your code disappears and doesn't distract you anymore.

So it makes sense to invest a lot of effort into learning how to type faster.

Finding a good mechanical keyboard is also a solid investment.

2. Search and replace is your bread and butter

You need to be able to replace text by complex rules (regexp) and you need to be able to do it across multiple files.

3. Text editor(s)

Must-have features:
  • search and replace
  • syntax highlighting with bracket matching and the ability to customize it
  • ability to quickly jump between files
  • typing assistance (adding closing brackets automatically, for example)
  • templates/macros by shortcuts
  • list of functions with the ability to jump between them
  • built-in programming-oriented calculator

4. Folder comparison

You need a way to see which files are different between two folders.

5. File comparison

You need something like CompareIt! to see how the files are different.

6. Binary hex editor

It also helps if it gives you additional in-depth info about your executables.

On Windows, DependencyWalker is a great tool.

7. Scripting

Occasionally your text editors will fall short and you'll need some special processing done. That's why you need to know at least one scripting language, which is good with text processing.

It can be PHP, it can by Python, doesn't matter. What matters is that you are familiar with at least one.

8. Static code analysis/visualization tools

Hard to find good ones, unfortunately.

Found this one recently: https://www.sourcetrail.com

It currently only works with C++ and Java, and it doesn't understand C++ well, but it's still quite useful.

9. Occasionally helpful
  • CR/LF conversion tool.
  • Hash calculator for files and text.
  • Multiple files renaming tool.
  • Duplicates finder.
*  *  *

People rarely consider text editing as a separate skill or area of expertise that they, as programmers, need to master, yet it has a big impact on your productivity over the years.

Make improving it a conscious effort.
Tentacle Overlord, The Deranged Genius of The Abyss