For decades I have been interested in education at all levels and for all ages. Some time ago my oldest got a Raspberry Pi (from now on Pi for short) kit and worked on a couple projects. Lately my youngest (I have two sons) purchased a Pi to experiment with Linux. As far as I can remember I have been experimenting with different hardware for different applications. My parents promoted such type of learning and I have carried on with my sons and hopefully will continue with new and future generations. This set of blog entries are aimed at describing my steps experimenting, learning and having fun with the Pi.
A couple years ago I got an Arduino kit. Experimented for a while and then one thing and the other and I just dropped it. About a year ago I decided to revive my interest and purchased a CanaKit Raspberry Pi B+ Ultimate Starter Kit (Black Case). At the time I purchased three books to learn more about the Pi. Earlier this week, I started reading the “Raspberry Pi for Dummies” book by Sean McManus and Mike Cook. I chose to read the book and follow the experiments in order to allow audiences of all ages to purchase similar tools and share the experience with me.
Technology is a wonderful thing. Understanding it and being able to fashion it into products is even better. Today most software developers have little if any hardware background. I was lucky to experiment with hardware (from lights and batteries to radios, CPUs and computers) since I was a child. Remember that any type of software you use or develop is always bound by the hardware it runs and touches (i.e., CPU, memory, disk, network, display, etc). I have worked with different devices on different type of operating systems (i.e., single and multi-tasking, single and multi-user, embedded, real-time, etc).
I would like to touch on one item before closing this first entry of the series. Albert Einstein is credited with the following two quotes:
“Reading, after a certain age, diverts the mind too much from its creative pursuits. Any man [person] who reads too much and uses his own brain too little falls into lazy habits of thinking”.
“Never memorize something that you can look up”.
At first sight, and depending on your background and possibly your education, you may agree, disagree or be impartial with the above quotes. I respect your opinion, but would like to share mine.
I agree with the first quote to the extent that you might be in the leading edge of some research and technology. During that time period, it is understandable that you might not want to spend time outside creating something new and exciting. During my professional career on several occasions, I have experienced, to some degree, such condition. Now, I do not know the age that Einstein was referring to. In addition, if you are reading and not experimenting with what you are learning, the experience will mostly be quite shallow. Reading a technical book without trying most experiments and some problems is not a good idea.
The second quote is also very interesting and relates to the first one. Today with the advent of the Internet and so many search engines, looking up things to solve technical problems is quite common. Such technique, is not properly used, has become a sword of two edges for most software developers. For example, I work in different programming languages and operating systems. If I am using a set or collection, and wish to sort it, I might not recall what class or static method I want to use, but I know there are some available. That said; I also have a good understanding of most sorting algorithms. I have studied them while in school and have read, experimented with them or just developed libraries with dozens of data structures and algorithms. One library has been used for a couple decades in commercial products sold and distributed by several VARs and OEMs.
When I start a new task or project, mostly but not limited to the requirements, architecture and design phases, I consult the Internet and books (have hundreds of technical books at home) not to copy code (which seems a common and bad practice by many software developers), but to refresh and on occasions learn new algorithms, data structures or design patterns.
So there you have it, I agree and understand what Einstein meant with the above two quotes. If you search for opinions on them, you will be amazed how some people are quite polarized on agreeing or disagreeing with them. It reminds me of a TV commercial about a male French model (ungroomed, overweight, poorly dressed and not being able to speak French) dating a cute woman and a friend asking where she found him? The girl responded, on the Internet. The moral of the story, do not believe what you read on the Internet (or some books for that matter) until you have confirm it via different reputable sources. Of course on most topics, such sources do not exist, but regarding technical matters, they are always out there. You just need to find them.
With all that out of the way, no matter how young or old you are, learning about the hardware that is used to run software will be beneficial in many positive ways. Hope you find this blog interesting in content or just learning how I make mistakes ;o)
If you have comments or questions, please do not hesitate and send me a message.