RSS Feed

Abstraction is good; magic is bad!

Posted on Thursday, January 27, 2011 in Coding

When helping people new to programming, I have always been conflicted on one thing. Should they use IDE autocompletion features or not?

While using IDE autocompletion for method lookup and documentation is good and recommended for everyone, there are more exotic things which IDEs do which speed up coding but may be totally go unnoticed by a newbie. A few are

  • IDE automatically generated templates with lots of necessary code already written.
  • Automatically performed object casts or type conversion.
  • Method parameters automatically filled based on local variables in context

These are features which help you code but may not necessarily aid the learning process. So I asked this question on Programmers Stackexchange to hear others’ thoughts on the matter. Here is a summary of opinions I got:

  1. TOTALLY use IDE autocompletion. It aids the learning process and part of good programming is mastering the IDE. Learning generic programming concepts beats out little syntax details and method calls.
  2. Start with a simple text editor and a compiler. Slowly build up to a full fledged IDE as the programming knowledge matures.
  3. IDE features lead newbie to tend to accomplish things quicker but have little appreciation for what is happening or what they did. Not advisable at newbie level.
  4. Do NOT touch IDE autocompletion as a newbie. Learn the hard way and it stays with you.

When I asked this question, I was leaning towards the little or no autocompletion camp. But now I’m glad I asked. Basically what I’ve taken away from this is that newbies should definitely use IDE autocompletion, but not necessarily all its power features. Getting the program working faster provides more motivation (positive feedback) and with time, they will learn all about how the programs tick.

Above all, newbies should try to forge an understanding of what the IDE is doing (or did). Abstraction is good; magic is bad!!

Share and Enjoy:
  • Twitter
  • Google Bookmarks
  • Digg
  • del.icio.us
  • Facebook

Be the first to comment.

Leave a Reply