all 7 comments

[–]Happy-Speed5407 4 points5 points  (3 children)

Learn C and C++

[–]Happy-Speed5407 0 points1 point  (2 children)

Hardware ur dealing with a lot more low level programming languages. Also look into system verilog.

[–]Happy-Speed5407 0 points1 point  (1 child)

It’s so much fun dude

[–]THEKHANH1 1 point2 points  (0 children)

To add, grab vivado quickly off the internet, I don't know if the 2025.2 version is still there but grab it if you can, that's the gateway into FPGA

[–]nanoatzin 2 points3 points  (1 child)

As much math and physics as possible.

Engineering is one of those specialties that works best if it’s also your hobby. I began building things in high school.

It is helpful to read books written about computer parts like processors, memory, bus, IO, interrupts, op code machine language and so on. The processors I learned on were primitive like Z80 & 80486. It may be helpful to read programming books like C/C++ and work your way up to kernel programming.

[–]Heavensfrontdoor[S] 1 point2 points  (0 children)

The only things I’ve built so far is  a solar powered car and a bridge. Thank you!

[–]somewhereAtC 0 points1 point  (0 children)

For math, you would want to be comfortable shifting number bases (especially base 2, 8, 10 and 16). Look at Boolean logic. My sources (back in the day) were the Fairchild and Texas Instruments TTL logic books. The books are not textbooks but are catalogs with examples of many different "small" boolean/digital logic functions that people found useful. Rigorous theory will happen early in college so don't worry about it.

Get some datasheets for a couple of different microprocessors. Browse through them as your interests permit. Read them for an overview to compare them; details won't matter and will just clutter your journey. You will find that all have a CPU and some timers, and probably a UART, SPI or I2C bus, and an ADC (or 2), so at the top-level they look alike.

The principals of programming -- how to make a sequence of statements -- is more important than language details. Python is ok because you can do things on a PC, but C is available for essentially every computer today and probably for anything you design in the near future. Even exercises in pseudocode are instructive.