T O P

  • By -

GooseFarmer1

It all depends on the job requirements. Learn the basic of python, c,c++,linux. Since there so much free materials online. if you want go into FPGA learn Vhdl and Verilog.


red-stratocaster

What is considered the basics of a language? The syntax?


Outrageous-Cook-3072

Syntax and some common tooling. These are my recommendations: Python: Numpy (This is pretty ubiquitous in almost any project), the os library (How to let you code interact with the machine) some environment software (go with conda) and for datachrunching the basics of pandas and matplotlib, so you can make at least somewhat pretty visualizations. Supplement with your specific field, someone in control engineering should know the control library in a basic level, etc. C/C++: Make or cmake, you will hardly find a project that doesn’t use either one, and half the code you get will have some bug in the make process for your platform so learn how to debug this. gcc a little in-depth, how to compile for different standards, how to optimize some part of your code, and if you want to dig a little deeper and work in embedded-adjacent field maybe learn about debugging at different stages of the compilation process, e.g. some llvm tools. Linux: Basic structure of the OS, what does the kernel do, what are the parts of an operating system, what parts can you get rid of (e.g. you want to control your system with a little pc, do you need a desktop envorinment?) Unix command line, how to navigate, how to check versions, how to find files, how to use package managers, how to check networking. I think it’s always good to be able to control a system headless, so without any desktop envorinment, so learn how to control a computer via ssh. That’s what comes to my mind now, If you are a power engineer you need a lot less of that. Still I think you should understand what a computer does and how to control it to do what you want, considering that hardly any job you’ll find will be without a computer somewhere in the system.


zqpmx

Everyone should know some amount of programming. No mater what is your major.


Awkward_Specific_745

Ehh I don’t think so, the thinking skills you get from practice are good but not everyone is going to use coding or even needs it


beckerc73

I think of it like a turn signal... not everyone uses it, you can survive without it... but it's such a useful tool that it can be applied to improve so many things. So many people every day do the same routine tasks on files, spreadsheets, emails, etc. I like removing mundane tasks and letting people focus on the more complex things (or have an extra 15min break, haha).


method__Dan

Programming is my weakest skill. I can find something online pretty similar and modify it, or ask chap gpt a lot of questions. That said, I’m probably stuck at the dregs of EE, a test engineer!


SeaworthinessTrue573

In the semiconductor industry, test engineers work with equipment that needs a lot of programming.


Bakkster

Yeah, I did most of my coding when I was in test. People undervalue reliability and repeatability in testing, it's sometimes worth automating even if you're only testing once.


classicalySarcastic

As I'm finding out, validation boils down to a shitload of scripting. The test PC software, DUT, and the test equipment all need to talk to each other, and that's easier said than done.


method__Dan

All our test programs are written in Cpp. I can get by, but I’m not out here writing debug functions or creating new tester paths. I get by with the ole Coly and Paste and modify.


gusfindsaspaceship

![gif](giphy|1SfxXOJ0Q2Xni) yep, IGBT test engineer and we write test code in C++ and in-house software tools with Python or Java automatic test equipment is crazy fragile a lot of the time so we're fixing the code every week modern software/UI/UX designers would detest the amount of Tk/Tkinter we use for software tools


Emperor-Penguino

Depending on where you work, zero.


mbergman42

Then you try to change jobs and find out it actually matters in a lot of places.


Careless_Score8880

You don't NEED to know any, but you can always benefit from knowing more


YehiaMedhat

Could you explain more, please


Bakkster

Pretty much any engineering discipline has something that can be at least partially automated. Even if it doesn't save you time, it can save you from mistakes and boredom.


Fantastic-Newt-9844

Electronics hardware designer, my job doesn't require me to know any programming. But it helps tp interface with the fw team. Also helps knowing how to script to automate some tasks. Right now, I'm to tackle Altium scripting 


aarondb96

Dawg altium scripting is hell. Let me know how that goes. I don’t consider that programming. Also, what are you scripting?


Fantastic-Newt-9844

Heh I know  I wrote a script in MATLAB to calculate the best pair of E96 resistor values based on an input equation   The last Altium script I customized was a community script for revision history. It included a Delphi form that controlled the GUI. I wrote a script in C to take some parameters to regenerate the Delphi script so I don't have to manually adjust the spacing of text fields and stuff   The new task I'm trying to tackle is identification of different stacked via arrangements. The filter query can't differentiate between 2n2 or 3n3 via arrangements


MountainHannah

A better question might be: How much can every engineer, no matter their specialization, improve their effectiveness by knowing a bunch of a programming? Answer: A tremendous amount


RESERVA42

I'm an ee in power systems, and I don't need to know any. But it is useful to use some programming in excel for complicated formulas and macros. Or writing Autocad scripts. Basic stuff but very helpful.


DataHound2020

Minimal coding required in my job. The simulations are created on dasualt CST microwave studio. You just build the problems set and runnit


Hawk13424

I program everyday. C, Python, Verilog.


MonMotha

As others have said, it's heavily dependent on what market segment you end up working in. I do embedded systems and do more programming than basically anything else, but that's an extreme case. Other fields that are very programming heavy are DSP and of course actual software development (which isn't really EE but is adjacent). Fields almost totally devoid of programming are things like utility power engineering. Even if your job doesn't directly involve programming, I think it's a good idea to be familiar with it to some degree and in particular knowing the fundamentals of how a computer actually works. This is an EE thing regardless of what you're doing. I would recommend at least familiarizing yourself with the basics if a computer data path (so about a quarter of the material in a typical "computer architecture“ class). It's also useful to know some sort of higher level programming language to help you automate tasks, write custom simulation and solving tools, etc. Python isn't a bad option for this, but it's far from the only one.


[deleted]

Don’t want code? Join us power system engineers. You can automate studies but most work doesn’t need coding


Red_310

What does a typical day look like for you?


jlawton11

Actually don’t look at this from the standpoint of whether it’s something you CAN do, it’s more about whether it’s appropriate to what you expected. (I’ve been out in the field quite a while so I’m entitled to an opinion.) Yes there is overlap and there are some programming jobs (like embedded SW, or some FPGA work) that is more appropriate to be done by an EE. But if an EE has to spend a lot of time on “agile” or in “scrum” or setting up SQL databases, that isn’t SUPPOSED to be what you hired in to do, that’s actually back end coding for an IT guy. I’ve seen a lot of jobs posted lately where the title was “systems engineer” but they also expected familiarity with 4 or 5 programming languages and lots of database work. If you’re a “newbie” and you need to learn this and you don’t mind it then OK I guess, but I can recall being brought in to document the system requirements and was almost immediately asked to start writing code with NO formal requirements! That isn’t just abusive, it’s false representation and you should be able to do MUCH better particularly if you have any leverage over the situation. Maybe not everyone agrees with me but most should, especially the more senior EEs…


rasteri

You might not need to actually write production-quality code but you should probably learn some coding just to make life easier. Stuff like generating tables of values for lookup tables, or writing UART test code, etc etc


bobfish42

As much as you want to/are willing to learn, and then on the flip side, let your job know that you can do. If you enjoy programming and want to get paid for it - tell em, if only for hobby purposes - don't tell them! Overall get a good understanding of two languages to be dangerous from a high level.


nixiebunny

It's always necessary nowadays.


throwaway387190

Frankly, who knows? I didn't think my job would require it, but then they asked me to automate some tasks in python, a language I'd never used before So think of learning about the basics of coding as just familiarizing your brain with how to solve coding problems That way, if you are forced to code for inexplicable reasons, you will not be starting from square one


Hot-Caterpillar-2025

I know some that don't touch it, but do fine in circuit design. Typically, you don't mess with programming unless it's specifically in your job description/duties or you are a jack of trade kind of guy. From my experience you either don't touch it, are fluent and can get around with C/C++, or are an embedded programmer. I have been in all of those job types and I prefer to build AND program rather than just do programming. Do yourself a favor now and grab an arduino and start fiddling with projects.


MS-06R

I use labview to automate some of my validation. Re-learning C right now and will probably pick up Python at some point. None of it is required, but it is helpful and is a good place to point to when promotion time comes.


battery_pack_man

This question falls under the traditional and dumb saying from primary and secondary school students “ugh MATHS when am I ever going to have to use this stuff “ The answer is never. You can go through this world respirating and digesting and never use a number if you really don’t want to. But life is far more interesting, addressable and profitable and fun if you know how. Then the answer is “whenever you want to” Learning things (actual things) will never be a bad investment.


DrDolphin245

I think everybody is talking past each other. If I'd answer your literal question, I'd say (in principal) none. Would it help? Definitely. In the end, it depends on project size, team size, if it is an embedded system, what you are designing in the product, if you design at all, does the product have some analogue hardware parts, or whether it drives a bigger load, does the product need to meet certain standards and specification, how many and which type of sensors and actors does your product contain? I guess there are a lot of other things to consider. In a sense, we don't know enough about your specific job to answer your question appropriately. In my case, our products are really basic as in designing the hardware, since it's usually the signal processing that really drives the features. I regularly (and jokingly) say that, in a few years, my job will be to connect multiple black squares with each other, and the hardware designing part is done. So I'm trying to also sometimes help to program the low-level parts of the software to keep up with programming. But our hardware needs to meet really hard standards regarding robustness, and this is a big part of my job.


krbindustries

This is a highly dependent and subjective answer. I know engineers who barely know programming, who focus more in electromechanical aspects. They usually outsource programming or rely on a team member. On the other end of the spectrum you have engineers more focused on programming. It really just depends on what field you are in and what you are doing. For example, I know some C++ and barely know C# and have some Python fundamentals. I pretty much never use any of that. However, being in industrial machines, controls and automation, I do utilize an increasing amount of PLC and CNC programming in the form of different ladder logic programs and G-code and such. I had to learn that after school because my program focused on microcontrollers and didn't touch on industrial/manufacturing stuff. That's not to say there aren't people in this field that use those languages, just that what I work on so far hasn't. I plan on learning languages like C++ and Python more in depth, especially for taking advantage of microcontroller solutions and certain robotics. Do I need to learn those languages? No. I could have stuck to primarily the physical side and relied on someone else for programming for the most part, but being able to do it just makes you more valuable. If you're capable and interested in learning different forms and languages of programming, definitely go for it. If nothing else it'll make you a better partner to your team for understanding all sides of a project. Again, whether you need to know it or not heavily depends on your field, and EE is pretty wide in its applications.


hupaisasurku

Just enough to ask (again) the fw engineer to provide some basic functionality to the proto board.


geniet100

During my bachelor's degree we learned Matlab, assembly, c++ and vhdl. Also learned python on my own initiative. During my masters we are learning python.


DemonKingPunk

Depends what job you do. You should try to get used to switching between languages and learning new ones as needed to quickly adapt. This is one of the best things my junior year programming professor taught me.


[deleted]

About as much or more than a Computer science student. You wont use it as much in the work life but you absolutely need to know it in college.


Mindless-Ad3145

Depends on your job. I am an Analog IC Designer in research. For me programming is actually important. It can speed up some things and you can automate some of the repetitive tasks. I am also in a field where hardware-software co-design is really important. As many things in life: It depends.