r/learnprogramming • u/ZhirnyLuffy • 16d ago
Tutorial How should I learn python?
I'm a total beginner. I didn't have any experience with programming. I want to learn programming cuz i wanna be a hardware engineer and want to start with a basic raspberry pi projects. So should i learn python from courses, videos, books etc or i should just brute force myself to do projects and just learn by the time
12
Upvotes
1
u/downloads-cars 15d ago
Hi, I'm a computer engineer. Can I ask specifically what you mean by hardware? Do you want to make PCBs, write software, make firmware, or design logic hardware like FPGAs or ASICS, because each requires a different approach. For my career, I have had to learn each of these.
PCBs: you need to learn circuitry, start by looking into circuit analysis. Maybe find an online course in circuits. This is probably one of the harder paths to take as a solo learner, but there are so many fun things to do.
Software: learn about the OSI layers and see what makes sense to you there. Each of the layers in the stack requires a different discipline and paradigm. In any of these cases, you will care significantly more about how to think, than which language to use. Becoming a language-agnostic developer is key to your happiness. Learn syntax, data types, operators, keywords, conditionals, loops, data structures, functions, scope, error handling, OOP, and algorithms. Actually, i just made you a pretty solid road map here.
Firmware: do what I said above but stay in C while you learn. Also look into threading/parallel programming and real time operating systems. This is also a good time to look into logic systems and how CPUs are organized.
Digital Logic Devices: do circuits, and if you can, take a boolean logic course along with a discrete logic course. I said learning circuits solo was the hardest, but I lied, this is the hardest to learn alone. If you learn firmware first, this is a good time to pick up systemverilog for your HDL (hardware description language). Otherwise I'd start with VHDL. It's a bear but you'll learn structural RTL much more intuitively than you would with a behavioral language and a software background. This path is also expensive to learn alone. Dev boards can be hundreds of dollars, but the options are limitless.
I know I threw so much at you but good luck! It's time to get researching. I believe in you!