So I'm getting mixed opinions from people all over.
In some instances people tell me IDE's are like crutches and make you weak.
Others tell me that coding without an IDE is suicide.
Side note: If this is in the wrong place, let me know. I only thought to put it here since I'm a noob asking a question about what noobs should do.
Personally I don't use one (Like VS 2012) because when I open it and see all the features, my brain stops and says "Dude, I just wanted to write some code." That, and the output for the debugger is hard to read. (personal opinion)
Not to mention, all of my code has to run on a Linux server, so why not write in Notepad++ and compile on there? It's kind of a nuisance to dig through the project folders in VS and pull my cpp's and headers to the linux server. Plus since c++ isn't 100% portable, the code may not run in both places.
Alas, I am willing to listen and I would like to know from people who are more experienced than me: Is it worth it to a newbie like me to learn how to use VS?
Just my opinion, but I think that both arguments are valid. IDE's can make you overdependent on it, and not learn how to compile things with a command line. However, they ARE designed to be labour-saving devices, and as such should probably be used when necessary. When you are learning, it doesn't really matter, because (as you said) the problem is whether to learn how to use the IDE or how to code. My recommendation is to use an IDE (you have to sometime), but for your case, I would not use VS 2012.
My reasoning for this is as follows: VS 2012 is a windows based product. I agree that it can be necessary (and incredibly helpful) when developing windows programs. However, you are trying to code for a Linux Server, which is definitely NOT windows. Also, I have found that VS has (or did have) some wierd little quirks with the language, that no other IDE or compiler I have found do.
In general, I would say that you should use an IDE, it keeps sorting easy, but you should use a cross-platform IDE instead, something that can run on both Windows computers and your Linux-based one, such as Code::Blocks.
Remember, this is just my opinion, feel free to reject all of this if you so desire.
I found it handy to do a bit of both: Use an IDE and see what compile options and make files it creates, then go and research what all the individual things mean. Then try to achieve the same thing from the shell.
You are right, using an IDE can be a bit of a crutch if you are unaware of how it all works, but on the other hand you could spend days trying to figure out how to do something in the shell by reading the manual or asking. Then again, if one goes through the pain & drama in the school of hard knocks, then one will never forget .....
For larger projects, I find it really handy that my IDE highlights problems & errors in the editor. It is annoying to have to recompile for something really minor. Even though this can be mitigated by compiling specific files, it is still a pain.
If you are on a Linux server, you can use 1 of many IDE's available for Linux - don't try to use VS for that purpose, best to use something natively. Hopefully you server runs at a suitable run-level for doing a GUI app like an IDE - quite often they don't.
I use QtCreator if I am doing a GUI app, plus it is handy to cross compile an app (even console aps) for different OS's, using just 1 set of code.
Code::Blocks seems to be a pretty good IDE too, I also use KDevelop.
Why not use some crossplatform IDE with crossplatform compiler and use same tool on both platforms?
Why VS? Why not Eclipse, Code::Blocks?
If you feel that you do not need an IDE, don't use it.
But it stiil a good idea to get a hold of using one so when your progect will grow large enough to help from IDE features you won't be lost.
For example many people do not need global visibility area aware rename feature, but for refactoring large project it is perfect. Debuggers will make finding problem areas easier, autocomplete will help with those 100500 named constants (like passing MYPROJECT_SOMESUBSYSTEM_FLAGONE | MYPROJECT_SOMESUBSYSTEM_FLAGFIVEHUNDRED | MYPROJECT_SOMESUBSYSTEM_FLAGMILLION).
Not to mention VS 2012 is buggy sometimes, anyway i agree with NT3 you should most certainly use an IDE.
when I open it and see all the features, my brain stops and says "Dude, I just wanted to write some code."
- i don't get what you mean by that, it's just a compiler not Blender or anything, if you just wanna write some code then simply create a source file.cpp and code away ;) you don't have to bother with anything else.
You all have very good points, I had no idea that Code::Blocks could use a linux compiler. I'll have to check these out. I've only seen a few that are good.
Also, I have NetBeans and Eclipse, I'd never tried writing c++ code in eclipse, only Java (Never crossed my mind). Would Netbeans also be a good alternative to VS?
- i don't get what you mean by that, it's just a compiler ...
- Here are some good compilers ...
No. IDE is IDE. It usually does include some compilers, but it definitely is not a compiler.
I share the "brain hurts" feeling. Compiler, preprocessor, linker, gmake/nmake, cmake/qmake/autoconf ... those are familiar, but the plethora of GUI options hidden here, there, everywhere under plainsight in an IDE is overwhelming.
I must feel like the fellow, who bought a chain saw (recommended by the salesman). After a while he returned to shop and complained how poor and flawed the saw is. The salesman studied the saw and started it. The client was taken by surprise: "What is that sound?"
IDE must be similar; once you learn to use it sufficiently, the chopping of your appendages* will be much more efficient.