
|
View Full Version : Programmers - Knowledge Retention
SynHost 02-17-2003, 03:04 PM I have an interesting question for programmers out there, just so I have a basis of comparison.
I've read a lot of books about programming, some i've followed through all the examples, some I skim through a little because I know some of the chapters won't apply to what I want to learn or I'm simply not interested.
No matter what, I often find myself looking things up. I've got the fundamentals and structure of the language itself memorized, but I am constantly finding myself looking things up like function argument lists and examples to get things running. Not only in programming, but with Linux stuff, when I have a project where I need to do something, I'd like to be able to just sit down and do it. Right now I have to look up many things.. find resources, you get the idea.
What is true for everyone else? Can all the good programmers out there just sit down and write a program without resources? I thought that would be awesome to be able to do.. But very hard to learn as it involves basically memorizisation. I don't do enough work to get so much experience as to have just memorized things by experience. I do find that I learn from example best, though.
So basically in short, I'm asking what you guys think. Do you need lots of resources to do stuff? Or can you basically just sit down and do something from knowledge?
Thanks for your thoughts!
Ben
Lesli 02-17-2003, 03:14 PM I have the concepts, but I often may need a quickref close to hand, even after I've "learned" a language. A good one will cover the command syntax and briefly describe the command functions, may even list related commands, all in a brief, five-or six-line bitesize description. It's helpful, especially for languages that are very similar to other languages that I know or for finding commands that I may have partially forgotten - especially if I don't work with somethig for quite a while.
Most of the computer and programming books I have are quickreferences, rather than in-depth explorations of every single bit and piece (though I have a few of those, too.)
harmonic 02-17-2003, 04:22 PM You will find yourself looking up terms constantly in any language until you spent A LOT of time with it.
For instance, PHP and I, I was still looking things up constantly for the first 6 months, and I used it pretty much every day. Now I hardly look anything up because I've used it over and over to the point where it's like speaking english to me.
Rich2k 02-17-2003, 05:43 PM This is very true.
I think all programmers have a code library of sorts (whether it's from code previously written or special library snippets) and constantly refer to them.
Also in the case of PHP for example you'll probably find yourself looking at php.net a reasonable amount of time.
Many of the functions you begin to memorise over time, especially the ones you use a lot like mysql, trim, explode, etc but some of them like xslt_process you might refer back to a few times.
I don't think any programmer KNOWS 100% of any language at any point in time but given a quick check up whether visual clues in the form of an exam question, it comes back quickly.
aah-jim 02-17-2003, 05:57 PM I normally have the relevant O'Reilly book at hand for whatever language requires it. :D
Khaless 02-17-2003, 06:00 PM with PHP i basically write it like english, but there are sum things, as in english :P which you need to reference for. and gennerally i know the function name like GD functions or very specialised functions, and these are basically the only things i need to refer to.
Schumie 02-17-2003, 06:02 PM Originally posted by jimcarter
I normally have the relevant O'Reilly book at hand for whatever language requires it. :D
OReily are the gods when it comes to reference books.
I don't think i could live without the Perl Cookbook. Got an answer to near enuff every question I have ever asked.. apart from a TCP client/server writing issue.
However, the great resource that is a god going under the name of groups.google has come to the rescue many a time ;)
cyansmoker 02-17-2003, 07:24 PM I was once a candidate for a job at JP Morgan, and I've hated them for wasting my time and being so clueless since then.
First, I was asked to meet with them because they were looking for a project manager.
When I arrived, it became apparent that what they were looking for was a junior programer. OK, that was quite a bad start.
The, they left me in a conference room with a 30-pages document with about 10 questions per page.
They asked me to answer all the questions then dial an internal number and they would come back and I could go home.
30 pages filled with technical questions: C, C++, SQL, object modeling, etc. There was stuff I would consider highly tricky and yet I wrote my own compiler and am a certified DBA, and was using design tools, such as Rational Rose, on a daily basis among other things.
I was infuriated. I read all the questions, unwilling to believe the nerve, then wrote on the frontpage (with a red marker): I am an engineer. When you hire an engineer, you are looking for someone capable to understand documentations; you seem to be looking for some sort of circus phenomenon. Good luck.
And I left.
dynamicnet 02-17-2003, 07:57 PM Greetings:
The following is just my opinion and experience in terms of being a system analyst and applications developer:
* If you are above average at programming (this is a skill without regard to language), and a master of a language then you should be able to right the most simple to most average programs from scratch.
If you get into areas that are new to you (no matter the language), then you are going to hit the books.
Thank you.
JSorensen 02-17-2003, 08:07 PM I can do most things without looking them up, but I am never outside of reach of my O'Reilly pocket references :) I find that they are one of the best $13 investments I have ever made :)
J.
CagedTornado 02-18-2003, 02:27 AM After being in this business for over 9 years, it's my opinion that it's better to shed older knowledge for newer stuff -- sometimes it's good to forget!
Dan
I have programmed in a lot of different languages. It really depends on the language and of the frequency of the usage. Some are easier to remember, some are harder.
For instance plain C: In my most active time I needed the reference very rarely. But if you want to programm with the Windows API you need the reference all the time.
The old ASP had fewer functions in comparison to PHP. In PHP you have a function for everything. As long as I do not programm too much, I have to use the reference all the time for PHP.
But I do not like printed reference. The old Borland C had really fast online help. I think it was Ctrl-F1 and you had the syntax of the keyword where the cursor was located. Same with PHP. The online documentation in Windows help format is really great. There you can find the right function within seconds. If you need detailed infos visit php.net und read the user comments at the bottom of every function.
I have some books, but I rarely use them.
Rich2k 02-18-2003, 07:49 AM As far as php goes the user notes are usually all you need to solve your problems with the functions. They are great.
But read all of them and a bit critically. Some may lead you to a wrong direction.
luxline 02-18-2003, 02:45 PM Been programming since 1975, and still have reference books at hand for all the languages I use these days.
If you're in a job, dont be shy to have any book you like on your desktop.
Maybe "AOL for dummies" might not be the best, but dont be embarrassed or put off by the so-called experts teasing you. The so-called experts were junior programmers once also, and they still have crib sheets or similar, they cant remember all of the syntax all of the time.
mort*au 02-18-2003, 06:43 PM I've been programming since the beginning of the year and it's good to hear other programmers talk about programming!
I have an O'Reilly book on Actionscript (MX Second Edition) and its tops!
I keep my books on my desk. :D
WarriorDude 02-18-2003, 06:57 PM I regularly have to look things up although not as much as I used to. More experience I think gets you to memorize it better. If your programming language is something like PHP you can try PHPEd, start typing something and it'll come up with some suggestions.
squeebo 02-20-2003, 04:33 AM Learning programming involves the same principles of learning that any other skill or information- if you're interested and know how to keep yourself relaxed, you'll remember almost everything, be it functions, parameters, entire man pages, or what have you. If you don't know how to be receptive and take in information the right way, it's hard to remember much. A lot of time and trouble could be saved if you learn how to use your memory.
There are people with phenomenal memories, and it's just matter of correct use, as anyone who has learned to improve his memory can attest. It's too bad that students in any level of education aren't normally taught how to remember, and end up going about it all wrong.
But perhaps I'm digressing too far. :)
cyansmoker 02-20-2003, 05:10 AM Originally posted by noox
For instance plain C: In my most active time I needed the reference very rarely. But if you want to programm with the Windows API you need the reference all the time. BTW: is it actually possible to program anything Windows without the MSDN?
Squeebo: let's talk about this again when you're older and senile like me :D
umair 02-21-2003, 08:44 AM If you code too often in only one language and most of the time are limited to a certain subset of it's functionality then most likely you might know all these things by heart. But what if you are switching languages and each of your project is based on a different language (or a combination of several) and you end up with different things each time.
When I work with ANYTHING, I usually have their reference opened on the screen, Intellisense (code suggestion/completion) features are really handy and to be honest I cannot live without them :) especially in the case of a proper language like C++, C# or Java.
I don't think that learning syntax of all the functions (classes, etc.) is necessary. When you start working with something you need to look for a feature only once (even if it's repeated several times) because it stays in your head.
Knowledge retention in the long term is not necessary, but in the short term it helps.
Rich2k 02-21-2003, 09:02 AM At least you get your versions of visual studio.net and windows with MSDN and cheaper that buying them all seperately.
michaeln 02-21-2003, 09:20 AM Like someone else said there is generally way to much information to memorize it all. Naturally people tend to remember more frequently used functinos etc the most.
For example I will wager anyone doing php for more than 3 months has these down by heart
preg_replace
str_replace
preg_match
mysql_query
.
.
.
etc....
Then ofcoarse it helps to have something like phped or dreamweaver that tells you what goes next in the function you are calling.
|