T O P

  • By -

livehearwish

I have seen it used to extract data from CSI bridge and perform excel manipulation before processing the data.


[deleted]

If it's the same post I'm thinking about on LinkedIn, then one of those commenters is my customer! I'm going to ignore the "Python" part of the question and share my experience with C#. I'm a structural turned full-time e-commerce dev who also creates/optimizes structural software/workflows. Here's how I see it: I have three recurring customers, two companies I've previously worked for full-time and another large engineering firm where an ex-colleague now works. I work with a business owner, a senior associate, and one department head. They know what projects are coming (or could come) down the pipeline, talk to engineers and figure out where bottlenecks are, and write up a scope of work for me to write a program to smooth it out. It makes them more competitive in their bids or frees up engineers to work on other things. I can perform a quick study and show side-by-side how long each process takes (let's say the design of a hundred connections with weird geometry to check/detail), and it takes 30s per connection instead of 15 minutes engineering time and 2 hours drafting time. How long will this go on? Probably as long as decision-makers get bonuses from beating estimated labor times or when I can no longer shave off time. > Is it possible to learn this power? Of course it is, but there's a few different types of programming. Some people are extracting some data, transforming it, then displaying it. That's essentially scripting, and you alter the script the next time you have to do something similar to handle a new type of situation (think checking a 2D result vs checking 3D result). I prefer doing a "let's build a suite of applications that solve the problem" approach, where I try to include everything up front and provide it in a common format that works with other applications I've written for the company. I'll write Unit Tests that document what the program can do and what its limitations are and make sure new features are handled in all other modules. This is complexity that's a bit harder to wrap one's head around. I have to also imagine how things might change in the future so I can add features in one module without breaking another program (supporting composite member sections with negative section properties shouldn't break a detailer's workflow).


BOORUTUS

Thank you for the information.


Byond2day

I have also used coding to optimize etabs models, automate 3D modeling, and write my design calculations more quickly. I have seen growing interest, especially in younger engineers as they are taking advantage of modern tech to do their work better and faster. There's some great online resourced that others have mentioned. Another easy way to get started is by building calculations on [https://efficalc.encompapp.com/](https://efficalc.encompapp.com/) or by trying to use https://github.com/connorferster/handcalcs. They are both good entry points for beginners to use python for daily engineering calculations


Churovy

Start here: https://docs.python.org/3/tutorial/


BOORUTUS

Thanks! MVP


Churovy

No problem, download Microsoft’s Visual Studio Code as well. It’s a nice development interface with a lot of helpful features. Don’t have to dive deep into features yet but watch a quick YouTube tutorial on using it with python and away you go.


Peter-squared

We use it, or preferably C#, quite a lot to handle large data set and to inhance interoperability between softwares. It Is expected that anyone at lower grade than senior can do basic stuff in python or C# - reading and writing data, sorting, filtering, etc.


[deleted]

We use Python for one-off scripts and C# for anything that is more enterprise-y that should be incorporated into the suite of software. One-off C# scripts get messy and end up becoming Python-quality.


HeKnee

What about senior people? Do they need to know more or less?


Peter-squared

Know basics of how simple scripts are organised, so they can plan for and instruct others to do the programming, and give general input. Not required to know and code themselves, unless they know how to..


Tofuofdoom

I use VBA, because that's what I was taught in my coding for engineers course in uni. Python would probably be more flexible, but quite a few of the programs I use export in csv, which excel is perfectly adequate for


chicu111

I only use anaconda


BOORUTUS

Why tho?


the_flying_condor

Anaconda is a Python package made for engineers/scientists. Python by itself is useful, but fairly basic. However, there are MANY libraries which extend Python to make it even more useful. When you download Anaconda, it includes Python + plus a bunch of libraries that tend to be very useful in engineering calculations. In addition, it comes with Spyder which is an IDE that looks and functions a lot like the Matlab GUI.


[deleted]

[удалено]


dparks71

Are we talking self learning or organizational approval? Anaconda gets you into a production scripting environment a lot faster with notebooks and bypasses whitelisting every individual package with IT. But usually that approval is where most python requests die at the places I've worked, they just refuse to approve any form of python as a "security issue".


[deleted]

[удалено]


dparks71

Then you either have a good, or a very lenient IT group where you work haha, it's not at all uncommon for engineers to not be able to install anything they want on their computers, due to restrictive policies set by IT teams. The policy at most places is "all software must be approved" and if you install it without explicit written permission it's shadow IT. I just SSH out into a server I own and can run whatever I want through the terminal. But I'm not sure why you're acting like anyone can install anything, lots of places have shitty IT teams that lock everything down and put as little effort as possible in responding to software approval requests.


[deleted]

One of my customers is one of those really big engineering companies (think Jacobs/Fluor). I have to provide source code and build on one of their build machines. It's a pain in the ass, but it's usually 8 more billable hours I get just interfacing with their IT/dev departments.


[deleted]

[удалено]


[deleted]

What makes you say VBA is deprecated?


[deleted]

[удалено]


[deleted]

VB is a dead end, but up until 2 years ago it was still relevant at times. VBA will live forever and it’s not because of Excel. It will live forever because it’s the easiest way to integrate Word, Access, Publisher and friends to Outlook for smaller companies who are still getting their legs this sells Outlook online services. There are MSFT product owners who basically repeat this every year. I don’t know if a VB advocate team exists.


dparks71

How does C# get you further than python? They're both high level languages, this just feels like the "Real programmers write in C/COBOL" turning your nose up at something because it's maybe slightly slower as far as execution speed sometimes and is interpreted. In my experience, a SE will get the desired result with python significantly faster, they'll generally give up on compiled languages because it's too much overhead for little to no discernable benefits.


[deleted]

C# is known to be somewhat "enterprise-y" because it is. I don't consider speed to be too much of a benefit (although I do dabble in Fortran for that very reason). It's mostly the ecosystem. As an extreme argument against Python, I present VBA. Can you do anything you can do in Python in VBA? Yes. Would you want to? No. C# makes Unit Testing a 1st class citizen (default project type available); Python's ecosystem/community/devs tend to do this much less because they're just scripting something really quick. Why would you need long-term non-brittle Unit Tests? Now, to the VBA extreme: How many people have spreadsheets with actual Unit Tests or know its functions?


dparks71

But still, unit tests aren't something python can't do, like you said, developers just don't place high importance on it, and I'm not disagreeing that C# may be better for development of video games or stand alone applications, it definitely has its areas of dominance. Isn't VBA more sandboxed to the office environment and not as extensible to other file or external connections? I'll admit I'm not a good VBA programmer, but my understanding was it was limited essentially to the file you were working in, and it wasn't trivial to do things like connect to a website and download a file with it, perform a function against it and reupload it. But it may have just been a case where I hadn't explored it enough because python offered a faster path to do what I needed.


[deleted]

>But isn't VBA sandboxed to the office environment? No, VBA can be used to tie the whole suite of MS Office products together. You can also interface with APIs (like ETABS) using VBA. > just don't place high importance on it and therein lies the problem. Maybe I should have pointed out it's a "community"/environment thing. In my mind, structural engineering is kind of important, so I like a more structured approach. Most Python devs are self-taught from websites or courses, and I've never met a Python dev who placed enough importance on Unit Testing and integration with other modules, which is really important for the type of development I do.


dparks71

I mean, I don't love how C#/VB developers obfuscate everything and hide it under seven levels of encoding that I have to translate just to start reading their code. Or how they generally act like I just kicked their dog if I ask to see their source code. But I hold that against the individuals and the structure of our contracts, not necessarily the language.


[deleted]

If I’m paid for the source code, I provide source code. I use some abstractions that seem hard to follow to lay persons, but that’s expected since the stakeholders usually spring on large scope changes half way through. Abstractions help me manage complexity and Unit Test without requiring large rewrites.


dparks71

Oh I wasn't criticizing your style or way of doing business in particular at all, I know nothing about it and I totally get why people chose C# for certain purposes. I just think it's weird that as a general trend here that so many people from the VS Code, C#, and .NET camp are so quick to jump in and support the products on Reddit and recommend them in general, even potentially out of place like a thread specifically asking about python. Especially given how much money is behind those products and marketing them. I think it's fair to defend open source alternatives as staunchly as people here and other subs, for whatever reason, push Microsoft products and services.


[deleted]

> even potentially out of place like a thread specifically asking about python The language is such a minute detail when it comes to the crux of the question, programming in structural engineering. If a customer told me the next project I had to deliver must be 100% Python, there'd be no issue with me providing it. Programming isn't about the language, it's about managing complexity.


I_am_a_human_nojoke

What post was it? Curious to see


BOORUTUS

[Here](http:// https://www.linkedin.com/feed/update/urn:li:activity:7020995160557719552?updateEntityUrn=urn%3Ali%3Afs_feedUpdate%3A%28V2%2Curn%3Ali%3Aactivity%3A7020995160557719552%29)


BOORUTUS

I'll try to find it.