Programming language learning summary

Learning a language goes through the following steps.

1. Basic grammar

Learning anything is a process from the outside to the inside. The same goes for learning a programming language. For a programming language, "tables" are the basic vocabulary and syntax.

For the learning of basic grammar, we can watch some short and systematic tutorials.

2. Coding Practice

The so-called "on paper is ultimately shallow, and you must do it without knowing it". Not much to say here.

Master the basics and keep practicing

The learning content of each programming language will involve:

Runtime environment data types (numbers, strings, arrays, collections, mapping dictionaries, etc.) Expression functions Flow control classes and methods

Wait, different languages ​​also have some different characteristics, which can be deepened through comparative learning. And through a lot of practice in-depth understanding, to achieve skilled use. Later, you will have to learn more about object-oriented programming OOP, functional programming FP, concurrency, exceptions, file IO, network, standard library, etc., and supplemented by continuous practice, these contents will allow you to truly enter the programming field and do it. out the actual software.

Believe in the 10,000 hour rule, No Pain, No Gain.

When learning a new language, use your previous language skills, but keep an open mind. These are covered in Cognitive Psychology. Interested readers can go to find out.

3. Skill is close to Tao

Basic grammar learning allows you to quickly get started and apply practice. The attention to skills and pits expands your knowledge to a certain extent. Systematic study, on the one hand, will further expand your knowledge. On the other hand, it is also conducive to the formation of your language knowledge structure.

Any mature language has its own unique ecology. This ecosystem includes: frameworks, extension packages, solutions, patterns, specifications, etc.

In the process of continuous coding practice, we gradually become proficient in using many API libraries and frameworks, and we continue to step on and fill in the pits, look at the source code, solve problems, and deepen our understanding of the language. At the same time, we will look at some excellent framework source codes.

If we still have energy, we will learn the lower-level things of the language, not just stay at the application level. Such as the algorithms and data structures implemented by the collection classes in Java, such as how the JVM executes Java code. Such as the relationship between Java threads and operating system threads. And some operating system knowledge.

Finally, reach a state of ease. At this level, you can basically enter the ranks of martial arts masters.

Paoding Shidao said to him: "What the minister is fond of is the Dao, and he has advanced into the skill. When the first minister was dissecting the ox, all he saw was nothing but an ox. After three years, I have not seen a whole ox. The ministers meet with the gods but not with the eyes, the officials know the stop and the gods want to act. In accordance with the principles of heaven, criticize the big but guide the big, because of course, the technical scriptures are willing to be unparalleled, and the situation is great!

The "cow" here can be understood as the various programming ideas, programming paradigms, programming methods, programming skills and so on. Finally, to achieve the state of "the wonderful use of it is in one mind".

4. Create a new world

The essence of programming is to create the world.

Those who have reached this level are basically the world's top titans.

For example, prominent figures in the history of programming languages ​​(the following is an incomplete list):

约翰·冯·诺伊曼: 操作系统概念的发起者
肯·汤普逊&丹尼斯·里奇: 发明了C和Unix
约翰·巴科斯:发明了Fortran
阿兰·库珀:开发了Visual Basic
詹姆斯·高斯林:开发了Oak,即后来的Java
安德斯·海尔斯伯格:开发了Turbo Pascal、Delphi,以及C#
葛丽丝·霍普,开发了Flow-Matic,该语言对COBOL造成了影响
肯尼斯·艾佛森:,开发了APL,并与Roger Hui合作开发了J
比尔·乔伊:发明了vi,BSD,Unix的前期作者,以及SunOS的发起人,该操作系统后来改名为Solaris
艾伦·凯:开创了面向对象编程语言,以及Smalltalk的发起人
Brian Kernighan:与丹尼斯·里奇合著第一本C程序设计语言的书籍,同时也是AWK与AMPL程序设计语言的共同作者
约翰·麦卡锡:发明了LISP
比雅尼·斯特劳斯特鲁普:开发了C++
尼克劳斯·维尔特:发明了Pascal与Modula
拉里·沃尔:创造了Perl与Perl 6
吉多·范罗苏姆:创造了Python
......

These people are creating a wonderful tower of thinking logic and creating a new world. It is these leaders in various programming fields that make our world a better place.

 

Forward: http://www.kotlindoc.cn/chapter/easy_kotlin_chapter_1.html

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326237150&siteId=291194637