Live data from Hacker News

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

news.ycombinator.com

261–270 of 519 posts

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

#261

An actual debugger. I started as a PHP/WP dev and spent many hours running results through echo or var_dump. IMO the debugger is the absolute first thing you need to learn about the platform you're writing for. Without it, you're taking shots in the dark and you truly don't know how your code is executing. It seriously pains me to see people not using one. I have a friend who is taking an online PHP backend class. Th…

+1 VisualStudio w/ C#/.NET was very eye opening to the power of live debugging code, ability to evaluate expressions and introspect vars

EDIT: I originally said VSCode, but i meant the OG Visual Studio

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

#262
Focusing on "more efficient" in "better":

- emacs: works for me to code in R, python, connect to remotes, etc

- keyboard shortcuts: got started with them early, and never looked back. Bonus: linux/macOS/emacs text navigation works across all of them (ctrl-f, ctrl-b, ctrl-a, ctrl-k, alt-delete, etc)

- git: managing file versions and file diffs (!)

- GitHub: terrific for project management, even when I'm the only one on the project ;)

- CLI utilities that I love:

    - ag, a better "grep"
    - fd, a better "find"
    - tldr, a better "man"
My dotfiles and new box setup: https://github.com/pavopax/dotfiles

CLI tools:

https://github.com/ggreer/the_silver_searcher

https://github.com/sharkdp/fd/

https://github.com/tldr-pages/tldr

EDIT: formatting

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

#263

Focusing on "more efficient" in "better": - emacs: works for me to code in R, python, connect to remotes, etc - keyboard shortcuts: got started with them early, and never looked back. Bonus: linux/macOS/emacs text navigation works across all of them (ctrl-f, ctrl-b, ctrl-a, ctrl-k, alt-delete, etc) - git: managing file versions and file diffs (!) - GitHub: terrific for project management, even when I'm the only one o…

... then, for data science tasks, these were a revelation:

- R's dplyr and wider tidyverse - python scikit-learn

They are terrific APIs that, after I've gained deep familiarity from experience, are literally a joy to use for me and feel like I've "leveled up" (way up)

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

#264
post #26

The Jetbrains suite. Lightens the cognitive load, makes it easier to refactor and keep code tidy. All of which allow me build better software. For almost everything else e.g. git, learning how to use the command line instead of a UI is the best way for me to learn how the tooling works.

Interesting that you prefer both extremes of UI design. Jetbrains UI that shows available options or pops them in real time. And command line UI; requires reading the docs to learn options, but can be powerful and chained with other commands via pipes, ez automating UI interactions into scripts, etc.

This is myself as well, enjoying the extremes. Having all the whiz-bang guidance is great and really speeds up my work, except when it doesn't work. Then it's great to be comfortable falling back to something rock solid and unbreakably simple. I never have to "fall-back" multiple times in successive frustration. There is one fallback and it ALWAYS works.

To me it's not worth learning the "in-between" tools for the extremely limited circumstances that I'll need something less than IntelliJ but more than vim/bash. I even hesitate to customize my vim much because I need to rely on it as a fallback on nearly any system, and on novel systems I can't rely on my customization.

I'm not dogmatic about only sticking to these - I'm comfortable with VS Code when it's what my employer/workgroup provides, and I'm comfortable with Sublime, as it's particularly portable (can be run off USB). So sometimes Sublime is the fanciest option.

But anything in between JetBrains and vim needs a real "reason" to bother investing the time to learn.

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

#265
- Google

- Pen and Paper for scribbling thoughts

- Bicycle in green areas

- Javascript - closures, async/await, JSON

- SQL - Designing a normalised schema before coding clarifies relations

- Docker - just because it forces you to think about the dependencies of your code explicitly

- Evernote - improves my thinking and cements learning

- JetBrains IDE - I pay a small amount to not have to deal with a mishmash of plugins competing with each other when moving between languages.

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

#266
post #105

Shell, awk, sed and textutils. They teach that programming is everywhere. I have trouble understanding professional challenges of people that never had a chance to learn those. Like accountants struggling to merge tables or proposal writers painfully tuning document layouts.

Any recommendations for resources on learning more about these commands?

Shell - for bash, I'd recommend the Bash Guide from Greg's Wiki (https://mywiki.wooledge.org/BashGuide) For awk 1. Chapters 1 and 2 from the Awk Programming Language(https://ia802309.us.archive.org/25/items/pdfy-MgN0H1joIoDVoI...) 2. Awk one-liners (https://www.pement.org/awk/awk1line.txt) 3. Explanations for one-liners (https://catonmat.net/awk-one-liners-explained-part-one)

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

#267
IntelliJ IDEA has taken refactoring from being a chore to being trivial, consequently making me much more likely to clean up ugly code when I encounter it.

Black, the Python code formatter, means I don't have to spend a single brain cycle on styling the code.

mypy (with a strict configuration) has forced me to think about types, making for code which is much easier to follow and integrate with. No more `if isinstance(list, param)` or similar faff.

Bash, even with all its footguns, is a great lowest common denominator for getting a vast array of stuff done.

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

#268

Earlier quoted context omitted.

For a very long time I didn't use anything besides just plain vim, 2 biggest things to add to your vim use is undodir and YouCompleteMe. Crazy that I didn't have either of these for so long, undodir I wish was part of the default.

I made persistent_undo as part of Google Summer of Code in 2011. Very grateful I got to do that (and for the mentorship of Bram Moolenaar), and I'm so glad that this became part of your essential workflow. I also can't live without it at this point.

Thank you for making it, I can't imagine my life without it.

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

#269
post #168

Earlier quoted context omitted.

Jetbrains offerings are quite fast. What are you comparing them to?

Probably Sublime text. It's just too fast and I can't switch to anything else. I open heavier ones like Eclipse, VS Code etc. only when I need to refactor.

I notice the same thing, and I enjoy IntelliJ / Sublime / Vim. IntelliJ often feels sluggish.

Maybe this could help: https://blog.jetbrains.com/idea/2015/08/experimental-zero-la...

Here was a 3rd party analysis from 2015, showing a reduction in latency when editing XML files in IntelliJ IDEA from ~70ms with large jitter to 1.7ms with small jitter: https://pavelfatin.com/typing-with-pleasure/#summary

I wonder if it's turned on by default today, 5 years later.

Some other techniques: https://medium.com/@sergio.igwt/boosting-performance-of-inte...

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

#270
TabNine: https://www.tabnine.com/blog/deep (the code are GIFs which I had to click to play)

This thing is fucking magic.

It's ML autocomplete, with help from 'traditional' autocomplete methods that use static analysis. Instead of just completing one token at a time like traditional completers, it can do entire sentences or multiple lines of code in one go, and is freakishly accurate. And since it parses language it helps you write comments, and can understand relations between code. E.g. if you are writing 2d movement code and you do x += dx it'll automatically suggest y += dy for the next line based off of previous similarities; of course if you have x += [complex math formula] it'll fix it up for y and convert cos to sin, etc.

Support for many editors, and easy to install in vim. Free for personal use. Works for all languages, including plain English (and maybe other non-code languages?).

Post reply on HN