My Jetbrains IDE is bar none the biggest productivity boost for me. Even after VScode arrived (and got better, much better, over the years!), Jetbrains still has so many built-in features that I find it hard to code without, and I happily pay for my own subscription.
Aside from that, I think the thing that's helped me the most is simply over-commenting, everywhere and all the time. I leave a quick note for other devs (and myself) for every helper func, even if it looks trivial to me. And for anything complex, I try to leave detailed line-by-line comments that any junior dev can pick up. This not only helps others pick it up, it helps me myself a few weeks from now, and it also helps prevent runtime issues through what is basically as-you-go "rubber ducky" debugging, forcing me to verbalize my rationale for writing something a certain way.
And of course ChatGPT has been a moderately big help. It's not quite a replacement for another experienced dev, but it's certainly taken over 90% of my Stackoverflow and Google usage – if only for its much better natural language parsing abilities.
With these tools in place, the code mostly just writes itself if you can give me time to focus and not force me to join pointless meetings and scrum planning sessions. I can only be productive if I can sit down and focus without pointless rituals where my input isn't even needed or asked for.
I'll second a good IDE. I have nothing against code editors but I don't understand the point of having tons of different tools/extensions when a good IDE will have all of that included.
I love code editors for scripts and light projects... but I can't imagine trying to work on larger ones without an IDE.
I use it every day for Javascript/Typescript and it works great. It's definitely not just for Java; many many languages are supported (https://www.jetbrains.com/ides/).
The bug you linked to seems rather esoteric (someone didn't want to manually type "import {blah} from package"...?). If you start to type that import, it'll autocomplete the rest for you. And once it's imported, it's very very good at traversing library files and types and bringing you to the definitions (VScode can do this too).
When you try import {blah} from package blah will not autocomplete. That is my point. Every other editor works in this case. And npm link is quite a common case.
Why don't they just add it to package.json? I don't understand why this is a big deal at all. It'd be weird to me if a repo started to use random libraries that I didn't explicitly add to its manifest, even if I npm linked them... but I guess that's just me?
If it's important to you, I guess this is not the right IDE for ya!
Anyway, sorry, I hope they figure it out, but it's not something I've ever had trouble with. If it's an issue for you too, you might wanna write their support or just don't use the IDE.
99% TypeScript/JS/React. Very, very occasionally Ruby or PHP.
Edit: Oh, but it's also great for parsing non-programming languages with good support for HTML, XML, Markdown, various SQLs, GraphQL, JSON, YAML, misc config file formats, container or CI/CD definitions, etc.
Aside from that, I think the thing that's helped me the most is simply over-commenting, everywhere and all the time. I leave a quick note for other devs (and myself) for every helper func, even if it looks trivial to me. And for anything complex, I try to leave detailed line-by-line comments that any junior dev can pick up. This not only helps others pick it up, it helps me myself a few weeks from now, and it also helps prevent runtime issues through what is basically as-you-go "rubber ducky" debugging, forcing me to verbalize my rationale for writing something a certain way.
And of course ChatGPT has been a moderately big help. It's not quite a replacement for another experienced dev, but it's certainly taken over 90% of my Stackoverflow and Google usage – if only for its much better natural language parsing abilities.
With these tools in place, the code mostly just writes itself if you can give me time to focus and not force me to join pointless meetings and scrum planning sessions. I can only be productive if I can sit down and focus without pointless rituals where my input isn't even needed or asked for.