Live data from Hacker News

Ask HN: Which tools have made you a much better programmer?

news.ycombinator.com

61–70 of 519 posts

Re: Ask HN: Which tools have made you a much better programmer?

#61
post #22

- GNU/Linux + i3wm; complete control over my programming environment. - bash + GNU coreutils; seriously, take the time to be able to write helpful bash scripts which can run basically anywhere. - git; use it even when you're not pushing to a remote. Add helpful aliases for everyday commands. Build a good mental model of commits and branches to help you through tough merges. ( my ~/.gitconfig: https://gist.github.com/…

An excellent list. Regarding functional programming, I recommend starting with a gentle approach that doesn't require picking up a new language:

1. Stop creating counters/loops and become facile with map, reduce, and the like. This will shift your thinking away from blocks and toward functions.

2. Take the time to really understand what side effects are, and start avoiding them everywhere they are not necessary. Keep scopes as local as is practical.

3. When you start toying with functional programming per se, make sure you really have your head around recursion. That's where much of the magic concision comes from.

Re: Ask HN: Which tools have made you a much better programmer?

#62

MacBook Pro. After years of dealing with a Windows workstation, I went into credit card debt to purchase a quality laptop computer for my development needs. I have had the same one for 6 years and found little reason to buy a new MBP.

I agree with you entirely. In terms of productivity, having been given a MacBook Pro at the places I've worked, versus the hoops I needed to climb through to try and develop on Windows in my free time: The experience is miles beyond. After my PC died, I explicitly bought a MacBook Pro and love it as a daily driver and developing on it.

Homebrew (package manager). A terminal that speaks an actual standard (no weird CMD.exe, no PowerShell.) gcc built in.

Note: All these benefits are just benefits garnered by using a system with a unix base. I should've just committed and installed a dual-bootable Linux partition on my Windows machine a long time ago.

Unfortunately I have a hard time explaining exactly why developing on Windows is such a pain... The best success I've had would be going through Git Bash which always felt like a hack, and that's just for nodejs, if I want to compile a C/C++ program the whole thing is a nightmare with Visual Studio. I think OSs should be judged on 'time to compile a C/C++ program' from a fresh install.

Hell, I think 'the tool that makes me a much better programmer' is being terminal-native. Get used to unix systems, they're wonderful.

/rant

Re: Ask HN: Which tools have made you a much better programmer?

#66
post #29

MacBook Pro. After years of dealing with a Windows workstation, I went into credit card debt to purchase a quality laptop computer for my development needs. I have had the same one for 6 years and found little reason to buy a new MBP.

Lenovo ThinkPads are similar in build quality and processing power while being significantly cheaper and they have a usable keyboard. Same for Dell XPS, I believe, but my company is using ThinkPads. Windows is usable even for node and git development nowadays.

Can I ask if you've tried using one with Linux (Ubuntu or Mint)? I'm thinking of getting a ThinkPad next but I would prefer to use Linux over Windows and I'm wondering how well it runs Linux.

Re: Ask HN: Which tools have made you a much better programmer?

#67
post #22

- GNU/Linux + i3wm; complete control over my programming environment. - bash + GNU coreutils; seriously, take the time to be able to write helpful bash scripts which can run basically anywhere. - git; use it even when you're not pushing to a remote. Add helpful aliases for everyday commands. Build a good mental model of commits and branches to help you through tough merges. ( my ~/.gitconfig: https://gist.github.com/…

An excellent list. Regarding functional programming, I recommend starting with a gentle approach that doesn't require picking up a new language: 1. Stop creating counters/loops and become facile with map, reduce, and the like. This will shift your thinking away from blocks and toward functions. 2. Take the time to really understand what side effects are, and start avoiding them everywhere they are not necessary. Keep…

A gentle way to get into the "functional" mindset is to write small a script and then use it to process some collection with xargs.

xargs is analogous to map() in this situation, and the script needs to have limited side effects to work well with concurrency. xargs -P4 for example.

Re: Ask HN: Which tools have made you a much better programmer?

#68
post #64

ESLint (and other linters, preferably used with the strictest rules) - while at the very beginning it was annoying, it helped me write much cleaner code. Longer version here: https://p.migdal.pl/2020/03/02/types-tests-typescript.html

Prettier, it helps me having clean code without worrying about writing clean code :)

It does take a bit to get used to it though, but then it's a lifechanger.

Post reply on HN