Live data from Hacker News

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

news.ycombinator.com

461–470 of 519 posts

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

#461
post #424

Earlier quoted context omitted.

Today I switched from zsh to fish and I'm already much happier. Was using zsh for 4+ years, too

What benefits do you see in fish when compared to zsh?

I was also interested about it and from my research, Fish has two major differences:

- it enables the cool functionality out of the box, so unlike zsh you don't need to have large configuration file to enable everything

- it is not afraid to break bash compatibility to fix confusing scripting issues, so fish most likely will fail when executing a bash script, but writing scripts in fish should be more enjoyable

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

#462
post #186

Earlier quoted context omitted.

I feel that Visual Studio Code (a free programmer's text editor) suffers from its poor branding -- it's too easily confused with Visual Studio (a paid IDE), so folks dismiss it out of hand because of the perception that it's not free or is only for MS languages like C# (neither is true). Microsoft should have called it something else. As a Vim user of 2 decades, I have to confess something: VS Code is a far better pr…

I have no problems using LSPs for C/C++ (via clangs), rust (rust-analyzer), Python (pyls), JS/TypeScript, CSS, bash, and more in Vim (Well, NeoVim) with the autozimu language client.

The experience is a bit different in VS Code.

To me, in Vim it feels a little bit like one is calling an external program (which one is), and the monospaced text-only UI constrains what can be shown.

In VS Code, the experience is more integrated (because the GUI isn't constrained to a text interface), things update live, so you can preview the changes before applying.

I've tried both, both work but I find myself preferring the VS Code experience.

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

#463
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/…

> Vim; modal editing and vi-like navigation can blow open your mind. Explore the existing plugins to accomplish everything you want to be able to do. It's all there. The reason I end up ditching Vim after a few weeks every time I try it (4 serious attempts now) and go back to IntelliJ (which I’ve used for two decades) is that I never found a solution to the following trivial issue: Imagine you have a large Java codeb…

If you keep up with the LSP space, this is now possible with Vim

https://github.com/eclipse/eclipse.jdt.ls

https://github.com/georgewfraser/java-language-server

Are both good examples. You'll need a corresponding client like this one

https://github.com/prabirshrestha/vim-lsp

There are others, but this one is pretty good. Next release of Neovim will have one built into the editor. Frankly, it's a bit of a hassle but once you get an LSP provider set up you can get one for just about any language you're using

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

#464
post #321

Earlier quoted context omitted.

This, most of all. Substitute native language if not English; the important thing is that the project be defined and developed in both a human language and a computer language, so that mismatches can be identified and resolved. * Start by describing what you are trying to do. * Specifically. * Not 'build a web business to enable users to achieve their potential', not 'create another library for X but simpler' but *sp…

Have any samples/examples you can share?

Things like that https://gist.github.com/antirez/ae068f95c0d084891305. Usually more detailed with data structures, but this one was a very conceptual thing.

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

#465
post #123

Flycut. It's a clipboard manager. I hit cmd+shift+v and I can scroll through my previous clipboard states. It's an amazing upgrade from a one-state-only-clipboard life. "Flycut is a clean and simple clipboard manager for developers. It based on an open source app called Jumpcut. Flycut is also open source too: http://github.com/TermiT/flycut"

CopyQ is MUCH better & cross platform.

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

#466
Focusing on my habits and practices over tools and technology has driven more productivity and sanity in my career.

Early on, finding new tools, languages, libraries and frameworks was exhilarating and something their knowledge was I cared deeply about and worked towards. And soon, I cared more about the tools and the language than the problem itself. Caring about the medium caused more pain and wasted time than joy and productivity when any one of them broke, when they didn't do what I wanted them to do, when I found a new tool that was older and more mature than the one I used, when someone disagreed for no good reason, when someone used a worse tool than ones I knew. I have wasted hours toying around with shiny new things only to realize later what a waste it all was. They all promised, never delivered.

The point where things got better was when I started keeping simple logs.

At work, it was mostly putting into words the problem I was facing, why it was interesting, how have others solved or avoided this, what possible solutions I could find, ideal and realistic solutions, pros and cons of each, whom should I convince for this, who can help, why would they agree or oppose. As things progressed, I kept adding updates and how things actually turned out. In personal life, its been about people and projects. People I've met, people who have helped me, people whom I'm indebted to, people whom I hold dear and those that I keep away from, memories and arguments, what I'm grateful for and what I want to change.

They are interesting to read after the fact. I've learned more from this practice than any person, blog or book. I've been more productive when I see a pattern emerge and going back to how I handled things before. Highly recommend it. Moreover, It helped me find good and bad habits, how I respond to what happens around me, what gets me worried and upset, what makes me happier, more productive. The 'right thing to do' is obvious looking back now but never make sense looking forward. What seemed like promising projects did not turn out so, People who seemed like friends, weren't.

So what tool did I use for this? Email. I kept drafts, one for each idea, problem, story, lesson learned etc across the different email accounts I had. When they were good enough, I'd sent them over to a separate email account to keep it all in one place. Ironically, I started keeping logs after getting frustrated with a good way to keep my notes.

Sun Tzu would say "Make the enemy fear not the weapon, but the hand that wields it."

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

#467

Reading official documentation when working with new tools/frameworks. Googling every hurdle as it comes & over relying on StackOverflow is neither effective nor satisfying. Some of the projects out there have amazing documentation (e.g. VueJS, Kafka). It's best to read the overview & skim high level stuff to understand the core components/principles/terminologies. It makes it so much easier & enjoyable to use those…

It is even better if you draw diagrams on dotted paper while you read.

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

#469

Putting this in my hosts file helped me maintain my focus. 127.0.0.1 news.ycombinator.com 127.0.0.1 reddit.com 127.0.0.1 facebook.com

Even better than that:

1. apps like freedom, selfcontrol.app, or coldturkey

2. regular sleep and exercise. If you find it hard to go to sleep on time, lie down in a dark room for an hour and listen to an audiobook or call your family.

3. When you start a thing, write down the goal and the "why" behind the goal.

4. Find ways to identify the incremental signs-of-success in any task. Apply the TDD mindset to other things.

5. Pomodoro technique to combine 3 and 4.

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

#470
post #321
post #74

Writing the overall design in plain English before writing the implementation. Not super detailed, but the main data structures and invariants and mechanisms that will make the implementation working. Then start the implementation refining such document as I discover new things.

This, most of all. Substitute native language if not English; the important thing is that the project be defined and developed in both a human language and a computer language, so that mismatches can be identified and resolved. * Start by describing what you are trying to do. * Specifically. * Not 'build a web business to enable users to achieve their potential', not 'create another library for X but simpler' but *sp…

I found that combining such approach with writing down basic interfaces works really well - after i have a rough written idea i iterate over interface design with full descriptive comments of both the interface, and the methods.
Post reply on HN