Comment by userbinator
1 year ago
The sibling comment about a blind programmer is very worth reading, because it is relevant to what I've observed about other (non-blind) programmers who are highly skilled: they do not need tools to tell them what to do, because they have completely internalised the structure of the program and can think about it as a whole. Incidentally, one of the things I often do when solving a problem --- be it finding a bug or fixing it, or implementing a new solution --- is to close my eyes and think deeply about it, without distraction.
I don't use IDEs either. A plaintext editor and a console window (for compiling, testing, and the occasional grepping) is enough. IMHO someone who is reliant on IDEs and autocomplete is in the same category as not knowing how to type without looking at the keys on the keyboard --- yes, you can get by, but you will never be able to code as fluently and effortlessly as those who can think deeply about the code entirely in their brain, and you'll be frequently writing code that looks reasonable when viewed in isolation but obviously redundant and/or inefficient if considered as part of the bigger whole.
This works for small projects.
I've worked on projects where "hold the entire project in your head" might be somewhere between very hard and impossible. Work the right abstractions, it should be possible to hold the relevant parts in your brain. Still, when you're new to a large project, an ide goes a long way.
Would you consider the Linux kernel a small project?
That's an example of one where a large number of people working on it do not use IDEs.
Yes and they maintain their part of the code. The one they've been working on for 30 years.
I've worked on forks for certain Android devices with very primitive text suggestions that notepadqq provides and the difference in productivity between that and vscode+clangd is staggering. What do you mean there's a macro for anything?
I wouldn't. Good point!
> because they have completely internalised the structure of the program and can think about it as a whole
This state is definitely how you can be most productive.
However, I've written multi-millions of lines of code and many different still active applications. It's gotten to the point where if someone asks me if an app has a particular feature, I have to open it to check even if I wrote the whole thing.
Not all projects I work on are one's where I still have the whole thing internalized.