Skip to content

Comment on How to make CS courses betterparent

Comments

I actually stand on the opposite side of this debate. Not using an IDE forces you to remember and think about your language and development environment. You learn the methods and APIs that you call much better when you have to research them rather than when you scroll down an auto-completing list of method names. "Oh, this name looks close enough, lets try it!" versus going and looking up in the javadocs or python docs or [your language of choice] docs. When you have docs that are a good read (like javadocs and python docs, and maybe boost C++'s docs too), you can read the description, the examples, and sometimes even some recommendations on how to use that code.

That said, going to a-whole-nother environment just to complile can be a bit of a chore. There are some text editors that come with hotkeys for compiling and running. When I was in highschool, we used TextPad. Ctrl + 1 to compile java and Ctrl + 2 or 3 for running programs (depending on if they were applets or applications).

In college, I used nano/pico and eventually emacs. I'm still slower in some modern IDEs when trying to manipulate text as fast as I did in emacs -- though autocomplete and jump-to-definition makes my coding faster, in general.

At the end of the day, though, we're two people with anecdotal evidence that strongly supports our side of the argument, in our minds.

Addendum: regarding debugging. I generally find, for the kinds of problems that new programmers run in to, println debugging is generally sufficient, so for debugging, I would just recommend that.

Good counterpoints.

Perhaps it just depends on what you're trying to teach. If you're trying to teach students language-specific APIs, then you wouldn't want them to have auto-complete. If you're trying to teach students how to program in a language-agnostic way, then the APIs themselves don't matter as much as the theory behind them does.

I agree with you on reading and understanding the docs. The problem with memorizing APIs, however, is that they change. Even the C++ standard library is at version 11 now. What is the value of memorizing something that will be deprecated in 2 years (or less)? Understanding it has much greater long-term value.

At my college, I've talked to a lot of students who are reluctant to try new languages because they've become reliant upon the syntax and APIs of one particular language. If I challenge them to read some code in language X, they just respond with, "But I don't know language X"-- as if that were a valid excuse.

Rather than being taught HOW something is done in a particular language, they should be taught WHY.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.