• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

need to learn some programming languages

kevinf2090

Senior member
I am currently a second year undergrad majoring in electrical engineering. I want to find some internships that i can go to during the summer but a lot of them require programming knowledge. the only language that i know is Java and i learned that in high school and haven't used it in college so i might be a bit rusty. some people have suggested me to start learning C#. what is the best book that i can use to self learn c#. is it easy to self learn C#? thanks
 
C# is a memory-managed language for .Net development, it's Microsoft's attempt at a Java-like C++.

It's a good language for corporate development but it can't talk directly to hardware, it must connect to unmanaged Win32 code that's usually written in C/C++ or assembly.

I'm not an EE but I'd guess you'd get more mileage out of learning C instead.
 
Learn C/C++. It will be much more valuable as a EE. If you work on any hardware or embedded systems, you will be doing much more C/C++ or ASM than anything high-level (except maybe to make simple interfaces to your embedded system). Having some experience in a scripting language is useful for almost anyone, though, so I would recommend picking one of those up as well.

I should also mention that if you work in communications systems, then you will also be writing lots of MATLAB code so that can also be very useful to a EE.
 
look at what language the majority of internship want

there should be some programming classes from the CS department that you can take as an elective. we had a large project (2000+ lines of code) C++ (advanced programming concepts in c++) that i was able to take. i would highly recommend it if you have something similar.
 
Last edited:
It's a good language for corporate development but it can't talk directly to hardware, it must connect to unmanaged Win32 code that's usually written in C/C++ or assembly.

While this statement is true, you say it like it's a bad thing. If you want to hand roll a graphics API then by all means please use C/C++. If, like the majority of developers, you choose instead to spend what slim amount of budget/time you have on features and actual application code, you'll want to use an API provided by the OS or a 3rd party.

One can render a 3D scene with managed DirectX or XNA many light years faster than one could with C.
 
For an EE learn ASM then C .
The reason why is almost all hardware for EE work, ARM, Mips, Pic, 8051 , are based in ASM and C/C++ . These are not devices with large amounts of storage and often you have to fit the program code in 1MB of space or less. You also need direct control of the functions without anything else getting in the way.

With embedded devices it is like a pc with a usb stick with 1MB storage as the only way to run software. There is no OS on these devices 95% of the time ( no room) and your program is the only thing running . If you want to do something like multithreading it is often done with interrupts that you set up. There is no memory management, you have write that code or maybe there is a dev kit that helps with that if you are lucky. It is a blank slate with a bunch of registers. If you are lucky you have some libraries to do different functions and add support for interfaces and things like sensors. If not you have to write those too. If the platform has enough ram and storage then they usually run linux. So that is something else you can focus on if you don't know it already.

Put that you know ASM on a resume and you will get noticed by employers because they know if you know ASM then you know how the hardware works and not just how to write code and hope the compiler gets everything right.

If it were me I would start looking at ARM devices. ARM is upcoming and soon to be huge . Intel is said to possibly lost the net book market to them later this year. And the cost to get started learning it is really low. The cost to try it out is zero.

Get qemu that emulates the processor . And you can get started writing code for lots of embedded devices for free to see what you like best.
http://homepage3.nifty.com/takeda-toshiya/qemu/
 
While this statement is true, you say it like it's a bad thing. If you want to hand roll a graphics API then by all means please use C/C++. If, like the majority of developers, you choose instead to spend what slim amount of budget/time you have on features and actual application code, you'll want to use an API provided by the OS or a 3rd party.

One can render a 3D scene with managed DirectX or XNA many light years faster than one could with C.

I think Dave's point was that an EE is likely to want to talk to hardware.
 
Back
Top