Today, I’d like to talk about programming language. The “second” is just a general term. Most developers and even beginners must have mastered more than one programming language.
I really started programming when I was a senior intern. The development mainly used C + +, which is the direction of game development. But the company is relatively small, so we should learn to write both the back end and the front end, so we are familiar with it. But in my opinion, there are not many concepts about object-oriented and functional programming paradigms. Later, I began to do desktop development, and my understanding of C + + and object-oriented programming is deepening day by day.
Later, I came into contact with crawlers, and I began to write in Python. Python code always looks like pseudo code. We can use very little code to realize what we want. Crawlers, data analysis, websites and scripts can all be implemented in Python.
With the deepening of learning, I began to think about the programming languages I had learned. Some of them are open and close, some are simple and lively, and some are deep and thick. They can be divided into interpretive type and compiled type, as well as non type, strong type, weak type, dynamic type and static type. There are different object-oriented programming paradigms, command-oriented programming paradigms, and so on. But they have the same parts. So, use the right programming language to do the right thing.
I’m really lucky
I’m glad I met those programming languages I’m familiar with. They brought me a lot.
Let’s start with my old friend – C + +. C + + is my first familiar programming language, and because I like game development, C + + is my longest used programming language. I mostly use it to write some fun apps, fun game effects, and of course, I rely on it to eat.
Finally, let’s talk about python. Crawlers are the most frequently written in Python. For example, I prefer reading novels. I have used Python to climb more than n 5-star novels of a website. There are also some special scenes in the work that need to use the little knowledge of reptiles, if you want to be lazy. My blog maintenance script is also written in Python. Occasionally I use Python to do some simple data processing and analysis. Python has helped me a lot both at work and outside of work.
Make friends with programming languages
I’m not a diehard fan of a language. For example, I can’t shout “PHP is the best language in the world”. I can learn anything useful to me. The more programming languages you learn, the faster you can learn any other new programming language.
My colleagues have recommended a book called “the marrow of code”. This book combs the “characteristics” of programming languages from the perspective of the derivation and development of programming languages and the comparison between mainstream programming languages. These characteristics are usually necessary for all programming languages, whether compiled or interpreted, dynamic or static.
Usually when we learn a new programming language, we should pay more attention to these “language features”:
♦ Variables and operations
♦ Process control
♦ Containers and strings
♦ Error handling
♦ Garbage recycling
♦ Programming paradigm
We should focus on the implementation of these features in programming languages, and then compare them with other languages we have learned.
Take the object-oriented of Java and python as an example. First of all, we should pay attention to the object-oriented definitions and rules of these two languages. Then we can compare their differences. For example, if we want to implement a window that can display content, and want this window to have scrollable features. In Java, we usually define a window class and then define an interface with scrolling characteristics to implement it. But in Python, we can completely define a window class and a scroll class, which can be implemented by multiple inheritance.
So why is there such a difference? Why doesn’t Java support multiple inheritance? In fact, this is just a different solution to the conflict caused by diamond inheritance in multiple inheritance in different languages. As for the problems related to diamond inheritance, it is not the focus of this article. You can search by yourself. Here is just an example.
If we can write great code with the basic features of one language, then another language can do the same.
How to choose “second” programming language
Finally, let’s talk about how to choose the “second” programming language. Here are some suggestions:
✍ choose a language with different or even opposite programming ideas from the “first” programming language:
For example, if you have learned a static type language, you might as well choose a dynamic type linguistics to facilitate learning through comparison and experience the charm of different programming ideas.
✍ Choose a “second” programming language that can expand your ability:
For example, a is an Android Developer, so a can choose to learn IOS development and front-end development to expand his ability circle.
✍ Choose a “second” programming language you are interested in:
The first language is used to “eat”. Of course, you can choose one you are interested in. For example, if a is a front-end engineer and a is interested in machine learning, you might as well learn Python and machine learning related algorithms.
Of course, in fact, more than half of the skills of computer programming are not reflected in the language, but the idea of solving problems, that is, how to use the program language to solve problems. The ability in this aspect is not only to see how data structures and algorithms can be cultivated, but also to write more, practice more, learn more, open source and persevere.
Have you learned a lot here~
If you really want to learn programming, Xiaobian recommends meC language / C + + programming learning base [Click to enter]!
It’s all about learning programming, guys. It’s still simple to take you in. Learn together and cheer together~
There are many learning materials and videos, I believe you will like it!
Involving: game development, common software development, basic programming knowledge, curriculum design, hackers, etc