65

Hello! First of all this is my first Lemmy post, so if I did anything wrong pls tell me!

Now, I'm 19yo in 4th semester of Computer Engineering, and while I'm doing good in college I realized that they give us good background in electronics (from the basics to microcontrollers. ICs. logical design, etc) but the programming aspect is high level and web-oriented (python. java, php)! I appreciate learning those, but I'm not interested on that but rather on a kernel/firmware development! So... I've been learning C for some weeks and while I do love it (mainly been learning from K&R and Zed A. Shaw - Learn C the Hard Way) I don't really know how to practice the skills required to do the proper bridge between hardware and software.

Basically, how does one begin their first real project to learn how to write drivers/baremetal and testing them? Thanks for reading and sorry if my question is dumb, I just feel a bit lost.

you are viewing a single comment's thread
view the rest of the comments
[-] PlexSheep@infosec.pub 1 points 5 days ago

Others have said good things. Since you also mentioned programming drivers, I recommend you to try writing a Linux kernel module at some point. This is going deeper in software, rather than embedded or bare metal. Kernel space programming is different because you literally can't use the functionalities of your OS, but you still have a lot of other things supporting you and get access to the inner workings of the OS. One idea would be for example, writing a module that lets you execute commands as root without having any privileges.

Another thing I want to mention is that Rust may help you learn low level code. Low level can also mean networking or command line software, and regardless, rust is in my opinion more ergonomic than C and C++, offers many advanced features, and will help you understand memory safety better.

this post was submitted on 06 Feb 2026
65 points (98.5% liked)

Programming

25506 readers
592 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS