Choice of programming languages

Thread Starter

Anotida Mushayavanhu

Joined Nov 22, 2020
19
Hello guys .I am an Electrical engineering student from Zimbabwe. I understand Java and a bit of python . May you assist me to choose qhich programming language would be important for my career and also which one has more opportunities online because I would like to look for jobs online if I get enough skills .Thank you
 

dl324

Joined Mar 30, 2015
12,917
Being able to develop programs is more important than the language you use. Learning a language only takes a few weeks/months.

Unless you're going to be working with a specific architecture, learning assembly will likely be a fruitless endeavor. I learned assembler for several architectures and all of them are obsolete now.
 

MrChips

Joined Oct 2, 2009
23,871
The purpose of learning asm is not about learning to program a specific MCU. It is about learning how computers work. It gives you insight on how other languages are compiled and behave or misbehave.
 

ApacheKid

Joined Jan 12, 2015
399
Hello guys .I am an Electrical engineering student from Zimbabwe. I understand Java and a bit of python . May you assist me to choose qhich programming language would be important for my career and also which one has more opportunities online because I would like to look for jobs online if I get enough skills .Thank you
This is hard to answer, there are a lot of languages and these are used to varying degrees across a wide range of industries.

There are jobs available for many languages, you'll find jobs around for C, C++, Java, C#, Python, Go, Rust and more so most of these established languages will have some demand in industry.

If you're studying electrical engineering then what kind of jobs or companies would you like to work in? what kind of work would you like to do?

Until you answer that your question can't really be answered.

Imagine you were a linguistics student and asked what language is best to focus on for your career, it can't be answered unless you had some idea of the kind of work you'd like to do, where you'd like to work etc.
 

Thread Starter

Anotida Mushayavanhu

Joined Nov 22, 2020
19
This is hard to answer, there are a lot of languages and these are used to varying degrees across a wide range of industries.

There are jobs available for many languages, you'll find jobs around for C, C++, Java, C#, Python, Go, Rust and more so most of these established languages will have some demand in industry.

If you're studying electrical engineering then what kind of jobs or companies would you like to work in? what kind of work would you like to do?

Until you answer that your question can't really be answered.

Imagine you were a linguistics student and asked what language is best to focus on for your career, it can't be answered unless you had some idea of the kind of work you'd like to do, where you'd like to work etc.
Ok sir I would like to specialise in control systems/ electronics ...
 
Control systems: You might want to learn some ladder logic programing.
For automation/test there is Labview. It's a visual programming language that works on "dataflow". When all inputs are present, the node excutes. Easy to write parallel routines. The language adds "race conditons" as a possibility.
 
Ok sir I would like to specialise in control systems/ electronics ...
I see, well in that case C is a great place to start, most microcontroller families are programmed with this language.

The challenge now becomes about learning that language, I'd suggest you decouple learning the language from using the language on a microcontroller, learn the language first, in a PC/MAC environment get a good understanding of it before you try to do anything with a microcontroller.

There's a book I recommend for learning C, I've seen a great many C books and most of them aren't good for learning.

There are many newer books and having some of these is fine, but that particular book was a great help to me as I learned C back in the early 1990s (and at that time I knew several languages and worked as a programmer).

Not sure about your learning environment but I'd recommend the free Visual Studio 2019 Community Edition this can be installed on Windows or Mac.

The Visual Studio support for C++ too is excellent so you could explore C++ once you get a solid grasp of C, the debugger and IDE in Visual Studio is pretty the best there is, a huge help for someone learning as you are.

That's my advice, but others may have ideas too.
 
Last edited:
I see, well in that case C is a great place to start, most microcontroller families are programmed with this language.

The challenge now becomes about learning that language, I'd suggest you decouple learning the language from using the language on a microcontroller, learn the language first, in a PC/MAC environment get a good understanding of it before you try to do anything with a microcontroller.

There's a book I recommend for learning C, I've seen a great many C books and most of them aren't good for learning.

There are many newer books and having some of these is fine, but that particular book was a great help to me as I learned C back in the early 1990s (and at that time I knew several languages and worked as a programmer).

Not sure about your learning environment but I'd recommend the free Visual Studio 2019 Community Edition this can be installed on Windows or Mac.

The Visual Studio support for C++ too is excellent so you could explore C++ once you get a solid grasp of C, the debugger and IDE in Visual Studio is pretty the best there is, a huge help for someone learning as you are.

That's my advice, but others may have ideas too.
I totally agree with with learning C independently of a microcontoller - Learn how to write good portable C code first.

For Windows I recommend Code::Blocks with MinGW

For OS X I recommend Apple XCode

And Linux g++

It is really common to see people get stuck with bad code design, ask for help, realise that their code needs to be completely rewritten, get discouraged, and then quit. Learn how to write code first!
 

Thread Starter

Anotida Mushayavanhu

Joined Nov 22, 2020
19
I see, well in that case C is a great place to start, most microcontroller families are programmed with this language.

The challenge now becomes about learning that language, I'd suggest you decouple learning the language from using the language on a microcontroller, learn the language first, in a PC/MAC environment get a good understanding of it before you try to do anything with a microcontroller.

There's a book I recommend for learning C, I've seen a great many C books and most of them aren't good for learning.

There are many newer books and having some of these is fine, but that particular book was a great help to me as I learned C back in the early 1990s (and at that time I knew several languages and worked as a programmer).

Not sure about your learning environment but I'd recommend the free Visual Studio 2019 Community Edition this can be installed on Windows or Mac.

The Visual Studio support for C++ too is excellent so you could explore C++ once you get a solid grasp of C, the debugger and IDE in Visual Studio is pretty the best there is, a huge help for someone learning as you are.

That's my advice, but others may have ideas too.
Thanks very much Sir
 

Thread Starter

Anotida Mushayavanhu

Joined Nov 22, 2020
19
I totally agree with with learning C independently of a microcontoller - Learn how to write good portable C code first.

For Windows I recommend Code::Blocks with MinGW

For OS X I recommend Apple XCode

And Linux g++

It is really common to see people get stuck with bad code design, ask for help, realise that their code needs to be completely rewritten, get discouraged, and then quit. Learn how to write code first!
Thanks Sir
 
My first C program was an operating system for a class in a group of 2. Not recommended. There were 4-5 people in the other groups. I couldn't spend time so I used IF-Then and not Case. No weird stuff. We got an "A", but turned it in late.

My first FORTRAN program was just as bad. It took 2 of us 9 months to write. It was a direct digital process control system with 7 PID loops and recipies in the 1980's. It was a cool project. It was also done with a RTOS.

I think writing in assembly language and having a course in digital design helps a lot.

Don't ask what I did for the non-introductory digital design class. We made a processor. 16 words x 16 bits micro-code tat could sort a BCD digit in ascending or decending order. Used 7400 chips.

The first real piece of electronics, I get to maintain down to the component level was a Scanning Electron Microscope.

My first DIN rail project was a safety shutdown system for hydride and hydrogen gasses. I didn;t know what a PLC was at the time. We are talking mid 1980's. It electrically enabled gasses with switches with a valve at the cylinder. We only turned on the gasses that we were using.

The logic part was a simple alarm loop with 3PDT relays. One contact for latch, one for indicator, and one for alarm loop.
It worked when the lab blew up and that's what mattered. It got upgraded to real exhaust velocity sensors with readouts. Then it got a really major upgrade when another system was added. That shutdown system was controlled by a PLC.
One gas cylinder got dedicated to another system as well. That was similar to mine, but the idiots that did that one made it a sequential interlock, so you never knew what condition shut the system down. The velocity detector didn't have a readout so you couldn't tell when the sensor needed cleaning. They could not troubleshoot the alarm portion because it was hard-wired into the rack.

Finally, I said if you want me to work on it, I require two things:
1) 120 V power for the 24VDC supply for the velocity detector.
2) A get to wire a 37pin connector to tether the "building stuff" to the shutdown rack enclosure not a bunch of screw terminals.
it was stuff like:
1) Panic
2) fire alarm
3) hydrogen alarm*
4) hydride alarm*
5) hood velocity
6) Over pressure
7) local detector**

Everything, but the local detector belonged to the building and that's why I put it on the wall. I don't think it had hydride and hydrogen. It did have an enable signal from the gas panel. It controlled it's own gas supply.
 
Top