ios - 學習好一門編程語言要關注哪些地方?
巴扎黑
巴扎黑 2017-04-17 13:25:19
0
4
233

如題所示,咋樣才算是學習好了一門編程語言?就比如拿 swift 來說吧

巴扎黑
巴扎黑

reply all(4)
大家讲道理

Title and content are two different issues...

Mastering (practical) programming languages ​​is often divided into two parts, the language itself and surrounding libraries/frameworks. These two parts complement each other and are indispensable

As far as the language itself is concerned, the most important thing is to understand the abstract mechanism/programming paradigm of the language: early languages ​​may be relatively simple, purely procedural, and purely object-oriented, while most modern general-purpose languages ​​are often multi-paradigm. It often supports both object-oriented and process-oriented, and is more or less functional. This mixed proportion and style determines the style of the entire language. Some languages ​​will have some "core concepts". If you remove them, they will directly penetrate the entire foundation of important concepts/mechanisms (such as JS prototypes, Java interfaces, C pointers), so it is a good idea to seize breakthroughs in these core concepts; Other languages ​​may not have such an obvious core. Such languages ​​often mix the characteristics of multiple other languages. You can start by looking at which features they have borrowed, what adjustments they have made, and which features they have not borrowed. The important thing is the "flavor". When writing Java, you must have a Java flavor (rather than trying to use Java to implement a subset of a dynamic language), and when writing JS, you must have a JS flavor (rather than trying to create interfaces, encapsulation, etc.). There are some flavors that all languages ​​pursue in common, such as readability and maintainability (excuse me for excluding brainfuck...), which can also be a breakthrough (for example, what features of this language enhance readability?)

The other part is the peripheral class library including the tool set. I often use the analogy of learning English. The previous part may correspond to grammar, and the class library is equivalent to vocabulary. What are the main application scenarios of this language? In these What built-in or open source class libraries are available in the scenario, what are the advantages and disadvantages of different class libraries, how to choose the appropriate class library, and how to make several different class libraries work harmoniously together. What kind of code is suitable to be extracted into a class library, and what should you pay attention to when writing your own class library. What common auxiliary tools are available for this language.


I think the main sign of learning a language well is that it disappears from your thinking. You find that your thinking process when thinking about how to write code has nothing to do with the specific language, "How to use XX to implement YY" Such questions have never appeared, nor have they interrupted your train of thought

黄舟

Master these:

  1. Language background and philosophy

    • What problems was this language invented to solve (writing operating systems? Scientific computing? Verification theory? Software engineering?)
    • What historical period was the programming industry in at that time and what was the situation like (laboratory, desktop, WEB)
    • What languages ​​are influenced by, what features are absorbed, and what features are created
  2. Basic syntax and concepts
    Starting from hello world, to small works and small applications.

  3. Application Development Framework

    • Learn about common frameworks
    • Create a framework for your application
  4. Tips and Traps

    • Performance optimization tips
    • Logic trap
  5. Language implementation
    Further deepen your understanding of language.

洪涛

I think so:

Think about what you want to do by learning it
Think about what to do with it
Learn grammar
Learn about API
Do what you have to do

巴扎黑

I think we still need to pay attention to the relationship with the system and learn more about system calls

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template