Why Learning Programming

This is a frequently asked question. We can see the answers or propositions grouped into certain categories and sliced in different ways from different perspectives. Giving a comprehensive survey and reasonings is beyond my capability, so I will just give some highlights that occur to me from long time ago until recently.

Obviously it is more urgent to ask this question now than ever before. It has been a while that CS profession receives relatively higher pay, but it also implies higher competition when it attracts more people. If CS jobs stay abundant and highly paid, most people can remain happy. But the situation is becoming more unclear these days, because we start to see the impressive capabilities AI demonstrates, and what AI may be able to achieve in near future.

I cannot clearly predict what the world is going to look like in the 10, 20, and 50 year time frames, in general or for the software profession in particular. If you plan or bet your career based on what are needed most in the future, it is tough because the paths and timelines AI enters and influences different fields can vary. One aspect I will raise here is based on the assessment of yourself:

  • If you are very good at STEM, logical reasoning, and abstract thinking, then jump in and learn hard CS. You can win by outperforming others.
  • If you enjoy STEM or at least don't mind learning them, just learn programming even though you are more interested in other fields, because programming or logical reasoning can help in many many ways. You can choose to learn just basics or more advanced depending on your time and energy.
  • So who do not need to learn programming? Even though you have strong interests on something in which programming plays a minimum role, you would still want to make use of software tools, and having basic programming skill can help. What if later we can ask AI for help instead of programming ourselves? Until the era of AGI comes, you are still kind of programming when interacting with AI. But if the lesser AI in near future can already answer perfectly and perform automatically for the field you are aiming at, please consider switching to another field.
  • If for some reason you want to be the boss and let people do the CS work. It is a different world to me so I am not going to suggest anything.

In summary, if you have strong preference on some domain that is not CS, by all means go for it and train yourself programming to augment yourself. Try to achieve high status in that domain, or in the CS field (compared to others in the domain), or better both. So it really is just how deep you want to learn programming.

The Art of Programming

For me, whether AI can outperform in programming or just do a mediocre job, I'll still want to learn programming, and to entertain myself with the various "human-made" technologies and knowledge accumulated over the years. I can have a taste of some topic I like, and don't have to dive too deep into it unless necessary. To me, programming is highly abstract and there is virtually no limit about what can be conceived in our mind and be realized in the physical world in an impactful way.