Good programmers should be familiar with several programming languages

Source: Internet
Author: User
Tags xslt

If you want to become a good programmer, or even an architect or Technical Director, it is not enough to be proficient in only one programming language. You should also learn several programming languages in common fields, just as we want to become a senior talent, we must not only speak Chinese, but also English, and even German and Russian. In fact, every language gives us another way of thinking, the same is true for programming languages.


  1. Assembly Language

    The CPU of each architecture has its own assembly language. If it does not involve any underlying modification, you can understand x86 and understand the working method of the machine language to optimize the core code.

  2. C

    It is applicable to almost all fields and should be the most widely used programming language (the number of developers is not the most, but the number of fields and projects involved should be the most, currently, no data is supported ). The first programming language I have come into contact with, except C ++, is also the most popular programming language, a very beautiful language, no matter in terms of its syntax, programming ideas, operating efficiency, flexibility, and so on, it has a unparalleled advantage. Although it does not directly support object-oriented language features, however, many projects also apply the object-oriented idea to the Development of C language applications. C language has been born for more than 40 years and has been widely used in various fields and projects. This is a miracle in itself, including C ++, Java, C #, and JavaScript.
    And many other mainstream programming languages.

    It is not difficult to learn C language well, but C language is a programming language that works closely with the operating system. Due to the complexity of its running environment, it must be familiar with its environment first, therefore, programmers are required to be familiar with the operating system and even hardware. Therefore, it is difficult to learn C language well. In fact, it is too difficult to use C language well. For example, pointers are not difficult, but they may cause damage to the system memory and damage the runtime environment, which may make programmers feel difficult.

  3. C ++,

    Since it is a superset of C language, it basically includes all the features of C language (c99 standard), thanks to the wide application of C language, almost applicable to various fields, a variety of operating system platforms, I personally think it is the most difficult programming language, but once proficient, it is easy to learn other languages, basically invincible. The difficulty lies in its powerful and flexible functions. The difficulty of learning it well is: the difficulty of C language + C ++ object-oriented features + object-oriented programming. C ++ is my favorite programming language, and its learning process is long. However, once proficient in C ++, It is very fast to learn any other language, it runs through the entire process from hardware to objects, and learns to easily let people understand all the details of programming languages.

  4. Visual Basic (. NET), Delphi

    Quick Development languages on Windows, especially for applications with many interfaces, are developed quickly. In fact, C ++ builder has extended C ++ and can also be used for rapid development. However, since C # was available, it has seized a large part of the rad market, fewer users are used.

  5. Java, C #

    Both of them can be regarded as a higher-level programming language than C/C ++. Generally, they are not directly compiled into machine code. They can be implemented across platforms by running virtual machines or similar virtual machines. Their difference with C/C ++ is that their compilation process is divided into two phases: Compilation and runtime compilation. In fact, the first compilation does not directly generate machine code, instead, it generates an intermediate code that is easy to compile into a machine code, and uses the so-called runtime Compiler (Just-in-timecompiler) during actual running) compile the intermediate code into a machine code and execute it as needed. In fact, the first compilation is more accurate than the translation.

    The wide range of Java operations is not unknown, but its disadvantage is that the UI support is not very good, no matter on which platform the interface is not very good, especially on windows, few applications use Java to implement the interface; C # is Microsoft. the main language of the net strategy can also be widely used as Java, including desktop and Web applications, and the support for the UI is just now. Although C # has a Mono Project in the Linux camp, although it is hosted by Novell, the open-source project can be as powerful as Microsoft and has very few practical applications. Therefore, C # is not ideal for cross-platform platforms, limited to Microsoft's Windows series (including mobile applications ).

  6. Javascript, actionscript

    After the web development front-end scripts, especially Ajax, are proposed as a proprietary term, the front-end scripts not only provide some simple assistance, but also become the main implementation form of webui, many popular framework projects, such as extjs, jquery, and dojo, were created. These languages are different from the previous programming languages in terms of their weak type characteristics. They are dynamic languages. Their design ideas are somewhat different from those of the previous ones. Although they all support object-oriented languages, their implementation methods are slightly different. Learning them will broaden our thinking and help us better understand programming languages.

  7. Shell,VB script,Python, Perl, Ruby, PHP, and Tcl

    The scripting language, especially shell and vsscript, is a lightweight scripting language and is generally only used for Batch Processing (although they can complete very complex functions ), especially shell (to be accurate, shell is not a programming language, because it is exclusive and has been replaced for the time being); in particular, shell has the least scope of application, in addition to batch processing, the following four types can also be used for Web programming, and Ruby is very popular for web development.

    Python is my favorite one. It increases the readability requirement of the program and adds the code indentation to the syntax category. This should also be the trend of programming languages, in the future, you may add comments to the comments scope. For example, you must enter comments for each class and function. Otherwise, the compilation fails, this helps to better unify and execute a project code specification.

  8. Lua, Matlab

    A niche programming language, Lua has an embedded script engine, which is very lightweight. The so-called M language of MATLAB is similar to Lua, which is a specialized scripting language of Matlab.

    There are some specialized scripting languages in different fields. I really hope these languages can be one.

  9. XML, HTML, XSLT, CSS

    These languages are another type of programming language, which is represented by tags, especially XML and HTML, which are static Markup languages. XSLT can have a dynamic meaning. It is a derived language of XML. It can convert XML documents into text documents in other formats, which makes it very convenient to display data. XML is used to represent data, different XSLT is used to display different styles.

    Strictly speaking, CSS should not be regarded as a programming language, but it does implement XSLT-like effects through cooperation with HTML, but it is not yet independent from HTML.

  10. OpenGL and VHDL

    Hardware Description Language for integrated circuit design. They are also programming languages, but the product after compilation is not a program similar to the instructions executed by the CPU, but a solution for restructuring and restructuring the execution organization.

  11. LISP, Haskell, Erlang

    Functional programming languages, which regard computer operations as mathematical function computing and avoid states and variable data. They are another programming model and a programming idea.

    Programming languages are far more than that, and not a programmer must be proficient in all the programming languages mentioned here. I personally think that every class should be familiar with one, at least understand its programming ideas, and can be understood, and for some important programming languages, should be mastered, not only to read but also write including: C, C ++, Java, C #, JavaScript, etc, however, you may focus on different areas of your work and select other programming languages based on your actual needs.

  12. SQL

    Database is required. Although the standards are available, different databases still have their own features, or the implementation standards are incomplete, such as cybase, DB2, Oracle, MySQL, SQLite, and SQL Server, but as long as you have mastered the standard SQL, you only need a simple manual when using other languages.

    We do not recommend that you study a programming language every year, ten programming languages, and ten years of experience.

After:

First of all, I would like to thank all the netizens for their discussion. The title may be "Mastering", which is not accurate and has been changed to "familiar ".

The programming languages listed here do not need to be "proficient". It is absolutely impossible, and I have never understood the degree of being "proficient ". The main language used by each person in all fields is also different. The language used for work must be "proficient". In addition to the language used for work, the following languages must be mastered: c ++ (including C), Java or C #, SQL, JavaScript, should be familiar with: Perl, Python, XML, other can be selected based on interests or application fields.
In fact, after mastering these languages, I have transformed from a junior programmer to a Senior Programmer, the knowledge of design patterns, algorithms, operating systems, and microcomputer principles has basically reached the level of a Junior Architect, if your communication, innovation, management, and other qualities are hard enough, you can still take the CTO position. This is also the technical path of the programmers I recommend.

The programming language is actually a tool. It is very important to use every tool whenever you use it. It contains a lot of knowledge, skills, and ideas. Every time you learn a programming language, you don't learn grammar, but the essence of programming language. You have to think about solving problems and focus on your thoughts.

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.