Internet Workplace: How programmers choose a second language

Source: Internet
Author: User
Tags repetition

Many people love to argue about what the first program language should learn. Each person's starting point is different, some people think that the first language should be interesting, no entry threshold, some people think that the first language affects the future development of the way of thinking, should be rigorous and thoughtful, some people use practical as the starting point, think that depending on the (future) work and environment will be better.

It seems that the starting point is right, only in the field of program development today, developers are bound to learn multiple languages, the first language of a lot of controversy, but few people talk about the second language of the program to learn what.

Recall, in what circumstances did your first language begin, do you have a chance to choose?

Many people's choice of the first language is not the choice, most of the school designated courses or work needs, or to jump-job, choose the current is considered to be more job opportunities in the language.

If it is the language of the school's designated courses, it will probably involve the language in which the Professor lays the foundation for the program, or the language that can be applied after the completion of the profession. If the school has chosen to lay the foundation for the development of the language, and sometimes will be deducted from the big hat, and then some people are anxious to bring the practical language into the campus, but the industry practical language not only one, really to take the premise, it will result in a school a semester to learn a language, before graduation learned three or four languages, But the dilemma of how to do everything.

But after entering the job, you are often required to do in-depth research on the type of work you are responsible for. For example, the Programmer Inn www.proginn.com inside a high-quality developer three people think of the web back-end development: Obviously before the school is Java, and later work to do web development so very proficient in PHP ()

Turing Award winner Edsger W. Dijkstra wrote a letter to the University of Texas Budget Committee in 2001 (You can search 〈dijkstraon Haskell and java〉 to find a PDF connection to this letter), Urging each other not to use the functional programming language Haskell, which is used in the introductory course of university program development, to change to the imperative language Java, one of the reasons for its practicality is that, for the freshman class, most students are already familiar with the imperative program development, allowing them to face the functional language, allowing them to immediately discover , there are many things that have not been thought about in program development.

Dijkstra that Java is a hodgepodge, through a large number of advertising and aggressive sales behavior, to achieve the market acceptance; He said: "Not only is the violin shaping the violinist, we train ourselves to use the tools to shape us, but in the procedural language this has a profound impact, They shape the habits of our thinking. "

In addition to laying the groundwork or the practical outside of the study, some people are more selective, can be based on interest or sense of accomplishment, choose the first language, program development basis or practicality is not necessarily the main study, they believe that interest and achievement can contribute to the motivation of learning.

In today's diffuse everyone should learn the process of development, from a young age of the development of the program, some people try to select a few grammatical details, low operating threshold, the result of a significant return on the language, is to reduce the frustration of the new language, so that they can always get a sense of accomplishment in the learning process, thus cultivating the interest and even ability of

To re-recognize the language of program development

Depending on the starting point, you may have gone through the first or even many of the language choices (or no choice), if you have the opportunity to come back, if you have the opportunity to choose a second language now, or you are facing or suggesting his second language to learn what, you will choose?

Say is the choice, is not entirely autonomous under the choice, after all, the influence of the first language, sometimes like the mother tongue, or will affect our choice of the second language, my suggestion is that the first language, since the inevitable impact of the second language choice, on the long-term study, the second door is not as big as the first relativity, and can re-recognize the language of program development.

Many studies have pointed out that human use of language will affect our understanding of the world, people who use different languages will have different ways of thinking. In the field of program development, Dijkstra also talked about a very important point, programming language shapes our thinking habits. In using the first language, you are viewing the program world from its point of view, if the second language takes the same angle as the first one, the world you see will not be much different, find a language that can view the program world from a relative perspective, and see the other side of the program world.

If your first language is a static stereotypes language, then the second door tries to learn dynamic stereotypes, to understand the elasticity of dynamic training, if the first door to choose the dynamic training, then choose static training, to understand how static training more rigorous thinking of the pattern.

If the first language is an object-oriented paradigm, then the second gate learns a function-centric language. If the first language is imperative, then the second door will be to understand the functional style of the language. If it is the first door to a language with grammatical limitations everywhere, then it is a second door in a language that is always dependent on practice. If you choose the first language based on your job, then choose a second language based on your interests. If you enter the lower threshold of the language is the first door, then consider to find a door into the gate of the language to do as the second door ...

Choosing a second language in relation to the first door is often like a sudden encounter with a huge unfamiliar environment, forcing you to re-understand the beginning of the first language, and you have to rethink the world of program development from a relative perspective, so that you have the opportunity to reshape your thinking habits, can also experience Dijkstra in the letter, program development There are many things you have not thought of, because the re-understanding of the development of the program, you have the opportunity to start in the development of the program to repeat the practice.

Repetitive exercises in the world of programs

When practicing the violin, often have to practice a piece of music repeatedly, until each movement coherent and smooth, practice calligraphy, must repeatedly practice the Mingtie calligrapher, a lot of skills need to through repetitive exercises to familiarize themselves with the basic movements, to lay the foundation for more advanced skills in the future, in the same way, the achievements of each remarkable sport, Must have been practiced for more than 100,000 hours, so is there a repetition of this form of practice in the world of program development? A 〈kata (programming) entry on Wikipedia says code Kata can help program developers hone their skills through practice and repetition.

The first person to bring the kata concept of Japanese martial arts into the field of program development may be davethomas, one of the co-authors of the thepragmatic Programmer, He established Codekata (codekata.com), currently offers 21 short kata exercises, some exercises must be developed, but there are many different ways to write code, some focus not on program development, and in the way of thinking, the right answer is more than one, you can repeat these exercises, the purpose of this exercise Not the last answer, but the process of the practice. "The practitioner is not solving the real problem because you already know the solution," Uncle Bob said in the clean coder, speaking of Kata. Instead, you are practicing the actions and decisions needed to solve the problem. "

When you have experienced the baptism of the first language, for some questions, you may already know how to solve the language, so the second language in the choice, if you can choose a different language, you can take a different perspective to think, retrain your problem-solving actions and decisions. At this point, in addition to re-thinking from the grammar, but also from the language Community culture and practice to think, so that even the basic data structure and algorithms can be repeated practice and get different ways of thinking, my previous column (data structure and algorithm of seven thinking), talking about this kind of concept.

One year experience nine vs. 100,000 hours of practice

Some people oppose the concept of codekata, thinking that repeating the same problem set in the field of program development does not lead to any progress, and the control example that holds it is that someone who has been driving for a lifetime will not become a car God, and someone from a joking point of view, "I have only one year of experience, but it has been repeated for nine years. , but the 100,000-hour repetition exercise sounds very good, and the metaphor is not correct, and the emphasis is not on repetition.

Like the violin every time the practice, although seemingly repeating, but every time you have to try to find in the repetition of the action needs to improve, or more efficient by the string, and so on, only is the practice, if each time is only a simple, simply repeat, without any difficulty and challenge in the inside, That's just a year of experience. Nine years of repetition, if each repetition is added to self-challenge and difficulty, it will be 100,000 hours of practice.

Internet Workplace: How programmers choose a second language

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.