is it really a good thing to start coding using these basic text editor instead of IDEs when learning a new language?
Many answers here have decent explanations why plain text editors are good. I don't specifically disagree there are many benefits, especially for learning purpose.
However, let me speak about drawbacks.
Using IDEs let you focus on different levels of problems to fight with. Think about it:
Using plain text editors, you are "fighting" with a programming language syntax, build-related files, command line tools, etc. Sophisticated IDEs, indeed, do those routine tasks for you. Like in any area of life, if you are struggling to kill a mammoth, you never have time to think about steam engine. IDEs save your time, and it's a question of your attitude how to spend this time.
Someone may relax and do nothing, of course. But if you are passionate about what you're learning, you may invest this time into struggling problems of a higher level:
- Effective code navigation: it is useless if you have a dozen of
.c/.h files, but in real life, you'll be working with large projects. Learning how to navigate a large project is an important skill;
- Code auto-completion: in real life, it is useless to know the order of arguments of a certain function. E.g., for
malloc used for memory allocation or
memcpy - is source or destination goes first? Real programmers don't care. IDE auto-completion and hints will suggest proper types, order, and meaning of the arguments. Instead, you'd invest learning system libraries;
- Interactive debugging. You will really, really need it. Forget about tracing messages or pop-up windows displaying a value of a variable. It was good 20 years ago. IDE will give you the tool for effective debugging. Learn how to use it.
- Programming languages change. Admit it. You have learned C++ how to craft makefiles today, but tomorrow something like RoR arises, and your C++ knowledge will be unused. The next day something else becomes mainstream (and paid for), and your RoR knowledge is obsolete.
Invest in learning things that won't die: code navigation, system libraries (and moreover, ideology behind that libraries), source repositories, time trackers, and other team collaboration tools.
This is real knowledge. This is what makes difference between a coder and a developer. This is what people will need from you when you eventually become an I.T. professional.
As a note, I don't say you should not know syntax; if you don't, you can't simply program. But don't make it your focal point.
Text editor is a cradle of a programmer. But you shouldn't stay in a cradle for your entire life.