What are some of the essential programming languages every Engineer should know?

BobaMosfet

Joined Jul 1, 2009
2,002
I know that C is one, what are the others?
Learn assembly language on any processor. Learn it well. Even say, 6502 (you can find simulators and lots of info to help). Knowing assembly language teaches you how a machine works. Any language you write in beyond it- you will write better because you will write code inline with the machine, not working against it.
 

ErnieM

Joined Apr 24, 2011
8,315
It is now 2022 so stop touting assembly as some panacea to solve the worlds problems. By the time you are done writing even the most trivial of programs you will have wasted far more human time then you will ever save in machine time. *

human time >> machine time

Do learn Basic. Basic gets you started in coding; it's why it was created after all. Also many Microsoft Office products (Word & Excel to name two) can be programmed using Basic.

Do learn some C. Seems anyone who ever wrote a programming language since COBOL or FORTRAN first learned C and most everything else is heavily influenced by C.

Otherwise, see what others are using in similar work in your organization.


* One of my designs in continuous production since about 2005 is 100% coded in assembly.
 

nsaspook

Joined Aug 27, 2009
9,991
It's OK to learn BASIC but don't program in BASIC (some other Visual not-really-BASIC-at-all languages are OK). It's a horrible dead end language with little of the structure needed to understand and implement modern programming language practices.
“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration”
Edsger W.Dijkstra, 18 June 1975

How do we tell truths that might hurt?

https://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html



1655172360449.png

The Algol 60 branch languages (including the Pascal limbs) are where most of the engineering programming is done today.
 
Last edited:
I'll cast a vote for assembly also, BUT only for microcontrollers that only run a single program.

Assembly is pointless on a PC or anything with an operating system / system kernel (for lack of better word) like ESPxxx and other system on board type things. It will teach you a lot of the inner workings and maybe if you have the time and patience it could be worth looking in to, but you will get up to speed much faster with C or whatever the device is geared towards.

In all reality which language to learn depends on what you will actually program in the end. Not all devices can use all languages.
 

djsfantasi

Joined Apr 11, 2010
8,394
The TS hit on an important point in his title. “Some” & “languages”.

I believe it’s critical for any person learning to program to learn more than one language. Once you’ve learned several, you’ve also learned critical programming knowledge by experiencing differences first hand.

Strict versus loose typing. Initialization differences. Various forms of control structures. Using GOTO and not using GOTO. I’m sure the members here can think of many other examples.

I propose that knowing what differences exist and what impact each has is at least as valuable as assembly once was in learning how the computer operates. And I can state that for myself, there were other advantages. Spotting other differences that I hadn’t encountered was easier. And I found that with this foundation, I could learn a new language quickly.
 

ApacheKid

Joined Jan 12, 2015
724
I know that C is one, what are the others?
Spend some time getting at least a grounding in VHDL or Verilog if you're an electronics engineer. I'd also get a grounding, appreciation for a functional language too. Dwelling only on imperative languages will narrow your overall problem solving skills.
 

dl324

Joined Mar 30, 2015
14,700
I know that C is one, what are the others?
The important thing is knowing how to program. Languages are relatively easy to learn. Most of the dozen or so languages that I've learned after being out of school were 1-week classes where you learn syntax and the basics, and then solidify learning by using it.

I don't think learning assembly is useful for most people. I learned one in school and 3 afterwards. I never had to use any of them for any meaningful programs. Around 90% of the Unix kernel is written in C.
 

MrChips

Joined Oct 2, 2009
26,504
With total disregard of what others may have to say, if you had to learn just two programming languages this would be my recommendation.

Learn ASM and C in that order.

Learn any ASM first. My recommendation would be any of Atmel AVR, Freescale 6805 or HC11, TI MSP430.

Then learn C after being exposed to ASM.
 

MrChips

Joined Oct 2, 2009
26,504
How useful is having a working knowledge of any language?

For example, it is very beneficial to learn Latin at some point. Even though we don’t speak it today we use it every day in our spoken and written language.
 
Top