本文由恋猫de小郭授权发布,分享了他五年来的程序生涯,非常精彩,相信对大家有所帮助。
恋猫de小郭的博客地址
https://juejin.im/user/582aca2ba22b9d006b59ae68
5 年是一个值得总结的阶段,而这 5 年后的今天,我发现自己越来越不像一个“程序员”。
如今在工作中 开始关注文档,开始关注规范,希望自己输出的不只是代码;
这 5 年来取得了一些小成就,也有各种小遗憾,作为一个兴趣使然、不是特别勤奋的程序员,希望我的经历能给你带来不一样的“鸡汤”。
事实上对于程序员来说,Github 一直有着特殊的含义,对于我也一样。
一开始创建自己 Github 的时候,其实就是工作闲了,想让自己沉淀些东西,因为感觉自己碌碌无为地码了两年,一直缺乏自己的背书和交流,是时候做点改变了, 而也是这一步,开启了我的新里程。
我记得我在创建 GSYVideoPlayer
的时候,从未想过它会到达今天这个数字;而在做 GSYGithubApp
我也经历过不知道该做些什么,觉得“这个没有技术含量,那个类型已经有人做了”的困惑。
最后我选择从“优化”别人的项目开始,并且慢慢将手头上各式各样“无用”代码发布到 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不是工作的“敲门砖” ;不是额外的经济收入;而是自我驱动的源泉和对过去的认可,它让我相信,我还在路上。
这个阶段放到工作中同样适用,你在企业发展的每个阶段里,所担任的角色和职责是否在改变和发展?
>
事实上我一直认为,工作才是你的第一平台,企业的发展阶段让你成长,同时你也需要在工作中适时调整自己的位置,你可以尝试一边学习,一边工作,和企业一起成长,同时在日常生活中把一些时间空出来,用这些时间来扩展你的工作范围,争取 “在工作中去讲述自己的故事” 。
最后说几句,最近刚好看了 《能力陷阱》码农生来只知道前进” !
Android 面试必备 - http 与 https 协议
Android 面试必备 - 计算机网络基本知识(TCP,UDP,Http,https)
Android 面试必备 - 线程
Android 面试必备 - JVM 及 类加载机制
Android 面试必备 - 系统、App、Activity 启动过程
致刚入职场的你 - 程序员的成长笔记
干起来,你就超过了 50% 的人
stormjun94扫一扫,欢迎关注我的公众号 stormjun94。如果你有好的文章,也欢迎你的投稿。