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.

  • HelloRoot@lemy.lol
    link
    fedilink
    English
    arrow-up
    10
    ·
    edit-2
    2 days ago

    Get one of those learning kits that come with most of SBC/MCUs (like raspberry pi or ESP32) which have a lot of random stuff (like LEDs, motors etc.) that you can hook up to the pins and write C programs to control them. Learn the different protocols that are used to talk to other devices, like i2c, uart, spi etc. and then buy some hardware that you can talk to via this protocol. Like a sensor, a gps module or an IMU or EEPROM.

    It’s conceptually pretty similar to how computers and device drivers do it. There is some communication protocol and you can write or read some values over it to use any device. It’s just way easier to start small and build up experience from there.

    • wwaaaaa@lemmy.dbzer0.comOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 days ago

      Oh I see, well I’ve done some circuitry so that helps I guess. Thanks for clarifying, it’s just a bit intimidating but exciting field, I’m starting rn with some arduinos and basic sensors then. Also from a job perspective, do you see viable to pursue low-level development remote job? I have worked with git, and I’m working to improve my github profile so that I can offer more while polishing my skills, but I personally haven’t seen much remote job offers for low-level junior dev, sadly in my country it is not common either so that’s why I’m interested in a remote one.

      • HelloRoot@lemy.lol
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 day ago

        I’m not actually working in the field, so I can’t give you any advice there.

        I studied a related topic, before pivoting into a different career. And I do hardware and drivers stuff in my free time sometimes for some fun projects.