OLC Video Blog #2 - Embedded for noobs?

preview_player
Показать описание
There's a noticeable trend to encourage people to start programming. Of course, this is fantastic, and a vital skill for the "world of tomorrow". This in turn has lead to an increase in the availability of hardware modules, i.e. embedded systems pitched at the complete beginner.

I don't feel this is a particularly constructive means to teach either embedded systems or software, and even risks putting the learner off!

I believe children are much more capable than adults at learning new things, and we should not be afraid of introducing them to code in a realistic, non-patronizing way. Embedded systems add additional complexity, and are in fact underwhelming in isolation - not ideal for a learner.
Рекомендации по теме
Комментарии
Автор

I think you have a very interesting point of view on these toys used to teach kids to program and I think in a way you are right but only to a point. It seems to me that the toys are not being used to patronize but instead to make it look more interesting to younger people. I first started programming using Scratch and while it is a toy it got me interested it’s not that I couldn’t understand list and arrays and loops and such in fact the toy taught me about them in a much more interesting and friendly way. If I had been sat down and taught to code in the way you’re talking about. Well at that time as someone with no coding experience my eyes would’ve glazed over. About a week or so of using scratch later my teacher moved me to a thing called RobotC which is used to program vex robotics micro-controllers and that got me even more interested and I’m a hardware guy as it stands so learning about it at that level blew me away. My main point is though that I would’ve never been drawn to software design if not for toys like vex and scratch.

madkinggaming
Автор

I think this is what happens when you have 'geeks' designing stuff that appeals to them and is of no use to beginners. I've always felt that hardware is a total red herring, an irrelevance, what new programmers need is a simple software environment to experiment with a simple language, not drag and drop stuff. Like the ZX Spectrum that I learned BASIC on in the early 80s and then Z80 machine code when I realised that BASIC wouldn't cut it for proper games. It wasn't the hardware of the Speccy that pulled me in to coding, it was the software - BASIC that was at your fingertips the moment the thing booted up, coupled with a really good manual. The software drew me in and gave me an understanding of the hardware, but more importantly, what programming is and how it works.

martinbennett
Автор

Unless the Big Trak counts the first embedded system I used was the first Lego Mindstorms when I was about 12 and it had one of those drag and drop programming environments. It was a lot of fun and I made a bunch robots I thought were cool but it was nothing more than toy which it taught me virtually nothing about programming or robotics.

That being said the new kits can be coded with alternate languages such as RobotC or even assembler. I could imagine with the guidance of a knowledgeable adult a kid could develop an interest with default IDE and then move on to one of the more advanced languages when they want to make a robot which does something more complicated.

JimGiant
Автор

From my perspective (newbie programmer in his 30s) I do agree on the most part, my introduction to programming was the C64 at home making different colours fly across the screen, and at school we had a couple of Acorn computers which we could use the program Turtles (FWD 50, RIGHT 90, etc) and that was clear and easy to understand. But don't forget layers of abstraction and what levels of interaction people nowadays have with technology... we press colourful icons on a screen, these actions are interpreted by an app, which send instructions to a layer on an OS, which sends instructions to an OS... etc etc. Every generation uses the tools that the previous generation made and build on top of those tools with more tools. Therefore moving colourful boxes around is sort of what the new generation of programmers will be used to. Maybe I'm looking at this wrongly, but it's just my uneducated opinion!

phraggers
Автор

Very thought provoking video. Regarding Microchip MPLABx, I have ignored the latest features such as 'code configuarator', as it distances you from fully understanding the peripheral you are trying to control, which I find unhelpful. keep up the excellent series of videos!

thetynings
Автор

I do agree with many of your points. However, I think the Raspberry Pi with Scratch is a good start (for the first month)... followed by C or Java. I think that will work quite well. The open board will create a sense of awe since you can see the CPU, the memory, etc. That is exciting for a kid, rather than learning command-line for-loops.

Just my opinion.

penniesshillings
Автор

This is very true. There are university engineering programs who are using Arduino programming as introduction to programming courses, replacing C++ courses. Trendy, but the results are quite horrendous.

paradox_
Автор

the real benefit/appeal of embedded systems like arduino isn't that it allows people interested in programming to learn how because as you state it does this quite poorly its that as a bi-product of being able to make a real world thing like a cool blinky halloween costume or christmas lights people manage to dip their toe into a world they thought was to difficult and now they might be able to slowly get to the deep end rather than having to jump in without knowing if they even care.

My 4yr old daughter is a great example of this.. "Hey want to help dad write a game?" says yes then leaves maybe 10min in... "Hey want to help dad design some cool effects for the christmas lights?" says yes and will even stay through several hours of writing some code... I think its because LEDs trigger the same primal response in us as watching a camp fire.

dreded
Автор

Total newbie to programming here. I would never ever get into programming as a hobby (my profession is video game artist) if not for ARDUINO. As someone who works for a game company I saw how code looks like I had to adhere to tips and feedback from coders while making game art. It always seemed that their work is impossibly complicated. Look at the most basic tool - Visual Studio. For a newbie installing and running it's like big gtfo. And for whatever reason one day I got arduino - plug it, run Arduino IDE - small compact simple program, choose what board you have and you are all set - just compare those two, Visual Studio and Arduino - can't you see barrier for entry being much lower on latter?. Blinking led, done, do something more complicated, then more - learning it's C environment along the way. Nowadays I just slapped old nokia screen (it requires two simple libraries) and few buttons on protoboard and that's a lot of fun to program simple games like snake or tetris for this machine that I can so much call my own. Also I moved from arduino IDE to VS Code, and thought myself how to configure it to use it to program arduino - all that because of "childhood" fear from traditional visual studio.

pawlack
Автор

The way I learned programming was first through scratch, my dad would show me how to make a ball bounce, but honestly the first time I really understood the main principles of programming was later. I wanted to program little computers in minecraft to run around and break and place blocks. These were called turtles and used lua to program them. So I got my dad to help me learn how to program in lua. I wanted to program because I wanted to move the turtle around. If someone wants to make a button turn on a led, then I think that that’s what they should learn how to do. My point is people should be exposed to what programming is, and taught a little about how to make something. Then, later, if they need it for something that they want to do, like control buttons and lights, they should learn how to do that.

Sorry for the wall of text, but I wanted to explain how I learned so that you could better understand where I’m coming from.

veda-powered
Автор

There's one major advantage to learning on a pi, or other weak hardware. You learn the value of efficiency and optimization. If you can write it so a pi can run it, it will run on about anything. Less so for say, a shiny core i5 or i7. As for learning code on a device that just blinks at you, my gut agrees with you, but I think it's personal bias. An Altair is a device that just blinks at you as well, and that hardware shaped careers and lives.

alexmcd
Автор

Arduino should not be used as a tool to introduce noobs to programming but as an introduction to electrical engineering.

RPi, could be used for both programming and electrical engineering. It's powerful enough to run more complex applications, but still lets you write "blinking LED"-type applications for EE journeys. The price is certainly right if money is an issue.

IMHO the best place to start learning programming is on a Windows platform using Visual Studio. That environment has all the tools needed to getting started. That includes syntax highlighting, code completion, powerful debugging tools, preconfigured environment with a properly setup compiler, source control, and a lot more. Everything simply just works out of the box.

tonifasth
Автор

I learned by writing out COBOL programs by hand on graph paper, one character per cell. No kdding! And that only after having drawn up a perfectly accurate "program structure chart" and "stepwise refinement diagram." :/

higgins
Автор

I do wonder if circuit python/micro python changes his mind at all.

BeefIngot
Автор

My thoughts : You simply cannot and should not do that.
The idea should be that you use a 8085 and 8086 mC to teach someone assembly first so they learn the heap, stack and something about pointers.
Then you move on to C/C++ programming on something like Code Blocks to teach non-OOP and then finally OOP.
Once you are at that level, then you can make the decision to learn embedded, desktop or web programming - because they are all completely different from each other - in design and deployment.

atsleeprepeat
Автор

I own a Pi 3 and play around with it a little bit and It's cute and funny, but no more than a cheap PC. Other than that If you already own a computer there's no advantage in a Pi If you want to learn programming, even assembler. But, it's really cute!! jejeje :P

EduardoAhumada
Автор

Just watching these now, they were before I found your channel. I hate them. Never used one, but I know exactly what they’re about. Particularly talking Arduino & shields here. Shielding one from learning. I hate them so much, that if I want a part on a shield, I have to blow it off and make it again. Then I say I made something. I might not use modern methods, but plugging one board into another isn’t making something.

BrekMartin
Автор

I'm disgusted by the maker of this video for driving a automatic car.

fakesocialdynamics
Автор

Come on, all these videos during driving are not cool at all, its highly irresponsible, you can take someone's life as well. But it's not what I wanted to say, I want to ask, can you make a tutorial for beginners of your engines, like break it down or list in the description what way you should go through to get the knowledge, please?

sakuranasty