一个程序员的五年总结,给你不一样的角度
转载:
https://juejin.im/post/5d3d8817518825348962e6c7
5 年是一个值得总结的阶段,而这 5 年后的今天,我发现自己越来越不像一个“程序员”。
如今在工作中 开始关注文档,开始关注规范,希望自己输出的不只是代码; 每天会耗费时间消化各种外部信息,喜欢看更多非技术类的书籍,喜欢和各式各样的业内业外人士交流。
这 5 年来取得了一些小成就,也有各种小遗憾,作为一个兴趣使然、不是特别勤奋的程序员,希望我的经历能给你带来不一样的“鸡汤”。
Github
事实上对于程序员来说,Github 一直有着特殊的含义,对于我也一样。
一开始创建自己 Github 的时候,其实就是工作闲了,想让自己沉淀些东西,因为感觉自己碌碌无为地码了两年,一直缺乏自己的背书和交流,是时候做点改变了, 而也是这一步,开启了我的新里程。
我记得我在创建 GSYVideoPlayer
的时候,从未想过它会到达今天这个数字;而在做 GSYGithubApp
的时候,也没想到如今会做成一个系列,事实上在创建自己 Github
的时候,我也经历过不知道该做些什么,觉得“这个没有技术含量,那个类型已经有人做了”的困惑。
最后我选择从“优化”别人的项目开始,并且慢慢将手头上各式各样“无用”代码发布到 Github ,并在各个渠道推广它们。
最终,在 Github 上从一个 “索取者” 转变为 “贡献者” 后,我的认知和工作慢慢发生了改变,这个改变在 埃米尼亚·伊贝拉的《能力陷阱》中解释是:
“外在转变过程指的是,建立起一个有潜力或有能力的好名声,这能够在很大程度上改变我们的自我认知; 而内在转变过程涉及内在动机和自我定位的转变,这种转变并不是独立发生的,而是在与他人所建立的关系中渐渐发生的转变。” ——《能力陷阱》
是的,在开始维护 Github 并建立自己背书的过程中,我是被推着走的。为了维护转变后的“大佬”角色,我开始从工程的角度思考需求,开始从架构的角度去解决 issue,被迫利用规范去约束一些问题。
这个转变也开始影响到我的工作:
以前在使用开源服务时,遇到问题的第一反应就是提个 “老板式” issue,而现在是先看源码找找问题是什么?
在日常工作中,也从习惯于遇到问题后只会抛出问题,变成遇到问题后争取提出几种可行性解决方案进行讨论。
同时 Github 也很容易让你接触到各式各样的人,在这里你可以和天南地北、国内国外的人交流学习,最后我发现:Github 不仅仅是“网盘”,它的作用绝不止是让你 “CV” 和“白嫖”的地方,它更是你展示能力,改变自我和思想碰撞的社区。
当然,维护 Github 和推广不是容易的事情,你可能会经常遇到各种“降维”打击和“无理” 要求,但是承担责任,学会如何处理和甄别,是除开工作外,Github 这个平台所能带来的更多价值。
成长
程序员是一个需要不断学习成长的岗位,特别是大前端,回想过去 5 年里,从
语言:
Java
、Kotlin
、JavaScript
、Dart
;框架:
React Native
、Weex
、Spring
、Flutter
;开发模型:
MVC
、MVP
、MVVM
、DI
、AOP
、Reactive
等等的学习,有个人兴趣,也有工作所迫,但在学习技术的路上,只要你在行业内就很难停下来。
而在学习路线上,包括我自己,很多人都会有 “是不是学多就不精了” 的疑问。确实,学的东西多了,不可能在工作中都能有所应用,而且每项技术的探索可能都会深浅不一,所以避免跟风学习是前提。
但是回归到 “精通” 这个词,在不学多的情况下,你又是否真的在学精呢? 每个人都有自己的路线和学习风格,而我对自己的定位,更多是在自己的技术栈内去拓展技能。
因为技术是具备可迁移性的,比如:学习 Dagger
和 Spring
的时候;学习React Native
和Flutter
的时候;学习 Kotlin
和 JavaScript
的时候。
在增加自己技术储备的同时,也开拓自己的眼界,我个人更希望自己的生涯是去 “精通” 开发,而不是定位于某种语言或框架, 在《能力陷阱》 一书里提过:
“我们很乐于去做那些我们擅长的事,于是就会一直去做,最终就使得我们会一直擅长那些事。做得越多,就越擅长,越擅长就越愿意去做。这样的一个循环能让我们在这方面获得更多的经验。而它就像是毒品一样,我们被它深深吸引,因为我们的快乐和自信都来源于它。它还会让我们产生误区,让我们相信我们擅长的事就是最有价值的且最重要的事,所以值得我们花时间去做。” ——《能力陷阱》
所以我会保持去关注新的行业动态,了解一些新兴技术实现,即使只是知道它的名字和作用。危机感和兴趣让我有动力这么做,当然,在某个领域保持深度还是有必要的,毕竟吃饭的东西不能丢,但是保持学习和好奇心,是让职业生涯更有生命力的保证:
“同样地,每年我们都会看到,在一个新的技术发布后,曾经在某一领域具有权威的领导者失去他的领导地位,这正是因为日常工作占据了进行策略性思考的时间,从而让你没有时间去做一些更有价值的事。” ——《能力陷阱》
还有挺多人问过我,是如果保持写作和学习的,就我而言,可能是因为我记性不大好,我习惯把生活或工作中的一些收获和想法,如:解决问题的思路和方向,看源码的逻辑与流程,读书的体验和感受都零散地记录下来,这些都是创作的灵感源泉,同时保持对问题的思考是很重要的。
所以我现在喜欢和各式各样的人交流,了解他们对一些问题不同的看法,这样往往能给出不同角度的答案,当然,避免无谓的争吵是生活快乐的源泉。
阶段
我个人习惯于把经历和目标定义为各类阶段:
小阶段,比如我希望这篇文章的阅读数,这个 Github 项目的 star 数能到达某个目标;
大阶段,比如我希望 GSY 能在国内 Flutter 领域有一席之地;比如我希望自己的职能在输入代码之外能有新的发展。
而这样的定义让我更具目的性地行动。回想过去 5 年,如果你问我有规划 5 年后会如何吗?我是没办法给你明确答复的。但是小阶段和大阶段的定义,能让我在短期内更有目标地行动,同时保持不断的行动,保持间断性的学习成长。
我的阶段目标不会是“一个亿”,而是未来一个月我想要做什么?未来几天我希望做什么?说更实诚一些,就是自我驱动!事实上如果没有外界驱动,那么就给自己找点麻烦吧。我一直思考领导者和被领导者之间的区别,其实很大一部分就是领导者会给自己找事。
同时阶段总结可以让你更认清自己。
我相信每个阶段都会经历:奋进的上升期,收获期,然后到达自己的一个阶段巅峰。比如 5 年后的现在,我开始思考,过去所收获那些数字所代表的意义,从“一身白装”到“锦帽貂裘”,是什么能让你膨胀,又是什么最是难忘。
每一个阶段的“巅峰”,最难的就是看清自己的实力,在“可观的数字”和一声声的“大佬”中,你是否迷失了自我? 现在想想 Github 上收获的数据,带给我的 不是工作的“敲门砖” ;不是额外的经济收入;而是自我驱动的源泉和对过去的认可,它让我相信,我还在路上。
这个阶段放到工作中同样适用,你在企业发展的每个阶段里,所担任的角色和职责是否在改变和发展?
“他们根据各自的专长,把工作定义在一个较窄的范围内,把自己的活动范围限制在过去能给他们带来最大价值的持续性成果的领域。事业初期,他们需要扮演这样一个角色。但是经过一段时间以后,别人对他们的期望会发生改变。” ——《能力陷阱》
事实上我一直认为,工作才是你的第一平台,企业的发展阶段让你成长,同时你也需要在工作中适时调整自己的位置,你可以尝试一边学习,一边工作,和企业一起成长,同时在日常生活中把一些时间空出来,用这些时间来扩展你的工作范围,争取 “在工作中去讲述自己的故事” 。
最后
最后说几句,最近刚好看了 《能力陷阱》 这本书,又恰好是在阶段总结的时间点,所以比较有感触,就将自己想法写了出来,过去的5年不一定很精彩,但是却很充实,未来的“故事” 也会根据需求而发生一些变化,当目标改变时,故事也会随着转折,但是不变的,大概就是“码农生来只知道前进” !
非常感谢「小郭」的总结,小编毕业四年,啥都没有留下,真是挥一挥衣袖,不留下一片云彩~~
一个程序员的五年总结,给你不一样的角度相关推荐
- 一个程序员的五年技术思维图
本篇转载 https://blog.csdn.net/yelvgou9995/article/details/80225690
- 一个平凡程序员的五年感悟:没有足够的付出,就没有热爱
本来是想写<一个失败程序员的五年感悟>,后来想了想,不管过去如何,不应该再去评断.既然已经客观存在,自己也能够意识到问题所在,在接下来的时间里去改.去努力就好了.不应该轻易地给自己打上失败 ...
- 笑岔气!一个程序员的水平能差到什么程度?
" 最近,知乎上有一则灵魂拷问"一个程序员的水平能差到什么程度?"让各位程序员们纷纷有感而发.小编精选了两个有趣的高赞回答只为抛砖引玉,欢迎大家说出你的故事! 作者:Be ...
- 一个程序员的成长的六个阶段(转载)
一个程序员的成长的六个阶段 第一阶段 此阶段主要是能熟练地使用某种语言.这就相当于练武中的套路和架式这些表面的东西. 第二阶段 此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函 ...
- 当一个程序员面临太多选择的时候
转眼间已经五天没有写博客,没有读/写代码了,人长大后为什么时间就过的这么快.记得小时候盼个周末放假都是那么的漫长.Anyway, 今天跟大家探讨一个问题:当程序员面临太多选择的时候. 不知道其它职业如 ...
- 一个程序员写多门语言不会记串么?
本文经公众号:腾讯技术工程(ID:Tencent_TEG)授权转载,如需转载请联系出处. 天天敲代码,不知道你有没有想过一个问题:这世界上到底有多少种编程语言? 人类诞生数百万年来,产生了 5000- ...
- 如果你恨一个程序员,忽悠他去做iOS开发
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...
- 关于软件工程的那些事儿————《人·绩效·职业道德》和《一个程序员的生命周期》读后感...
对于这片文章,首先标题很亮眼--------"人·绩效·职业道德". 首先,是"人".我个人的理解,"人"在团队中有着重要的作用.一个人不可 ...
- 专访雷果国:从1.5K到18K 一个程序员的5年成长之路
摘要:上段时间CSDN博客上流传了一篇比较励志的博文,讲述了一个程序员从基础薄弱到入职心仪公司的5年成长经历,为了给那些待毕业或已毕业但对未来仍很迷茫的朋友指引前行的方向,CSDN专访了这篇博文的作者 ...
最新文章
- 内网渗透测试:内网信息收集与上传下载
- 构建良好的Windows程序
- SharePoint Portal Server 2003 SP2对文档库事件处理程序所带来的影响
- git clone的源码在vim打开时是乱码
- SQL敲了mySQL变了_MySQL-Front肿么导出SQL文件
- Java LocalDateTime类| 带示例的getMinute()方法
- 惠普ns1005w使用说明_惠普 NS1005w 多功能一体机解析:15秒智能闪充 + 全功能手机操控...
- dij算法堆优化_BZOJ 3040 最短路(road) 堆优化Dijkstra | 学步园
- 洛谷P3382 【模板】三分法
- 【8】测试用例设计-边界值法
- JavaScript内建对象
- linux+ tomcat 遇到ClientAbortException: java.net.SocketException: Broken pipe
- Python爬虫框架Scrapy报错:ModuleNotFoundError: No module named 'scrapy'
- 服务器更新升级BIOS操作步骤
- 如何电脑上怎样查看微信聊天记录
- php高清晰度无损压缩
- Android开发面试简历,android开发工程师简历
- 《哈利·波特与混血王子》(Harry Potter and the Half-Blood Prince)[DVDRip]
- textarea统计字数
- Single Scale Retinex 增强 matlab 实现
热门文章
- java编写2048小游戏
- 开源HTML5拓扑图绘制工具
- Ubuntu20.04.3 + opengrok1.7.25 + tomcat10.0.14安装
- Maya:// 错误: line 1: 找不到过程“look”。 //
- 【图像配准】基于matab SAR-SIFT改进的SAR图像配准【含Matlab源码 2336期】
- 你绕不开的组件—锁,4个方面手撕锁的多种实现
- 【虚拟化】virsh指令大全
- [乐意黎]Windows cannot access \\127.0.0.1 等局域网和网上邻居无法访问的解决方法
- 深入理解Linux虚拟内存管理(一)
- NPP: 重复经颅磁刺激产生抗抑郁效果的基础:全脑功能连接与局部兴奋度变化