People often ask in the group, do operation and maintenance personnel need to learn development? Need to learn Python? What’s the difference between Python and Shell? Ask this kind of good water question every day, I really can’t stand, decide to help everybody sweep illiteracy, beg novice people, later don’t his mama blind ask, OK not?
At this stage, to master a language development has become a must-have senior operations engineer can gauge, not development, you can’t fully understand your business process in the system, you can’t help debug and optimize development program that develops, developers are sometimes paid little attention to the performance of the problem, these problems have to operations staff to do, a business online, So you’re using too much CPU, you’re using too much memory, and if you don’t know how to develop, you’re probably just looking at the process level, which process is using so much, and then what? Then leave it to the developers. How does that add value to you?
In addition, larger companies have hundreds, thousands, or even tens of thousands of servers. In this case, how to do automatic operation and maintenance? Write a SHELL script FOR loop? Come on, the SHELL is perfect for simple system administration. To complex automated tasks, it is necessary to use specialized development languages. You may have said that there are open source software for automated management, such as Puppet, SaltStack, Zabbix, and Nagio, which can be used directly. However, existing open source software, such as Puppet, SaltStack, Zabbix, and Nagio, may not be suitable for all your company’s needs. Do you do? Development? The development department does not understand the actual business logic of operation and maintenance, and the written stuff is rotten and unusable, which ultimately has to be done by operation and maintenance developers.
Secondly, if you don’t know operation and maintenance development, you can’t write your own operation and maintenance platform, and complex operation and maintenance tools, you have to find some open source software to put together. If so, please don’t complain that your salary is low and your work is not valued.
Why learn Python?
Python is a very good scripting language that can meet most of the needs of automated operations. It can be used as a back-end C/S architecture, and it can be used as a WEB framework to quickly develop a high quality WEB interface. Your value will only be realized when you have the ability to build an automated operation system yourself. You have the right to talk to the boss, otherwise, go back to the machine.
Why use PYTHON for operations development?
Good question, why not use PHP, JAVA, C++, Ruby, I can only say that, if you happen to know any language other than Python, you can use whatever you like, if you are a beginner who can’t even write Shell, If you want to learn a language, use Python. Why? First of all, PHP is the most compared to Python, and they don’t have to be compared at all. Why? The two languages have different applicability. PHP is mainly suitable for Web development, and it can make small and medium sized, lightweight Web sites quickly. However, as for the backend, it basically needs to rely on other languages. The SHELL? PYTHON? Ha ha. Python, on the other hand, is a comprehensive language, so you can use both the front and back ends, and it’s no worse than the Web, and it’s no worse than PHP, but why is PHP more popular on the Web than Python? PHP was born on the Web in the ’90s, and a Web framework didn’t exist until Python2000, but in terms of excellence, Python’s Web framework is almost as good as PHP’s, at least.
The JAVA? In my opinion, JAVA is a stable middle-aged man, stable, mature, bald, and PYTOHN represents youth, concise, fast, clean, handsome!
C ++, this, I can only say, if you know PYTHON, and C, then you will be more popular, but not C, in fact, no matter, basically do operations, do C is to install B, because most of the time you can not see the level of the underlying source system.
RUBY, developed by little Japan, is not bad, style is a bit like Python, because RUBY onRails is famous, foreign use more, domestic, rest assured, no chance, Python has taken up its imagination space.
Of course, there is also a new language, GO, some operation and maintenance people see developers doing GO, also want to join in the fun, think it is the future, I would like to say, do not blindly follow the trend, GO no matter how successful, will not become operation and maintenance development language.
Some people think Python is inefficient and say it can’t support multithreading. OH, well, that’s a bit true, but I would like to ask, how many of you who read this article have done search engine development? How many do a hundred million PV concurrent website development? How many of you have read the LINUX kernel source code? If not, please don’t follow it. Do you know why Python doesn’t support multithreading? Python supports multithreading, but does not support multi-cpu multithreading, which means that the spawn of a program can only use one CPU. Oh, because GIL, GIL is what east east, please fill your mind… But do you have to use multiple threads? You can use multiple processes, and you can even use coroutines, which Python supports very well, but if you don’t have good program logic, multithreading won’t work fast. I know a doctor who said, in my opinion, that 80% of a program’s efficiency is determined by the person who wrote it, and 20% is determined by the language itself, so next time someone says Python is inefficient, please ask him to check for himself how much useless logic, loops, etc. A server can handle hundreds of millions of requests per day, and nearly 20,000 requests per second. What Web framework is so awesome? Don’t ask who it is, it’s called Tornado.
Can PYTHON be taught by yourself?
Of course, what can be self-taught, the premise is that you have to be able to learn, have seen N many newbie set foot on the self-taught path of no return, what the fuck can self-taught words, but also with the university why? Why don’t you just eat at home? There are only two kinds of people who say that PYTHON is a scripting language. One is an expert, and the other is an idiot. For an expert, he or she must already know other languages. Code encountered a problem, find a development of the elder brothers to help debugging, the elder brothers to help tune more than ten minutes to fix, the result of the other people before a PYTHON code has not written, why, because the language has something in common, a good grasp of the other door to learn their own will. But for the novice, did not have any language foundation to begin self-study, so congratulations to you, novice people see this article as evidence, from today to start self-study, a year later, if you can make a software by yourself, to look for me to 1000 dollars. Haha, really. Basically, self-learning belongs to professionals, just like learning a musical instrument, you may learn another one after learning it. However, I had no music foundation before, and even did not learn to play guitar with the teacher.
Time is life. When money is gone, you can make money again. When time is gone, it will never come back.
Having said so much, I just want to tell those beginners who are at a loss what language to learn, when you haven’t learned how to walk, don’t always think, I will be a boss in the future, I drive a BMW? Or drive a Mercedes? Learn to ride a bike first…