I have a bachelor's degree in electrical engineering and I'm eager to dive back into programming. I learned Python in college along with some assembly/machine code and a lot of logic, so I'm not starting from scratch. Right now, I'm torn between learning C or C++. I've heard C aligns better with my background, especially for hardware projects like robotics, where I could use an Arduino kit. I'm curious about how different these languages are and what insights industry professionals might have on the current job market. If I aim to work at a tech company, which language would be more beneficial to have on my resume?
6 Answers
Coming from a similar background, I found C to be very intuitive since it resonates with how hardware operates. While I noticed a lot of industry use for C++, it’s great to nail down C first. It sets a solid foundation, and once you’re ready, transitioning to C++ is a wise move. Being proficient in both can only add value to your skills.
C is where I'd start too! It helps you grasp essential programming concepts directly, which will make understanding C++ later easier. You’ll see the reasoning behind higher-level abstractions as you progress.
C++ is extensive, and with all its new features over the years, it can overwhelm beginners. I’d suggest starting with C to solidify your understanding of lower-level programming. Once you're comfortable with C, moving to C++ will be much clearer. C++ has some neat features that build off C, making it beneficial for larger projects later.
No matter what language you choose, you're in a unique position. Your electrical engineering degree combined with programming skills opens doors in many fields. If you're focusing purely on coding, enhancing your Python skills might also be a smart route besides C or C++. However, regardless of the path, C will always be a valuable skill.
Honestly, it doesn't make much difference which one you start with. Once you grasp one, picking up the other becomes much easier. The core concepts apply across many languages. While C is lower-level and gives you that fundamental understanding, C++ adds object-oriented programming, which is highly useful in varied tech roles. Just be aware that these languages can be tricky due to pointers and memory management, but they're crucial skills in the industry! It depends on whether you're aiming for hardware-focused roles or more software-oriented tech positions.
Given your electrical engineering background, starting with C is a wise choice. It closely aligns with hardware concepts like memory and registers, making it easier to understand embedded systems and robotics. Companies involved in those areas really favor C. Although Arduino technically uses C++, it's often approached in a plain C manner. If you're looking for immediate application, C will get you hands-on quickly. Plus, motivation is key when learning, and starting with something exciting like Arduino will keep you engaged! You can always transition to C++ later on since it's essentially an extension of C.
I was considering just Arduino, but I'm also interested in Raspberry Pi. Do you think it's easier to learn with that? It seems like it opens up more options.
If you already have a custom PC, you can do quite a bit. You'd still need some sort of microcontroller for robotics, but you can definitely dabble in game development and animations!

Why do you consider C# more user-friendly than C or C++? What can it do that they can't?