MOTIVE

Why Civil Engineers Need to Know How to Code

Written by KilHo Choi | Jun 24, 2024 11:00:00 AM

 

Introduction

 

Why Young Civil Enginners Should Learn to Code: https://youtu.be/afX-UpY7VAc

 

"With AI doing coding for us, there's no way to avoid coding!"

 

In the winter of 2017, as a first-year employee, I was fortunate to have the opportunity to work at the London office for a month. Perhaps that month shaped me who is writing this article now. I always thought I had followed a prestigious path. However, working with engineers in London who operated on an international level made me realize a sort of barrier. (Later, I found out that they also graduated from prestigious European universities.) At the same time, I realized, "Ah, that's the path I need to take!"

 

(Left) Lunch meeting at the London office (Right) Fish and chips after work

 

Even after returning to Korea, I occasionally monitored how they worked at the headquarters (Denmark) or in London.

 

 

How many graduates from the Department of Civil and Environmental Engineering at Seoul National University work in design firms?

 

Among the seniors and juniors I know, there are only two. I am one of them, and the other is a colleague I persuaded to join the same company. Even outside of Seoul National University, it is said that it is hard to find young engineers in design firms these days.

 

 

Why do young engineers avoid design firms so much?

 

I think it's because the workload is intense compared to the low salary. Additionally, the intense workload isn't because they need to solve difficult and challenging problems, but because there's a lot of repetitive work. This makes it hard for the MZ generation (Millennials and Generation Z) to accept and find motivation.

 

If my reasoning is correct, there are three solutions:

 1. Salaries match those of construction firms

 2. Workload intensity decreases to match the salary

 3. The nature of the work becomes more interesting and challenging

 

Can the company suddenly raise salaries or reduce the workload? Can we invest time to tackle more challenging tasks? I'm not sure. However, there is something engineers can do right away to achieve these three goals.

 

That is coding.

 

© ThisisEngineering RAEng, source: Unsplash

 

Domestic design firms mainly handle design tasks using Excel. While Excel is quite Excellent on its own and coding is possible using VBA, I suggest using coding languages like Python or MATLAB for work.

 

If you've never tried coding and think it sounds foreign, don't worry. I personally don't recommend taking coding courses just to learn coding. While courses can build a solid foundation, they are inefficient. The fastest way to learn is by writing code that can be applied directly to your work.

 

Which coding language should you use? Personally, I recommend Python. First, Python is free. You can use it anytime without worrying about licenses. It can also be used on personal computers. Additionally, it is widely used by engineers abroad.

 

COWI has an online community for employees, and there are over 800 members in the Python community (compared to about 140 in the MATLAB community). That's why I switched from MATLAB to Python.

 

© JohnsonMartin, source: Pixabay

 

So, what kind of code should you start with?

 

Civil engineers use limited codes in their work, so we can almost certainly implement the features we want. Additionally, someone worldwide has likely attempted it, encountered problems, and posted questions, with experts providing answers and sample codes. You can find the code you need just by searching Google.

 

But recently, even this has become unnecessary.

This is thanks to ChatGPT.

 

© Levart_Photographer, source: Unsplash

 

Previously, you had to search in English for the features you wanted, find the most similar question, and choose the most appropriate answer. Now, you can just tell ChatGPT the functionality you need, and it will generate the Python code for you.

 

At Seoul National University, a structural research lab assigns graduate students to write Gaussian elimination algorithms in Fortran. Until recently, students had to understand Gaussian elimination, write the algorithm, learn Fortran syntax, and refer to senior students' codes to complete the assignment. Now, you can just ask ChatGPT to do it, and it takes 3 seconds. While understanding Gaussian elimination and algorithm writing is crucial, learning the syntax of a specific language is no longer necessary. In an era where AI can do the coding for us, there's no way to avoid coding ourselves!

 

Fortran code for Gaussian elimination written by chatGPT

 

I first incorporated coding into my work while preparing appendices for structural calculation reports.

 

Video explaining the use of coding in structural calculation report (https://youtu.be/x0_8wUFDmho)

 

It was a relatively simple task of inputting values into Excel and outputting and merging them into PDFs, but the volume was massive. Two engineers were instructed to finish it within two days. However, I had to leave work early because I had a child who was not even a year old at the time, so I decided to use MATLAB, which I hadn't used since graduate school.

 

As a result, I completed in two hours what would have taken two people two days. I left work on time, and the company saved 30 hours (8 hours x 2 people x 2 days - 2 hours = 30 hours).

While it didn't take long for the code to run, it took some time to write the code since it had been a while. However, having written MATLAB code then made it easier and faster to switch to Python later, so I consider it time well spent.

 

After enjoying success with the appendices, I challenged myself to code for MIDAS SW modeling.

It was a relatively simple and modular structure, and automating the modeling through coding seemed like it would save time. Eventually, it took a day to model one section. (Manually, it would have taken at least three days, if not a week.)

 

The MIDAS modeling code was more complex than the appendices code, so I invested about a month. (Thankfully, the project manager allocated time during work hours for coding.) However, since I had to deliver results, I also spent personal time coding on weekends. Some might think, "Why use personal time for work?" But I believed it would help me leave work on time when busy and benefit my career.

In other words, I invested time for my benefit. The experience revealed problems I wouldn't have noticed otherwise and provided valuable lessons.

 

 

Why You Should Learn to Code

 

Returning to the three solutions for avoiding design firms:

 1. Salaries match those of construction firms

 2. Workload intensity decreases to match the salary

 3. The nature of the work becomes more interesting and challenging 

 

First, coding won't immediately increase your salary. But as the company saves time and earns more money, engineers' treatment should improve.

 

Secondly, the workload intensity will surely decrease. Computers, which are much faster and more accurate than us, will handle tasks. Personally, coding made the work more challenging and enjoyable, and the sense of achievement when my code worked as intended made the job more fun.

 

Thus, coding is the only practical way to achieve these three goals and revive the struggling design firms.

 

Some might wonder why an individual is so keen on solving the aversion to design firms. I believe that improving the field and company I belong to will benefit me in the long run more than just focusing on my success. In conclusion, it’s a method I thought of purely for my benefit.

 

Currently, I have been incorporating coding into my work for over a year and am undertaking new projects using Python.

 

Shear check Python code for girders

 

I'm advocating for using Python among the young engineers at our company, but it still feels a bit lonely.

I hope many young engineers and future engineers reading this on MOTIVE will challenge themselves with coding, which is not as difficult as it seems.

 

 

Topics

#Case Study
#Design Automation

#Civil Engineering
#Structural Engineering

#MOTIVE

 

 

 

※ Click on the keywords below 'Topics' to view related content.