Possible Duplicate:
Should newbies use IDE autocomplete (Intellisense)?
Is it wrong or bad to use autocomplete?

Having used an IDE for the last 3-4 years, the other day a few of my coworkers and I came to a fairly sad realization that we had forgotten some basic Java methods/functions because we always relied on our IDE (Eclipse/STS/IntelliJ) to complete them for us (such as what a function takes in terms of parameters), is this a sign that our skills are deteriorating, that we're over relying on IDEs? (This whole discussion came about us talking about taking the Oracle Java 7 EE certification test and looking over a few practice questions, questions such as, what parameters does function X take, etc)

If so, how do you guys fight off this sort of thing? Just re-read books and stuff? I myself can't imagine not coding with an IDE because in all honesty, it does make me code a lot faster with things such as auto complete, etc while some of my co-workers suggested we code sans IDE for a few months.

I do realize that sometimes one doesn't need to know everything about a function, but I do remember a college professor telling us that IDEs are terrible because when the time comes that you need some sort of function, you'll have to waste time looking it up instead of just banging out the code from rote memory.

  • 1
    Very highly related - programmers.stackexchange.com/questions/114520/…
    – ChrisF
    Commented Oct 17, 2011 at 16:35
  • 1
    Thanks @ChrisF! Some great reading there on other people's thoughts on using IDEs in general. Made me feel better that I'm not the only one that feels that memorizing every function and it's parameters is a bit silly. Needless to say, I still have to learn it to take the Oracle Java cert :( [thankfully, work will be paying]
    – user36555
    Commented Oct 17, 2011 at 16:40
  • Just as a note I try to write pet projects at home, or one-off applications in a code editor like Notepad++. Anything major and/or important in an IDE.
    – user7007
    Commented Oct 17, 2011 at 16:41
  • @GlennNelson Do you find that it helps a lot? Do you ever get frustrated when you have to go google an API or function because you can't remember it exactly? I feel like I'd get annoyed at having to look up functions and APIs but then again, I feel that may also be my own incompetence. I guess I'm sort of fighting myself on the idea that I feel that remembering little details is a bit silly, yet, if I know it, I do save time, however, even then in an IDE, I still just type out a few characters and then let the IDE auto complete the rest of it. =/
    – user36555
    Commented Oct 17, 2011 at 16:46
  • 3
    You college professor was an idiot if he though you should memorize the entire standard library for a language, unless you are a savant, this isn't going to happen and is is idiotic to try.
    – user7519
    Commented Oct 17, 2011 at 16:50

4 Answers 4


Is this a sign that our skills are deteriorating, that we're over relying on IDEs?

I'm unable to hunt an animal, because I rely on the fact that when I need food, I buy it in a market nearby. Is this a sign that our skills of hunters are deteriorating over generations and that we're over relying on our society?

There are skills you need today as a developer. When somebody hires you, he expects from you:

  • to have an intellectual ability to solve complex problems,
  • to know the practices and patterns which help you to work in an efficient way,
  • to know the standards, to understand requirements, etc.
  • to be able to use a given programming language efficiently, i.e. have enough knowledge to find quickly how to translate a solution to a problem into the given language.

But this does not include knowing every name of every method in a given framework. This is because:

  • It's a waste of time,
  • If you use the tools you have to use to be efficient, they will remember those method names for you (and help you through code completion),
  • Soon or later, the names will change, old ones will be removed, new ones will be added: it's easy for an IDE to be constantly up to date; it's a bit harder to do for a human.

In other words, I would rather hire somebody who knows very well how to use tools he have to do the job, rather than someone who spent weeks learning the names of the methods.

  • 3
    I think this points to the larger evolution of technical skills in general, in which the ability to retrieve information is favored over memorization.
    – Chance
    Commented Oct 17, 2011 at 17:06
  • @Chance: or possibly, in fact, all knowledge. bbc.co.uk/news/science-environment-14145045
    – pdr
    Commented Oct 17, 2011 at 17:18
  • 1
    Great response MainMa. That hunting example is a good analogy I'll have to keep in mind ;)
    – user36555
    Commented Oct 17, 2011 at 17:28
  • I don't disagree with you at all, but in the event of societal collapse, the inability to hunt/forage/farm will cause you to starve and die. Likewise in the event of a "technical collapse" (not sure what that is if it even exists?) then you will not be able to code. My choices of hobbies in hunting, fishing, and maintaining a vegetable garden are not merely chance. I chose to learn these things for enjoyment, fresh food, and so that I can at least try to survive if it came down to catastrophic disaster (God forbid). I make sure that I don't forget how to use just documentation to code.
    – maple_shaft
    Commented Oct 17, 2011 at 18:07
  • 2
    @maple_shaft, it's hard for me to address that concern for everyone, because I use an IDE to autocomplete, quickly get to other files, and Ctrl+click on a variable to find out where it is declared. So, if I lost that functionality, I think I'd survive. As for other things, like using Qt Designer to design GUIs, in the technical area, the risk/reward ratio is too far in the risk area, and I have problems thinking of a technical collapse that's parallel to a societal collapse that would mean I'd have access to all the tools and none of the information.
    – Chance
    Commented Oct 17, 2011 at 18:34

Is programming about using the right function, or coming up with the right design?

I consider that knowing that some method or paradigm exists (or even might/should exist) is enough to look it up when you need to - that's what the IDE, Javadoc and Google are for. Of course good knowledge of the library is a time saver (although I find myself looking at the doc of a lot of APIs I 'know' already - just to be sure).

  • Good call on reading the APIs, I will be honest in that a lot of times I don't bother (case in point, Spring stuff. I just let the IDE do it's thing and I fill in the blanks ><)
    – user36555
    Commented Oct 17, 2011 at 16:47

All that's deteriorating is the space you reserve for trivia1. There's only so much detail you can keep in your head at one time, so it's best to focus on solving the bigger problem and not worrying so much about memorizing the parameter lists for methods you don't use all the time (there should be at least a few methods that you use constantly and have internalized; I mean, you shouldn't have to look up how to call println, for example).

I cut my teeth on C and Fortran in a command-line environment, so I was always suspicious of people who claimed they needed an IDE to perform their tasks. Then I started working in Java a couple of years ago. Java's a freaking huge language compared to C, with a correspondingly huge class library, and there's no way anyone could be expected to memorize all of that.

The name of the game in software development is productivity; using a tool to make you more productive shouldn't be a problem.

If you really do feel like your skills really are deteriorating, though, maybe you should spend some cycles working in a plain ol' text editor (vi, Notepad++, etc.) and compile on the command line.

1 Syntax is not trivia. If you're starting to forget how to actually structure a class or program, then that's a real problem that needs to be remedied.

  • I totally agree with this. I think it was the utter shock of having to know some functions on the Oracle Java 7 EE cert test that to be honest, I've never used at work, school, or pet projects that kind of startled me a bit. I realize that the certification isn't really a measure of a developer's skill but I think I sort of associated the Oracle Java 7 EE as a baseline for knowing Java which is probably my main issue.
    – user36555
    Commented Oct 17, 2011 at 17:30
  • I'm not good with my terminology, but isn't syntax much lower-level than how to structure a class or program? Commented Oct 18, 2011 at 1:24

I've been COBOLing for 20 years, and using a PC text editor for the last 12 years while most everyone around me slogged along with clunky mainframe editors. Oh, there were a couple of other radicals who saw the value of syntax highlighting, macros, and other heathen practices. Always thought an IDE would make me more productive, but never really pursued it much.

About 4-5 years ago, I was part of a group tasked to research and recommend a text editor. We looked at options, and quickly all of us saw the merits in an IDE over a text editor. We only were able to come up with one solution that met the needs we laid out, and one could get into a semantic discussion over whether it was a true IDE or still just a text editor with extremely advanced macro capabilities giving it IDE-like functionality.

In terms of productivity, having been on the farm before going to Paris, I don't think there can be any question that IDEs are the way to go.