Author Topic: what is the most relevant programming language for ee?  (Read 15831 times)

0 Members and 1 Guest are viewing this topic.

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9963
  • Country: us
Re: what is the most relevant programming language for ee?
« Reply #25 on: November 04, 2018, 04:10:36 pm »
C language is the most important language for EE's.
Apart from that, it's the second most used language in the world. Only Java is more popular.

I'm not sure 'popular' is the right word for Java.  Java is used in cell phones and there are a bunch of phones.  As a result, Java is probably the most 'executed' language, perhaps not the language with the most programmers.  I think we get into a semantic battle when discussing the 'popularity' of Java. 

In terms of application programming, I would expect C++ to be the most used (have the most programmers).  I imagine C# will become important and when I want a widget in a hurry, Visual Basic is the way to get it built.

In the end, a language is just a methodology for expressing an idea.  It's the idea that's important, not the implementation.  Sure, the implementation gets all the accolades but almost every idea can be programmed in almost every language.

Bottom line:  Learn to express the ideas and worry less about the language.  Your employer is going to tell you what language to use.  Therefore, you need to know all of the top languages (C, C++, Java, Python) and it wouldn't hurt to know the second tier as well (Fortran, Pascal, Perl, Ruby, Rust, Visual {Basic, C++, #}, <whatever>).

For the practicing EE, I still expect C to be the most important tool in the toolbox.
 

Offline Karel

  • Super Contributor
  • ***
  • Posts: 2275
  • Country: 00
Re: what is the most relevant programming language for ee?
« Reply #26 on: November 04, 2018, 04:15:39 pm »
Your employer is going to tell you what language to use.

Not in my case. I decide which tools to use. That's including the programming language.
Do I exclude myself from many job opportunities? Definitely yes.
Am I happy with the jobs that are left for me? Definitely yes. At least because I'm in control.
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9963
  • Country: us
Re: what is the most relevant programming language for ee?
« Reply #27 on: November 04, 2018, 04:22:55 pm »
Don't focus on the language; they change regularly and will continue to change throughout your career.

Not really. I first programmed in C in 1983 and C++ in 1988 and those are still what 95% of my work in operating systems, compilers and interpreters and JITs, runtime libraries, and embedded programming use, 30 to 35 years later.

Most of the other 5% is bash/grep/sort/etc/perl. Perl is 30 years old and Perl 5 24 years. The unix utilities are 35 to 40+ years old.

And I do all my editing in emacs. It's similar vintage.

I'd say you can't go wrong learning those tools. They're going to be here forever, even if there is something else that comes into popularity from time to time.

Quote
I don't know what the language of the year 2000 will look like, but I know it will be called Fortran.
Tony Hoare
https://www.azquotes.com/quote/721008

More to the point:
Quote
You cannot teach beginners top-down programming, because they don't know which end is up.
Tony Hoare
https://www.azquotes.com/quote/592444

One of the true luminaries in CS:
https://en.wikipedia.org/wiki/Tony_Hoare

And EVERYBODY needs to be able to use the 'vi' editor.
 

Offline Beamin

  • Super Contributor
  • ***
  • Posts: 1567
  • Country: us
  • If you think my Boobs are big you should see my ba
Re: what is the most relevant programming language for ee?
« Reply #28 on: November 04, 2018, 04:33:50 pm »
Can you get away without learning a programming language and still be relevant in the field after school to employers?

I thought everyone was going to hands down say C since micro controllers run that. Or am I mistaken? Is C++ to C like Spanish is to Italian?
Max characters: 300; characters remaining: 191
Images in your signature must be no greater than 500x25 pixels
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 21225
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: what is the most relevant programming language for ee?
« Reply #29 on: November 04, 2018, 04:42:43 pm »
I thought everyone was going to hands down say C since micro controllers run that. Or am I mistaken?

Computers, of whatever size, do not run languages.

Computers use hardware to interpret the numbers in memory; the interpretation is the computation and hopefully that computation produces useful side effects.

There are many ways by which those numbers can be selected, including by hand - as anybody that has manually bootstrapped a computer knows.
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline xrunner

  • Super Contributor
  • ***
  • Posts: 7836
  • Country: us
  • hp>Agilent>Keysight>???
Re: what is the most relevant programming language for ee?
« Reply #30 on: November 04, 2018, 04:45:11 pm »
Can you get away without learning a programming language and still be relevant in the field after school to employers?

I wouldn't think you'd be smart to try to "get away" without learning one. Matter of fact, I'd say you wouldn't be able to graduate at all because it would be a requirement, I'm sure of that LOL.  ::)
I told my friends I could teach them to be funny, but they all just laughed at me.
 

Offline coppice

  • Super Contributor
  • ***
  • Posts: 10031
  • Country: gb
Re: what is the most relevant programming language for ee?
« Reply #31 on: November 04, 2018, 04:59:02 pm »
Can you get away without learning a programming language and still be relevant in the field after school to employers?
Can you get through an EE degree of any kind without learning Matlab?
 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 2712
  • Country: fr
    • kripton2035 schematics repository
Re: what is the most relevant programming language for ee?
« Reply #32 on: November 04, 2018, 05:05:13 pm »
as a programming language, I learned Basic during my EE degree, 30 years ago ...
well I did not learn it because I knew it before, but that's all we were teached at that time.
 

Offline Nusa

  • Super Contributor
  • ***
  • Posts: 2418
  • Country: us
Re: what is the most relevant programming language for ee?
« Reply #33 on: November 04, 2018, 05:27:25 pm »
In a technical field, unless you've found and gotten stuck in a particular niche, you continue learning for your entire career. One of the most important lessons you get from your formal education is learning how to teach yourself, if you didn't know already.
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9963
  • Country: us
Re: what is the most relevant programming language for ee?
« Reply #34 on: November 04, 2018, 05:54:26 pm »
Can you get away without learning a programming language and still be relevant in the field after school to employers?
Can you get through an EE degree of any kind without learning Matlab?

Well, we did!  When I graduated in '73, I was probably the only student with unlimited access to a computer and the IBM Circuit Analysis Program.  The HP35 calculator had just been invented and we had gone to the moon with slide rules.

So, yes, you can avoid MATLAB but I don't think it's a good idea to try.  Remember "Statics"?  There were a lot of matrices to solve and MATLAB makes it elegant.  Same for circuit analysis - all those simultaneous equations using complex numbers!  I can solve a 3x3 matrix by hand.  I don't even want to try to solve a 4x4.  It's not difficult, it's just error prone and who wants to spend a lot of time getting the wrong answer.

It's a side issue to this discussion but don't overlook SymboLab.com for graphing and desmos.com for equation solving.

As to EE, there's a MATLAB book: "Solving DC and AC Circuits By Example Using MATLAB" by Haskell and Hanna.  There are a lot of MATLAB books and I think I am most interested in those relating to Physics.  I really like undergrad Physics.

And another:  "Electronics and Circuit Analysis Using MATLAB" by Attia

Our local community college has a required MATLAB course for lower division engineering.  Required!
 

Offline hendorog

  • Super Contributor
  • ***
  • Posts: 1635
  • Country: nz
Re: what is the most relevant programming language for ee?
« Reply #35 on: November 04, 2018, 06:05:44 pm »
C language is the most important language for EE's.
Apart from that, it's the second most used language in the world. Only Java is more popular.

I'm not sure 'popular' is the right word for Java.  Java is used in cell phones and there are a bunch of phones.  As a result, Java is probably the most 'executed' language, perhaps not the language with the most programmers.  I think we get into a semantic battle when discussing the 'popularity' of Java. 



I am not surprised that Java is the most popular. Nothing to do with phones either.

Something has to sit behind every website in the world, and that is usually going to be Java or C#.

Also, you may be discounting the huge amount of development that goes on in boring old businesses. Businesses want all their systems integrated these days.
 

Offline rstofer

  • Super Contributor
  • ***
  • Posts: 9963
  • Country: us
Re: what is the most relevant programming language for ee?
« Reply #36 on: November 04, 2018, 06:44:19 pm »
C language is the most important language for EE's.
Apart from that, it's the second most used language in the world. Only Java is more popular.

I'm not sure 'popular' is the right word for Java.  Java is used in cell phones and there are a bunch of phones.  As a result, Java is probably the most 'executed' language, perhaps not the language with the most programmers.  I think we get into a semantic battle when discussing the 'popularity' of Java. 



I am not surprised that Java is the most popular. Nothing to do with phones either.

Something has to sit behind every website in the world, and that is usually going to be Java or C#.

Also, you may be discounting the huge amount of development that goes on in boring old businesses. Businesses want all their systems integrated these days.

Which gets back to the use of Java for web sites but a lot of that is actually JavaScript.  Different pig, different lipstick.

Just watching Eclipse or MATLAB load gives excellent examples of why nobody in their right mind would develop an application using Java - unless they really wanted the 'write once, run anywhere' feature.

C# is a 'Johnny come lately' kind of deal.  CGI scripts could be written in any language but, realistically, languages oriented toward web development would make the job easier.  Back 20 years ago, I just used JavaScript but my web pages were mostly static.  There are better tools today.  Maybe we need to add PHP to the list of languages plus an understanding of CSS.

I have never seen so many buzzwords in one sentence in my life:
Quote
C# is a general-purpose, multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented, and component-oriented programming disciplines.
https://en.wikipedia.org/wiki/C_Sharp_(programming_language)

How about something simple like:
Quote
Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.
https://en.wikipedia.org/wiki/Fortran

I could shorten that:  "A language for number crunching."

Alas, over time, all of these languages come in and out of job requirements.
 

Offline Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11714
  • Country: my
  • reassessing directives...
Re: what is the most relevant programming language for ee?
« Reply #37 on: November 04, 2018, 07:41:22 pm »
there are languages that run easy and cute, and there are languages that run packed and fast. if you want to run cute, like many businesses prefer, then you should learn java.
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline Crazy_Pete

  • Regular Contributor
  • *
  • Posts: 51
  • Country: us
Re: what is the most relevant programming language for ee?
« Reply #38 on: November 04, 2018, 07:41:29 pm »
Ok, lets stop the language wars and tell this poor guy who is new to EE the TRUTH:

The most important language for a budding engineer to learn is.....  CHINESE!  :-)

(In the words of Shakespeare :  "The truth shall out in jest!")

Thanks All

Crazy Pete

 
Your enemies pray for a shovel but your own tongue will dig your grave... (Traveller Proverb)
 

Offline coppice

  • Super Contributor
  • ***
  • Posts: 10031
  • Country: gb
Re: what is the most relevant programming language for ee?
« Reply #39 on: November 04, 2018, 07:51:43 pm »
Can you get away without learning a programming language and still be relevant in the field after school to employers?
Can you get through an EE degree of any kind without learning Matlab?
Well, we did!  When I graduated in '73, I was probably the only student with unlimited access to a computer and the IBM Circuit Analysis Program.  The HP35 calculator had just been invented and we had gone to the moon with slide rules.
I also found it remarkably easy to get through an EE degree without a non-existent product. Things are different now it does exist. I was really wondering if you can get through an EE degree today without Matlab. In most degree courses there is now so little lab work being done in actual labs, and so much being done by simulation, that I really wonder if there is any choice of options in any University which would allow a student to not encounter Matlab.

 

Offline Howardlong

  • Super Contributor
  • ***
  • Posts: 5424
  • Country: gb
Re: what is the most relevant programming language for ee?
« Reply #40 on: November 04, 2018, 08:09:22 pm »
knowing when to use/avoid a tool is a very good discussion point in job interviews

It also needs to be in the context of the job you’re applying for. I discounted an otherwise well experienced lead database admin interviewee because he talked about nothing but Perl for automation. I’m all for automation, and have nothing against Perl, but there was the rest of the team to consider, none of whom knew Perl, they were already comfortable with the automation scripting tools that come out of the box.
 

Offline Zero999

  • Super Contributor
  • ***
  • Posts: 20357
  • Country: gb
  • 0999
Re: what is the most relevant programming language for ee?
« Reply #41 on: November 04, 2018, 08:19:21 pm »
Sadly I didn't do much programming in college.

I used to be interested in BASIC programming when I was at a child, but got bored of it.

When I did GCSE IT and later A-level computing, databases were the thing, just MS Access with little coding. At college we did a bit of assembly on a very old educational microprocessor board. We had to write the program, then manually assemble it to binary code and type it in, using a keypad, which was very slow and time restrictions meant we didn't achieve much. A bit later at college we studied PLCs (Programmable Logic Controllers) and ladder logic, a graphical programming language. The hardware was obsolete: some old PLC, which was programmed using a386 PC running MS-DOS, ancient even in 2003.

Since college I'd dabbled a bit with coding, but never done much of it since.
 

Offline CatalinaWOW

  • Super Contributor
  • ***
  • Posts: 5569
  • Country: us
Re: what is the most relevant programming language for ee?
« Reply #42 on: November 04, 2018, 08:21:55 pm »
knowing when to use/avoid a tool is a very good discussion point in job interviews

It also needs to be in the context of the job you’re applying for. I discounted an otherwise well experienced lead database admin interviewee because he talked about nothing but Perl for automation. I’m all for automation, and have nothing against Perl, but there was the rest of the team to consider, none of whom knew Perl, they were already comfortable with the automation scripting tools that come out of the box.

Those kind of interviews come in all flavors.  Just substitute a technology or brand.  CMOS, 68000, VHDL, Java are just a few of those situations I have run into.
 

Offline nomadd

  • Contributor
  • Posts: 25
  • Country: gb
Re: what is the most relevant programming language for ee?
« Reply #43 on: November 04, 2018, 08:48:40 pm »
hello guys.
iam currently studying electronic engineering and entering my second year.
as of right now they only thought us a little bit of C language. my question is, what programming language is best for ee. i heard pyton and c++ are what i need to know, but what do you guys think.

Far too many "young folks" on this thread.. :)

<Han Solo voice> "Listen, kid: an Assembler and a datasheet is all you need."

..Oh, and a strong pot of tea. :)
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 21225
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: what is the most relevant programming language for ee?
« Reply #44 on: November 04, 2018, 08:53:27 pm »
knowing when to use/avoid a tool is a very good discussion point in job interviews

It also needs to be in the context of the job you’re applying for. I discounted an otherwise well experienced lead database admin interviewee because he talked about nothing but Perl for automation. I’m all for automation, and have nothing against Perl, but there was the rest of the team to consider, none of whom knew Perl, they were already comfortable with the automation scripting tools that come out of the box.

When I was a interviewer, one of my questions was to get the interviewee to think of many ways to implement a traffic lights controller for a toy manufacturer. Even in the 80s a depressing number of candidates could only think of using a micro. My favourite answer had zero electronics in it!
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Online brucehoult

  • Super Contributor
  • ***
  • Posts: 4767
  • Country: nz
Re: what is the most relevant programming language for ee?
« Reply #45 on: November 04, 2018, 09:52:30 pm »
Fifth point: if you know alternative tools and strategies, they can improve your designs and implementations even if you use a different language. FSMs in C are the canonical example, e.g. see this current topic: https://www.eevblog.com/forum/microcontrollers/state-machines-is-this-topic-taught-any-more/msg1931161/#msg1931161

I know, use privately, and at various times in the last 20+ years have tried to persuade employers there are advantages in using: Scheme, Dylan, Ocaml, Haskell

No one cares. Even if I do a project in Dylan in a tenth the time it can be done in C++, they'll say they can't hire anyone who knows it.

That's realistic, by the way. In 2002 I used Dylan for one work project. It took a day, and was in production for years. At some point after I had left a modification was needed. They had someone (a talented guy) rewrite it in C++. It took him two weeks. He told me he understood my code and how it worked instantly, even though he'd never seen Dylan before, but it simply took far more code to do the same thing in C++. The performance of the C++ version was no better. And it was ten times as many lines of code.

At the same job in 2002 I was assigned by one of the company founders to implement custom telephone call and SMS processing steps using Scheme. Using continuations I was able to make it far simpler to write such code -- basically you write the code for any given call as if there were no other calls existing. Usually, you'd have to break everything down into states and write a big switch statement in C with explicit management of states. This is very annoying if you want to call common subroutines in different kinds of call processing and those themselves have internal states (e.g. playing an audio message and then waiting for a DTMF tone). You can't use OS or normal library-provided threads for this because you can have literally millions of calls in progress at the same time and you'll simply run the machine out of resources (RAM or PIDs or both).

A modern analogue of this is node.js.

At some point the founder who supported the "Scheme Node" (this is literally what it was called) left the company and my work (again: in production without any problems) was ripped out of the product.

Now I don't bother trying to be an evangelist for better programming language technology. I just use C, as they want.
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 21225
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: what is the most relevant programming language for ee?
« Reply #46 on: November 04, 2018, 10:16:12 pm »
Fifth point: if you know alternative tools and strategies, they can improve your designs and implementations even if you use a different language. FSMs in C are the canonical example, e.g. see this current topic: https://www.eevblog.com/forum/microcontrollers/state-machines-is-this-topic-taught-any-more/msg1931161/#msg1931161

I know, use privately, and at various times in the last 20+ years have tried to persuade employers there are advantages in using: Scheme, Dylan, Ocaml, Haskell

No one cares. Even if I do a project in Dylan in a tenth the time it can be done in C++, they'll say they can't hire anyone who knows it.

That's realistic, by the way. In 2002 I used Dylan for one work project. It took a day, and was in production for years. At some point after I had left a modification was needed. They had someone (a talented guy) rewrite it in C++. It took him two weeks. He told me he understood my code and how it worked instantly, even though he'd never seen Dylan before, but it simply took far more code to do the same thing in C++. The performance of the C++ version was no better. And it was ten times as many lines of code.

At the same job in 2002 I was assigned by one of the company founders to implement custom telephone call and SMS processing steps using Scheme. Using continuations I was able to make it far simpler to write such code -- basically you write the code for any given call as if there were no other calls existing. Usually, you'd have to break everything down into states and write a big switch statement in C with explicit management of states. This is very annoying if you want to call common subroutines in different kinds of call processing and those themselves have internal states (e.g. playing an audio message and then waiting for a DTMF tone). You can't use OS or normal library-provided threads for this because you can have literally millions of calls in progress at the same time and you'll simply run the machine out of resources (RAM or PIDs or both).

A modern analogue of this is node.js.

At some point the founder who supported the "Scheme Node" (this is literally what it was called) left the company and my work (again: in production without any problems) was ripped out of the product.

Now I don't bother trying to be an evangelist for better programming language technology. I just use C, as they want.

I've been making very similar points in the last day, in the thread about state machines, especially
https://www.eevblog.com/forum/microcontrollers/state-machines-is-this-topic-taught-any-more/msg1939237/#msg1939237
w.r.t domain specific languages.

Nonetheless, that doesn't change the point that some languages are some suited to some domains than others. Unless, of course, you really believe that an EE should use C to analyse analogue circuits or RF structures!
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline bsfeechannel

  • Super Contributor
  • ***
  • Posts: 1668
  • Country: 00
Re: what is the most relevant programming language for ee?
« Reply #47 on: November 05, 2018, 03:14:13 am »
In short, solder, C, HDL, Matlab and Chinese.
 

Offline Nusa

  • Super Contributor
  • ***
  • Posts: 2418
  • Country: us
Re: what is the most relevant programming language for ee?
« Reply #48 on: November 05, 2018, 03:58:57 am »
I'd add that if your plans include programming your own micro-controllers, doing at least one small project in assembly is a valuable learning experience. Especially if you think micro-controllers run directly on C or C++.

On the other hand I don't claim to be a real engineer. My degree is in CS, but I spent many years in the embedded world among hardware people and understand the digital world quite well. Analog not so much, beyond basic stuff like noise filters and decoupling capacitors. Hardware is a hobby for me.
 

Offline Crazy_Pete

  • Regular Contributor
  • *
  • Posts: 51
  • Country: us
Re: what is the most relevant programming language for ee?
« Reply #49 on: November 05, 2018, 05:06:46 am »
Hi again all!

I would like to really underline that C is obsolete and if you have no experience in programming you should forget C (it will only teach you bad thoughts) and go right ahead to learning C++.    Java was originally designed to be the embedded language of the future.  (The idea was every CPU would have a java interpreter built into hardware and thus execute quickly.)   For many reasons that never came to pass.   However Java is a great learning tool and is certainly the place to start, NOT C!

Honestly the 2 languages that i see all the time that i wish i had learnt long ago really are Python and Simplified Chinese.    There is a tonne of stuff out there from low level embedded code (the raspberry pi crowd are all over python) to high level UI stuff on desktops.   I think you will find an investment in learning python to be of value simply to be able to read code that you will encounter in your career.

Thanks
Crazy Pete
Your enemies pray for a shovel but your own tongue will dig your grave... (Traveller Proverb)
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf