A Mechanical Engineer Journey with Programming

The beginnings

The first time I used a computer was 25 years ago. To be accurate, the second half of 2002.That was my first year in the university from which I received my engineering degree.

At that time, using computers was not something common in our area and I remember funny moments in the computer labs when I struggled in using the old types of mouse which were common at that time.

Image by Marijn Hubert from Pixabay

Like anybody studying engineering, I had to learn and use several computer software to write reports, do calculations or design.

Also, we were introduced to programming languages. The first language I was introduced to was “FORTRAN” https://en.wikipedia.org/wiki/Fortran

Life was not easy for us when we wrote codes.No IntelliCode or autocomplete feature in the development environment.

We had to be careful in writing each code of line. We had to know, when to write capital letter and when to write small. Also, we had to remember the sequence in which the codes needed to be written.

We didn’t have plenty of resources to learn from like we have today.Now you can watch YouTube or enroll in an online free or paid course to learn new skills including programming.

At certain stage in the university, I had to learn MATLAB. It is a scientific programming language we used to implement numerical analysis methods like Runge-Kutta, solve some math problems, and plot graphs.

I wasn’t great in it. However, I used to spend hours trying to write the right code to complete the assignment.I think I entered sometimes the “flow state” as described by Mihaly Csikszentmihalyi when I worked on MATLAB assignments.

After University

After graduation, I stopped writing codes as I don’t need that for a living. However, my curiosity to learn didn’t die.

After the emergence of iPhone, android phones and the associated mobile phone applications which made life much easier and helped people including engineers to do their jobs more easily, I decided to resume writing codes.

That decision was in 2015.However, which programming language to learn?

Which programming language can be used in creating a visual user interface?

Which programming language can have multiple uses like mobile phone apps, websites and computer desktop software?

These questions were in mind when I was looking for the right programming language one decade ago.

I started experimenting with Visual basic for sometime. However, I felt its fields of applications will be limited and will not give me the ability to build software which can be used on desktop, mobile phones and on the web.

After spending more time searching for the best choice, C# was the right choice for me.

Why?

because C# can be used to build desktop software and that was one of my dreams.

Also, C# can be used to develop Mobile Phone Applications (Apps) through Xamarin and now MAUI frameworks.

Further to that, it can be used to develop Web Applications.

Learning Materials and Sources

One of the first books I used to learn C# programming is “C# Yellow Book” by Rob Miles.

You can get a free soft copy from his website:

https://www.robmiles.com/s/CSharp-Book-2019-Refresh.pdf

Rob Miles way of explaining in the mentioned book is straight forward and avoids unnecessary jargon.

The second most useful book is “FUNDAMENTALS OF COMPUTER PROGRAMMING
WITH C#” authored by group of Bulgarian programming experts.

You can get a free soft copy from his website:

I also,asked our department manager in 2017 to buy for me 2 books about c# when he was visiting his son in UK because in my country we don’t have these titles easily available.

While reading these books helped me understand the basics, I needed two things to sharpen my skills in programming: Youtube and Stack overflow.

On youtube, many software developers share their tricks and ways to solve programming problems and teach various programming languages.

I watched videos of many C# experts. However, Tim Corey stands out as one of the best C# content creators.

His way of explaining concepts in detail and the amounts of advice he shares in each video deserve appreciation.

You may check his channel in this link

https://youtube.com/@iamtimcorey?si=WdQbVeIKlT3t-LQ3

Stack Overflow is the best place in my opinion to find answers for your programming questions.

https://stackoverflow.com/questions

The way in which this website is organised , the easiness you get what you are looking for and the speed at which the members answer your questions are outstanding.

My Early Programming Projects

In programming, the best way to up skill is to work on software projects which meet your own work requirements or personal needs.

In this way, you will both learn a lot and enjoy in the same time.

One of the first projects I worked on was the “Duplicates Finder”. Its purpose was to find the files which are duplicated on my computer and list them before asking for the user’s permission to delete the extra copies.

Another project is “PDF Photos Puller”. Its purpose is to scan any PDF file for photos and then store these photos in a separate location.

Also, I worked on developing some programs which can help me in sizing the water pipes, calculate the friction loss in the pipes, etc.

In a future post I will try to discuss how I developed one or two of the above-mentioned software programs and what are the C# concepts which were used in writing these programs.

AI effect

Some of the readers may think, nowadays AI can write a complete software in seconds and with minimal effort and cost. Why do you learn how to write software code?

My answer is: I write software to enjoy my time and to meet my own automation requirements. Also, AI may not be able to exactly write the code in the way I wish. Therefore, understanding the code and its structure is very important.

Further to that, letting AI write the code on your behalf for long period will result in losing the ability to code in the long term.

Remember, no matter how the AI advances, it will not beat the human brain.

My plan to leverage my programming knowledge

I am still a hobbyist and not at the level of professional programmers who write high quality software. This needs a lot of practice.

Currently, I don’t have a specific plan to benefit from my programming knowledge. However, I am considering one of the following options:

  • Write a software to perform certain tedious engineering calculations and sell it as a digital product.
  • Teach other people the basics of coding online for free or against a fee

Programming skill for the engineers

Nowadays, millions of engineers from various disciplines use many commercial software to do their daily jobs.

If you are one of them; imagine the ability to write your own software to automate your own tasks or perform that unusual lengthy engineering calculation process which take hours of your time and no software in the market can perform it.

This ability can be acquired by learning computer programming. Therefore, I encourage the readers and especially the engineers among them to pick a programming language and learn it in their free time.

: A Mechanical Engineer Journey with Programming

Leave a Comment