As a WEB engineer, which languages are worth further learning in the long term?

Source: Internet
Author: User
I want to build my own technology stack. Currently, PHPjavascriptpythonc ++ rubygo has a good recommendation. thank you. Please analyze and explain the reasons in the long run. thank you very much! I want to build my own technology stack. Currently, PHP, javascript, python, c ++, ruby go is considered.
Please note that there are good recommendations. thank you.
Please analyze and explain the reasons in the long run. thank you very much! Reply: 1. the programming language is just a tool. First, select a proficient language (Python, php, Java, etc ).
2. web development and javascript are required, provided that any of them is proficient. javascript is not a problem and can be won soon.
3. web development involves frontend and backend routes. Unless you want to be a full-stack engineer.
4. The point is that if the backend is used, it is not a pure programming language. you need to study more, such as distributed, high concurrency, master-slave database, and read/write splitting. Nosql, caching, API development, full-text retrieval, and O & M.
First, you can select a programming language to be proficient. Go is a good option. Do not fall into language competition!

When someone asks me which language I want to learn, I always answer this question:

You can learn JAVA,
If PHP is around you, you can learn PHP,
People around you will ask him what you learn.

He ignores you?
Invite him to dinner!

He will also tell you what to learn next.

People, not technology.

What should you do if one of them is programming?
Didn't you meet me?
Follow me and learn the front-end! Java is recommended for finding and learning, creating projects, and looking for work! I have used Python for a year, and I feel no progress in calling methods, libraries, and frameworks. Convert Java.

How is Python memory recycled?
Reference count.
What then?
I don't know...

Does the Python parameter pass a value or a reference?
What?

Can you talk about Python concurrency?
No, I only know that there is GIL, and others do not know...

Why is Java memory recycled?
First, Java divides the memory into the heap, virtual machine stack, and so on...
Use accessibility analysis... Security points... Serial, parNew, parallel scavenge CMS... Memory guarantee...

Let's talk about concurrency.
Well, offset lock, lightweight lock, heavyweight lock... Semantics of volatile keywords...

Can you talk about Java overloading and rewriting?
The underlying layer of the overload uses static multi-assignment. according to the method's static parameter type, the method of which version is used is determined during the compilation period. The rewrite uses dynamic but single-allocation, select related methods according to recipient type...

It is not difficult to learn Python, because the language is not good or bad, only suitable and more suitable. Instead, I think we should have a relatively good static type language, such as c/c ++, java, c #, and so on. then we can use Python and other scripting languages to get twice the result with half the effort. It is a virtual language for beginners to learn scripting.

Java is recommended for Web applications. The advantage of learning Java is that many companies use it, and you can learn more if you want. The scripting language is not a top-level player and can only call APIs. There is very little information about the underlying mechanism for you to learn. Don't tell me to look at the source code directly. we are all common people. Not a great God.

The above is my ignorance. English. Web development is a very complex and heavy task. In most cases, it is dealing with various rules, such as HTTP protocol, database link string, CSS, HTML, javaScript syntax, configuration of workflow auxiliary tools for development, angular, jQuery framework ......

I can't finish it. I have learned more than two years to squeeze out the original one. for example, es6 has squeezed out jQuery, for example, typescript has squeezed out coffeescript, for example nodeJS, PHP, elixir, f #, Ruby, julia, and Python fight and fight in the same field.

As an experienced person, I would like to give you the following suggestions:

Replace the computer with a Linux system, use the c language to implement a static file server, and use JavaScript to create a small website that can log on to the dynamic update of comments without referencing a third-party library, buy an ECS instance and deploy it once.

Try to use the most primitive method, and try not to use any framework. after this process is completed, there will be at least one skeleton. with the skeleton, it can be plump.

Why is it a Linux system? it tells you how the operating system actually works.

Why is c language? it tells you how things are done in a straightforward way.

Why is JavaScript? it's a vast array of open-source code and a simple nodeJS philosophy. it shows you more realistically the rules and how to play those games. (First of all, pay attention to case sensitivity and care for obsessive-compulsive disorder patients ...)
Let's start with the languages you are considering:

PHP: The backend route is optional. it is suitable for small internet companies and has a low learning threshold. it is suitable for rapid development, but its performance is mediocre (PHP7 has improved significantly). It is a language designed for the Web, in recent years, there has not been much movement. JS and Python are not as active in development. Fortunately, the market share is high and the demand is relatively large. However, due to the low threshold, more and more people are learning, and competition is also increasing. (I do not recommend in-depth PHP learning when answering questions)
JavaScript: The frontend and backend routes are required. The current potential is huge and the heat is very high. if you are working on the frontend, you will not be able to go into any depth. Learning JavaScript can help you achieve financial freedom... however, the disadvantage is that the knowledge system is getting bigger and bigger, with many branches and countless frameworks. it is almost impossible to learn well. The backend JavaScript should also be mastered. otherwise, when JavaScript becomes popular today, it is very difficult for you to communicate with the front-end without understanding JS at the backend. JavaScript has changed from a pure Web scripting language to a full-stack Web development language. now JavaScript can do a lot of things, the JS community and even Silicon Valley companies like Facebook are keen on making open-source contributions to JS! In addition, Node. js, which is generated for asynchronization, and even the React that has entered the Native App development field, each open source technology will be a Web black technology. which language can be used? (We recommend developers with the best learning spirit to study in depth)
Python: The backend and O & M electives are optional. In fact, they are basically not repaired. today's startups prefer Python. in one aspect, he is very similar to PHP, but there are too many things that Python can do. I like to compare Python to a Swiss Army knife! PHP is far from enough. In terms of efficiency, the performance of the language itself is average, but you can understand it as a glue language. in terms of development, the efficiency is high, which is also an important reason to be sought after. For the WEB, there are O & M directions. Python is especially important to them... of course, you should not want to perform O & M. In-depth study of Python will make you more Geek, make your job more Automatic, and a good job in Python will pay you a lot of salary (we also recommend that every engineer study in depth, but not necessarily only focus on this item )( 2016.11.15 addition: Python is an excellent performance solution implemented by PyPy. although it needs to work with the official team, I am interested in Python and its performance. if I want to know its underlying implementation, I should study PyPy well.)
C ++: The underlying engineer is required. if a Web engineer wants to study C ++ in depth, I do not rule out his self-abuse tendency. I am a bachelor of hardware engineer. C ++ is for us. if you are pursuing underlying development, such as Web Server, you can study C ++ in depth, there is also C ++ engaged in Server is also basically the game field... in addition, it's hard for C ++. if you have been studying Web development in a broad sense for a few years, you have to study other methods. (Not recommended)
Ruby: I am a developer. Have you heard of the Eagles Hotel California? This song is so famous that other excellent Eagles songs have lost their luster. When it comes to Ruby, it must be the RoR framework. RoR is so famous that it is difficult for people to have other expectations for Ruby. but what are there besides RoR and Ruby? Yes, there are ruby-like beautiful syntaxes. Writing Ruby is a pleasure, but I'm sorry. sometimes it's too free, but it's not necessary for team development. To learn Ruby, I can define it as an electives for individual developers. maybe this language is more suitable for startups... of course, you will say Ruby is very popular in Silicon Valley, But here it is CHINA, you know. Another point is that Ruby was born in the island country. if you don't have two axes in Japanese, do you still want to integrate them into their community? (Not recommended)
Golang: The engineer at the bottom is an optional course. this is the language at the bottom of the Web. the correct classification is the same as that of C/C ++. it is called "system programming language". do you understand? After all, it was born in the new era and naturally comes with excellent parallel programming capabilities. in October 2016, Go showed a strong momentum, what's more, Go learners generally want to share Google's thigh... like Swift, which has the same momentum, Go needs to wait and see. Don't worry. (No guidance )( : The Mature Go Web frameworks include gorilla and beego in China. you can search for them on your own.)

Ah, I did not mention my big Java and the first language of network programming once. this is one of the important ways to reach the peak of my life. have you ignored it strategically? Do not learn languages.
To learn the framework and tools, the most important thing is to learn the principles. This is a matter of taste.
The status of js Python ruby go will increase, php will decline, and java will not change.
Everything you can learn. JavaScript is simple, and learning is endless! Multiple technologies and multiple routes!

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.