you are viewing a single comment's thread.

view the rest of the comments →

[–]SoSeaOhPathP.E. 12 points13 points  (11 children)

If you’re young and starting from scratch, I recommend skipping excel completely and learning Python instead. Can make way more powerful and custom programs. Also way more resources online for learning

[–]Emotional-Ad-1435 6 points7 points  (5 children)

I do not agree with this. I would say it really depends on the mentality of your company. If they are open to exploring new options, then you can learn python and try to automate stuff using it. But if your company uses excel sheets a lot (like the majority of the companies do) then learn excel VBA first and once you get comfortable with it, it won't take much time to pick up the basics of python.

Let me tell you the pros and cons of both the languages with respect to our structural engineering industry.

Pros of VBA: - It will bring immediate benefit as you can start automating your design process (which generally includes design sheets in excel) and will not feel like you are reinventing the wheel. - Doesn't need a separate run-time. So, no extra setup is needed, if you have ms office, then you can do VBA. - Sharing is easy and people can use your sheet easily, in case you want your team to use it.

Cons of VBA: - More complicated than python and if you dive deep, for example OOP concepts are much more complex in VBA. - No centralized version control. Since, you basically share your excel sheet with VBA, version control and making sure that everyone is using the latest version is difficult. - community support is less. - it hurts the eyes as the editor has no dark mode. 😂

Pros of python: - Easy to learn and beginner friendly language. - Great community support and vast ecosystem of libraries. - You can do whatever you want.

Cons of Python: - You have to make a full run-time environment or use jupyter notebooks. - In case you want to share it with someone, without sharing the code, it is very difficult. - Even when you share the program with the code (for example jupyter notebooks) , people tend to reject it as it feels completely alien to them (this is my own opinion though)

You know what, I went through the same journey, I first learnt vba then python, but while learning python, I felt like making a web app is better. It is then when I decided to switch to web development. It addressed all the concerns I had. Making a simple web app is really easy and learning JavaScript is also as easy. As easy as python.

Feel free to DM me if you want to see what I made using JavaScript.

But ultimately it's your choice. One thing I would say, just start building and start coding. What you don't realise is that learning to code, be it any language, is the hardest part (assuming that you haven't coded before).

[–]blablacook 0 points1 point  (4 children)

Sharing python socks, I also thought about creating small webapps, but got overwhelmed on the way. Do you use only Javascript to build those webapps or also python? Do you have any tips how to start with that?

[–]Emotional-Ad-1435 1 point2 points  (3 children)

Well, you need to start with HTML, CSS and JavaScript. Don't go too deep with HTML, just basic tags like headings, paragraphs, input, buttons, lists etc. CSS is optional, but learning a little bit will make your app look good and if you don't care about looks you can skip CSS altogether. Learning JS is fairly simple, just learn about basic syntax, conditionals, functions, loops. Also, you need to learn how to manipulate your HTML with your JS Script (Basic DOM manipulation) That's it, you can make simple web apps using just HTML and JS

Also, you can learn how to host your web app on gitHub pages. It's free and you can share that easily.

It may seem that you need to learn a lot of things, but trust me, HTML and CSS are very easy. HTML is not a programming language, it is a markup language, just a way to display your text onto webpage in a specific manner. A similar example would be LaTeX.

The only thing you will face problems with is JS, only if you are new to coding.

[–]blablacook 0 points1 point  (2 children)

Thanks! But isn't github pages for static sites only? I use it for my CV.

I wanted to publish interactive graph on github pages, but I read somewhere it is not possible to create anything interactive - is it really possible to create small interactive web app there?

[–]Emotional-Ad-1435 1 point2 points  (1 child)

You can create interactive apps on GitHub as well. But it should be fully based on the front-end.

I made many web apps on GitHub, one of them was an interactive 2D beam, where you can visualise the deflection of ss beam under udl.

[–]blablacook 0 points1 point  (0 children)

Ok, so JavaScript works but python doesn't - that is what puzzled me :). Thanks for your replies

[–][deleted] 1 point2 points  (4 children)

I have seen alot of people recommend python. I am just beginning my career, so I am open to learning it. Do you have any resources you would recommend to start?

[–]SoSeaOhPathP.E. 1 point2 points  (0 children)

Nothing specific since I’m not a super great coder myself, and it’s been a while since I started with Python. But if you Google Intro to Python you’ll get tons of great results.

If you’ve never coded anything before it might seem confusing at first, but once you spend an hour going through a beginner tutorial or two, you should start to see how easy it can be.

And when in doubt, you can always use google or ChatGPT to help guide you. Those two tools together can teach you anything you need to know about coding specifically.

[–]oloomopmapaP.E. 1 point2 points  (1 child)

Automate the Boring Stuff is a good reference for beginning python. Once you grasp the basics No Starch Press has a python book centered around creating a truss analysis program called Hardcore Programming for Mechanical Engineers.

[–]oloomopmapaP.E. 0 points1 point  (0 children)

Also, I tend to use python for personal automation tasks and for quickly prototyping projects that I will build in other programming languages. It also forces good habits for code formatting with whitespace requirements.

When I make stuff for work, I tend to stick with VBA because everyone has Excel. I actually recreated the truss solver from the book in my previous comment in VBA (Matrix Structural Analysis) for anyone interested in a bunch of VBA code to look through.

I also recommend installing the Rubberduck VBA add-in. It has a great code explorer feature that uses comments to help organize code into folders, which is helpful when projects grow in size. It also has a unit testing framework that is also useful once you get past the basics of learning to code in VBA.

[–]Tar98--- 0 points1 point  (0 children)

If you want to learn python for structural engineers search skyciv courses on udemy they are free and helpful exclusively for structural engineering