3 ms·
I respect your reply. What follows isn't arguing against what you said. I see a parallel between the Arduino/Adafruit folks and the people who go through devel
by peteforde 3y ago
I respect your reply. What follows isn't arguing against what you said.
I see a parallel between the Arduino/Adafruit folks and the people who go through developer bootcamps. It is extremely ill advised to make sweeping statements about bootcamp grads which might imply a shallow depth of understanding or troubleshooting capacity, because so many people will get very upset about your gatekeeping. That vibe hasn't made its way to the EE world, clearly.
I've had a 35 year and counting career as a self-taught software developer. I've learned a lot about adjacent concepts without needing to become particularly expert in any of them, because I learned early to delegate to others' strengths. For example, I've never learned assembly or been unable to function because I couldn't implement a device driver. I also have very weak math skills in general.
All of which brings me to the actually important question: what knowledge or skills do you need to do what you have set out to do? An honest evaluation of most problems can only result in "not that much, actually" because you are not working in a vacuum. We have YouTube and GPT. We make friends with complimentary skills, and we develop a sense of when to persist vs when to ask for help.
I don't subscribe to the idea that someone who has internalized all of the formulas is somehow more pure, any more than I assign respect to someone who still memorizes all of their friends' phone numbers.
In many/most cases, not knowing which topics we should obtain deep knowledge of is actually a negative. While it's perfectly reasonable to decide that you want to know all about Maxwell's equations, but you should see it for what it is: a hobby, unless you have a damn good reason to prioritize it over something silly like shipping your project.
It's like the DIY keyboard community, I guess: it's cool that folks want to get that nerdy about building their own data input device... but if you stop to build your idea of the perfect keyboard before starting the task assigned to you, you deserve to be given a strike.
TL;DR: 98% of people with a deliverable in mind would be better suited by a Collin's Lab video than a 45 minute lecture on the physics that make capacitors work.
- chongli 3y agoOne of the biggest challenges with electronics is that the abstractions are leaky. We see this as well sometimes in software. You may be writing a project in C++ and you keep getting segmentation faults and other memory errors, so you need to know something about assembly language and the computer's memory architecture if you want to be most effective at troubleshooting these issues. At another level of abstraction, say Python programming, you're much less likely to have to deal with this issue because memory is managed for you. You can get a lot done with Python without ever needing to know anything about the lower levels. Python is a much more solid abstraction than C++, which is leaky. Electronics is even worse than C++. All of the rules and formulas with lumped matter abstractions change when you move into the realm of high frequency signals. A circuit you build to operate at low frequency may fail utterly at high frequency due to transmission line effects. The Arduino/Adafruit communities try to get around these issues by largely operating at low speeds and confining much of the high speed stuff (radios) to built-in modem circuits and antennas. But even at low speeds, you still have issues with things like impedance, current, etc. Beginners hoping to run an electric motor on the IO pins of their Arduino are going to be confused and frustrated when it doesn't work. Not only that, but experimentation in electronics can result in electric shocks and even fires if users don't know what they're doing. This is one area where software has a big advantage: it's pretty hard to do physical damage to your property (or your health) with a Python script.
- peteforde 3y agoI've really enjoyed this exchange. I come to HN to have my thoughts provoked. Thank you. One of the most shocking things (no pun initially intended) about learning electronics [as someone who has spent absurd amounts of time tweaking the user experience of interacting with text input elements] is the cold realization that you have to manually handle switch bounce. Because physics. Wait, I have to think about how tiny bits of widget bounce when they come into contact with each other? Every button and every encoder? You'be got to be kidding me. And so you set out on the dark road as you first wonder WTF is going on with your counter, then you start tracking the time between pulses. Then you learn about hardware interrupts and state machines and oscilloscopes. Then you learn about RC and Schottky diodes and soon, hex inverters. Would I benefit from a two hour lecture about the math behind RC calculations? It might be interesting, but at some point if you pull enough yarn out of the sweater, it stops keeping you warm. I have always really enjoyed clever and/or obsessive answers to "describe what happens when you type a URL into your browser". If someone starts with the mechanical behaviour of a cherry switch before talking about the USB protocol, is this not the free jazz of computer science? Is it not our "The Aristocrats"?