Coeus喜欢和朋友聊技术、怼产品、鄙销售、谈梦想。借着兴致与大家分享这几年遇到坑,经历的疲倦期和技术瓶颈,希望对大家有一定帮助。
Coeus·新浪安徽站PHP主管
Coeus工作六年有余,一直从事PHP相关的Web开发工作。前端、服务器运维也做过,私活、技术顾问、个人规划的项目也接触做过。曾在小公司打过杂,也在外企熬过夜,目前在国内一家老牌互联网地方站做技术主管。这六年的工作期间Coeus踩过很多坑,做出了很多选择,很幸运的每一次都挺了过来。秘籍很简单:不能则学,不知则问,耻于问人,决无长进。
大量练习夯实基础
在接触开发的几年中,Coeus纠结过迷茫过,为不知如何学习而发愁,也为薪资收入努力过,经历过彻底Debug的痛苦,也感受到了项目得到重视和鼓励的成就感,在职业发展的过程中都不会是一帆风顺的。Coeus大学专业是网络工程,虽然专业涉及到范围比较广,Java、C++、操作系统、汇编、数据库、网络等等,然而他到大三结束时才下定决心做Web开发。但是该怎么敲开Web开发的大门?好在网络资源很丰富加上他学长的耐心引导,还有去大二大三中蹭课(大四的时候基础还是很差的),深入一大堆基础知识中学习。在这个阶段,他感谢自己不怕枯燥,大量的练习基础知识。不断的将自己练手项目拿出来向老师、学长们请教编码技巧、注意事项。慢慢的对项目中要实现的功能点有了开发思路,进而也对Web开发产生了很大兴趣。由此他找到了一份开发工作,算是正真的进坑了。现在回想起他那年夏天蹲在宿舍椅子上从早上起来撸码一直撸到大半夜,每天也都是几千行代码量,每一个JS、PHP方法反复推敲练习,每一个HTML、CSS属性的不断琢磨,也是真真的佩服他自己。
在一门语言的入门阶段,基础知识很重要,打牢基础是以后进步、扩展的根基。当然基础知识的学习也是很枯燥的。一个函数、一个CSS样式都要手写很多遍。其实多写、多练成了他那时候短期的“座右铭”,不管什么内容什么知识点,看一遍了解手册上的内容,接着就是大量的练习。最后review他的代码,找出最开始对知识点理解的误区。
建议: 这个阶段应该是很重要的时候,不少人也因不知道如何入门而打了退堂鼓
1、基础很重要,虽然很枯燥;
2、好记性不如烂笔头,多写多练,有代码也方便和人交流、请教问题;
3、尽量手写代码,不要使用带代码提示或者自动完成的IDE,当然有个赏心悦目的编辑器还是有必要的;
如何将基础应用到实际项目中
经过一段时间的基础知识学习后,Coeus遇到大部分初学者都会遇到的问题”如何做项目”、”如何找练手项目”。当时和他的代课老师聊到这个事情,老师恰巧想征集学生开发一个同学录系统,将之前带过的学生以及今后的学生都归纳起来。于是Coeus二话没说接下这个任务,直到开始做的时候他才发现,课上所学的东西都是九牛一毛。从服务器搭建、虚拟域名配置开始都要重新一点点学习,每天不分日夜的撸码、查资料、Debug。在这个阶段最大的收获是新知识的学习能力,和解决问题能力,为他以后的技术发展打下了坚实基础,对自己的代码有着苛刻的要求,对任何的小问题不能放过。有的朋友会问”如果没有这么好的机遇,应该怎么找练手项目”,其实项目就在你周围需要解决的,做一个博客系统、一个学习管理系统、一个课程管理系统等等。
疲倦期选择跳槽
Coeus第一份工作是在一个小公司(本地行业论坛)做维护工作,初入职场Coeus怕自己赶不上团队其他的进度,于是他用业余时间给自己充电,怎么做?阅读源码,将别人的项目、案例的源码彻头彻尾的阅读一遍,学习解决问题的思路、系统整体逻辑的把控、优秀的封装方法等等。给自己在开发中提供了榜样和目标。
工作3年左右,Coeus已经对基础知识应用的更加得心应手了,没有多久公司让他对接新浪微博的API,做一些微博应用(那时候百度也出了一个框计算),虽然接口简单的对接完成项目上线了,但是他对微博的API文件产生了兴趣。在把API的源码看了一遍后,他发现有很多知识点、开发思路是一直没有接触到的,他向同事们请教,一个个也都是一知半解(现在看当时那家公司的整体开发能力真的很弱)。
技能提升受到阻碍,Coeus总有一种没有什么项目能难得住他的幻觉,这个时候开发者都会出现一定的工作疲倦期,像大部分开发人员一样,Coeus选择了离职。
来到了一个外企创业公司,在新公司Coeus发现自身实力的弱小,也给他打开了一片新天地。代码性能优化、服务器优化、代码安全、PHP扩展开发、数据库管理优化、日志的重要、Unit Test的关键、和Java、C++对接接口、Shell脚本的初识、XMPP通讯协议、英文文档阅读、快速的版本迭代、压力测试、自动部署等,很多都是以前的知识面所接触不到的层面、技能、流程,那时他就像一个饥渴的小孩,无时不刻的不在学习。每天都在生产BUG和Fix Ticket中度过。这一段工作经历让Coeus彻底对自己的能力产生了怀疑,同时也对未来的道路有了更清晰的认识。原来开发的世界有这么多好玩的东西,当时引发他另外一个疑问”如何自己发现并学习这些知识点”?于是他开始不断关注国内外各大论坛、社区。同时他也听从公司大牛的建议,对设计模式做了深入的学习,阅读了《深入理解计算机系统》、《计算机系统概论》两本书,其实他也是看的似懂非懂,但对代码执行、系统存储的理解有了自己的认识。
入门一段时间后,发现自己做一些基础性的工作是没问题,但是想再次提升不知如何切入。Coeus的果断跳槽证实了他自己,认清短板后,需要有一个学习的方向。外企的工作机会对于他突破该瓶颈很重要,但这并不是运气。因为对于现在的环境,优秀的技术论坛、热门的技术网站都会有类似的技能书、学习路径之类的,找到适合自己的方向的,去前进吧。如果当前的工作环境不能让你的能力得到发挥,或者不能提供更大的发展空间,走出去,在项目中锻炼自己,在被产品虐的过程中成长自己。疲倦期建议:
1、不能则学。遇到自己不会的知识点甚至都没听过的内容,那就抽时间学习了解,当然,盲目的学习不是正确的方法,先了解知识的内容、适用性、与自己的契合度,再决定是否继续学习。
2、不知则问。多问,但是主要提问技巧,问什么问题前,先自己考虑问题,尝试解决问题,有了一些自己的想法(不管对错)。即使Coeus毕业五六年了,他也会向实习生请教问题,每个人都可能会给你新的思路或者方向。
3、对自己狠一点。要学习、要提升就需要大量的时间,Coeus在这个阶段的时候,每天加班到12点以后,回家后基本上每天晚上都会学习到3点以后睡觉(不过他有个坏习惯,学习之前也会让自己放松一下,吃点好吃的、看看动漫听听歌、偶尔玩玩游戏),每天都有自己的学习目标。
4、自学能力培养,对自己知识结构有清晰的了解。这个阶段每个人都应该有一定自学的能力,以后需要学习的东西很多,我们无法每次都等待别人指引。清楚自己的知识结构,结合自己的方向,不断的补缺短板。
瓶颈期开发软技能
终于,当Coeus对大小项目都得心应手的时候,他开始深刻的考虑自己的职业规划了,现在在公司做技术主管,目前,短期内的规划是做技术管理。项目管理、进度把控、人员调度是他最近遇到的问题和压力。
最近这一年多,Coeus不断的在关注业务方向的知识,想多学习技术开发周边的一些内容,希望不断的突破自己。不断的给自己和团队一定的压力、不断的尝试新的技术难点、也不断的优化工作流程和项目架构。
Coeus随着自己在圈子的时间越来越久,也认识不少圈内的很多朋友,于去年开始,收到了几个公司的技术顾问的邀请,他们初创技术团队能力有限,于是为他们指导团队发展路线、技能进阶规划、为编辑培训Web基础能力。总之在不断的与外界接触,不断的提升自己开发以外的能力——软技能。
他站在公司角度不断的为难题提供技术解决方案,经常和圈内朋友谈论未来规划和发展,也能得到公司发展方向和开发相结合的一些反馈,时常为公司开发业务新功能,不断的尝试新产品、新技术。
现阶段的他有自己的方向和目标,内容有自己想做的事情,可以有条不紊的安排自己的时间和任务,蛮好。这个阶段说说他的感想:
1、不要盯着那些最新、最潮流的技术,适合自己团队的才是最好的。
2、保持细节问题的敏感度,千里之堤毁于蚁穴。
3、应该适当的了解其他部门或者业务线的工作流程。
4、软技能是这个阶段应该被重视起来的,指沟通能力、倾听能力、说服能力、自我激励的能力、影响力、团队建设的能力等等,软技能只能在公司的工作岗位中培养。
Coeus始终认为IT是为了解决问题,对技术也有了自己的理解和认识,技术是为了解决问题而存在,个人生活中的问题、企业发展的问题、各个工种工作遇到的问题,技术只有在解决问题的时候才体现了真正的价值。于是在业余时间他会和身边不同处境的朋友交流。
目前Coeus在不断的规划个人项目,也在不断的尝试新的东西做Demo。这是他日常生活的一个常态,公司的项目有可能无法满足他的技能发展,或者在其他方向上有不错的想法,那就直接去实现出来。谈不上做产品和创业,一方面他认为自己的性格使然不愿意闲着,一方面系统通过一些项目锻炼对全局规划、架构方面有一定提升。在做项目的时候他更加关注的是底层模块的实现,MemCache、Redis的工作原理和实现,优缺点比较,在不同的项目使用不同的缓存、框架技术,使用设计模式解决问题都让他有了更深一层的理解。
Coeus发现身边做微商朋友多了,深入了解之后便打算开发微商管理系统;聊到小学教育,他发现技术可以帮老师解决很多问题,于是做了在线小学教育的一套系统;他的老婆怀孕,总是忘记吃水果,有时也不知道该注意什么,于是Coeus写了一个系统抓取了怀孕时不同时间的注意事项,然后定时微信提醒;他个人项目规划的时间找不到一个顺手的时间管理工具,便做了一个基于微信的时间管理工具。
孕期数据抓取
微商管理系统规划(初版)
Coeus的脑洞
其实这些项目基本上是很难推广到市场上去的,但是在做项目的过程中Coeus的全局把控、规划,项目架构有了一定的提升,至少成就感得到了一定的满足。
对于未来的规划没有想太多,以后职业上也会不断的遇到瓶颈,相信他会做的越来越好。目前他觉得眼界还是太小,今年希望与一线城市的技术大咖、企业领头羊多多的沟通学习,另外就是扩展技术圈子以外的资源。现在还是在准备阶段,准备随时到来的机会。
如果你也愿意分享你的故事,请加51CTO开发者QQ交流群 312724475联系群主小官,期待你精彩的故事!