Code is extremely powerful. Well-written code can replicate the same task over and over, in an instant, with 100% reliability. I started programming about 7 years ago and have never looked back. Personally, I enjoy the satisfaction of writing elegant and effective code that solves a particular problem or automates a mundane task. I still get a little hit of dopamine whenever I click “Run” and the code I’ve just written works as planned.
The great thing is I’m not alone. I hear it frequently, structural engineers who love combining their technical engineering knowledge with their passion for programming. I believe it combines efficiency and problem solving, which I believe is at the core of being an engineer is about.
With the upcoming release of the SkyCiv API I’m going to discuss programming in the Structural Engineering profession: why is it important? why should we learn programming and where can start.
Engineers are natural programmers.
Engineers are natural problem solvers and if you look at what programmers do, it’s essentially just that; solving problems. Using code, programmers will write lines of logic to go from A to B. Look at the main skills you need to program, you’ll see they overlap well with structural engineering:
- Problem solving – everyday structural engineers are solving problems
- Apply logic and rules to a system or practice – code is essentially if this, do that logic. That is exactly what is expressed in structural engineering design codes.
- Need to work within the restraints – Structural Engineers work within the laws of physics, just like programmers work within the rules of code.
- Technical Abilities – I’m self taught, with very little formal training in programming. It’s not difficult, you just have to enjoy it enough to persevere and learn.
Need proof? Without any programming training, I bet 99% engineers can understand what this code is doing:
Why should we learn to program?
1. Set yourself apart from the pack
But first, why should structural engineers learn to program? Well, for starters there’s a skills gap in the market: 67% of all new jobs in STEM require some form of computing, however only 10% of graduates are in Computer Science.
Companies want structural engineers with programming skills, but only a small proportion of graduates can code. This can set you apart when applying for jobs. There are also a number of specialist roles such as data scientists or computational engineers that would make you a perfect fit for.
2. Add value to your company
You’ll also add a lot of value to your company. Simply knowing VBA in Excel, can help your company become more efficient. You can build tools and programs that can save your team hundreds of hours in tedious and redundant work. This also mitigates the risk of human error. If you’re having trouble getting the time or freedom you need to build a solution, break it down for your boss: I can save x amount of hours a week for every engineer, making us more efficient than our competitors. It will take me 3 days to build a prototype.
Not only will you add value to the company, you’re also making your company more competitive (particularly when it comes to design automation). A study of more 272 firms in 35 industries over 19 years, confirmed R&D spend was positively correlated to revenue growth and ROA and there are numerous studies on industry leaders outspending laggards on R&D. This should be no different in structural engineering. Want your company to outperform its competitors? Programming innovative and effective solutions is essential.
3. Future-proof your skills
You’re also making your skills future proof. Programming is a transferable skill, and can be applied to any number of industries like finance, consulting or even pure development. If we look 20-30 years to the future, the emergence of AI, Machine learning and design automation is going to be driven by programmers and developers. Their effect on the structural engineering profession is yet to be known. But in the wise words of Lincoln; The best way to predict your future, is to create it.
Is it hard? Where do I start?
As I mentioned earlier, structural engineers have a perfect mind for programming. Most degrees offer a computation courses, so you’ve probably already been exposed to it already. When learning, I recommend a healthy mix of practical and theory; in my experience 70/30 works best.
We started off on real life projects and learned with a hands on approach, which I am a big advocate of. As engineers, we like to experiment, break things, and pull them apart to really understand how they work. Start with smaller projects and build up your confidence, learning from your mistakes along the way. If you have any doubts about your abilities, don’t sweat it. Just look at our first prototype:
SkyCiv’s first prototype, 2014
If possible, I would also recommend having some form of mentor. Having an experienced developer review your code and give you feedback is extremely valuable. They’ll show you new ways to set up your code, drawing on their own experiences.
I really believe programming is becoming an essential skill in engineering. It is extremely valuable to us professionally and personally, companies are looking for, it makes us future proof, and as engineers we already have a lot of the analytical, logical skills we need to master programming. It’s not hard to start, and if you enjoy programming it can be a very rewarding career. I hope you found this useful, if you did, share it, like it and subscribe to our Youtube channel for more useful and interesting content!
Interested in design automation? SkyCiv has a powerful structural analysis and design API available, where structural engineers/programmers can code their own solutions around the SkyCiv analysis, design, modelling, rendering and reporting functionality!
Want to learn to program? SkyCiv has two great Free Udemy Courses on learning how to program as a structural engineer!
Keen on applying your skills as a programmer and structural engineer? Visit our Careers Page to see if we have any positions available!
CEO and Co-Founder of SkyCiv
BEng (Civil), BCom