It is said that everyone should learn to program, so what language is good to learn?

Source: Internet
Author: User
Tags learn php
Nearly 30 years, the current work is a public institution accounting, usually do not use programming.
But interested in programming, high school games to play bored, self-study to do the site, will be a bit of HTML, PHP, after graduating from high school a few years, by doing a website to bring income, a hundred thousand of, pure interest into a semi-career, but not good, because once work too busy, not intentions, to delay, this four or five years gradually did not move Before the site is mainly by the CMS and seo,php belong to the level of not getting started, you can get a notepad.
Now the social development is too fast, oneself also have a bit of interest, want to use work leisure to a linguistics good, on the one hand to satisfy interest, more important is to prepare for a rainy day, perhaps in the future can come in handy, do not know what language to learn?

Reply content:

Accounting of public institutions ...
Do you know what a public institution accountant has learned before (about 2000 years)?
Visual FoxPro
There have not been so many, so strong related software, many times also have to write some automated scripts for the needs, Visual FoxPro is good, with SQL statements, intuitive, timely feedback, at that time also can greatly improve work efficiency (then the XLS can be easily imported into).

The following personal views:
For potential job needs: VBA in Excel (tools to drastically reduce repetitive labor), Visual FoxPro (Low priority, after all, too old, though it's hard to say that there's no old data to handle with this)
For their interests: what is possible, learn python to write a crawler, toss a Raspberry Pi to do a clever controller, make a mobile phone on the small program to facilitate themselves, toss a blog to record, and so on, and so on, the focus is that their interest + have a willing to learn the heart. Accountant, how do I feel that Excel VBA with Shunliu can greatly accelerate your daily work?
Repeat more than three times to write code to do, and see how much of your work is done by writing code to learn Python or Golang. Do the front end of the site or third Kind bar, HTML, CSS, JavaScript.
and then Python.

Why learn python first? Because of its mature module, "quick".

Almost, if you want to go to the "bottom" to explore, C. Don't be abducted by C + +, the one who learns to be entertained is no problem, but the pit is big.

C's "module", "Foundation" is also very mature ... But generally speaking C, "not effective." Because C's "foundation" is the operating system kernel. C's "API" is basically a system call (that is, advanced programming for UNIX environments). Here, how much to be able to understand the C compiler spit out the assembly is how it happened. Then contact the operating system kernel, compiler, binary tools, and so on, to find out how these "bottom" gadgets work (meaning, "programmer self-cultivation", "deep understanding of computer Systems", "Linux device Drivers", "Linux kernel design and implementation", "deep understanding of the Linux kernel , "Deep Linux kernel Architecture" ...). So the pit of C is actually very big (do not let C + + to turn away is this meaning, C philosophy is-things are basically dry, as long as you can chew ... C + +, it is not necessarily the case, instead of wasting time on C + + those odd kinky ingenuity, it is better to chew a little dry ..., because if you read the kernel source, you need to Makefile, Shell script, linker script, ASM must understand, Hardware architecture and the like of course, but not urgent, anyway, write the kernel of the book How many will mention, and then to check the relevant knowledge points on the line, is a time problem.

Also, the basis of data structure and algorithm of course also to play in this place, the data structure can at least write (copy also) find binary tree, red black tree, can build a graph, the basic sort of the algorithm, sorting, sorting, grouping generation, DFS BFS these basic search will be.

C is unpleasant. Generally speaking, womb certainly does not write web crawlers or anything. However... Maybe it's all worth it.

Make clear the recursion of C. function stack frame How to build how to destroy, translated into the sink code is how, how to convert arbitrary recursive to stack structure + cyclic invariant. It is then possible to deduce the conclusion that any loop can be expressed recursively, but recursion cannot be expressed by loops without a stack structure-that is, recursion has a stronger computational power than a loop (without a stack structure), in fact the computational power of recursive functions is equivalent to Turing. Here-traditionally, it has presenting illegal weapons the door of computer science/art.

After the introduction, you can play casually.

You can write an interpreter first to play. This has to be a bit of the basic knowledge of automata (automata theory, Language and computational introduction), and then casually find a compiled book ("Compiling Principle"), a not enough words add several ("Compiling principle and practice", "compiler construction"), probably swallowed over again. Look for a book that teaches you to write an interpreter, such as "home-made programming language" or something. then copy it. After copying and then look at the principle of compiling, and then copy. Probably so.
This means that you can invent a computer language yourself, and while you may not have the taste or the right to do it, you are able to write a computer language that is complex enough.

And then just play.

For example, Lisp is recommended to play scheme first.
Prolog, Haskell, Ruby, io, Erlang,... You can have fun when you're free.
Anyway, it's not going to take much time to learn any language at this time. If you just want to use, in fact, this time any language is not to learn, temporary learning, imitate the next style, the basic can write Smarty pants. That means it's really fun.
You can write your own language anyway. This time, is to cultivate "taste."

Then casually play, such as the kernel, is not proficient in fact, but to find the words can also find the code where, the compilation of Something in the theory of a piece of code can actually be written more general or more refined; a data structure and algorithm implementation is more interesting, think how to write, compare how others write ... It's about doing something like that.

Alas, it is not enough to actually play. At this level, you can't say it's low, but it's not too high. The unknown is still so much. However, the joys of life may be here. I suggest Python

Not recommended to learn PHP, Java, Python, javasript such language, not to say that these languages are not good, if you want to find a specialized software engineer job, that learning these languages are not two choice, with these languages of the company more Ah, work easy.


However, the master is an accountant, learning programming mainly because of interest and practical help to work, so I suggest to learn Windows system under the. NET technology, and the preferred language under the. NET Platform C #


Why learn the. NET platform and C #


The main reason for learning to program is that one of the reasons is interest. That is, the interest, that can not consider employment, should learn the coolest and most powerful language, obviously, C # is the best choice. Now in the software development industry so many programming languages, to find out a grammar is the most cool, the most convenient, the most powerful language, it is not C # mo.


Of course, now some of the functional programming language, grammar can crush C #, but I think that thing is really not suitable for non-professional players to play with, learning functional programming language is more difficult than the general programming language to the big, rather than use these energies to the simple things playing fine, after all, non-programmer's main work is not programming. However, if you are interested in functional programming, F # in the. NET platform is a good choice.


The 2nd is to be useful. The main question is already 30 years old, in accountant this profession has cultivated for many years, believed that the switch to become the programmer already is impossible. That means you don't have to learn the hottest language in the IT industry. But to pick practical learning, there is no doubt that C # is still the first choice. With Microsoft's technology development software has a feature, even on different platforms, the concept of programming is consistent, in other words, if you learned to develop a website in C #, then you can very smooth transition to developing Windows client applications in C #, WINDOWS10 UWP apps (including WindowsPhone), Windows shell scripts, and more amazing, you can also use C # to develop Android, iOS apps, this is a Korean eat all over the sky, a language covering the whole platform, ask the world except Microsoft's. NET and C # Who else can do that? As long as you learn. NET and C #, what software will be developed in the future to develop what software, install forced work two not mistaken.


Admittedly, Python and Java are probably more than. NET in terms of the number of libraries, however, the absolute large library. NET is provided by default, and is enough to develop any features you want, at least I've written for many years of. NET programs and never ran into a problem with libraries that weren't enough. And the biggest problem with Python and Java library is the version problem, I use Python and Java in the process of the most problems encountered, the version of the Web download library and the local installation of the operating environment is inconsistent, resulting in a variety of inexplicable seconds is a maddening error, these problems in. NET is not touched. In addition,. NET documentation is also complete, no matter how much nook and cranny, on MSDN there are records.


There is a development environment, if the development of the program in a different language, you must install a bunch of things such as running environment, IDE, server and so on, but also need a variety of configuration, for professional programmers This is nothing, although the main problem is not small white, but it is still a lot of effort to engage in these things. However, the. NET installation environment is the inverse of the human nature, an installation package, click the mouse, all the things you need to use will help you ready, just need to be used on it. Moreover, learning other languages, often need to learn some of the use of Linux, which is an additional pressure on non-professional practitioners, if learning to use. NET and C #, there is no such concern, the use of Windows Server and the use of Windows PC is not poor.

Finally, write code also pay attention to experience ah, hit the code also to knock the fun, so, with what the IDE is very important. If the IDE in the market to make a mountain of the sword, that number one non-Microsoft's Visual Studio Mo is not, the use of VS coding plus debugging that the cool, is difficult for other Ides.


So, don't dwell on hesitation, hurry up and learn. NET and C #

I'm not here to contradicting. I suggest learning English ... I am now writing Python code, in fact really should not recommend to you, in what language more is their own business.
If you can php, or continue to php more appropriate AH. Like to learn C at the bottom, the assembly. Buy a single-chip development version, buy a few circuit design books, buy some components, electric irons, oscilloscopes, you can do gadgets. (attention to safety)

Advanced functional programming, like scheme, Haskell. After learning, you can infiltrate the high-end circle of functional enthusiasts.

A little bit of practical learning js, py. Make a website, write a crawler enough.

I can't think of a way to learn C + +.
  • 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.