I believe learning computer languages has become essential in today's world. Even for architects. Computer languages are replacing the calculator and even the spreadsheet. I remember using a slide-rule a long, long time back and being impressed by its capabilities. Fortunately, I was able to abstract a principle from it: That the slide-rule was just a stepping stone and there would be more general purpose tools to come to our aid

Unfortunately, computer science has still a long way to go before a really powerful and all-encompassing language would be discovered. One that would serve multiple purposes equally effectively. In fact, my private opinion is that I wonder if such a language would ever be discovered. Today's reality is that one needs different tools for handling different situations. There are many paradigms that are being used by computer languages to solve different issues. So you have the OOPs (Object Oriented Programming Systems) paradigm, you have the MVC (Model View Controller) paradigm, you have the DSL (Domain Specific Language) paradigm. You also have the horn-clauses logic programming paradigm (in Prolog type languages). And so on and so forth. It would require another chapter to learn what all paradigms are out there in the computer world, and where those paradigms are appropriate for solving real problems

So, I think I've been able to convince you that you need a clutch of computer languages, and you should be able to quickly zero on in the language that is most appropriate for the paradigm you want to use, write a program in that language, get you job done and thus move ahead in life. Unfortunately, the stumbling block is the learning of the computer language itself

That is where one of the first skills you should acquire is that of BNF or Backus-Naur Form. One could call it a neat way of describing computer languages in a clearly understandable manner

... to be continued