To use IDE or not while learning a new language and framework

Sorry if this has been discussed somewhere else on stackoverflow (I could not find it), or if it is not a "programming" question (more like a discussion).

Is it good to avoid using an IDE (Flash Builder, Visual Studio...) while first learning a new framework or language?

Will one not learn more by using a simple text editor to code and use manual command line compilation? I find that while IDEs increase productivity by clearly pointing out bugs, code completion and automatic scaffolding, they also hide a lot of "gory" details which is essential to understanding the framework completely. For example, .NET is a very large framework and by using VS, most of the configuration details are automatically handled by project wizards. Some commonly used libraries are automatically referenced and configurations are set up. While this would make sense for an experienced developer looking to cut short his/her time, a beginner would fail to appreciate and understand the complexity. It is also interesting to see that almost all beginner level books for large frameworks adopt an IDE centric pedagogy and leave out the command line options to advanced books.

What are your thoughts?

Answers


I completely disagree with everything people have said so far.

Learning something in a superficial way is dead simple with a good ide. Learning something without one takes far longer with an ide.

The problem is you don't remember things as well when you skim a list and pick it out as when you actually have to hunt it down. The act of finding an answer can also expose other aspects of a framework you wouldn't have run into otherwise. Finally, actually researching problems or (gasp) reading code to understand how something works will give you a far deeper understanding of it then poking at the surface until it works.

When you learn math in highschool, you are give a series of problems with a pencil and paper. The calculator comes later, because learning the basics with a calculator beside you is way harder then without one. Later on, when you fully understand the basics, you can use a calculator to automate the basics. It is the same deal with code.

<rant> Finally, people who have never professionally used anything but an IDE are completely unqualified to answer this question. If I were you, I would edit the question and only ask for answers from people who are equally proficient with eclipse/intellij/vs/etc as they are with vim/emacs. It really sucks, but most people in places like this have never used anything other then a massive IDE, but feel the 10 minutes they spent with an editor gives them enough of a background to make opinions on these kinds of things. </rant>

In certain cases (mostly when the person who makes the expensive tool is the same person who makes the platform), it is extremely hard to even get going without an IDE, because nobody does it. If it takes just a stupid amount of effort to get going without the tooling, then go for the tooling. I would consider that sub-optimal conditions to really learn something though.


When it comes to learning a new language or framework, it's good to be able to jump straight in to the important/"meaty" parts, with having to fully grok every little technical detail just yet.

You can get to that in your own time, until then, being able to actually use the library and understand the big picture is much more important than knowing csc's command-line switches.


Need Your Help

EF4 - How to enlist in existing transaction?

asp.net entity-framework-4 transactions

I have a web application that uses asp.net mvc and I create my EF context in a base controller and have it available for the entirety of the request and then dispose the context when the base contr...

file input type being used to select a file and then move the data to a form with the approperiate file input tag

jquery forms post input

I have an iframe which will have an input tag that allows you to browse for the file you are wanting to upload.

How to recreate iPhone's contact list UITableView

iphone objective-c ios uitableview

I really like iPhone's default contacts list input tables and I would like to re-create an input page similar to them. My v1 app used a bunch of text fields on the screen, but this implementation is