views:

152

answers:

9

I am asking because I am living my 40s. I have noticed I do not code as much as I use to when I was in my 20s and part of my 30s. Basically, today I dedicate more time to analysis and design, then I give away the design to programmers and they do the coding. But, this have affected my coding productivity because I must consult references and rely on intellisense. Also, things are everyday more complex than they were decades ago.

Now, here is the irony. If I were to hire a programmer and ask him/her to sit in front of a computer, I may ask to do some coding and I would check abilities. I will evaluate on the use of memory vs. consulting references. Maybe I will prefer that programmer who do not consult too much, but who knows what is doing.

What is your opinion and experience (in particular, those feeling the weight of age)?

+3  A: 

Someone knowing what resources are available, and how to find the answers, and how to effectively debug - these are qualities I look for now in prospective employees.

I used to consult my memory only, but two things have happened:

  • Class libraries have gotten larger, so has the number of languages available
  • The ratio of programming-related memory to personal-life-related memory has shifted away from code

Programming today is also eight times harder than it was when I started. I used to work on 8-bit machines, now I'm working on 64-bit ones. :)

lavinio
+13  A: 

I would say that a developer who knows how to find the answers is better than one who has an overall good knowledge already. I find that intellisense is a good tool for finding answers, besides it is too much to remember all method names, arguments, overloads, etc.

Samuel
+7  A: 

I use memory to get me into the right general area (e.g. knowing which classes to use or at least which namespace they'll be in) and then often Intellisense/MSDN for the exact method name or arguments to use.

Having said that, Stack Overflow is improving my ability to code without any references (or even compilation) - I'm sure code will just work out of the box for me more often now than it used to. (I tend to post and then check the code works, add links to MSDN etc - assuming I'm reasonably confident in the approach.)

Jon Skeet
Jon Skeet doesn't make code work. Code makes itself work if it knows Jon Skeet is around..
cwap
+1  A: 

I'm a PHP programmer in my early 30's. I rely on PHP's excellent documentation, for several reasons:

  • Programming concepts don't change. If I know what my object models are and how I want to manipulate data, then there's dozens of ways to implement the details. The details are important, but a better grasp of the design and structure is more important
  • PHP has notoriously inconsistent functions. One string function might use ($needle,$haystack) as parameters, and another might use ($haystack,$needle). Trying to keep them straight isn't worth the hassle when you can just type php.net/function_name and get the reference.
  • I don't rely on intellisense, simply because I haven't found a decent IDE for PHP that does it well. Eclipse is ok, but it's not fantastic. Netbeans gives me 'PHPDoc not found' for all the built-in PHP functions whenever I install it. There's nothing that I've found so far that beats out the documentation.

The bottom line is that the ability to memorize functions isn't indicative of coding ability. Obviously there's a key set of basic functions that a good programmer will know just from extensive usage over time, but I wouldn't base a hiring decision on whether someone knows substr_replace vs. str_replace from memory.

zombat
+1  A: 

Because I've read either the documentation, or articles, or a book on a subject, the things I learn on a topic are organized. The result is that, if I can't bring something up from memory, I can probably find it quickly through IntelliSense or the Object Browser.

Worse come to worst, I can pick up the book again; something these youngsters are not being taught to do.

John Saunders
Age 51

John Saunders
I'd agree somewhat, but I think its a bit too much to generalise us youngsters as need reading books (not not reading enough), I just think in this new age of the Information superhighway, people are accesing the information in smarter ways. :) Darknight
Darknight
sorry should read 'not' instead of 'need'
Darknight
@Darknight: When I say "books", I'm including electronic books. I haven't yet found widely-available substitutes for a book, because of its ability to teach you a subject in an organized manner. The way the book introduces the material will form a "framework" upon which future knowledge can build. Closest I've seen to this is online courses, and they're expensive.
John Saunders
I should also clarify that I'm not talking about reference books here. Perfect example: http://www.amazon.com/Domain-Specific-Development-Visual-Studio-Microsoft/dp/0321398203/.
John Saunders
A: 

I tend to use Intellisense and Resharper much more than I used to before, but this has helped my overall productivity. If I can get the idea of how I want to solve something and then use tools to get the more boring parts like class names and function signatures, why shouldn't I use the tools I have? I feel relieved that Jon Skeet has a similar approach it seems.

JB King
A: 

I rely on my bookmarks and books... and my ability to use them effectively. I have multiple books above my desk, including a copy of the ISO C90 standard. Moreover, I use Xmarks to have access to my bookmarks wherever I go. Sometimes, I make a pdf out of a particular page and upload it to my web-site if it is important enough.

Sometimes the information provided by the resources I use makes its way into my terrible memory... maybe.

Anthony Cuozzo
+2  A: 

I once was at a job interviewed with the CTO of a company. He asked a question based on a real life problem the company had a while back and solved. It was a multi step problem.

I was standing in front of a whiteboard working through my solution and struggling through a particular part, a part I would use google for before even attempting it, had I been tasked with solving this problem for real instead of for an interview. He asked me at that point, "would you do anything different if this wasn't an interview question." I responded, "Yes. I would exhaust all possibilities of using a third party component for this part of the task and look up the solution, because it is a well defined problem thats been solved several times." There was a bit more discussion where I justified my answer, explained exactly what I would research, and I solved some other parts of the question. In the end I was offered and accepted the job, partly because of knowing how to find out what I didn't know.

Being able to use references is as important as being able to code from memory. Obviously, if you are a one language shop, and want people proficient in that language,the person should be able to write a complete hello world app in notepad. Interview problems should focus on small problems, and one should not worry about small syntax errors. This is why a whiteboard is the best IDE for interview questions.

Unless you demand all your coders use notepad and don't give them internet access, don't be as concerned by the syntax. If you do sit them down in front of a computer, worry about the finished product as well as the technique used to get there.

Justin Dearing
+1  A: 

Pretty much Google + Old Projects + my memory (of course)

References will not solve your problems though, its only for the nuts and bolts, the higher level of problem solving is the actual "programming" part IMHO.

Darknight