Rumah  >  Artikel  >  程序员工作以后该如何提升?

程序员工作以后该如何提升?

步履不停
步履不停ke hadapan
2019-06-24 13:58:495532semak imbas

111.jpg

刚好最近 Coding Girls 有同学问了这样一个问题:

在现公司的开发日常已经脱离 hard 模式,就是日常写业务无压力,代码质量也 OK,但是写完业务就没事了。这样子应该怎样提升?

其实在工作一年多左右的时间,我也曾提出过这样的问题。不知道是否曾有人也有过一样的烦恼,就是当你能够 handle 现在的工作之后,要怎么提升自己?这个问题无关性别,任谁都会有。所以还是想根据自己的经历来写一写。如若有相似之处,纯属正常。

这里是 PHP 的社群,我们就基于 PHP 来讲。相信很多刚开始接触 PHP 的人,甚至是刚开始接触代码的人,百分之七十都是先接触的框架。比如我。Laravel 是个极度优秀的框架,最优秀的地方在于,它能够让一个连 SQL 都写不好的女同学爱上写代码。很多开箱即用的工具、各种技术教程帖子使得我们不需要在深究其原理的基础上,写出自己的毕业设计,写出自己在代码世界的一丢丢自信和存在感,从此一脚迈进了代码世界的大门。

于是乎你带着刚学会对框架的使用和一些在学校学得零零散散的稍微能理解的知识开始参加工作了。工作之后你突然发现自己对框架的理解还不够深入,于是你开始从头开始啃各种文档: 

 ●  PHP 的文档,了解了每个函数的使用。

 ●  Composer 文档,开始折腾各种潮流包。(相关视频推荐:PHP Composer 视频教程

 ●  Laravel 的文档,如何用 ORM 写出复杂的 SQL,控制反转到底是个什么鬼?(相关视频推荐:2019年最新的五个Laravel视频教程推荐

 ● Redis 的文档,学会它,定时任务队列缓存等优化开始不在话下。(推荐课程:redis视频教程

 ●  Vue 的文档,可能你觉得只掌握一点点前端知识还不够,于是你又开始折腾。(相关视频推荐:2019最新的5个vue.js视频教程精选

甚至随着公司业务的发展,你会开始跟着你的团队接触一些对你而言还很高大上的技术,微服务、分布式、读写分离、主从备份等等~ 甚至你还开始尝试写开源项目,但是迟迟不肯发布。

慢慢开始觉得自己变得牛逼了,因为产品同学的需求你能很快完成了,测试同学即使提出来 bug,那也是你没好好看需求文档或者粗心写错了个符号导致的。工作变得越来越没有难度,于是乎你开始不知足了,这时候如果公司没能给你更多的挑战,你就会开始想着要换份工作了。

但是一般换份挑战无非是换个工作环境、组织、换个框架或者多兼顾一个语言的事情,当你适应这一切之后,你又开始会觉得好无聊,没有挑战的同时又对重复劳累的加班工作产生厌倦,终于你开始连周末也不想写代码了。兴许你会换个打发时间的事情,比如学一门乐器、谈个恋爱、养个猫、实现一些 Flag ~~

这样真的好吗? 你开始这么问自己。即便能做很多事情,却仍旧有很多事情是自己做不了的。你开始有种比上不足比下有余的感觉,你开始慌了,开始觉得迷茫、不知所措。于是乎你开始抓着身边的人问,这该怎么办才好?可是当有人给你提出换行换岗的建议时,你却并不想如此。是因为你热爱还是因为除此以外你不知道做什么好了?Anyway~ 我希望下面的内容能给有着同样疑惑的你带来些许答案。

提出疑问

提出什么疑问?

 ●  你的代码质量真的 OK 吗?你是拿什么来衡量自己的代码质量呢?拿什么来保证接口的健壮性吗?你知道你写的接口能承受多少请求数和并发量吗?百万级的数据你能 handel,千万级甚至 PB 级呢?

 ●  日常写业务无压力?平均每写一个功能测试给你提多少缺陷你数过吗?你知道你写的功能有多少人在用吗?你写的功能别人用得可还顺手吗?生产上你写的功能可曾产生过「不可能出现」的脏数据?
 ●  比如某天系统突然崩了十几分钟,CTO 和几个技术组长出面解决了。你可曾去了解过为什么崩了?如何解决的?了解到什么程度?(比如有慢 SQL,遇到慢 SQL 导致系统阻塞怎么解决,慢 SQL 是怎么产生的,平日里要如何避免慢 SQL ?怎么根据崩了发现是慢 SQL 的?)
 ●  把框架文档看熟看透了就够了吗?Laravel 的框架为什么要这么设计?为什么我们都说它好?它跟其他框架的区别在哪里?有去翻过底层的代码吗?
 ●  PHP 函数的背后都用了什么样的算法来保证其运行的高效?了解过吗?

脱离 hard 模式,究竟是事情很 easy 还是因为你把自己置身于 easy 就算了?

积极主动

根据上面随意提出的疑问再延伸出更多的疑问,就可以举出大把你需要学习的内容了。

 ●  MySQL 你真的会优化吗?优化的原理是什么?为什么有些 SQL 语句逻辑相同,性能差异却如此巨大?框架是怎么和数据库连接的,事务是怎么处理的?为什么加了索引会让查询变快?如何更好的利用索引?order by 是怎么工作的?

 ●  Nginx 你真的会用吗?除了拿来简单的部署项目,你知道如何设置反向代理来实现负载均衡吗?跨域和缓存的问题该如何处理?
 ●  Linux 熟练吗?命令都会用了?Linux 系统中出现大量不可中断进程和僵尸进程怎么办?如何迅速分析出系统CPU的瓶颈在哪里?Linux 内存是怎么工作的?进程切换的过程是怎么样的?磁盘 I/O 性能优化有几个思路?怎么使用 tcpdump 和 Wireshark 分析网络流量?怎么缓解 DDoS 攻击带来的性能下降问题?服务吞吐量下降很厉害,怎么分析?

接下来就不详细列举了,比如基本岗位技能 Web 协议、Redis 等,内功心法之数据结构、算法、设计模式等等~ 如果真的不知道自己有啥技能上的欠缺需要补充,看看自己心仪公司心仪岗位的招聘简历呗~

提出疑问,知晓自己的缺漏,下一步就是自己想办法补缺了。上面的问题,你知道答案吗?此刻的你是否有复制黏贴百度答案的冲动,如果还有,那就去找到答案吧!

在这个资源共享的时代,学习成本可以说几乎为零。你能提出的疑问几乎都有人提出过,也有人解答过。如若你需要更加系统更加深入的理解,书籍、视频、课程,网上的资源大把。买了就踏踏实实的去看,辛苦加班赚回来的钱不要浪费了。反正没见过厉害的人说他们是不看书的。

 ●  知识付费的时代,各大社区现在都多多少少有在运营相关技能的教程
 ●  极客、慕课也有很多深入理解底层原理的好课程
 ●  想补充相关的知识该去看什么书,实在找不到人推荐你就上知乎

写点什么

学而不思则罔,思而不学则殆。有道是学以致用,如若看完一个知识点,把自己的理解写下来,自己能看懂,别人也能看懂,还能把不懂的人讲到懂,那你就是真的懂啦!还是那句话,没见过哪个大牛没有输出自己的知识见解的。So,看了书、学了视频课程之后,请务必要强迫自己写点什么。知识点笔记、读后感等等~

加入圈子

一个人走得快,但一群人能走得更远。于我个人的经历而言,我的技术成长离不开圈子里面的人的帮助。因为偶像安正超,来到 Laravel China 结识了站长 Summer,进而结识了更多社区里的人。在一次次交流探讨、耳濡目染之下,知道了自己的不足勤加修炼的同时,也知道有谁能解答我的问题、有谁愿意与我探讨,还有谁和我一起互相监督共同成长。一路走来,十分感谢伴我同行的人、耐心帮助我的人、愿意花费自己的时间给予我建议的人。

因此,去积极加入圈子,或者是自己开辟圈子吧。寻求帮助、或者帮助别人。有道是教学相长,互相裹挟成长,一个人你学不下,一群人你旁听总该有点收获吧。花点时间建立自己的技能圈子,去找厉害优秀的人跟着他们学习,有什么难的呢?

题外话

在这里列出一大堆学习资源可能无法保证会对你有用。更何况学习本身还带着坚持、自律、方法这样的标签去将我们很现实般地划分为三六九等~ 需要学习的东西还很多,对程序员而言,知识的更新速度之快是我们永远始料未及的。有道是,路漫漫其修远兮,不管工作了多少年,时刻想着如何去提升自己是人生的一门必修课,你不想可不行啊!

如果有需要,可以在帖子下面留言,我或者社区里的热心的同学都会跟你分享我们学过的可能对你有用的课程、有用的书。比如网络相关的书有哪些值得一看~ 社区本身就是个很大的圈子,好好利用起来呀!

另外,一个程序员的成长肯定不仅仅只有技术,还有职场、管理、交际圈等等~ 如若有机会,再来写个《职业篇》吧!(因为现在暂时还不够格呀喵~)

本文作者:JokerLinly,感谢!

相关文章推荐:

《做为一名优秀的php工程师,这些 Linux 指令你都掌握了吗?》

《一步步教你编写不可维护的 PHP 代码》

Kenyataan:
Artikel ini dikembalikan pada:JokerLinly. Jika ada pelanggaran, sila hubungi admin@php.cn Padam