0

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?

Dhruv
  • 952
  • 1
  • 11
  • 26

5 Answers5

2

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.

Anon.
  • 58,739
  • 8
  • 81
  • 86
  • +1 IDEs are great when learning a language; having all the docs at your fingertips, autocomplete etc. It can be a PITA later, but it's great initially. – El Yobo Dec 02 '10 at 03:31
2

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.

Matt Briggs
  • 41,224
  • 16
  • 95
  • 126
  • 1
    Is knowing how to run the compiler with the correct options really "the basics", though? If we were talking about using drag-and-drop building blocks to write a program instead of hacking out code I would agree with you, but knowing the toolchain used to build and run your code is pretty much unrelated to actually knowing the language. – Anon. Dec 02 '10 at 04:08
  • @anon: IMO `gcc -o app app.c` is not terribly onerous, and `make` is even less so. Like I said, the people with the unusable toolchains seem to be the ones who make a lot of money selling tools. If a platform has a really bad story using non integrated tools, I would agree that the IDE is the better choice. But not because it will make learning easier, more because of a deficiency in the platform. – Matt Briggs Dec 02 '10 at 04:21
0

An IDE can be a big help in getting you through the rough spots, and eliminating a lot of the frustration. You will learn faster that way, at first.

After you get familiar with the language and framework, you can always go commando and do some coding in a plain text editor, if you want the bareback experience.

Robert Harvey
  • 178,213
  • 47
  • 333
  • 501
0

It's important to delve right into the coding aspect and get a feel for the language instead of working out what the IDE abstracts away. The best way to learn a language is to start small, run the code, get feedback and work upwards from there.

0

I would say the opposite. I can not understate the amount I learned about C# and .NET by simply examining Intellisense.

Inisheer
  • 20,376
  • 9
  • 50
  • 82