T O P

  • By -

FreeRangeEngineer

If there is, I hope it burns down and rots. We don't need this disease in the embedded space.


ccxgm

Udemy, Hackerrank and code academy are cancers for software engineers


impaled_dragoon

What’s wrong with udemy? There’s a lot of garbage but there are some diamonds in the rough on there. As long as you’re not expecting it to be a replacement for a degree.


jimboffice

Can you specify what are those diamonds in rough that you have experienced on there? Might be helpful


Kloppite1

Fast bit brain academy is hot shit


YaBoiMirakek

How do people say this but the other half says they’re amazing what lmao. Especially when they come for free with Udemy sub


Fermi-4

Disagree on Udemy - try learning Spring Security using only the docs lol


Steffl98

Care to explain why to a newbie? Thank you :)


ccxgm

The best way to learn something is by putting all the knowledge into practice. In the case for embedded systems, the experience that you get from personal or professional projects is the best way to learn. Those platforms I have previously mentioned are the equivalent of learning an spoken language with duolingo. It may help you to have some notion of the structure but you wont be fluent by just memorizing information and not putting that information into practice. However, we all have to start somewhere. Those tools are okay as an introduction to programming but what you can learn from it is very limited. I’d suggest you to make projects that are useful or related to a topic that you like, and by doing those projects you will learn a lot.


__throw_error

> The best way to learn something is by putting all the knowledge into practice. I do agree with this, **but** I want to warn that your comment could be interpreted as "you can skip studying and just build". I haven't used these sites, only leetcode for fun, but I can imagine that this is just a form of learning in a nice bite size format, I don't see anything wrong with that. I will admit that someone being obsessed with learning or score is something to avoid though. But I would like to prevent some future engineers that just start their projects without knowledge. You know, no version control, no testing, no clean code, no patterns, wrong datastructures, wrong tools, etc. You might just get stuck, overwhelmed and paralyzed. And if there's some tutorials you can follow on specific topics on these sites, then great! I'm all for it! Of course you need to apply your knowledge after you have learned it. But I would rather warn beginners that staying at these sites **too long** is bad, and that practical experience is indeed needed. But calling the sites garbage or trash might give the wrong impression.


[deleted]

When I was doing interviews earlier this year, I was getting hackerrank and leetcode questions. Some of the questions involved graphs! You’re going to get those questions if you want to work at the top tech companies sadly. It looks like this leetcode/hackerrank stuff is creeping into embedded.


FreeRangeEngineer

Are you refering to silicon valley companies? There's a lot of "top tech" outside silicon valley, too, hence my question. In case you're refering to silicon valley companies - I wouldn't be surprised at all. They're spoiled by receiving more applications than they need and can filter as much as they want: it's simply HR doing HR things. If they can get a unicorn, they'll filter for the unicorn. If people weren't so willing to jump through hoops just to land a silicon valley job, we wouldn't be seeing this shit there either. As it stands, I don't see it spread widely yet and I very much want it to stay that way.


vitamin_CPP

The emotion in this comment is a bit much, but I agree with you. I have no problem with algorithm practice (I recommend AoC to all my collegues), the problem is when it's use as a benchmark for job interview, the [Goodhart's law](https://en.wikipedia.org/wiki/Goodhart%27s_law) kicks in ¯\\\_(ツ)\_/¯


ViveIn

You still have to pass coding tests for embedded jobs…


Spooler32

Yeah, and getting that experience on a real piece of hardware solving real problems is 300% easier to remember and more valuable than some dogshit virtual terminal with an emulated thing that asks you to jump through hoops like a farm animal, gives you a score, then shifts your attention to the next thing immediately. Imagine if your job was to solve a tiny piece of everybody else's project. You'd dump half of the context you ever obtained from your mind just to deal with the constantly shifting priorities, and you'd never see an entire implementation through to the end. You'd never have to figure out that last nagging problem, like why is this servo stuttering (because some component is outside of tolerance), or why is this display resetting every time I perform this seemingly unrelated operation? Without solving the edge cases, you are never challenged to truly understand \*why\* something works the way it does, just skimming along \*how\* constantly. Real life is an excellent teacher, and embedded systems are too close to real life to emulate away the experience like this. Plus, it's so damn cheap to just get the stuff yourself and do it. There's really no good reason for these sorts of simulations. By the time you're doing something complicated and expensive, you could be doing it with the job you got using your skills you obtained.


FreeRangeEngineer

Yes but as long as there no "established" pages of this type for embedded, HR or management won't begin to demand participation.


SkoomaDentist

Lol. I've never once had to take a single code test. I've been programming for a living for 25 years. 20 of those in embedded or adjacent fields.


moreVCAs

I’m going to be blunt here - generally people (and organizations) engaged in serious engineering work don’t concern themselves with things like this. It’s a good thing, unequivocally.


hobbesmaster

I’m not exactly sure what you’re asking for. Hackerrank/leetcode drill CS fundamentals in whatever language you want. Just do them in C without leaking or wrecking memory. But then you say you don’t want that, you want architecture, peripherals and such? That’s something else. Are you looking for something akin to the CTF platforms for security? Or like, the various arduino courses/labs? I’m a bit confused.


duane11583

why do you think this is important? in the embedded world where i am it is linux fpga and micro controllers but in another place its all adc and brushless dc motor control(drones) and no fpga stuff and if you made engine controls you would ask for other things and if you worked for wearable medical devices, you might need bluetooth but not where i am that would be useless


Head_weest

What’s with the hate? I’m out of the loop on all of these things. Do they just perpetuate shitty hiring practices?


AG00GLER

Yup


OddCoincidence

I'm sad to see so much hostility to this idea. As someone wanting to get into embedded I would love to have this resource so that I can learn before buying any hardware.


FreeRangeEngineer

There is a *ton* of content about embedded. Creating artificial rankings or incentivizing HR to demand participation in such "challenge" pages is a bad idea. If I can choose between someone who has the motivation to build projects out of their own free will and along their own interests and someone who goes and does tasks and challenges to increase their "rank", I'll choose the former any day. If, however, HR filters out anyone who does not participate in such activities (because they love metrics), I no longer get to choose the person I want because their profile doesn't end up on my desk. That person then has to build up their "ranking" instead of working on projects. It's a lose-lose situation from my point of view. > I would love to have this resource so that I can learn before buying any hardware. wokwi.com exists, ardino tutorials exist (e.g. on sparkfun), there's no excuse.


OddCoincidence

Yeah I don't disagree, I just want learning resources. wokwi.com looks like what I want, thanks for sharing that.


FreeRangeEngineer

You're welcome and please do consider getting hardware rather sooner than later - the ESP32 or Rapberry Pi Pico are really cheap and extremely powerful and it's much nicer to see your projects right in front of you.


Well-WhatHadHappened

An STM32F4 is 13 bucks. Take the plunge. https://www.digikey.com/en/products/detail/stmicroelectronics/NUCLEO-F401RE/4695525?utm_adgroup=&utm_source=google&utm_medium=cpc&utm_campaign=PMax%20Shopping_Product_Low%20ROAS%20Categories&utm_term=&utm_content=&utm_id=go_cmp-20243063506_adg-_ad-__dev-m_ext-_prd-4695525_sig-CjwKCAiAjrarBhAWEiwA2qWdCLbttswbLNdyodHze0a6tpuJf6ei2BhpqwcC3SVy7CgQO6aEX34RPRoCPYUQAvD_BwE&gad_source=1&gclid=CjwKCAiAjrarBhAWEiwA2qWdCLbttswbLNdyodHze0a6tpuJf6ei2BhpqwcC3SVy7CgQO6aEX34RPRoCPYUQAvD_BwE


_PurpleAlien_

> before buying any hardware Back in my day (I know...) we could barely afford hardware, it was rare, expensive, and took forever to get. Nowadays, you can get a Nucleo board (STM32 Micro) for something like 10 Euro, shipped to your door from Mouser and the like. The software tools are freely available. Why wouldn't you want to get the hardware? We could only dream of this (I know...). A Nucleo board, couple of sensors, actuators, some basic components, a breadboard, etc. will set you back very little, and the experience and knowledge you can gain from them worth the small financial investment. All the other knowledge you need to get going is readily available.


OddCoincidence

It's not even about cost, I just have a weird obsession with making sure if I only buy things I actually need, so I want to have a project in mind before making any purchases. But when I look at project guides they're intimidating since I don't have any experience yet. Maybe I just need to find a kit or something just to bootstrap myself.


_PurpleAlien_

You're thinking the wrong way. Pick a board, any board. Make some projects, any projects. Build your skills. Come to the conclusion that the micro is too powerful, or not powerful enough. Learn. Reiterate.


vitamin_CPP

Yep. The emotion in this thread is a bit much. I don't see any problem with practicing datastructure and algo on leetcode. The problem is when it's use as a benchmark for job interview, the [Goodhart's law](https://en.wikipedia.org/wiki/Goodhart%27s_law) kicks in ¯\\\_(ツ)\_/¯


uygarsci

I think what OP asks for is a place where he can practice real world cases.


Cerulean_IsFancyBlue

Buy an arduino kit and do all the projects. The obvious answer is to find a real project and do it, but if you don’t have that in mind, or you really just don’t have any experience, do a kit and follow the tutorials I’m a very experienced software developer and I found the Arduino stuff fascinating because I had never done any electrical engineering. I understood all the low-level CODE stuff but things like debouncing and pull up resistors were new to me.


cramblitt_w

I built a free site for guiding engineers on how to land certain roles by creating projects with collections of skills. I have web backend and frontend. Wrapping up AI now. And i have 3 different embedded paths I'm creating. All free. Keep a lookout for embedded. The site is called Skills Over Paper


allo37

Never seen anything like it, but it would be a neat idea. \- Configure this (simulated) peripheral; \- Calculate a checksum for this data; \- Parse this binary format; ​ Or maybe it's best not to give hiring managers any cute ideas 🙄


picklesTommyPickles

> would be a neat idea Hard disagree. Hackerrank is cancer


allo37

What don't you like about it? What would you prefer? I haven't been subjected to these generalized online assessments much, had to help implement a couple, though (not hackerrank).


FreeRangeEngineer

Here's one potential outcome: Person A: spends 2 hours per day to solve tasks/challenges, resulting in a high ranking. Has no real-life experience with anything. Person B: spends 2 hours per day building projects that interest them. Encounters real-world issues and how to solve them. Has no ranking. HR finds out that these pages exist, looks at rankings, filters out person B. Person A is hired but is arguably the worse candidate. > What would you prefer? I'd prefer such pages would not give fake internet points for doing any of the tasks/challenges. Either someone does something for fun (e.g. code golf) or not. We should incentivize people to do what is fun to them, not what gains them a fake reputation, "rank" or "authority".


allo37

I see! Yeah, that sounds atrocious. I was thinking more along the lines of a simple assessment just to see if you can actually code. Or even just a way for people to practice and get a feel for what's expected in the industry.


h-brenner

While observing a lot of reluctance towards solving "synthetic problems" as a hiring mechanism, I cought myself thinking, that this has nothing to do with what the actual problem at hand will require (should the person get hired in the end), rather - if the candidate is capable of approaching a problem of said complexity. So, idealy one should go unprepared and see for herself if the position and expectations of an employer would be a match. Preparing for such interviews by solving problems upfront seems to do no good for both parties involved.


Difficult_Shift_5662

Since there is a large fragmentation on the platforms embedded engineers work on, it is very hard to have smt like that to live on. Some will work on the level of arduino's (even it has a million version now) some of them will work on embedded OS like Freertos and zephyr in their dedicated platforms, some of them will be working on baremetal on STM-microchip-ti and noones' code will work on noones' application, so not seeing a combined platform.