Thursday, January 19, 2012

Actually thinking

  I read something the other day complaining about the fact that information is easy to come by. There were some other arguments as well but that was where it all started. The basic premise was that older generations could remember exact details of something whereas younger generations could not. This was put forward as a bad thing (tm).

  I have a different opinion on this. I don't see this as a bad thing. The fundamental problem with the argument is that simply remembering facts is not a good thing. The good thing is being aware that the facts exist. I'm aware that there are lots of different species of dolphin but I could not name them all. If I needed to name them all I would research the information and discover it. I would also probably then promptly forget a lot of them but the sheer act of memorising them is not what is important.

  You don't get to think critically and expand your knowledge simply from remembering things. You get it from examining the ideas, finding out information about something so you can push deeper in to how to use that information. Knowing information is not enough, you have to know how to use that information. Being the greatest at trivia quizzes may be great but actually using that memory is a different thing.

  In my job there is a huge amount of information I need to be aware of. Take the current software product I'm working on. It has 2376 files. Most of those files have thousands upon thousands of lines of code. There is no way I can know where every function is and what exactly it does. If I need to find it there are quick and easy ways for me to find out where it is. If I need to find something that does a particular thing there are ways for me to find that too. However when it comes down to how to put all that together to do something I need to actually THINK. This is the practical implementation of the idea I'm trying to express here.

  We have an unwritten, although it should probably be formalised, rule here at work. If you find a way to do something that hasn't been done before document it. We have a wiki where this kind of information can live. Make it easy to find and describe the where, what, how and why of what you did. Then when someone else needs to do that kind of thing they already can find out how. They didn't need to remember every detail. I've done this, implemented something and then documented it. I've then come, years later, to use that thing again and not had to know it all by heart. I've been aware of it and through sharing that information allowed other people to be aware of it and be able to use it.

  When interviewing people here for a position we put them through a coding test. It is something every programmer type must do because when it comes down to it if you can't write code you are not going to be any good at actually doing the job. As part of that we set them a problem, with several known obvious solutions and ask them to write some code to solve it. You would think you would need to know the details of all of those solutions. But no. We also allow them unfiltered access to the internet and full coding language documentation. They don't need to remember any details at all, they simply need to be aware of the solutions and how they are used. We allow them to copy and paste code found on the internet (we keep a search history so we know where they have been) and as long as they use it correctly and aren't breaking any copyright or open source laws we allow it. We want people that know how to put a software product together, to use the various parts of it to make a good working useful product. Someone who can just regurgitate code at us is useless the vast majority of the time since they don't know why that code is just what it is.

  In the end you need to keep expanding what you know about so you can use it, think about it, explore it and in the end hopefully come up with something new. You can then add that something new to the knowledge of everybody who can use it to expand it further. This is how civilisation has grown, the sharing and further exploration of ideas not the simple remembrance of facts. When someone says to me "I don't know but I know how to find out" I generally have no problem with that. If they are aware of something and can find out details when they need to this is a good thing. There is too much in the world to simply remember it all, let alone be aware of it all but if you can increase what you are aware of without having to know all the minutiae you are doing the right thing.

No comments:

Post a Comment