![640](https://i-blog.csdnimg.cn/blog_migrate/3e132318bbf70b8d45e7a12a11daf634.png)
大家好,我是拭心,最近看到一篇工作七年的安卓前辈写的文章,感触很深,和大家分享一下。
作者:稀有猿诉
作者博客:http://toughcoder.net/
原文地址:
http://toughcoder.net/blog/2017/01/04/lessons-after-seven-years-of-programming/
还未有感,已然岁末,犹叹时之箭逝去如斯也,稍纵命再减一。回首望,为猿七年有余已,虽不成气候,亦未全蹉跎。略做小结,以不惘逝去之时日,亦会大益于尔后路途。若博文能助足下之一二,孤将甚悦。
职业是无数个连接起来的马拉松
小学时,我们很清楚的知道5年后就毕业了(孤当年是五四制,现在貌似有的地方也是),无论多么讨厌老师或者 同学,或者学校,都知道最多忍5年就结束了;初中高中也一样,三四年样子,很快就过去了,多少欢乐悲喜都会很快的过去;大学更是如此,从入学进校园那天起你就开始倒计时,知道四年后的一天要离开,再怎么珍惜,再怎么蹉跎,时间仍然以它亘古不变的速度在向着一个方向跑着。
可职场呢?过了5年,你还在工作,还得工作;过了10年,过20年,30年甚至40年后,我们仍要工作。即使离职,也还要再入职,而且新工作跟之前没有本质的区别。明白了职场是一个40年的大周期,所以,这是一个超长的马拉松,没有中考冲刺,没有高考冲刺,更没有考个好大学,就可以随便玩了。没必要玩了命的冲刺,那样也没有好效果。更重要的是持续不断的学习,对,持续几十年的学习。
成为高手,或者大牛的唯一途径是不断的学习
不要梦想着进入大公司,进入牛逼的团队,坐在大牛旁边,或者多参加线下活动就可以成为大牛。这都是图样图奶衣物。大公司为什么要你?牛逼的团队为什么要你?首先你要是要有点本事才行;想要得到牛人的指点,是靠运气的。可能是电视剧看多了:你掉进山谷中,然后遇到了一个白猿,肚子里藏着九阳真经?或者滚下山谷,看到一个大雕,学会独孤九剑?芸芸众生全国数以百万计的程序猿,你觉得能遇到大神的机会有几成?大神愿意与你交流的机会又有多大?梦想大神手把手教你?除非你是他炮友。
当然,也确实有人足够幸运能够得到高人指点一二。但我们相信绝大多数人,即使牛人在你身边,你也没有足够的机会让他指点。公司雇我们来,是让我们干活的,让我们产生价值,为公司赚钱的。牛人的任务更重,事情更多,凭什么还让人指导你。
大公司资源和资料是多,培训的机会也多,但是也要你自己去看,去听去学习啊。各种线下活动,打广告的占大多数,其他的演讲也大都是提及皮毛,想要学到干货是不可能的,几十分钟他能讲出来多少?你又能领悟多少?所以线下活动是推广,开拓视野(能听到很多概念),拓宽人脉(确实能认识好多人,牛人和同水平的人)的好机会,而不是学习的机会。
一句话,想要成为高手,还是要去脚踏实地的学习,去啃书,去读代码,去撸代码,别无他法。关于这方面,可以参考一位大牛的文章,我觉得很在理。
选择一个行业,或者一门技术,然后深耕
虽然,不提倡像某些人那做什么五年计划,因为我们所处的行业,公司,项目,人事等变化的太快了,这些变化都是不确定因素,会打乱所有的计划,特别是长期计划。但是我们还是要有目标的,我相信对于大部分人,最终极的目标无非就是财务自由。如何才能财务自由,运气确实有一定作用,但更重要的还是要硬实力。什么是硬实力?也就是你能解决别人解决不了的问题,比如老板想作某一块的业务,你对业务规则特别熟悉,能带队帮老板搞定;再如,技术上遇到了问题,你能搞得定。没有实力,光有运气,即使你遇到了淘宝的崛起,现在也未必能财务自由。
硬实力从何而来?无非是积累。积累什么?才会越来越值钱?无非是行业或者技术。
什么是行业?汽车,是一个行业,金融是一个行业,服装是一个行业,旅游出行是一个行业等等;什么又是技术?安全,音频,Webkit,图像,深度学习等都是技术。身处一个行业,可能技术并不复杂用的都是常规技术,但是你能够对一一个行业深入的了解,它有哪些游戏规则,有什么坑,有什么政策法规,有什么风险,怎么样做才会有最大收益,这些都是只有从事行业有一定时间后才会知晓的。技术,就更好理解了,使用封装好的技术是容易的,比如像WebView,使用起来很方便,但它的技术实现—WebKit却是非常复杂的,没个几年时间是搞不清楚的。
当然,能始终在同一个领域(无论是行业还是技术)深耕是不容易的,要靠运气的。但是要明白,只有深耕一个行业,或者一门技术才会让自己的价值最大化。所以,当有选择时,尽可能的向着目标靠近。
责任重于技术
程序员的工作,无论是互联网,还是企业软件,都是工程,都是对技术的应用。大多数情况下,大多数人在工作中不会遇到技术上无法解决的问题,或者世界级的难题。换句话说,工作中遇到的问题,即使你不会,或者不知道怎么解决,通过查阅资料,书籍,网络和同事的帮助,很快就可以解决。再者,把代码写好,做足测试,加强健壮,这些事情,也并不是需要太高深,太前沿的技术。只要用心就能做的很不错。
相反,那些工作做的糟糕的人,并不是因为技术水平很差,别人对他的评价一定是不负责任,正所谓态度决定一切,态度产生的后果就是责任。即使技术水平一般,但是态度很认真,工作很负责,这就是优秀的员工,也是对公司更有价值的员工;而一些即使技术很强,但是却态度差,不负责任,这类人就是混吃混喝等死的人,是迟早要被拨掉的毒瘤。
成为一个专业的程序猿
这里的专业,更多的是指形式,做事的方法,解释什么是专业前,先看一些例子,什么叫不专业:
电话面试时,不问对方能不能听清楚,就blahblahblah的开讲,结果讲了有十分钟,对方叹了一口气说,不好意思,信号不好,没听清。。。比如电话面试时,候选人说我先找一个方便的地方,找到后,打电话过来,说找到了,然后就开始电面了,这是候选人打过来的电话啊。。。比如开会迟到,比如开会时扯闲篇儿。。。没弄清楚事情原委就妄下结论,特别是脾气急的人,甚至开始骂人。。。我相信这类事情举不胜举,我也非常肯定的相信,猿媛们在日常的工作也经常遇到这样的事情。我们针对此类事情常常会回应“不专业”,对,这就是不专业。反过来就是专业: 电面前,先都问清楚对方是否能听清楚,然后再blahblah;候选人告诉你,我现在方便了可以电面了,这是一个通知啊。你要挂掉,然后再打过去;开会有明确的主题,不要迟到;弄清原委后,再骂人。。。等等。
闻道有先后,术业有专攻,如是而已。
知识是无穷无尽的,总有你不知道的,总有你不会的,即使你当了几十年的程序猿,号称啥都会,人送外号万事通,但想把你问倒,也不是难事儿,一个学校里的孩子也有你不知道的知识。软件行业,分为众多领域,都说隔行如隔山,但是不同的领域也有鸿沟,比如做客户端,后端,前端,驱动,游戏引擎,图形图像,安全等等。所以,我们要保持一颗求知的心和一个谦虚的态度,即使你是前端大牛,但当你遇到驱动上的问题,你就是个白痴,就要虚心的去学习,去向别人请教。
另外,就是面试时,身为掌握生杀大权的面试官,更是要拿出对候选人的尊重,不能因为别人的出身(非科班或大专),经历(小公司,外包公司),经验(经验少,项目无亮点),不是很对口(你需要客户端,他大部分经验是前端)等非技术原因,而在面试时故意刁难,或者“明摆着不想要你,但是为了应付领导不得不面试”,或者因为其他原因来鄙视候选人(曾遇到过,一个外企的人,鄙视国内公司的人,说国内都是抄外企的)。正所谓疑人不用,用人不疑,身为面试官,你可以pass掉这个人,这是你的权利,但是你必须尊重别人,即使这个人能力确实不咋地。谁都有低头的时候,外企就牛么?国内的外企不也是总部的外包,竟干点杂活儿,Motorola当年多么牛逼,待遇也好,招人也挑得不行,现在不也都树倒猢孙散!老话讲不要装逼,迟早遭雷劈!
如何停止迷茫的眼和沉降浮躁的心
每当迷茫的时候,都是对未来想太多,当下做的太少导致的;每当浮躁的时候,都是期望的太多,做到的又太少时导致的。无论将来,你怎么样,将去向哪里,最关键的,是要从当前开始,你无法梦想着直接飞到那里,没有直升机,也没有热气球可以拨地而起,只能从当前开始,脚踏实地的,一步一个脚印的往前走。 这还是有点空,有点鸡汤,下面来说说具体如何做:
首先,搞清楚你自己的做什么的?
对,死写代码的。写哪一层代码的?安卓?水果?应用?Frameworks?驱动?哪一领域的?图形图像?Webkit?网络?BlueTooth?金融?安全?什么,不写代码,只是维护解bug(有相当部分的人,比如安卓整机方案的人都是只维护解解bug),也一样,哪一层的?哪一领域的,搞清楚;
然后,弄清楚自己是干啥的了,这就好办了,把你该做的事情,做好,做熟悉,做到你只用半天时间就能完成一天该做的事情。写代码,要学习如何把代码写的又好又快,也就 是能快速的完成指定需求,bug又少,升华一下,又包括把代码写得清爽,易懂,结构合理,命名易懂等等,这个是基本功的修炼,且一直被人忽视,因为几乎所有公司的KPI里不会涉及到代码的好与坏,顶多是bug的多与少,crash率,性能和稳定性,这些是软件的指标,而非代码,衡量代码好与坏,最好的办法是看接手你代码的人的反应,看他骂你的次数。代码的修炼可以看《代码大全》《整洁代码之道》这些书,更重要的是看优秀的开源代码。
另一个,就是熟悉现有的代码,争取做到,每当一个新需求过来时,你知道要改动哪些类,要在哪里添加新代码;改bug时,你想一想,就知道bug大概出现在什么位置,是哪个类,哪个方法导致 的了问题。
还有就是熟悉业务逻辑,任何软件都是为了实现业务而做的,熟悉业务逻辑,先是你负责的小模块的逻辑,然后是整个软件的业务逻辑,这对新评估需求,解bug,都非常有好处,你会站在一个整体的角度去思考。有一些具体的指标,比如你可以整理了需求文档,以及由此可以产生各种测试用例和场景,这对你验证代码的正确性很有帮助。
之后,就是准备好,并备份常用的测试环境,测试数据和测试用例,有新的需求,和解bug后,也都要整理并添加到测试库中,方便自测和回归。虽然有QA来保证软件质量,但是我们的软件,拿到给QA前起码要是能work的,需求要能满足的。总而言之,专业的程序员自己是要做足够的测试的。而测试,有时候不是那么的方便,比如,对于客户端而言,常发生的事情是,后端数据还没好,你需要mock数据;有些数据是少数场景才出现的,也需要mock着来测试;上线前要在测试环境里,用测试服务器来测试;等等。这里的意思是,如果你经常需要这些东西,比如mock数据啊,代理啊,等等,就要去花点心思,整理并备份,甚至想办法,写代码也好,用开源库也好,搭建好方便使用的测试环境,这对开发来说是很有帮助的。可能你会有印象,一个bug,改起来很容易,但是验证它却很困难,要挂代理,mock数据,模拟特殊场景,调整网络环境等等。
还要备份常用的环境配置,比如你的代码会针对不同的场景有不同的定制,这时,最好的方式是各拷贝一份,每一份都配置好,而不是用不同的分支,即使这也能做到。原因有二:
代码分支虽然可以区分不同的代码,但是环境依赖配置往往不会在repo里,意味着你切了分支后,还是要去搞一下环境配置,弄一弄依赖;另外一个原因是并行的问题,假设你在A版本的分支上正在开发新功能,这时B版本(假设A与B是给不同客户的,二个分支有差别)要修Bug,你说你是切分支方便,还是说到另外一个目录去搞方便,我觉得还是这种物理隔离的要好。混了几年的后,我们深知,环境配置也是开发的一部分,而这通常都很麻烦,会让一个看起来十分钟搞定的事情,最终变成搞了二天,可能还没有搞定。现在的代码都很复杂,复杂之处在于,它本身不复杂,但是依赖特别复杂。大家常折腾开源软件,应该知道,一个库本身本身可能不复杂,但想要用它,要安装配置一坨一坨的依赖,试想一下,如果不用包管理器(apt-get,brew,pip之类)的,你自己手动去装一个opencv试试,或者直接编译它的源码试试。
上面这些做到了后,我相信份内的事情对于你来说,都不是事儿了。这时,就要去深入学习了,把你所依赖的东西搞清楚。比如你用到了网络库,像OkHttp,像Retrofit,它们为什么比原生的要好用?它主要的原理是什么?它的封装思想?再如图片加载库UIL,Picasso等,它的原理是什么?所依赖的底层库,封装的都特别好,用起来很方便,越是这样的库,如果你只知道怎么用,那就完了。因为即使没用过的人,花几分钟看下教程也都知道怎么用。只有深入了解实现细节,并学习使用高级用法,才能不惘你用过一回这些优秀的库。
此外,无论是哪个领域,哪一层,性能调优都是一个高手的象征,项目的性能调优工作一般都是由高手来负责的。所以,如果你学习,并实践过性能调优,对技能的提升绝对是一个大推力,面试时也会是一个大大的加分项。
最后,就是用心,认真的对待工作,认真对待每一行代码,每一个bug。即使你不喜欢现在的工作,即使你觉得你现在就是在浪费时间,浪费生命,每天都改改bug,毫无乐趣,但你也要认真对待,把工作做好。所谓拿人钱财替人消灾,你拿了公司的薪水,就要把工作做好,他日你能高就,那是另外一回事,是他日的事情,今天你在这儿,就要把该做的事情做好。如果特别浮躁,眼高手低,总是糊弄,你觉得你能高就么?老板会把更重要的事情交给你?虽然,这个世界千奇百怪,确实有人不是因为技能得到了更高的工资,更好的工作,但我相信大部分情况下,还是成正比的,待遇比你好的人还是有正面的理由的。如果你不服,那么就更要用心的去努力,他日高就时,证明给别人看:老子比你们都强!
如果你能做上面建议的几点,略加坚持,不出半年,肯定会有质的变化。
去他妈的职业规划和长期计划
职业规划是一个方法论的东西,比他妈的设计模式还不靠谱。长期计划更是害人的东西,超过一年的计划,甚至 超过6个月都是扯蛋。你去问那些大牛,没几个有他妈的明确的职业规划和长期计划的。他们的共同特点 是:擅长深挖,能啃书,能读代码,思维活跃,思路清晰,解决问题时,人家的思路就比你的更优雅。 为什么说这玩意没卵用,是因为现实生活中变化真的太快了。项目,做几个月之后 可能就不做了;人员,今天张三离职了,明天李四转岗了;没等你做完呢?需求改了,或者这个运营活动不做了,因为老板经费不给批。。。。
说个具体的身边的例子吧:去年团队来了个实习生,是按安卓客户端招的,来了后,头一个星期也是安排的安卓的活儿,第二个星期,来了一个新的大需求,需要H5(Mobile HTML5),结果这孩子就要去做H5(要现从头学JavaScript),过了大概三个月,公司政策变化,用不了那么多实习生,结果这孩子 就得回学校了。如果你是这孩子,你连一个月的学习计划都没法实现,因为你都不知道下周,甚至明天会发生啥事情。
想要获得一个更好的成长学习环境就是要去大公司
去大公司还是小公司,这个可以列为与C和C++之争,GNOME和KDE之争以及Vim和Emacs之争同等的一个不朽的话题。孤认为,当你处在职场初期,比如刚毕业,或者毕业二三年之内,大厂无疑是一个非常好的选择,这里的大厂包括国内一流的公司比如BAT,网易等国内知名大厂,以及大的外企,如Intel,Microsoft,非死不可,谷哥等等。
接下来说原因:公司雇我们来是干活的,是为公司创造价值,是帮公司赚钱的,不是让你来学习,让你来开拓视野,让你来接近牛人,让你来讨论问题的。大厂,因为它很大,有稳定的收入来源和赢利能力,所以,它的节奏是有规律的,是相对宽松的,它的项目要么是成熟稳定的,要么不是为了短期赢利而开展的。所以,它在人才的培养方面,是有计划的,换句话说,能够容忍你去学习,甚至是稍微放慢一下工作任务(我说的是稍微放慢),因为公司也期望你去学习,提升自己的技术和能力,公司也有会有这样的空间来接纳更好的你,说白了,有足够的空间让你提高和上升,更会有时间和耐心来让你完成这一过程。小厂能有这样的空间吗?能允许你说,我先学几个月?没准几个月后,你学成归来时,公司可能都倒了。
另外,大厂里人多,好人多,牛人多,坏人也有,水货也不少,你可以认识更多的人,你可以了解大厂是如何运作的,大厂是靠什么发展成为这么大,以及大厂如何保持运转而不衰落,大厂里,你可以有时间和空间去学习,能开阔视野,能拓展人脉,这都是小厂无法做到的。
一句话,当你处在职业的快速学习期时,大厂是最佳选择;而当你感觉学有所成,或者遇到了新的瓶颈时,这时小厂就是你大展拳脚的好去处。所以,你看,从BAT出来的人,无论是创业还是加盟创业,都是一个非常好的归宿,这是双赢,对于我们,小厂里空间更大,人少事多,是你施展大好舞台;而小厂也恰恰需要这种以一当十,即是CTO又是程序猿,即是开发又是运维的复合型人才。
沟通以及代码可维护性取决于作者是否能为他人着想
如果一个人肯为他人着想,会换位思考,我相信,他的沟通能力一定不会差;他写代码的可读性也不会太差。如果你不顾别人,只管自己说,说完拉倒,这怎么沟也不会通;如果你想不到别人会维护你的代码,甚至想不到日后自己也得看现在写的代码(看,都不为自己着想),这代码要是可维护,算孤白活。
攘外必先安内
委座这句话还是相当有水平和内涵的,也具有指导意义。我对这句话的理解是,小到个人,团队,部门,大到公司和国家不能同时进行二个或多个大事情,只有把一个搞定了,才能去搞其他的,有点不好理解,待孤慢慢讲。
所谓温饱思淫欲,当你下个饭辙都没有时,你还考虑什么泡妞?当你一门技术,一个编程语言,一个平台都没学明白的时候,想什么跨端,想什么技术的广度?都是扯蛋。到外挖井,挖的也不深,最终一辈子也挖不到水,正所谓10个10%不等于一个100%;
再比如团队,每次发版本都搞得鸡飞狗跳的,还谈什么XP,搞什么技术创新?好好的把业务需要的技术搞熟悉,搞透彻,先把份内的事情做好,轻松的做好,当你每次发版本都能轻松应对时,甚至原本10个人的活5个人就能搞定时,这时才是你去搞技术创新,搞什么UT啊,什么XP,什么技术驱动,什么工程师文化啊;
大到公司,当前的领域内,都没有占有稳定的市场份额时,就学人家搞什么布局,人家搞金融,你也搞,人家搞汽车,你也搞,人家搞影业,你也搞,这早晚会把自己玩儿死,就比如当下的贾布斯,乐视的电视,手机,体育,哪个占有稳定的市场份额了?哪个能担起养家的重任?这个时候你去玩布局?搞什么汽车?这就叫No zuo,No die。马老师是擅长布局,但是都是在一个领域垄断了时:当年搞淘宝,是因为B2B站稳了脚跟,能养家了,换句话说B2B已经做的差不多了,且占了大部分的市场份额,能赚钱,即使淘宝失败了,赔了钱,都不是事儿。后来搞阿里云,现在的什么影业,菜鸟,双H,这都是要持续砸钱的,为啥,因为淘宝和天猫能养得起整个阿里,即使这些都赔了,也赔得起。
大到国家也是如此,当人民还吃不饱穿不暖时,谈什么精神文明建设,谈什么科技创新?比如七八十年代的中国,十几年前的东南亚(那几个比较弱的国家,不是四小龙),搞什么环境保护,对于人类来说,当面临人类的自身的生存和环境保护的选择时,只能选择前者。所以,在一个不发达国家向中等发达国家迈进的时候,经济发展始终是第一位的,人类发展过程都一样,都是先污染,求发展,再治理。
说到这里,我相信你已经明白孤的意思了。
提高竞争力,以增值
什么是竞争力,我觉得就是要多多培养那些不是Google一下就能解决的问题的能力。说白了,就是知识体系。Google一下能解决的问题,一定是一个点。StackOverFlow也好,博客也好,说的都是一个点的问题,不可能太大,因为大了的话一篇文章怎么能讲的清楚。多个点,且经过连接就成体系,这是需要长时间多次Google,外加思考总结而形成的,这就是竞争力。也是老鸟的价值所在。
很多人都在争论,30岁以后要不要写代码啊?40岁以后怎么办啊?确实,随着年龄的增长,人的身体,精力都会走下坡,不能再像年轻时那样熬夜,所以30多岁的一线人员的处境非常的不容易。刚毕业的前几年,是快速成长期,只要你肯努力学习,技能水平,收入都是直线上升的,但是接近30岁的一线码农,再想技能水平收入直升,就相当的困难。家庭,生活和身体原因让你没有那么 多时间去学习了。这时,你能做的事情,刚毕业二三年的人也能做,他们精力更旺,身体更好,所以很多人要么转管理,要么转行,剩下的也总是在琢磨啥时候转。
我觉得,造成这种尴尬的境遇最重要的原因还是未能持续学习,未形成足够多的竞争力。即使你没成为管理者,没成为大拿级别的人物(现实生活中不可能每个30岁后都成为管理者,都成为大拿),如果你持续学习,不断提升竞争力,你总是会增值的,即使每年公司仅给你普涨工资。
工资,我们要以单位时间来算,假设月薪2150块,这其实是21.5x100得来的,你请一天假,是要扣掉100块的,再换算,8x12.5=100,也就是说你的时薪是12.5大洋。二个人的月薪假设都是2150,但是一个人水平高,一天的活,2小时搞定,一个月的活一个星期搞定;跟另外一个天天还得加班才搞的完。哪个薪水高?当然,这里是做了很多简化,现实生活要比这个复杂。虽然,都有快速成长期,公司也有快速膨胀期,但最终,都会达到稳定,所谓稳定,就是你遇到瓶颈。比如像BAT等大厂里的大部分人,拿阿里来举例,绝大部分人,升到P7后,肯定就止步于此,不当主管升P8是很困难,而且只会越来越困难。那么这些人,每年只能被普涨工资,要想提高工资水平,只能靠提升自身工作效率来增值。
有人也许会说,这不太现实啊,活儿不一定会平均 分配的,老油条可能会被分配更多的任务。其实,这个决定权在于自己,都已经是老油条了,看不到上升的希望了,为什么还要多干?这是一个屁股决定脑袋的时代,也可以理解为工资决定责任的时代,员工付出多少努力取决于给多少工资。说不好听的,给一个应届生的薪水,还指望着,干着架构师的活儿,担着CTO的责任,只有处在职业初期,快速学习成长的时候才会干,并且一旦感觉学有所成,立马高就。
总之,不断的学习和总结,多多培养竞争力,才能做到越老越值钱。
要事不一定非优先
当有多件大事情要做时,比如一个新功能,一个是已上线版本的几个bug,还有设计下个月的一个运营活动的技术方案,当这三个事情摆在面前时,只能先选择最重要的事情来做。这个确实是要应用要事为先的原则。
但假如,还有一些其他小事情要做:比如,充个话费;到网上买个东西;升级一个软件等,这些10分钟内可以搞定的小事情,最好还是先做了。这样你的头脑就清静了,不会老想着“要记得充话费啊”,这些小事情本来就容易被忘记了,所以大脑会潜意识的提醒我们。这会打扰正常的工作思维,影响思维的集中度,从而影响重要事情的效率。而且,按要事优先也会造成到晚上了这些小事情还没有做完,而推到第二天。
区分的原则就在于:如果一件小事情可以10分钟内搞定,那么就迅速搞定它。要明白,你的ToDo列表越短越好。那些需要半天或者一天才能搞定的事情,当然还是要按照要事优先的原则来办。
不要努力加班做业务,而是要加班学习
软件行业,加班是难免的,特别是互联网行业,现在的移动互联时代996更是一个普遍现象。也许会感觉到充实,也许会感觉到成就,也许会感觉到累?但是黄牛式的,天天加班做业务,起码对于个人的成长来说是最致命的。现在年底了,你回头想一下,这一年都做了什么?有哪些成长?你会发现,你做了很多事情,但是成长很少。遇到不会的东西,网上搜一搜,copy一下,就完了。业务做了那么多?你会有成就感 么?程序员的成就感更多是源于自己的成长,能够做到以前做不到的事情,而非天天搬砖。
举个例子,你会盖房子,但这一年,都是在盖同样差不多规格的房子,能有多大长进?什么时候来一个盖漂亮城堡的活,你能接得住么?公司给我们钱,是让我们产生价值的,对于公司来说房子就价值,只要我们能多产出房子就值了付给我们的薪水了,等哪天你老了,病了,不能盖房子了,他们立马会找一个更年轻力壮的人来替你。而你如何升级为盖城堡的人,公司根本不管。
所以,如果你感觉天天在搬砖,几个月了,甚至半年了,毫无进步,没学习新东西了,也没有搞清楚遇到的问题,这时就要注意了,要减慢搬砖的速度,哪怕不要KPI了,要停下来学习学习,总结思考一下,如何做得更好。比如,有些重复的工作,是不是可以用脚本,像打包,发布之类;比如对于产品和运营过来的需求,要合理的拒绝;比如对于重复性的运营活动,是不是可以搞些配置模板等等。
天天加班做业务,是不会有进步的。要想进步,只能学习。
学会聪明的做事
考试时,最好的方法是什么?不是瞎猜,不是自己做,而是抄正确的答案。一个活分配下来了,最好的方式是什么?不是自己干,即使你早已驾轻就熟,而是让别人替你完成。最省力,最轻松的做事方法是,让别人来做。完成一件事情的方法有很多,我们要选择成本最低的方式。
这里,不是说让大家投机取巧,把本该自己做的事情推给别人,当然如果你有那个本事推给别人,别人又愿意接也可以。而是说要聪明的做事,不要把精力耗在本该别人负责的事情上。比如,现在的软件依赖都比较复杂,问题通常都会通过上层来表现出来,如果你发现,这个是底层引起了,那就不要去查了(如果时间充实,为了学习和研究的情况除外),让相应的负责人来查就好了,他对此更加的熟悉,可能 你花一天功夫也没弄明白的,人家一眼就搞定了。
再有就是,一些烦人的手工操作,重复性操作,要写脚本来完成。计算机最大的优势是能够重复且不犯错的完成任务,它的最大优势 在于重复,人的重复性没有计算机好,而且会犯错,像拼写错误等。像打包,发布,等等很多事情都可以用脚本来完成。
学会利用程序员的优势
软件再也不是大学实验里,让人们琢磨不透,看起来很神秘的东西了,它已经融入了人们的生活,广场舞的大爷大妈们都也用上了智能手机,用上了微信,淘宝。我相信,问软件人员会修电脑的人会越来越少。这意味着我们每天都要跟软件打交道,离不开软件 了。身为会写软件 的人,就要利用好自身的优势,下面来举例来说一说:
要能识别出各种钓鱼短信,欺诈短信电话;如果身为一个程序员还被电信诈骗骗了的话,只能说这个猿太失败了。对于各种软件,也要能够识别出,哪个是真的,哪个山寨的,假的,哪个可能有病毒,哪个可能有木马。更要有安全意识,现在手机应用和网站的个人信息泄露非常严重,所以,更要注意管控手机应用的权限,能少注册网站就少注册等。除了自身要注意信息安全,更要提醒身边的人。
再比如,普通人获取信息的方式是上网站,用搜索引擎,但是猿媛是不是可以用爬虫呢?
再比如像抢红包,抢票,秒杀(不要去秒月饼哈)刷投票,刷评论等,普通人靠人肉,靠手工,靠发朋友圈,我们身为猿媛是一定要靠 技术的,写个脚本,写段代码来帮我们完成这些事情,这也是我们从事的职业所带来的一个优势。
推荐阅读
毕业两年总结
变强和变现