Programming is often seen as some tedious beast that only people with IQ’s off the charts can do where you need a doctorate in Mathematics and Computer Science, a severe case of acne and glasses with lenses like they have been liberated from a Google Cardboard VR headset.

Image result for excited nerds
Computer Science Class 2016

A lot of people also think that Programming is impossible to learn, they write one line of code, or get discombobulated by technical terminology and think…”Meh, this really isn’t for me. It’s all a bunch of gibberish.”

This is just not the case…

Anyone can learn to programme. Yes, it takes time to learn. Some people have an affinity for the art and pick it up right away. Some people (including myself) find the concepts tricky to understand and frustrating and take a little longer to grasp this “scary” monster.

But, just like anything, if you have a drive to learn and also have a goal in mind for what you want to create with it then you will succeed.

So, why learn to Programme?!?

Well, I’ll start off with why I learnt (and am still learning all the time).

I had the same misconceptions as mentioned earlier. I thought Programming was something only “smart” people did. I thought it would be cool to learn (mostly so I could prank my mates and family), but never thought I would actually learn it.

I work in an engineering firm and use CAD software every day, if you also use programs like Revit or Autocad or Rhino (or any program to be honest), you will also have asked the same question…”WHYYYYY can this software not do THIS?!?!”. In our minds the task we want to do is so simple but there is no button that does what we want and frequently the task can be done, but with a stupid amount of user legwork and repetition, but with a stupid amount of user legwork and repetition – see what I did there?

So, I had these questions frequently, and getting frustrated with how long some tasks took and how there should really be a Built-In tool for exactly this scenario. I submitted loads of feature requests to Autodesks. Have they been added? Erm…No. To be fair, their software is bloody good and very feature rich but being a user there is always something missing.

Every time I looked online for a solution, you would see some programmer pop into the thread and with all his infinite wisdom, would say one line…

“Oh, you can do that with the Revit API…” 

…and they would leave it there and never return or if they did it would be…

“PM me for a quote… 🙂 “

…just not going to happen mate! So, I started researching this thing called an API (Application Programming Interface). Turns out it lets you access some of the programs internal workings with code…BUT, I DON’T KNOW HOW TO CODE!!!

Alright, challenge accepted. I know what I want to do, I just need to learn how to do it. So, with the Revit SDK installed I started perusing their examples and watching C# tutorials on YouTube. I spent many late nights and lunchtimes figuring stuff out and tinkering with SharpDevelop and the examples. I will say, at first, it is very frustrating…seriously, trying to get to grips with concepts like classes and methods/properties was infuriating when you thought you understood, but the computer says no. But I had just started and learning takes time and determination, I continued to learn and when you get your first bit of code to work it is unbelievably satisfying (until it breaks! Haha!).

Image result for programming quotes

This was all about 5 years ago but I code almost daily now, because it is just sooo powerful. Once you get it, there really is no limit on what you can do with it. I am by far no “Programmer”, but even with the basics you can create something powerful.

Why should YOU learn to programme…?

You should learn for the same reasons I did, or for your own reasons. But just know that it is one of the most useful things a person who uses computers daily can learn. You can shave off hours of time from your (and other people’s) day or week. You can do overly repetitive tasks in seconds. You can get that software to do what it just can’t straight out of the box and you can (but shouldn’t) prank the hell out of people. Most importantly, you get to know the software on a completely different level and Programming, as Steve Jobs said, teaches you how to think… (logically).

Are you up for the challenge? If you are, I have chucked some links below to good places to start off…


Microsoft Virtual Academy

Dot Net Perls

Tutorials Point

Revit SDK/API – My First Plug-In

Visual Studio – Free

The Building Coder – Jeremy Tammik


Pluralsight (Subscription based)

Lynda (Subscription based)

Boost Your BIM – Learn to program the Revit API