I firmly believe that programming is important for everyone. Yes, I am stating everyone which includes IT and non-IT-related jobs. The ultimate reason why programming is important is that it teaches you how to think structurally. Seriously, though, a capability to think structurally is really beneficial whether in a timely manner or effort manner.
If you are working in an IT-related industry or IT division in a company, you may find programming is a must, probably that is why you are hired for. But the question is, is it important for the non-it-related jobs that maybe mostly be interacting with offices application? The answer is yes, you also need to learn to program.
Let me tell you why, and you can leave this post after reading this but this is really important for you to know and hopefully can encourage you to start learning to program.
- You will use more of your time to think and look for patterns. Why patterns are important? Because patterns make you get bored. When there is a repeatable pattern, there is a red sign that your job is actually can be replaced by computers. We are human, we are not computers. We are smart and more valuable rather than doing repetitive tasks (like copying a cell to another cell). Using programming, your brain will always be exercised and increased your critical thinking capability. The more you code, the more you be sensitive about repetitive things that can be a precaution for computer replacement.
- It is a lot easier when it comes to additional tasks. Sometimes there will be sudden changes in the document you are working on. Maybe it should be referred to other documents or maybe it should have some conditions, etc. By using programming, you will manage them more easily because programming is structural. You can add as many conditions as you want easily without having to concern about anything else. From the example below, I will tell you the real-life example when programming actually saves me a lot of time.
- It is addicting, It increases your confidence. Basically, it is really addicting. Once you can automate your job, you will be more confident and have some sort of encouragement to do it on the more complex task. You can see your job is automated with more precision and speed (if your code is right obviously) when your colleagues are doing it manually and use their full concentration. The coolness is really maximized when you can execute your code and leave it to work when you treat yourself. Really, just try, it is addicting.
- It is less stressful. I am not saying that programming is easy, but I firmly believe that it is better than you do some repetitive task that requires your maximum concentration. Maybe you are working on your code beforehand and it makes you feel stressed, but when it comes to the end, your program works, you can do tasks a lot faster than people who do that manually. Your productivity rate is increasing significantly but your mind is not stressed because the computer is doing it for you.
I know a lot more reasons why programming is good and how it is beneficial for me, but the four reasons above are appealing enough for me. My message for me before you leave, please, start learning how to program and let the computer do the task for you.
For people who are working mostly with excel and willing to start learning to program, I recommend you to learn python especially using the pandas module. I use it every time for working around excel files, it is really useful.
A Real-Life Example
When I write this, I am working for a company that mostly working with excel. One day, I was asked to map a document to another document into an excel file. I will use an example. I find a document on the internet that talking about the NIST cybersecurity framework. There is a downloadable excel and you can download them.
Inside the excel, you can find some data (that is not the point of this post) and there is an interesting part that is informative references. I assume that the informative references section is telling the details about each of the subcategories. So, I started to look for these documents but unfortunately, I did not find the NIST SP 800–53 rev 4 in the excel file. I found rev 4 documents in XML format. You can do the XML format as well and programming will be more even useful. I have discussed recursive programming and information extraction from XML in this post. I found the rev 5 in the excel file instead so please allow me to use the rev 5 for this post the only purpose.
So the goal is to make an excel file that maps these subcategories into the details from NIST SP 800–53 rev 5. For example, subcategory ID.AM-1 must be mapped to CM-8 and PM-5 including the details like the control, the purpose, and etc.
Just from this case, we can easily recognize that there is a repeatable pattern. In order to accomplish the goal is by
- Take the NIST SP 800–53 rev 5 control (the PM-5 and CM-8)
- Open the NIST SP 800–53 rev 5 and look for PM-5 and CM-8
- Copy all the details about both of them into our new document
- Do it for every subcategory (which is 108 times, Good luck!)
Do you see the depressing repetitive task that we have to do? That is why programming is important. Please take a look a little longer. PM-5 and CM-8 is one of the few. There are several subcategories that referencing around 10–15 sections in NIST SP 800–53 rev 5 documents.
Long story short, I did all of that (of course with programming), it was easy (because I can just execute them). NOW IMAGINE. How if My manager said that we do not need all of them. Remove every item that has duplicate NIST SP 800–53 rev 5 controls. For example, Subcategory A has PM-5, PM-6, PM-7, CM-8, CM-9, and the other subcategory let’s consider subcategory P has the same controls. I NEED TO REMOVE THEM. OMG. IMAGINE IF I DID IT BY HAND! FIRST, I WASTED MY TIME MAPPING ALL OF THEM (INCLUDING THE DUPLICATED CONTROLS) AND NOW, I HAVE TO LOOK ONE BY ONE WHICH SUBCATEGORY HAS THE SAME CONTROLS. That is how programming saved me because I did not do it by hand, I just tell the computer that I only need the mapping of subcategory with unique controls (and then I fell asleep literally lols).
So this is the end of part 1 the non-technical part. I will post the technical part on how I did the code and how did I modify the code to match the circumstances above. I really hope, you are encouraged to start learning computer programming, seriously it helps you and add some flavor to your working life. To GOD be all the glory! Soli Deo Gloria!