84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
根据我的个人经验,在工作里面是很难学习到什么特别有用的技巧的。在微软,或者谷歌这样的公司,你用的东西都是内部造好的轮子,所有的经验在离职了之后都是没法用的。
但是编程技巧啊、设计模式算法这样的东西,你是无法直接在工作中学会的。公司给你一个任务,并不会说你写出来的算法跟CTO脑子里想的不一样,就不给你钱。所以没有任何方法可以强迫你学会需要的知识,你也只有自己去学。
所以最好的选择就是自己在家里牺牲娱乐的时间来做自己的项目。自己的项目没有deadline,你做多久都可以。最重要的就是要难。难到什么程度呢,就是只要更难一点点你就做不出来了。只有刚刚好到这个临界点,做项目的效果才会最大化。不过你如何找到这样的项目呢?只能靠你多给自己出题,出多了你就对自己掌握的比较准确了,就有经验了。
如果你是那种要人家用枪指着你你才看得进书的人的话,那的确没办法。
之前的回答 https://segmentfault.com/q/1010000000461429
我的建议有三条,我都各自用过这些方法来冲出舒适区,仅供参考
不知道你有没读过《黑客与画家》,这里说的NightJob就是你在工作之余,下班,周末来作的项目。无需考虑盈利,只需要做你最想做的事情,你自己是产品经理负责规划,自己是老板负责挤出工作之余的时间,自己是开发负责找最cool的技术来实现。
我个人的NightJob有很多很多,绝大多数最后都是0用户,自己写不下去了,但每一次从发现灵感,尝试去做,最后做了个半成品,渐渐遇到困难,克服了一些困难的过程都对自己的成长有很大帮助。每次反思“啊那个项目怎么最后就做不下去了”也都很有收获。
顺势给第二条建议起了个这么个名字,就是工作之余,想想有啥可以额外做的小工具,mini项目,做出来可以略微提高一点工作效率的。比如我做的事情是
我司内部有一个MySQL缓存中间件,负责在web机器和DB之间做cache,一直没有图形界面的,我花了一些时间(嗯,包括一次周五额外加班通宵),日了一个网页版的图形界面出来,开发的时候不需要搞那些命令,直接开网页,就像PMA那样就可以控制里面的内容了
这样的事情和老板说,他肯定不会批时间给你做,但实际上做出来以后确实是对开发效率有一定提升的。和NightJob一样,因为是你主动自发做的,所以你可以尽情发挥,用擦上边的各种你想熟悉的技术。比起NightJob来说虽然可能选题范围稍微窄一些,事情本身的有趣程度也略逊,但好在做出来以后可以shock到你的老板,可以让你的同事对你刮目相看。
最后,这条建议就是完全关于正经工作的。既然你现在感觉有余力,可以比较好的完成你的份内工作,可以把你的眼光投向四周:你的同事有什么工作是摆不平的,或者做的不够好的?如果这件事你能做的很好,那么找机会花时间去教他,提高他的水平。如果这件事你也不那么擅长,那就去学,变得擅长,可以考虑和他聊聊然后和你的老板聊聊,告诉他们:这事儿我比较能干,把这份事情搞过来自己做,把自己做惯的“简单”一些的任务丢掉一部分(以夯实你学习的成果)
水泥的意思就是首先能填充到缝隙之中,还能慢慢变硬,让大楼让整个团队坚硬无比,也让自己能适应任何需求。
后者对自己的提升比较明显:你丢掉了一些做惯的不有趣的事儿,拿到了新的有挑战的事儿,学到了新的技能,但其实我更喜欢前者,也就是提高同事的水平的机会。这不仅能收获他的好感度,老板的好感度,还能让你自己的基础更扎实(别人学习过程中提出的问题很多时候能正中自己的软肋),一石二鸟,一般人我不告诉他的。
就一条:要有好奇心。我的做事准则是:当项目中引入一个新的依赖时,我一般会通读他的源代码,确保他的实现大致符合我的预期判断。在这个过程中吸收对方的亮点,同时也尽量避免自己踩坑或踩坑之后能及时跳出。
根据我的个人经验,在工作里面是很难学习到什么特别有用的技巧的。在微软,或者谷歌这样的公司,你用的东西都是内部造好的轮子,所有的经验在离职了之后都是没法用的。
但是编程技巧啊、设计模式算法这样的东西,你是无法直接在工作中学会的。公司给你一个任务,并不会说你写出来的算法跟CTO脑子里想的不一样,就不给你钱。所以没有任何方法可以强迫你学会需要的知识,你也只有自己去学。
所以最好的选择就是自己在家里牺牲娱乐的时间来做自己的项目。自己的项目没有deadline,你做多久都可以。最重要的就是要难。难到什么程度呢,就是只要更难一点点你就做不出来了。只有刚刚好到这个临界点,做项目的效果才会最大化。不过你如何找到这样的项目呢?只能靠你多给自己出题,出多了你就对自己掌握的比较准确了,就有经验了。
如果你是那种要人家用枪指着你你才看得进书的人的话,那的确没办法。
之前的回答 https://segmentfault.com/q/1010000000461429
我的建议有三条,我都各自用过这些方法来冲出舒适区,仅供参考
NightJob
不知道你有没读过《黑客与画家》,这里说的NightJob就是你在工作之余,下班,周末来作的项目。无需考虑盈利,只需要做你最想做的事情,你自己是产品经理负责规划,自己是老板负责挤出工作之余的时间,自己是开发负责找最cool的技术来实现。
我个人的NightJob有很多很多,绝大多数最后都是0用户,自己写不下去了,但每一次从发现灵感,尝试去做,最后做了个半成品,渐渐遇到困难,克服了一些困难的过程都对自己的成长有很大帮助。每次反思“啊那个项目怎么最后就做不下去了”也都很有收获。
OverJob
顺势给第二条建议起了个这么个名字,就是工作之余,想想有啥可以额外做的小工具,mini项目,做出来可以略微提高一点工作效率的。比如我做的事情是
这样的事情和老板说,他肯定不会批时间给你做,但实际上做出来以后确实是对开发效率有一定提升的。和NightJob一样,因为是你主动自发做的,所以你可以尽情发挥,用擦上边的各种你想熟悉的技术。比起NightJob来说虽然可能选题范围稍微窄一些,事情本身的有趣程度也略逊,但好在做出来以后可以shock到你的老板,可以让你的同事对你刮目相看。
成为水泥
最后,这条建议就是完全关于正经工作的。既然你现在感觉有余力,可以比较好的完成你的份内工作,可以把你的眼光投向四周:你的同事有什么工作是摆不平的,或者做的不够好的?如果这件事你能做的很好,那么找机会花时间去教他,提高他的水平。如果这件事你也不那么擅长,那就去学,变得擅长,可以考虑和他聊聊然后和你的老板聊聊,告诉他们:这事儿我比较能干,把这份事情搞过来自己做,把自己做惯的“简单”一些的任务丢掉一部分(以夯实你学习的成果)
水泥的意思就是首先能填充到缝隙之中,还能慢慢变硬,让大楼让整个团队坚硬无比,也让自己能适应任何需求。
后者对自己的提升比较明显:你丢掉了一些做惯的不有趣的事儿,拿到了新的有挑战的事儿,学到了新的技能,但其实我更喜欢前者,也就是提高同事的水平的机会。这不仅能收获他的好感度,老板的好感度,还能让你自己的基础更扎实(别人学习过程中提出的问题很多时候能正中自己的软肋),一石二鸟,一般人我不告诉他的。
就一条:要有好奇心。
我的做事准则是:当项目中引入一个新的依赖时,我一般会通读他的源代码,确保他的实现大致符合我的预期判断。在这个过程中吸收对方的亮点,同时也尽量避免自己踩坑或踩坑之后能及时跳出。