Programming Diaries — Day 6 — Procedural Thinking

배우는 자(Learner Of Life)
3 min readDec 18, 2022

--

Getting back to learning programming

#CS50, #Computer, #Computer_Science, #Learning, #Procedural

Getting back to programming (1)

Finally, coming back with the programming that I had left for a while. I was intrigued with learning German, as I am quite keen on learning new languages, and I’ve been diving quite deep into it. As I desired to learn it as deeply as I could, with a huge interest in being able to read the language at as high a level as possible, I had been occupied with this language for more than a year.

This interest naturally transitioned into learning about a language that is not only used among humans, but also that of the machine: computer programming language. It is the language that has actually begun as means to communicate with computers, which are the biggest modern partners of today’s businesses and entertainment.

I happened to have taken on a new role in the embedded IT sector, not as a programmer, but as a project manager. Even so, understanding how the system works and how it can be developed is quite a necessity of such a responsibility. In the end, knowing how the machine works especially any form of a control unit, AKA computer, is an inevitable requirement for me to become more prospective professionally. Coming back to the world of programming seemed only destined for me.

Then what should be the topic that I should get back to first? As soon as realizing that the word “computer” begins with the letter “C”, I realized that it stands for a language that has been the most widely used in the world of programming. The language has been the reason why I avoided programming since encountering it in my university days, due to my incapability of grasping it, is actually the one that one needs to conquer in order to be really proficient in software development.

Now that I have been befriended with programming with the help of Python, an interpreted language thus far the closest to a human-form language, thus is one of the easiest ones to get to know, I felt that I am now ready to tackle more of procedural one like C. A procrastinated challenge has come back to haunt me in about 12 years!

Thinking procedurally

Thinking in a procedural way is not actually very difficult. One of the biggest paradigms of modern programming is “divide and conquer”, a programming methodology of dividing a problem into the smallest units to solve them individually and combine them to obtain the final wholesome solution. If you break down a problem into smaller tasks, then you can see a set of ways to solve it.

For instance, you are asked to pick up an apple under a tree in an orchard that is in your sight. There are a set of tasks to be completed to achieve the goal:

  1. recognizing the location of the apple
  2. moving towards the apple
  3. picking up the apple
  4. coming back to where you were.

Then you can see that, naturally, these little tasks would have a certain sequence. Listing out these tasks in sequence would naturally lead to a set of procedures. In this way, you are solving a problem in a “procedural” way, in which tasks are outlined in a certain sequence to achieve a goal.

As long as “C” is a procedural language, I presumed that understanding how to approach a problem in procedures after breaking down a problem into smaller pieces, could ultimately approach the fundamentals of the language that it is based on. I suspected that language cannot essentially digress from its innate nature, and machine language cannot be an exception to this truth either. Reminding myself of this fact helped me to build some confidence in facing C again.

I can’t wait to “C” again. It’s like the little math problems that I got intimated when I was young now seems like a piece of cake. Although whether the problems that I “C” again would be that easy, is a matter of a question that I can only find out soon enough, realizing that it is based on a set of procedures would hopefully be able to let me see a big picture of all relevant problems of C language.

So here I come. “C” you soon!

Reference:

(1) https://pixabay.com/photos/coding-programming-working-macbook-924920/

--

--

배우는 자(Learner Of Life)
배우는 자(Learner Of Life)

Written by 배우는 자(Learner Of Life)

배움은 죽을 때까지 끝이 없다. 어쩌면 그게 우리가 살아있다는 증거일지도 모른다. 배움을 멈추는 순간, 혹은 배움의 기회가 더 이상 존재하지 않는 순간, 우리의 삶은 어쩌면 거기서 끝나는 것은 아닐까? 나는 배운다 그러므로 나는 존재한다. 배울 수 있음에, 그래서 살아 있음에 감사한다.

No responses yet