程序员工作以后该如何提升?
刚好最近 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,感谢!
相关文章推荐:

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

11月14日消息,英伟达(Nvidia)在当地时间13日上午的“Supercomputing23”会议上正式发布了全新的H200GPU,并更新了GH200产品线其中,H200依然是建立在现有的HopperH100架构之上,但增加了更多高带宽内存(HBM3e),从而更好地处理开发和实施人工智能所需的大型数据集,使得运行大模型的综合性能相比前代H100提升了60%到90%。而更新后的GH200,也将为下一代AI超级计算机提供动力。2024年将会有超过200exaflops的AI计算能力上线。H200

2022年3月3日,距世界首个AI程序员Devin诞生不足一个月,普林斯顿大学的NLP团队开发了一个开源AI程序员SWE-agent。它利用GPT-4模型在GitHub存储库中自动解决问题。SWE-agent在SWE-bench测试集上的表现与Devin相似,平均耗时93秒,解决了12.29%的问题。SWE-agent通过与专用终端交互,可以打开、搜索文件内容,使用自动语法检查、编辑特定行,以及编写和执行测试。(注:以上内容为原内容微调,但保留了原文中的关键信息,未超过指定字数限制。)SWE-A

恋与深空中人物有着各方面的数值属性,游戏内的每一种属性都有着其特定的作用,而暴击率这一属性就会影响到角色的伤害,可以说是一项很重要的属性了,而下面要带来的就是这一属性的提升方法了,所以想知道的玩家就可以来看看了。恋与深空暴击率提升方法一、核心方法要想达到80%的暴击率,关键在于你手中的六张卡的暴击属性总和。日冕卡的选择:选择两张日冕卡时,确保它们的芯核α和芯核β副属性词条中至少有一条是暴击属性。月冕卡的优势:月冕卡不仅基础属性中包含暴击,而且当它们达到60级且未突破时,每张卡可以提供4.1%的暴

学习C语言的魅力:解锁程序员的潜力随着科技的不断发展,计算机编程已经成为了一个备受关注的领域。在众多编程语言中,C语言一直以来都备受程序员的喜爱。它的简单、高效以及广泛应用的特点,使得学习C语言成为了许多人进入编程领域的第一步。本文将讨论学习C语言的魅力,以及如何通过学习C语言来解锁程序员的潜力。首先,学习C语言的魅力在于其简洁性。相比其他编程语言而言,C语

本篇文章给大家介绍如何用前端代码实现一个烟花绽放的绚烂效果,其实主要就是用前端三剑客来实现,也就是HTML+CSS+JS,下面一起来看一下,作者会解说相应的代码,希望对需要的朋友有所帮助。

520将至,年度虐汪大戏他又双叒叕来啦!想看看最理性的代码和最浪漫的告白究竟能碰撞出怎样的火花?下面带你逐一领略最全最完整的告白代码,看看程序员们的浪漫是否能够掳获各位心目中女神的芳心呢?

上周我们做了一次关于《2023PHP创业》的公益直播,很多同学咨询具体有哪些接单平台,下面php中文网整理了22个还算靠谱的平台,以供参考!

程序员的工作职责:1、负责软件项目的详细设计、编码和内部测试的组织实施;2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系;3、参与需求调研、项目可行性分析、技术可行性分析和需求分析;4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术;5、负责向项目经理及时反馈软件开发中的情况;6、参与软件开发和维护过程中重大技术问题的解决;7、负责相关技术文档的拟订等等。