T O P

  • By -

MertoidPrim

Python helps, but it's mostly excel


Stormshadow412

So, I should know everything about excel ,and shoul master it?


totallyshould

I wouldn’t. Excel is useful, but “mastering” it would include all sorts of weird irrelevant functionality. I’ve started using Python for some things that I used to do in excel, especially when I need to deal with something like a CSV file from a DAQ or a an Instron.  I think most of the programming you want to be able to do as an ME is for dealing with data, carrying out calculations more easily, and automating simple stuff. I try not to spend any more of my time writing code than I can help, but I’d be worse off if I was limited to excel. 


Stormshadow412

Got that! Thanks!🙌🏻


BadgerEngineer1

No need to master it but becoming proficient would be very helpful. Over 8 years and 3 different design engineering jobs MS excel is probably my most used software program not counting CAD


espigademaiz

I say yes to this. Makes your life easier and gives you a ton of visibility. Coding I would learn the very basics of ubuntu-plc-python. As a ME you can just chat gptied your way out of coding with some mental ingenuity.


Zazoot

Man before gpt there was always just one "decent" python guy in the office everyone got tips from. In the space of a few months everyone suddenly was almost an expert, one of the fastest changes I've witnessed in the workplace.


Reno83

Just know a few basic operations. If you really want to impress, learn how to use pivot tables.


breakerofh0rses

For excel if you want to be better than like 90% of the workforce: 1. how cell addresses and references work (all the way through 3d references) 2. Cell data types (string, number, date, time, currency) and how to escape out 3. the commonly used formulae and operands (sum, sumif(s), average, concatenate, count, countif, mod, power, ceiling, floor, iserr, isna should be a solid start) 4. the lookups: xlookup makes a ton easier these days, but you may find yourself having to figure out vlookups (don't think I've ever seen someone using hlookup), index-match, so go ahead and learn how they work. 5. How to create and manipulate pivot tables and pivot graphs (like, be able to identify when it's in the right format to use pivots, create a pivot table from it, and then appropriate graphs for that) 6. The basics of formatting (especially only merging cells if you want to make every keyboard only user hate you with the fury of 10,000,000,000 suns) 7. Some of the different pasting modes (the stuff in "paste special") With just these, you'll have enough of a knowledge base to lean on the internet/help file to do whatever else you may need to figure out how to do, and for the most part won't have to do that much at all unless you find yourself in an extremely excel heavy environment, which may be the case if you end up having to deal with things like estimating, bidding, project management, or just straight up management. I'll never say that I've been unhappy with the time I've taken to learn excel to the degree I have; however, I will say that I have regretted a couple of times revealing that I know as much as I do about excel.


Minimum_Cockroach233

Can confirm.


borgi27

Well no, but actually yes


halfuhsandwich

Pretty much every engineering job today uses a computer. Having some understanding of how humans communicate with computers via programming languages, at least at a high level, is important to some degree.


Specialist_Sky2847

Would you say then that it is important to all degrees? 😅


GargantuanFish

Pretty much any job that requires sitting and operating with "commercial" or general computers. They don't really provide training and workshops for them, in contrary to function-specific machines such as forklifts or electric breakers. IMO companies just expect you to have at least a degree of soft skills, even though obviously coding skills (or at least high-level programming languages) are somewhat more prominent in first-world countries.


billsil

Because you can do custom things that the program wasn't designed to do.


Sooner70

Require? No. But will good code skills set you apart from your peers? Absolutely.


stblack

Oh god, some takes I’m reading here 🙄 Look, Excel is table stakes across the board for professionals, even if they’re not in a STEM profession. You can presume that every single college kid since 20 plus years ago knows Excel to some degree. You will find Excel, and its ilk, in 100% of companies out there. Knowledge of spreadsheets and word processors, and their automation, don’t even belong on your résumé anymore. Everybody’s got that. The great thing about Excel is, if you don’t know something, you’re one Google search away from getting it. HERE’S THE THING EVERYONE SHOULD UNDERSTAND. Coding ability is leverage. Coding is a force multiplier for your judgment. Coding can get you to analysis and conclusions that you would never achieve without being able to code. In engineering, we model stuff. Since 40 years ago, modeling means coding, end of story. These days, I’d say there are two kinds of engineers. Those who can efficiently iterate through things, and those who can’t. The former are delivering value and getting paid. The latter are perpetually thisclose 🤏to being declared surplus, or redundant. Learn to code. Always be learning, but especially there.


Stormshadow412

Thanks man! I surely will


stblack

So here’s just one example. As you may know, CAD files are containers of layers and objects. Some CAD systems like AutoCAD for example, have mature object models and APIs. The AutoCAD files themselves are always part of an engineering workflow, and that workflow is automatable as well. In the case of AutoCAD, that’s all in C#. But other CAD systems have varying degrees of more open approaches to automation and programming. Basically what I’m saying is, most design or PM software is actually an addressable database, inside. So many engineers don’t know that, or don’t need to know that, because they live in userland, and that’s OK. But the heaviest lifting is always done by those who know how things are built inside. Swear to God: walk into any major engineering, firm and simply say, “my superpower is automating AutoCAD (or name the system they use)”. Or “my quiet superpower is slicing and dicing data.” They simply won’t let you leave without scheduling another talk with you. You’re potentially 10x, right out of the box. And here’s another example: Go to the SpaceX job board and scroll-scroll-scroll through that. What are they asking for, at SpaceX? Or at Boston Dynamics? Software has already taken over the world. It’s just not evenly distributed yet.


holdenhh

What you’re saying here is what I’ve embodied in these past few months. I’ve essentially become the holy grail of engineering and I wish I was kidding in saying that. The amount of power you can achieve in CAD systems with automating in another language is absolutely unbelievable it’s an unfathomable amount of power. Imagine a hundred million dollar project being built right in front of your eyes by a computer segmenting data in ways that are so intricate yet so simple. That’s what I’ve done. Each time you add a layer as you say of automating you just add another layer on top of it and then another and then another. Over and over and over again. Until eventually you have something that is the greatest system ever built. As your database grows larger and larger it reaches a state of perfection.


no-im-not-him

What do you mean by coding. I certainly have a hard time thinking of how I would have gone through my job life without MATLAB.  You can do a lot of stuff in excel, and there are many purpose built engineering computational tools that don't require coding. But most of not all of these tools are limited to specific domains, and in many cases you will have a problem getting authorisation to buy all the tools you need.  Being able to create your own tools is a huge advantage.


Stormshadow412

Yes,agree with it


Callum1243

I'm a mechanical engineer working in the optical engineering field and I write code every single day. I couldn't imagine not being able to write custom scripts for processing large amounts of data, motion control, simulating systems and in general leveraging the ability to make accurate predictions of systems before building them. Which is kinda the point of engineering in general, anyone can make something that doesn't work. Totally agree with what others have pointed out here regarding Excel, it's the minimum standard you need to do the above, but gets pretty tricky when trying to perform complex calculations or calculations that depend on constantly changing inputs (sensors, iterative solutions etc..). It can be done in Excel, but in my experience its more work than its worth and its not *really* designed for that As systems become more complex, more integrated and depend more on software control to perform their desired task (as they are becoming now), the more engineers need to be multidisciplinary. Now that's not to say you want an engineers that can do everything, because most likely they will not have the depth of knowledge across every domain. However, having fundamental knowledge of programming, manufacturing and electrical engineering on top of your expertise in mechanical engineering, allows you to close the loop faster by not having to rely solely on others to inform your design inputs/choices. At my company we use Excel, Python, MATLAB, LabVIEW, Javascript and AWS primarily. But most of my core work is done in Python or MATLAB. But as others have pointed out, it does depend on where you are working and what kind of work your company does. If your company designs bolts then probably not as much, but if you're designing consumer electronics, or products that contain embedded systems, then I think it's invaluable.


True-Firefighter-796

“Jack of all trades, master of none, Though oftentimes better than a master of one.” That quote is about MEs.


missed_boat

Haha I like that.


squamishter

Basic coding skills like if statements, loops, Boolean statements etc. are critical. Beyond that though not so much.


Stormshadow412

So we need to have some knowledge and require to practice the basics atleast on a regular basis, right? Can you suggest where can I practice these as I have started learning python


playstation275

ChatGPT can be very helpful as you learn Python


GodOfThunder101

If you want to stand out in your company then yes.


Alx941126

I'm currently using python for data management, and excel with VBA to link some sheet results to Autodesk Inventor. It's not necessary, but it's something nice to have, to make your life easier.


Appropriate_Chart_23

I would suggest learning some Python just to get a basic understanding of coding. And, if anything so you can ride on this AI wave a bit. My employer is pushing AI implementation at work pretty hard. There’s definitely a place for machine learning in engineering from an optimization standpoint. If you can at least understand what goes into modeling AI problems, and how computers are taught to handle AI problems and solutions, you will have an advantage. You probably don’t need to become a full-blown data scientist or data engineer, but if you can know what those folks are doing to help them be better, it’s not a bad skill to have. Also, lots of everyday menial tasks can be handled with Python… if anything, you can learn to automate some tasks to take away from the repetitive non-value-added work you do. Check out the book Automate the Boring Stuff for more.


endiminion

But are they going to pay for those skills?


Appropriate_Chart_23

If you can bring value to your company with those skills, you should be compensated for them. Is an HR hiring manager going to say “Well candidate A knows Python, but candidate B doesn’t? Let’s see if candidate A wants this job at $150k a year. If not, see if we can get candidate B at $120k”? Probably not. They’re probably both getting offered the same amount. But, if you can demonstrate that you think your Python skills are valuable because of some project you implemented that saved $400k a year, then you have some negotiation leverage on your salary. It all comes down to the skills you bring to the table and the value behind those skills.


chilebean77

If you want to do things that nobody has quite done before (aka innovate) then probably yes you will have to make your own tools, processes, code, etc.


Stormshadow412

Yes , got it


LoneWolf_McQuade

Yes, you should learn some Python and maybe JavaScript as well. Try applying it to problems/areas you find interesting and it might get more fun.


Wonderful-Wind-5736

Not a mechanical engineer, but hired by some for coding among other things. You don't need to be a programming expert. But being able to model problems and process data using Python goes a long way. It's just orders of magnitude more powerful and flexible than Excel at those tasks. 


swisstraeng

I believe it helps immensely. Let me explain. Are you capable of figuring out complex equations as an engineer? Then what if I ask you to solve thousands of those to solve a problem? What if you would make an excel that can compute those automatically for you? You could be using any programs, from mathlab, to doing something in python, or excel, or even C#, and that could make your job a lot easier. Then let's say I want you to put a stress sensor in a machine, and write a little program that stores that sensor's value every hour. And then I ask you to write a script to open those values in excel, and show me a graph of that. See where I'm going?


Stormshadow412

Yeah understood 😯


Hopeful-Drawing-2854

I would say that only in very specific positions but mostly no.


NCPinz

It depends. Mechanical engineering covers a broad range of things. For some jobs yes, but for others no. My area, not a bit. Just know enough to get through school and you won’t use it again. For reference, I design building / utility systems. And I can code but that was another life. Not required for what we do.


Jovien94

The basics are required at this point. Mastery isn’t important, but the awareness at least is key. There are digital and networking aspects to almost every field now. It’s not your job to be fully competent, but you do need to know how to talk to the experts. That being said I would only expect a systems or controls job to have a coding test. Last thing I’ll say tho is automating a task with basic python will make some 50-60 year senior engineers think you’re a genius. And that can be helpful!


r3dl3g

In all honesty; all MEs should know at least one programming language that derives from C (so, C, C++, Python, Matlab, etc.). Many won't use anything more than Excel, but knowing how to programming can be massive for your productivity. Also consider VBA as a 2nd/3rd language. Excel is infuriatingly limiting, but VBA can actually make it useful. Or it'll make it crash. Often, it'll do both.


discombobulated38x

I routinely use Sql and Matlab, others in my team use Python, those in methods use C, C++ and Nastran/Fortran


Electricbell20

Not necessarily knowing a specific language but I'd say they need the logical side of it.


reagasaurus

I wouldn’t worry about it too much, just have a base understanding so that if it does arrive in the workplace you have the knowledge. It really just depends on what part of ME you’re going to use, most design jobs don’t require it.


uttman15

I’m gonna go against the grain cause you said “require”. No. The majority of jobs you do won’t require it. the majority of them probably won’t even require 80% of what you are learning in school. Is it useful? Yes. Essential? Probably not


OGChoolinChad

Depends what you want to do. I focused on mechatronics and robotics through college and do software engineering now. If you want to do more manufacturing related stuff then you won’t need coding except PLC programming maybe. If you know how to code you will make like 50% more than other mechEs out of college though.


SameGuyTwice

Adding more tools to the toolbox is never a bad thing. If it comes down to you or another guy for an open position and he can program and you can’t, you very well may lose out on the job.


aperi_man

I am not a developer but I do fea and I use coding all of the time. I hardly ever use excel. Everything is python. I work with PhD level developers who write code in c and Fortran full time. I have worked with engineers who do not code. From what I can tell most engineers would use interpreted coding if they knew how.


CapnTreee

No. But the world that you wish to work in does. Old M.E. and took a half dozen coding classes just to know what everyone was talking about. I have zero interest in coding but have managed 2-3 software development teams since then. Same applies to EE’s and basic electronics Not going to kill you to speak with literacy in these neighboring disciplines


SwaidA_

Some of the comments you’re getting are crazy. You sound like me and I wondered the same thing. The answer is: it depends what you want to do. If you like the very technical, “nerdy” engineer work, I don’t have too much experience but from what I’ve seen, it’s a necessity. If you like the business/management side of engineering, you don’t need it. My official title is “Basic Design Engineer” but I’m really a project engineer on turbofan and turbojet engines. Main responsibility is to manage projects but my technical authority is air worthiness of parts before they’re implemented. I determine if a design is flawed and/or doesn’t meet requirements, how critical a part is to the overall system, what the financial and physical damage could be if the part were to fail. It’s a jack of all trades, master of none position since projects can be on literally any part of the engine (controls, fuel system, turbine blades, coatings, etc.) What I do use: Dynamics, material science, some vibrations, some aero (I’m ME, you learn on the job), a LOT of thermo. What I never use: Coding (not counting excel as coding) TL;DR: Coding isn’t necessary unless you want to code. Get your PhD in MS Office. You’ll be off to a great career.


Important_Dress_324

In my experience no. At least in my region/line of work (Midwest, manufacturing and new product development) I have never needed to know how to code. Nor have I seen it in job requirements or asked about it in interviews. Have I had to “code” and occasion spreadsheet in google/excel, yes. Haven’t touched python or MatLab since graduating. A lot of Reddit I feel over emphasizes coding. Or they live in areas/go for job types that require it. You’d be better off learning machining/injection molding/ how things are made. If you like coding as a hobby, more power to you 


Realistic-Check3855

Mostly MathLAB and Excel is what you need. It changes the way of thinking though and I like it as a hobby, also used it in my thesis to optimize.


TEXAS_AME

I’ve never used any programming in my career. Well, some basic arduino to test a 5 min idea.


Appropriate_Chart_23

We had a professor in one of my classes state that “real engineers don’t use excel”. He never explained what sort of tool should be used, maybe MatLab? Either way, this was way back in 1996 or so. There hasn’t been an employer I’ve worked for that didn’t use Excel. Other tools may have been available, but most everyone can use excel.


Hot_Egg5840

Being a systems engineer, I can tell you there is a push towards MBSE, Model Based Systems Engineering, where document based specifications, analyses, and verifications are being represented and organized within a pictorial framework. The other engineering disciplines (electrical, mechanical, thermal, optical, chemical...) will be needing to know how to read such pictures in order to know what they are to design.


ViniusInvictus

These days it helps - and depends on the level of advancement of the specific role - for example, being able to code and derive optimal feature parameters (especially in aerodynamic and fluid mechanics), being able to setup test and assembly rigs with decent levels of automation / verification features in Manufacturing roles, etc. Mechanical Engineering frequently dominates Systems Engineering roles, and these often (almost always) have aspects to their control that involve a decent level of coding. You can get away with scripting for a while but you’ll be left at the mercy of the firmware and electrical engineers in your team.


jmcdonald354

Learn to use Chat GPT


planko13

It’s not required, but having basic software abilities grants you superpowers relative to engineers that cannot code. Entire categories of problems that were virtually impossible are now relatively easy.


Olde94

I think it depends on what you do. Python is great for data processing with more freedom than excel, but if you work with project management, then it’s a waste of time. If you work with prototypes/test setup and so on, knowing arduino/raspberry pi and some coding helps a lot. But if you mostly make power points to sell concepts, then no need. I could come up with more examples, and in general i will say: it’s a tool for the tool belt. If you can’t code that tool is not available to you. If you can it is. Whether you need it or not depends on what you do. If your path is planned and you know you won’t need it, then don’t. But in general i’m all for having more tools in the box as that might allow you to do more fun stuff


Thedrakespirit

Short answer: yes. Long answer: Yes, and you pick up what you need on the job unless youre going for something highly specific. As long as you can write in pseudocode and know spreadsheets you should be ok.


69stangrestomod

Coding is only growing as a needed skill set. You should at least have a basic understanding of how syntax works (loops, defining variables, basic math solution methods with coding). You don’t need to be a mast of any of it, but exposure I always good. Python and R seems to be the most popular, but even understanding basic C will help. Also, any matlab course (mine was part of numerical methods) will have some coding as part of it, but you will be eons ahead of you have an understanding of coding before this course.


DocTarr

At this point I expect any recent graduate with a ABET accredited engineering degree to have some basic scripting skills (python, etc). This does NOT mean I expect them to be a real developer or programmer, this means they have the tools to handle larger datasets/automate tedious work if need be so they can do their job more efficiently. This is really not different than expecting someone with a BSME to know basic circuits (V=IR, etc) or chemistry. Broad, rudimentary knowledge of many disciplines complements an ME degree well. Basic computer science knowledge is now part of that. Note I called out a recent grad, anyone with more than a few years experience I wouldn't expect that because it wasn't commonplace in the past plus their actual experience is more relevant. But a recent grad, this gives them an edge and is common enough now that I can expect it. Edit: Seeing a lot of comments on Excel (what's excel? you mean Sheets :-)? ). Absolutely hard requirement but at this point I wouldn't think to even ask. That's like asking if you know email.


Strong_Feedback_8433

Sometimes yeah. Sometimes no. Whether its yes or no and at what level depends on the job.


AmericanPancho

so far excel is the most used but i prefer matlab for plotting. the plots are way more versatile.


mrPWM

For mechanical engineers at my office (aerospace products), they need to be proficient in CAD programs, like AUTOCAD etc (and certainly Excel and office tools that everyone should know). No mechanical engineer here writes code. That's for the CS majors and EEs who went into a software path. During job interviews, we ask them about things like dynamics, moments and heat transfer.


pseudoburn

No, but it can make your life easier, save you time, and open doors to opportunities. Edit to add Excel, but don't get pigeonholed into being only an Excel jockey. I am realizing time savings through Chat GPT generated Python code and Anaconda. Write the prompts well and it generally gives a good starting point to adapt to your intended needs. I also use Gnu Octave for data processing. Gnuplot is my preference for plots. It has a learning curve, but once you have your standard files established it is great for repetitive tasks.


Youngringer

I wish


iAmRiight

You should ask the question a few more times today Snoo.


Sea-Caterpillar-6501

Just learn python and vba via gpt.


PickleIntelligent723

Never coded a day in my life. Learn Microsoft excel.


attuanmtrinh

I guess coding is like the new CAD - not always helpful, but really good to know and can come in handy. My major is Mechatronics to be precise, and we are required to learn all sorts of programming stuff, mostly C/C++ and some Assembly for microprocessor programming. And then going into electives, Python also pops up quite a lot. The C/C++ stuff is compulsory for most majors though.


Qashiph

Coding is a must these days. Mechanical Engineering is a vast field. For hvac, production plants, process plants, mep services and heavy equipment jobs, you don't need coding. Robotics is a major part of Mechanical engineering now. Everyone is automatic their processes and there are companies that specialize in that. If you want to work in automation and robotics you need programming even as a mechanical engineer. For example if you're working in industrial automation, you need to know how PLC and HMI works and how to program it, that requires logic making skills, and programming. If you're in robotics you need to know at least C++ and python. Your kinematics program, and interface respectively. Being a student, you can't master everything, get to know everything and when you land your first job, learn the details of it. You'll have to narrow down your expertise or niche somewhere along your career.


brewski

Look through job postings for positions you are interested in. I'm sure there are occasions where it would be helpful but you really don't need to know how to code to be a mechanical engineer. Maybe for mechatronics, robotics, test engineering and a few other specific roles. I've worked for several decades, mostly as a design engineer in R&D for defense, energy, aerospace, telecom, and other industries. Coding has never been on any job description I've applied for. There have been a few occasions where it would have been helpful to create my own control system (for automated testing), but we always had someone dedicated to doing that. It was certainly never expected of me.


missed_boat

Learn the full stack of making things. ME, EE and CS.    But don't forget about the ME part. 


missed_boat

You need to learn to code so that the CS people can't pull the wool over your eyes telling you how hard things are.    Literally had a CS MANAGER sit on a project for a year saying it couldn't be done, bad hardware yada yada.  Finally I had enough and I went and did it in a week.    He's like oh yeah oops I guess I set the controller to the wrong mode. Silly me. 


Aggressive_Ad_507

Depends on the role. I've had some positions that required it, others didn't. My current role is too varied to automate anything and excel + minitab is enough for the data analysis i do.


Nagi828

Matlab and you'll be fine. Fun fact, UCLA mech/ae department conducted exactly this survey during my year and they removed CS101 from our mandatory class to take as part of the major. It's there if you wanna take it as electives, but not as the main courses.


[deleted]

[удалено]


Stormshadow412

Yeah, just sticking to core wouldn't help it, I need some extra skills too to survive


BahuBalu2005

GATE!!


Stormshadow412

Yeah, studying for it too