一个程序员的五年总结,给你不一样的角度

原文链接: https://juejin.im/post/5d3d8817518825348962e6c7

前言

本文由恋猫de小郭授权发布,分享了他五年来的程序生涯,非常精彩,相信对大家有所帮助。

恋猫de小郭的博客地址

https://juejin.im/user/582aca2ba22b9d006b59ae68

5 年是一个值得总结的阶段,而这 5 年后的今天,我发现自己越来越不像一个“程序员”。

如今在工作中 开始关注文档,开始关注规范,希望自己输出的不只是代码;

这 5 年来取得了一些小成就,也有各种小遗憾,作为一个兴趣使然、不是特别勤奋的程序员,希望我的经历能给你带来不一样的“鸡汤”。

一个程序员的五年总结,给你不一样的角度_第1张图片

Github

事实上对于程序员来说,Github 一直有着特殊的含义,对于我也一样。

一开始创建自己 Github 的时候,其实就是工作闲了,想让自己沉淀些东西,因为感觉自己碌碌无为地码了两年,一直缺乏自己的背书和交流,是时候做点改变了, 而也是这一步,开启了我的新里程。

我记得我在创建 GSYVideoPlayer 的时候,从未想过它会到达今天这个数字;而在做 GSYGithubApp我也经历过不知道该做些什么,觉得“这个没有技术含量,那个类型已经有人做了”的困惑。

最后我选择从“优化”别人的项目开始,并且慢慢将手头上各式各样“无用”代码发布到 Github ,并在各个渠道推广它们。

最终,在 Github 上从一个 “索取者” 转变为 “贡献者” 后,我的认知和工作慢慢发生了改变,这个改变在 埃米尼亚·伊贝拉的《能力陷阱》中解释是:

“ 外在转变过程指的是,建立起一个有潜力或有能力的好名声,这能够在很大程度上改变我们的自我认知;

是的,在开始维护 Github 并建立自己背书的过程中,我是被推着走的。为了维护转变后的“大佬”角色,我开始从工程的角度思考需求,开始从架构的角度去解决 issue,被迫利用规范去约束一些问题。

这个转变也开始影响到我的工作:

  • 以前在使用开源服务时,遇到问题的第一反应就是提个 “老板式” issue,而现在是先看源码找找问题是什么?

  • 在日常工作中,也从习惯于遇到问题后只会抛出问题,变成遇到问题后争取提出几种可行性解决方案进行讨论。

同时 Github 也很容易让你接触到各式各样的人,在这里你可以和天南地北、国内国外的人交流学习,最后我发现: Github 不仅仅是“网盘”,它的作用绝不止是让你 “CV” 和“白嫖”的地方,它更是你展示能力,改变自我和思想碰撞的社区。

一个程序员的五年总结,给你不一样的角度_第2张图片

当然,维护 Github 和推广不是容易的事情,你可能会经常遇到各种“降维”打击和“无理” 要求,但是承担责任,学会如何处理和甄别,是除开工作外,Github 这个平台所能带来的更多价值。

成长

程序员是一个需要不断学习成长的岗位,特别是大前端,回想过去 5 年里,从

  • 语言: Java 、Kotlin 、JavaScript 、 Dart ;

  • 框架: React Native 、Weex 、Spring 、Flutter ;

  • 开发模型:MVCMVPMVVM 、DIAOP 、Reactive

等等的学习,有个人兴趣,也有工作所迫, 但在学习技术的路上,只要你在行业内就很难停下来。

而在学习路线上,包括我自己,很多人都会有 “是不是学多就不精了”所以避免跟风学习是前提。

但是回归到 “精通” 这个词,在不学多的情况下,你又是否真的在学精呢?

因为技术是具备可迁移性的,比如:学习 Dagger 和 Spring 的时候;学习 React Native 和 FlutterKotlin 和 JavaScript 的时候。

在增加自己技术储备的同时,也开拓自己的眼界, 我个人更希望自己的生涯是去 “精通” 开发,而不是定位于某种语言或框架, 在《能力陷阱》 一书里提过:

>

所以我会保持去关注新的行业动态,了解一些新兴技术实现,即使只是知道它的名字和作用。危机感和兴趣让我有动力这么做,当然,在某个领域保持深度还是有必要的,毕竟吃饭的东西不能丢, 但是保持学习和好奇心,是让职业生涯更有生命力的保证:

>

还有挺多人问过我,是如果保持写作和学习的,就我而言,可能是因为我记性不大好,我习惯把生活或工作中的一些收获和想法,如:解决问题的思路和方向,看源码的逻辑与流程,读书的体验和感受都零散地记录下来,这些都是创作的灵感源泉,同时保持对问题的思考是很重要的。

所以我现在喜欢和各式各样的人交流,了解他们对一些问题不同的看法,这样往往能给出不同角度的答案,当然,避免无谓的争吵是生活快乐的源泉。

阶段

我个人习惯于把经历和目标定义为各类阶段:

  • 小阶段,比如我希望这篇文章的阅读数,这个 Github 项目的 star 数能到达某个目标;

  • 大阶段,比如我希望 GSY 能在国内 Flutter 领域有一席之地;比如我希望自己的职能在输入代码之外能有新的发展。

而这样的定义让我更具目的性地行动。回想过去 5 年,如果你问我有规划 5 年后会如何吗?我是没办法给你明确答复的。但是小阶段和大阶段的定义,能让我在短期内更有目标地行动,同时保持不断的行动,保持间断性的学习成长。

我的阶段目标不会是“一个亿”,而是未来一个月我想要做什么?未来几天我希望做什么?说更实诚一些,就是自我驱动!事实上如果没有外界驱动,那么就给自己找点麻烦吧。我一直思考领导者和被领导者之间的区别,其实很大一部分就是领导者会给自己找事。

同时阶段总结可以让你更认清自己。

我相信每个阶段都会经历:奋进的上升期,收获期,然后到达自己的一个阶段巅峰。比如 5 年后的现在,我开始思考,过去所收获那些数字所代表的意义,从“一身白装”到“锦帽貂裘”,是什么能让你膨胀,又是什么最是难忘。

每一个阶段的“巅峰”,最难的就是看清自己的实力, 在“可观的数字”和一声声的“大佬”中,你是否迷失了自我?现在想想 Github不是工作的“敲门砖” ;不是额外的经济收入;而是自我驱动的源泉和对过去的认可,它让我相信,我还在路上。

这个阶段放到工作中同样适用,你在企业发展的每个阶段里,所担任的角色和职责是否在改变和发展?

>

事实上我一直认为,工作才是你的第一平台,企业的发展阶段让你成长,同时你也需要在工作中适时调整自己的位置,你可以尝试一边学习,一边工作,和企业一起成长,同时在日常生活中把一些时间空出来,用这些时间来扩展你的工作范围,争取 “在工作中去讲述自己的故事” 。

最后

最后说几句,最近刚好看了 《能力陷阱》码农生来只知道前进” !

一个程序员的五年总结,给你不一样的角度_第3张图片


推荐阅读

Android 面试必备 - http 与 https 协议

Android 面试必备 - 计算机网络基本知识(TCP,UDP,Http,https)

Android 面试必备 - 线程

Android 面试必备 - JVM 及 类加载机制

Android 面试必备 - 系统、App、Activity 启动过程

致刚入职场的你 - 程序员的成长笔记

干起来,你就超过了 50% 的人

一个程序员的五年总结,给你不一样的角度_第4张图片 stormjun94

扫一扫,欢迎关注我的公众号 stormjun94。如果你有好的文章,也欢迎你的投稿。

你可能感兴趣的:(一个程序员的五年总结,给你不一样的角度)