more_coding_more_happy

《我编程,我快乐:程序员职业规划之道》

我编程,我快乐 百度百科

0. 序言

0.1. 不要害怕失败

不是继续保持平庸,而是要出色,要赢。就像在赛跑中,你要总想着怎么不输,那肯定不会赢得比赛。同样,总想着怎么避免糟糕的活着,那你也不可能成为生活中的赢家。任何人都不应该时刻想着如何避免失败。
(不是反对应对最坏的情况的应急措施的想法)

一个渴望成功的人肯定要比那些只是单纯完成工作的人更有可能成功。即使我们不能成为顶级专家,但确定高目标至少可以让我们不再平凡。

TIPS:
永远对生活充满乐观与热情,即使他QJ了你无数次。

0.2. 制定自己的计划

审视自己的职业,不要跟在别人的计划后面跑,应该按着自己的计划发展。

软件可以看做是一门生意,雇佣软件开发人员,是因为可以创造利润。要评定自身的表现,就要看你能给公司创造多少商业价值。
职业想象成正在制作的产品的生命周期,你的技术成就了这个产品。在设计、生产及销售商品时,我们应注意:

  • 选择市场:关注技术和商业领域
  • 投资:知识和技术是商品的基础,要合理投资
  • 执行:不光有技术还有产出
  • 市场:有好的产品,也要得到行业中的认可

1. 市场分析

1.1. 稳定成熟的技术还是未成熟的新技术?

这与风险收益平衡概念类似。

稳定的技术 未成熟的技术
投资风险低 高风险
收益低 收益极高或极低

选择是把双刃剑,决定权还是在自己手里。但是,无论做出哪种选择,最终的目的是产生利润

TIPS:
从行业信息,招聘信息或者论坛嗅到行业的发展方向。如当前的云计算,大数据,人工智能等

1.2. 供应和需求

Core: 发现市场上的不平衡

供求关系可以预测商品和服务的价格,以及价格变化对购买的人数。 当选择专注哪种技术的时候,需要仔细考虑供给增长和价格下降对职业前景的影响。
不要太在乎眼前,应该看得长远,不要太在意当前的小得失,考虑时间成本与机会成本。

TIPS: 研究当今市场需求,利用招聘网站找出哪些工作是高需求,哪些是低需求。与外包公司的需求做比较。

2. 自我提升

2.1. 学习行业是如何运转的

熟悉业务领域,思考技术是如何来服务业务的。
只有了解了一个行业后,才能创造性地有所建树。
TIPS:

  • 阅读一本基础商业教程,例如《The Ten-Day MBA》
  • 公司财务部门,讲解财务状况

2.2. 做团队中最差的

时时保持一个谦卑学习的心态。你身边的人会对你产生很大的影响,明智地选择你的圈子。( 即使你是那个最差的,也并不意味着你就是最差的。瘦死的骆驼比马大。

主动性, 需要主动问,不需等着别人来告诉你。

良师或者榜样的好处:

  • 直到亲眼见识某人突破你所熟悉的极限时,才知道一切皆有可能
  • 学习过程形成体系,削减精力选着在哪种技术和行业领域中投资(不一定正确,但可以缩小范围)
  • 指导自己,学会自己做自己的良师

还有,站在巨人到肩膀上。带有批判视角,从大量的现有[Good/Bad]程序中寻找模式和技巧,并以此为鉴。

当然,我们需要输出学到的东西,这样才能加深理解与记忆。检验自己是否真的学到东西,试试向别人传授这些知识。

2.3. 练习,练习,再练习

一般分成几个阶段:

  1. 基础练习,例如了解各个语言的特性,go 支持高并发,python 快捷开发
  2. 练习,开源软件中可以寻找到不同的风格,不同的编程语言的软件练习
  3. 即兴编程

2.4. 学习如何失败

任何事情最开始都是不完美的,伴随着失败。

每个错误的音调离正确的音调不过一步之遥。 出现问题时,才是检测工匠手艺的时候。学习如何处理是非常重要的。

TIPS:

  • 吸取常见的错误经验
  • 防御性的编程
  • 出现问题后,不要企图隐瞒,越早解决负面影响越小
  • 接受批评,能承担责任并提供解决方法

充满压力的时候是赢得忠诚的最好时机。修心,亦是修行之一。顺境修力,逆境修心,缺一不可。

2.5.推销…不仅仅是迎合

  • 写作能力是必要的
  • 面对面沟通高效
  • 能用行业术语展示商业价值
  • 个人优秀与人际关系网同样重要
  • 网络日志,开源可增长写作技巧,扩大人际网(创建自己的商标–认知和尊重)
  • 恐惧感使我们无法接近专业人士

2.6. 切忌孤注一掷

切勿将自己的职业道路建立在一门特定的技术上,这是十分冒险的。

在选择商业与开源项目时,我们可以将开源作为一个平台,使自己对一项技术进行深度学习。同时,也不是致力于研究如何配置和部署一个商业应用程序服务器的细节毕竟,任何人都可以在config中调整设置,对吗? ),而是利用类似的开源,学习服务器内部是如何运作的,不要只局限于学习如何操作。

观点转变: 既了解实施的细节,也知道内部运作。

3. 执行

3.1. 就是现在

帕金森定律:“工作会自动膨胀到占满所有可用的时间。”
开始行动,不要总是安于现状,要做推动者。 随时记得问问自己:“** 现在我们能做些什么?”

3.2. 读心术

可以分析出潜在的功能需求–来自领导或客户。

但是,这也是有风险的:

  • 这是额外的任务,他的价值是否足够;
  • 可能对当前的软件架构影响,代码的模块化;

Tips:
建立自己额外分析功能的列表,查看命中率。

3.3. 在工作中,将自己自动化

想提高软件开发的效率:

  • 找到工作效率更高的人
  • 找更多的人来做
  • 自动化工作

3.4. 每日成绩

问自己“今天实现自己的价值了么?”

计划和跟踪工作成绩,对每个人都有益。常见步骤:

  1. 根据工作优先顺序,罗列计划
  2. 记录工作成绩
  3. 总结与回顾

3.5. 8小时激情燃烧

在工作上,更少的工作时间可以有更高的效率。大多数项目都是一项长期工作,人们不可能按冲刺的速度跑完整个马拉松。

有限的资源更加珍贵,我们需高效的利用有限的资源,安排时间也是一样。好好规划工作时间,减少工作时间,将会收获更多。当离开工作一段时间后,才会更喜欢工作。

3.6. 今天我能把工作做到多好?

在处理最无聊烦人的工作时,如果能狂热的想要把它做好,那么能为你的工作增添多少乐趣?
常常遇到的问题是:我们如何挑战自己,发挥创造力来应对这些平凡的工作?
试试把这些无聊的工作做到100分。

3.7. 别忘了你在为谁工作

“确保你的目标和工作于你公司的目标一致。” 我们可以从小范围入手:团队。
我们可以知道团队的问题和努力的方向。

3.8. 安分守己

比起只专注于目标上的做法,专注于现在的工作会使你离最终的目标更近。我们将会享受日常工作中的每一个小成功。
当有雄心,但不必路人皆知。

TIPS:
这有点像《白日梦想家》影片。

3.9. 一桶水中的鹅卵石

不要太沉迷于自我,你的离开犹如拿起水桶中的鹅卵石并不明显。
每个人都不是不可替代的,清楚知道这一点,与公司或同事保持良好的工作关系并努力工作,恰恰会让你与众不同,无意见创造更多的机会。

越是成功,就越有可能犯下重大错误。当你得到很多肯定时,你就会很少质疑自己的决定。当使用自己的方法屡试不爽时,就可能忽视可能会有更好的方法,容易产生盲点。

TIPS:
不要高枕无忧,保持谦逊的心态。

3.10. 爱上维护

维护也可以成为自由和创造的沃土。

  1. 身兼数职项目领导者、架构师、设计师和测试员,随心发挥创造力
  2. 可以设计更可见的改进
  3. 与客户直接进行交流,了解业务运行情况

TIPS:
在所有重要应用程序和代码中使用:评估、改进、评估。 把所有可以评估程序质量的元素列举出来。比如,响应时间,数据处理过程抛出的异常质量等,不要直接评估程序的质量。

  • 选取测量标准,评估、改进
  • 选取另一测量标准,评估、改进

4.自我未来规划

避免职业技术的过时。研究、投资、执行、市场然后重复,在任何一个环节上花费过多的时间,都会有过时的危险。

4.1. 已经过时的技术

根据摩尔定律的推断,计算机性能每隔18个月提高一倍。随着硬件的不断进步,软件技术也得到迅猛发展。必须认识到,即使你现在处于当今潮流的尖端,也极有可能已经在下一个潮流之后。向前看,清楚地知道你的技术发展方向,是盲目和有远见的区别。

职业生涯中最重要的部分不是晋升或者加薪,而是向这些发展方向努力工作的过程

TIPS:

每周抽出2个小时的时间来研究新技术,学习相关技术并手动尝试,制作简单的应用程序。

4.2.你已经失去工作了

不要自己绑定到特定的工作角色上,尝试以测试员、经理、设计师架构师鞥身份来对待自己的工作。

4.3. 要注意观察市场变化

关注技术方面的新闻–不管是商业还是纯技术。并且留意技术达人,观察他们热衷于什么,我们就能大致了解到什么技术会成为热门,或者预测出两年后的热门是什么。

4.4. 给自己做一份蓝图

个人的产品路线蓝图是用来判断你是否在不断向前发展的依据,并且能帮助你纵观全局。

0%