程序员

注册

 

发新话题 回复该主题

程序员的薪水差别,不只体现在开发能力上 [复制链接]

1#
酿造酒蒸馏酒配制酒区别在哪傲百年酒 http://www.offidachina.com/gjzc/5190.html

江湖传言,同样是程序员,薪水却差四五倍甚至十倍以上。这是真的。

为什么会这样?

首先,开发能力有差别,你写不出来的功能,人家却可以;你写的代码速度很慢,人家写的速度飞快;你写的系统不太稳定,人家写的却相当稳定。

此外,还有一个重要因素:你排查问题不如人家快。

发生故障时,面对同样的一大堆指标,你是否能迅速定位问题?如何快速验证判断?可否在第一时间找到解决方案?我见过一些程序员,或许在开发上不是一流好手,但遇到问题却总能第一时间定位和解决。同样的故障,别人排查需要一小时,他们只需四五分钟。在定薪的时候,这当然是一个重要的考量因素。其实,无论你的代码写得多牛,排查问题费劲薪水照样会受影响。

写程序的问题是好解决的,这类的书一抓一大把,而排查问题却没那么容易,因为这东西没什么现成经验可以参考。

比如,这些问题或场景,你遇到过吗?

流量高峰期,服务器CPU使用率过高报警,你登录Linux上去top完,却不知道如何进一步定位,到底是系统CPU资源太少,还是程序并发部分写得有问题?

系统并没有跑什么吃内存的程序,但是敲完free命令之后,却发现已经没什么内存了,到底是什么占用了内存?怎么看出来的?

一大早就收到Zabbix告警,你发现某台存放监控数据的数据库主机CPU的I/OWait较高,该怎么办?

作为一个程序员,性能优化是无法避开的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统,而且性能优化也是软件系统中最有挑战的工作之一,更是每个工程师都需要掌握的核心技能。

但是在实际的工作中,很多情况下你只能看到症状,却不知该从哪儿下手去排查和解决它。那么,在系统学习相关书籍之外,你也可以参考极客时间推出的专栏:Linux性能优化实战。

网上的资料和书籍可以扩充底层知识体系,从虚拟化的原理、到操作系统和网络原理、再到Linux内核和硬件驱动程序等等。但是Linux性能优化是个系统工程,除了基础知识点之外,学习中还有两点是比较重要的:

第一、要学习大量性能优化的思路和方法,尝试大量的Linux性能工具;

第二、要不断的实践和总结。这样你才能把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序、库函数、系统调用、再到内核和硬件等不同的层级贯穿起来。

对于我们大多数人来说,最好的学习方式一定是带着问题学习,而不是先去啃那几本厚厚的原理书籍,这样容易把自己的信心压垮。我认为,学习要会抓重点,只要你了解少数几个系统组件的基本原理和协作方式,掌握基本的性能指标和工具,学习实际工作中性能优化的常用技巧,你就已经可以准确分析和优化大多数的性能问题了。

在这个认知和基础上,再反过来去阅读那些经典的操作系统或者其它图书,你才能事半功倍。

倪朋飞老师的《Linux性能优化实战》更体系化,会以案例驱动的思路,给你讲解Linux性能的基本指标、工具,以及相应的观测、分析和调优方法,不会像教科书那样,详细教你操作系统、算法原理、网络协议乃至各种编程语言的全部细节,但是会为你讲述性能相关的重要系统原理,并且用实际案例教你贯穿从应用程序到操作系统的各个组件。

倪鹏飞老师是谁?

倪朋飞,微软Azure资深工程师,主要负责开源容器编排系统Kubernetes在Azure的落地实践。之前先后任职于盛大云和腾讯,一直致力云计算领域,主攻IaaS和容器技术。而近十年的云计算工作经验,也让他对Linux的系统原理、常见的性能问题以及优化方式了如指掌。

学完这个专栏,你能获得什么?

1、掌握Linux必备的基本原理以及linux系统必懂的性能指标(CPU性能、磁盘I/O性能、内存性能以及网络性能等)和性能工具。

Linux性能工具图谱(图片来自brendangregg.

分享 转发
TOP
发新话题 回复该主题