6 ms·
My recommendation is to start with an IDE like what Jetbrains offers, (assuming you're working in a language they support) with a promise to yourself to learn c
by FreezerburnV 10y ago
My recommendation is to start with an IDE like what Jetbrains offers, (assuming you're working in a language they support) with a promise to yourself to learn command line tools as well/a bit later. I say this because the productivity benefits from a good IDE are incredibly high, especially when working with something like Java. But like at least one other commenter has said, it's highly useful to know how things are actually working on the command line, or how to run a few quick commands to help you find something your IDE might not be able to find easily, etc. Both are useful tools, but potentially different use cases. (I have a co-worked who programs Java in VIM, so it's not like you can't theoretically mold them to be useful for any case, but it's going to take a lot more work and time to get to a place that likely is not going to offer as many niceties as an IDE will out of the box, like powerful refactoring or debugging)
But make sure that promise to yourself to learn the command line does not go forgotten! It IS important, and knowing how to use something like VIM, even at only a basic level, WILL help you.
- dozzie 10y ago> like powerful refactoring Powerful contextual-search-and-replace. Refactoring is a deeper change than just moving things around.
- skdotdan 10y agoCould you expand on that? I understand that with Vim I will be able to quickly find and replace words, but I will never be able to truly refactor, because it requires powerful code analysis that only an IDE can do and a Vim plugin can't.
- dozzie 10y agoRefactorization is a change that modifies how the internals of the code work. It often requires introducing a new pattern, change of the interface of classes or modules, or change in the program logic. Sometimes refactorization means a complete rewrite of a program segment, with preserving external interface. What IDEs offer is just moving some bits around, the ones that can be tied mechanically together. It's nowhere near real refactorization. Handy, but not that much, if you think about your code in advance.
- Piskvorrr 10y agoIndeed - but especially Jetbrains' IDEs provide fairly powerful tools to help you with this, way beyond search and replace. In the end, you'll need to involve your brain anyway, but the IDE makes the menial work easier.
- skdotdan 10y agoThank you for your explanation. So, even a full IDE can't achieve true refactoring.
- nugator 10y agoYes it can. https://www.jetbrains.com/help/idea/2016.3/refactoring-source-code.html https://www.jetbrains.com/help/idea/2016.3/refactoring-sourc...
- dozzie 10y agoIt can't. Just because somebody called moving things around in a mechanical manner "refactoring", it doesn't mean it's all (or even most) there is to refactoring.
- nugator 10y agoThe Jetbrains IntelliJ Idea (Java) IDE has support for a lot of REAL refactoring, not sure what you mean. I'm very impressed by how much the IDE can help me with. https://www.jetbrains.com/help/idea/2016.3/refactoring-source-code.html https://www.jetbrains.com/help/idea/2016.3/refactoring-sourc...
- dozzie 10y agoNo. Real refactoring involves changing logic of the program and making it more modular, neither of which can be done by the machine in a general case. What is behind the link you provided is just mechanically moving things around.
- 10y ago
- schemathings 10y agoLook up 'ctags' and vim and the language of your choice.
- skdotdan 10y agoThanks
- skdotdan 10y agoI really appreciate your recommendation. So, I should definitely learn both, but start with the IDE way, because it's easier.
- wilwade 10y agoNot just easier, but less cognitive load. You are still learning a ton about programming (we all are, but). You also hopefully have a life outside of programming. JetBrains (and others) allow you to easily learn the IDE along the way, but also can help with good practices. That is worth a lot of valuable time.
- skdotdan 10y agoOkay. Thank you.
- jcrben 10y agoHalf of the IDE is tips called inspections. It's like having a machine pair program with you. This will get you unstuck faster and teach you good habits.
- skdotdan 10y agoVery true. I assume this would not be possible in, say, Emacs.