Personal Productivity Stack Exchange is a question and answer site for people wanting to improve their personal productivity. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am learning Ruby on Rails these days and asked one of my friend to provide me an IDE for Ruby on Rails, but he suggested to write code on Notepad/Dreamweaver (Windows user currently) first instead of an IDE.

Is it really a good thing to start coding using these basic text editor instead of IDEs when learning a new language?

share|improve this question
What's your purpose of learning this new language. just for yourself or a certain commercial project or as a skill to be used in your future career? – Maziar Aboualizadeh Behbahani Feb 24 '13 at 14:53
@MaziarBouali All for my learning purpose – swapnesh Feb 24 '13 at 16:45
In case you go for notepad option, I suggest you get a proper text editor like emacs, vim or Notepad++. They will provide you with syntax highlighting and some sane keyboard shortcuts. And regex search. And such stuff. – dijxtra Feb 25 '13 at 6:45
Seems to be better suited to Programming SE. While there are plenty of programmers here, it's more of a technical/learning question. – Muz Feb 25 '13 at 10:42
up vote 15 down vote accepted

The pitfall to learning with an IDE is that there's stuff it does for you under the hood that otherwise has to be done manually. For example, in C (don't know RoR at all, sorry), Eclipse will handle compilation/linking for you. Given a command line, you would be hopeless. What's GCC? What's a makefile?

Using an IDE most of the time is fine, you just have to be aware of what it is that the IDE is doing for you.

share|improve this answer
I was thinking the same..that just to run for an IDE I need to rub my nose in ruby code and that would be a better option ..thanks and +1 :) – swapnesh Feb 24 '13 at 18:56
+1: Personally speaking, I learned .NET much better by using simple tools such as Notepad++, crafting all configuration files myself, and doing all the compiling stuff myself. Then it becomes easy to understand all the "magic" that the IDE (Visual Studio in my case) does for you. – Gruber Feb 25 '13 at 9:53

The main features of an IDE are:

  • Code completion
  • Building/executing
  • Debugging

I would say that it is very useful to learn how to build, execute and debug your software from the command line. IMO, that is the most useful skill you learn by not using an IDE.

Once you know how to do that, try out Ruby IDEs and see if one of them suits you better than using a (good) text editor and the command line tools.

share|improve this answer
thanks for the advice +1 – swapnesh Feb 26 '13 at 16:41

The reason to use notepad or the like is that you don't rely on autocomplete as you learn. This makes you more attentive to syntax and method names.

It also gives you more understanding of how the tooling works. In the cases of Ruby on Rails, how do you generate code, what commands, what controls you have, etc.

share|improve this answer
The only thought behind my IDE usage is to follow the industry standard for Rails from day1 – swapnesh Feb 24 '13 at 18:58
Be are that there is not a consistent rails approach- itactually changes reasonably frequently as concepts seem to update nearly as often as versions – Rory Alsop Feb 25 '13 at 8:13
@swapnesh And there's the rub--there's no "industry standard" IDE for Rails development. In fact, I'd argue that most Rails development occurs in TextMate, Sublime Text 2, Vim, and Emacs, with a smaller portion using things like IntelliJ/RubyMine, Aptana, etc. – Dave Newton Feb 25 '13 at 11:46
@DaveNewton So Will it be a good option to opt a good text editor instead of an IDE at initial level ? As IDEs are definitely heavier as compared to text editors – swapnesh Feb 25 '13 at 12:11
@swapnesh My opinion is yes; I generally advise starting off without an IDE, but if you already have strong IDE experience IMO it's less of an issue. For example, if I were starting a new language/framework with good IDE support, I'd use an IDE, because I already know enough about languages, frameworks, environments, and IDEs. For new or inexperienced developers, I think IDEs are an additional layer of complexity and they hide too many underlying mechanisms, and mask too much from beginners. – Dave Newton Feb 25 '13 at 12:14

If this is the first language you're learning or you've never worked with a similar language in the same environment, than using basic tools will help you learn a lot (the answers above bring numerous advantages).

But if you already know other languages, and you can do without an IDE when using them, I think you needn't start from basic tools again. This is especially true when you will be working in a familiar environment and have already mastered working manually. For example, you've used GCC while working with C and now you're studying C++, there is no need to do all again.

share|improve this answer

Without being given an IDE, you are forced to type many fundamental things repeatedly. Doing this allows to reinforce memorized constructs. Some of them might be very easy and can be internalized instantly, some take many lines of code and may take months of repetitions to memorize.

To a great extent, this is about code compactness, i. e. how well code templates can fit into your head. Some languages are compact and fit easily, some do not by their nature. But of course, this is a rather individual thing and depends on one's previous experience, memory, practice patterns, motivation etc.

share|improve this answer

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.

share|improve this answer

In my experience, learning to code with notepad helps you run into a lot of inevitable mistakes early and also allows you to remember syntax easily (Due to the lack of an autocomplete function).

However, you need to be aware that when writing long code, its better to use an IDE, if you use notepad, you'll probably run crazy when you're trying to debug. Especially when you're starting out.


share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.