About a year ago Dave Jones at EEVBlog posted a video about “Why Learn Basic Electronics?” and I stumbled across it again today and it is more actual today than ever before. Why learn anything today since virtually everything is already there to buy, copy, download, steal or borrow? With “learn” I’m talking about the know-how to produce whatever you need from scratch, and without going first to Google search in order to find the final solution and not do it yourselves…
Ok, in a professional environment (i.e work) where time is money, reinventing the wheel every time makes no money, but that’s not what I’m talking about. I’m talking about the path of learning different skills in order to fully understand everything and the capability to reinvent the wheel if necessary, and that’s something very few do today sadly.
Back in the days there were no Google, Bing, Altavista. Heck, not even gopher was available to most people, and this only from -91.
Learning was down to exploration and reading books – books that were very expensive and most people might have one, or max two, books – which we borrowed from each other in order to learn, or to solve a problem that we’d been at for weeks!
Dave Jones talked about “why learn” when you can just buy an Arduino and wham you’re done – albeit you still haven’t got a clue why it’s working… The difference is that if you just buy something to solve the problem you will never be anything else than a “user” whereas if you actually sat down and designed your own thingofabob and made it work to your requirement – you are now something completely different and with a deeper knowledge of what was needed! Some people today seems to label themselves “Makers”, but this is what I think every human are, or at least should be… In the past we all were “Makers” because that’s the only way it worked. Ok, not everyone could do every thing, but everyone could do something – and this is where we’re going wrong today sadly…
This has even affected music today. Look at all these kids playing “Guitar Hero” and similar… I played the guitar when I was a kid and I became really good at it, and so did so many of my friends, although we all were playing different instruments. I can’t see how you can learn any skills from playing “Guitar Hero” imho…
The music industry today is mostly made by/with/on computers, plugins, samples, harmonisers to correct out-of-tune singers (VERY common) and by click & drag various pre-made snippets into something that’s going to be a song. Fewer and fewer actually become great musicians and many “musicians” today are actually pretty bad att playing their instrument because they rely on tools and stuff you can download.
Ok, the digital revolution has its benefits because today I can simulate all the valve amps I want to have just on my laptop – and be 99% accurate to the original sound – but it’s still ME playing.
I’m a software engineer and this has been my profession all my life, although I’ve specialised myself in applied test methodologies for very large projects and corporations, but that’s because I always thought it was funnier to break code rather than to write code.
I started early on with 68k assembler and I became ok-ish at it, but there were aspects of it that I never fully understood. Not until I much later got into electronics. By understanding the fundamentals about electronics it became much easier to understand how a microprocessor worked – which filled in the blanks I had from when I was a pure assembler programmer. Perhaps it wouldn’t have produced much better code knowing then what I know today, but the whole design flow would have been different, and I’m sure I would’ve been faster.
Learning electronics also helped me to better understand communications protocols that dictated my world in the telecoms industry because back in the days when we talked about communication we talked CCITT 7 (C7) and not just “TCP”, “UDP” or whatever protocol being used. Understanding communication from layer 1 (physical, HW) to layer 7 (application) enabled us to write superb communication protocols because we developed both hardware and software – and we all knew what was happening in all layers. Important skills for sure!
Today if you read support topics on forums like Reddit and similar people no longer asks for help with a tricky algorithm. They ask for the solution. Not just to the trouble, no, to the whole whatever they are trying to do! How do you learn anything from that?
A few years ago I built a “digital painting” (in search for better words) as some sort of digital art at home, and it basically was a frame with a blank canvas with WS2812B RGB leds behind the canvas in order to dynamically change the painting however I wanted. Soon after I stumbled across a project called Glediator, which was a tool/protocol to draw graphical data and effects that would work on my digital painting. Cool I thought because it was tedious to code the various patterns and effects I’d done for my paintings so I decided to test Glediator. In order to make it run on my stuff I wrote the firmware needed and a way to load the data on sdcard instead of the “always connected to a computer” which was needed for Glediator. The code worked really well and I published the code on my Github – as inspiration to others out there that wanted to run things off-line.
Although the code I published was dynamic and supported most available hardware on the market, some things were fairly static – but people would adapt the code to their specific requirement, or so I thought…
Many people have adapted my code, don’t get me wrong, but many just copy the code, connect the leds to a store-bought Arduino and when nothing happens, or it doesn’t work out of the box, they send me an email saying my code doesn’t work. Initially I tried to nudge them in the right direction, for them to discover the solution themselves, because that’s how you learn and the satisfaction of doing it yourselves is what drives me at least. Few of the ones I tried to help over email seemed interested in figuring out their specific problem tied to their setup – they wanted something that just worked… What’s the fun with that? The code is written in c and is really simple in order to be easily adapted, but even that was apparently too much. Perhaps if I had more time then I could perhaps convert some into “Makers”, but as it is now I’m pretty busy and I can’t help out as much as I might want to… (I really try to answer all comments, emails and questions, but we all have busy periods and please forgive me if I go quiet for periods. It’s not you or your question – it’s me being busy. I’ve also been in hospital for periods and I’m undergoing painful and extensive spinal surgeries due to a nasty accident – which also is a reason why I’m quiet for some periods. Wellies on icy stairs is a bad combination boys and girls!!!)
Luckily there have been a few people asking for help who’s really wanted to learn so I will continue to Open Source most of the things I do – but perhaps I will add some sort of “Learn by Doing” disclaimer? 😉
When I started learning electronics – and I still do because I’ve just started to scrape the surface as far as I’m concerned – one of my earliest experiments was to grab a 555-timer, a few resistors, the odd capacitor and just play around to see what happened when I changed the resistor values and so on. This is still probably the most suggested early electronics experiment out there and you learn a ton from a single 555-timer! Sadly the Arduino “users” who just want’s to copy someone elses projects will never do the 555 experiment and they will never really learn anything deeper…
I also started with a store-bought Arduino but it was quickly retired as soon as I learned to design and etch my own PCB’s at home, and today I never use any commercially available microcontroller – apart from a few Raspberry Pi’s I have at home and some dirt cheap FPGA dev boards, but FPGA is something I still have to master so there’s no point in making my own PCB’s with FPGA’s yet.
Currently I’m developing an app for iPhone which should be done in less than two months… The snag is that I knew virtually nothing about Mac before I started – and I had to build a Hackintosh to even start writing any code because Apple… (note; you MUST have a Mac to develop for iPhone!) When I got the damn thing running I installed xcode, but since I’ve never actually played with an iPhone – let alone have a single clue about the architecture and design guidelines – it was a major initial hurdle to overcome! Ok, I could have probably copied some example project and banged it together with others work to get something running, but how would I learn anything from that? I need to know the architecture in order to maintain the app in the future, and I need to know exactly how everything works because how can I even begin to start the certification at Apple if it’s just something cobbled together???
I spent two weeks jumping between a few books to get a feeling for the code syntax of Objective-C before even starting xcode for the first time, and yesterday I ported the whole UI from Android to xcode, and the first few steps were taken towards my first iPhone app.
Why would I spend all this time studying and tinkering with a brand name I hate so much? Easy. I like to learn new things and by learning this I can become better at other areas, and the satisfaction when you make something work – without copying an already available solution – is priceless!
Apart from playing music, writing code, tinkering with hardware and so on I’ve dived into so many other – and different – projects throughout the years, but it doesn’t matter what you are doing because as long as you are creating something, and learning whilst doing it, the satisfaction when progressing is priceless in my world and this is what keeps me going!
I realise that this post is somewhat negative and I complain a lot about some peoples unwillingness to dive in at the deep end, but I really do think that we need to get back to the basics when it comes to learning new skills and there are values in learning things that perhaps seems a bit “far out”. Some people asked me why I learned blacksmithing a few years ago, but it was something I always wanted to learn because it’s a skill that’s almost obsolete today, and I’ve had real-world use for my skills after my first stumbling attempts – so it was worth it for sure!
Make things and don’t be afraid to fail because proper learning is to fail, fail, fail and fail until you succeed – and that’s how you learn!!!
Also – you don’t have to become an expert in everything you attempt because knowing a little about a lot is useful in life! (Just don’t give up too soon. The solution is around the corner usually…)