- Version control - Unit testing - Leak detectors (for languages like C/C++) - Race detectors - Auto-formatting (eslint, gofmt) - A solid editor (prev: vim, now: vscode) - One-step deployment scripts/automation (even for small projects) I have not found a lot of value in debuggers, outside of after-the-fact debugging (e.g., core files.) I much prefer printf-style debugging.
> I have not found a lot of value in debuggers, outside of after-the-fact debugging (e.g., core files.) I much prefer printf-style debugging. Have you heard of/tried rr? I think you might find that it fits your thought process better than traditional debuggers. https://rr-project.org/
Ask HN: Which tools have made you a much better programmer?
351–360 of 519 posts
Re: Ask HN: Which tools have made you a much better programmer?
#352I remember learning to program C in the 1990s as a teenager, and often taking a long time just to learn how to do something very simple. This was mostly because the compiler-provided documentation was sparse, and the books that I had only had a single point of view.
Now, I can Google "[language] [task] example" and read through 2-4 examples of how to do something. Then I can go back and look at the docs and they make significantly more sense. Often what would take 4-6 hours, or longer, to figure out from just the official language / API documentation can be figured out in 20-40 minutes.
Re: Ask HN: Which tools have made you a much better programmer?
#353Usually I'll start with pretty high level ideas. If I have a story I'm working on, I'll put the description of the story in my TODO list. Then I'll think for about 5 minutes about what general things need to get done. I'll order these by some priority (doesn't really matter usually, to be honest). Then I'll start working on the first one.
Normally I need to poke into the code to really see what I have to do. I'll often add a sub-task to my first one that says, "Figure out what to do" or something like that. Then I'll do some exploratory coding for a few minutes. As I discover what needs to get done, I write it down in my TODO.
It's hard at first to stop yourself from just writing code, but pulling yourself back for the 20 seconds or so it takes to write down what you are just about to do can be surprisingly valuable. Don't censor yourself either. It's fine to guess what you need to do and then delete stuff that you realise is unnecessary later. As you are coding, any time you think, "Oh, I'm going to need X", add it to the TODO (again, difficult to train yourself to do it consistently!)
Once you get good at this, in my experience you will be quite interruptible. Any time I get distracted, or unfocussed or lack motivation, I just look at the top think on the TODO and say, "I'm just going to do that top thing". It always pulls me in.
I don't always code like this, but every time I do I'm dramatically more productive. I should always code like this, but... sometimes you want a relaxed day ;-)
Re: Ask HN: Which tools have made you a much better programmer?
#354Earlier quoted context omitted.
My life was also improved with some additional aliases in my git config: [alias] dfif = diff idff = diff grpe = grep
Years ago Interlisp (does anybody here remember Interlisp?) had a function called DWIM (AKA Do What I Mean). It was an (optionally enabled) part of the REPL. If you typed something that made no sense, DWIM would try to figure out what you really meant to type, and offered to run the corrected command. I have often wondered why that functionality disappeared, and why no one has tried to resurrect it. Search engines of…
Re: Ask HN: Which tools have made you a much better programmer?
#355A second monitor and tiling window manager (or in my case Magnet, which adds simple tiles to MacOs).
When I added a second monitor to my setup my productivity exploded. It's just really nice to have one window full screen in my IDE and the other window with reference material, a shell, scrolling logs, etc.
Never having to switch away from the code is huge.
Re: Ask HN: Which tools have made you a much better programmer?
#356- regex: the deeper topics such as backtracking, look behinds, etc help too.
- How DNS works: how they work, TTLs, etc.
- How TLS works: performance and security tweaking.
- SQL: modern SQL can do quite a lot!
Re: Ask HN: Which tools have made you a much better programmer?
#357Earlier quoted context omitted.
The thing about learning Latin (not that I am great at it), at least for an English native speaker, and the epiphany English language speakers have, is the realization that language can have structure and can be discover-able, if I know a root word then I can almost be sure that I know the meaning of con, re, dom etc. There is just no equivalent to that in English other than the Latin origin words we borrowed, becaus…
Isn't beaucoup French?
Re: Ask HN: Which tools have made you a much better programmer?
#358Years ago I switched from Mac OS/Apple when I became a developer/data scientist to linux based system. (ubuntu) I understand there are similarities between MAC OS and Linux... etc. Being on the same OS as most of the web servers saved me time in learning the basics of linux, bash, etc. Also at the time I couldn't afford to keep buying new software license. The only enterprise software I use is Navicat for user frienl…
Re: Ask HN: Which tools have made you a much better programmer?
#359Earlier quoted context omitted.
Some people say learning Latin makes you a better writer, smarter, etc. even if you're unlikely to directly use it. Dubious claims but it feels like FP can be like that.
Sure. When learning Latin, well, you learn to read and write Latin. You absorb the language's principles by learning the language, not by trying to highlight them in a language you already know. That can only give a much shallower appreciation.
Re: Ask HN: Which tools have made you a much better programmer?
#360Earlier quoted context omitted.
The thing about learning Latin (not that I am great at it), at least for an English native speaker, and the epiphany English language speakers have, is the realization that language can have structure and can be discover-able, if I know a root word then I can almost be sure that I know the meaning of con, re, dom etc. There is just no equivalent to that in English other than the Latin origin words we borrowed, becaus…
Isn't beaucoup French?