我读了 21 篇关于如何成为高级开发人员的文章,所以你不必
我认为几乎每个人都渴望在职业生涯中不断进步。对一些人来说,这意味着成为高级开发人员。
既然有这么多人怀揣着这个梦想,也就有这么多人写下如何实现它。为了避免制造这些噪音,我决定尽可能多地调查一下现有的噪音。
因此,我浏览了搜索“如何成为高级开发人员”和相关搜索时出现的 21 篇文章。
共同点
这些文章通常讨论成为高级开发人员所需的条件。并没有像我预期的那样提供大量的分步指南,而是列出了高级开发人员应该能够做到的事项清单。这些清单主要分为两类:
- 软技能
- 硬技能
软技能
“T型”知识
根据维基百科:
T字母上的竖线代表在单一领域相关技能和专业知识的深度,而横线代表与其他领域专家跨学科合作以及将知识应用于自身专业领域以外的能力。
T 型知识对于开发人员来说非常有用,因为我们必须深入研究才能完成任何工作,而且没有人能够深入研究开发的所有领域,因此能够协作非常重要。
这是一篇关于如何发展 T 型知识的很棒的文章。
导师制
围绕导师制这一话题,主要出现了三大主题。
首先是拥有一位可靠的导师或导师网络。高级开发人员除了能够做出高水平的个人贡献(擅长软件开发)之外,还需要具备良好的人际交往能力。为了培养这些技能,你真的需要一位已经具备这些技能的人的指导。单凭经验是无法培养这些技能的。
第二条线索与第一条线索相辅相成。你需要知道何时寻求帮助。与他人合作意味着能够信赖他们,并了解自己的极限。
第三条线索是为他人提供指导。高级开发人员的真正价值在于他们能够帮助他人成为更优秀的开发人员。这意味着一些小事,比如在代码审查中不要表现得一团糟,也要成为新开发人员的好老师。这也需要练习。
思考大局™
“大局观”是人们经常谈论的话题之一,但它的含义却非常不同。浏览所有这些文章,它们往往意味着以下任何(或全部)含义:
- 商业内容——如何满足 KPI 或当前的重要期限或其他什么。
- 用户资料——如何真正为使用您所制造产品的人们提供价值。
- 技术方面——如何建造能够长久使用的东西。
我觉得没有快速培养这些技能的方法。这似乎只是经验的问题。
这其中一部分是责任感。能够承担起全局的责任,会让你走得更远。
解决问题
正如 James Hickey ( @jamesmh ) 在这篇文章中所说:
高级开发人员解决问题的方法更加谨慎、周到、务实、实用和简单。
这包括考虑代码的长期影响,并能够为遇到的问题制定优雅的解决方案。
让别人知道你的目标
这一点说起来简单,做起来却很难。一定要让同事们知道,尤其是那些做决定的人:“我想成为一名高级开发人员”。如果你不告诉别人这是你想要的职业道路,他们很可能不会轻易接受。
正如我最喜欢的文章所说:
这不是通过学习新的热门框架或语言...说白了,这更多的是了解要构建什么以及是否值得构建,而不是如何构建它...[A] 一个人如果同时了解要构建“什么”和“如何”实现它,就可以提供卓越的成果。
硬技能
我觉得这些更能体现开发者文化,但其实没什么用。别太认真,一笑置之就好。
打字速度
这个问题出现得太频繁了,我都笑了。众所周知,如果你不像电视上的黑客那样打字,你就不可能进步。有很多类似的建议可以帮助你精通你选择的 IDE(必须掌握所有的快捷键!)。我认为关键在于,你应该对你的工具感到满意,无论这对你意味着什么。
学习This Technology
很多建议,确保你了解作者的喜好。考虑到目前仍有大量的 COBOL 工作机会,你不需要了解任何特定的技术。
从事业余项目
科技界普遍存在这样一种观念:要想成为一名开发者,你需要做一些业余项目。这完全是错误的。你没必要把人生中所有清醒的时刻都花在编程上。
根据我的经验,从事副业有三个原因:
- 学习——掌握一项你以前不具备的特定技能。
- 经验——总体上做更多的编程(让你更有经验)。
- 有趣——有时编程是一件有趣的事情!
如果你想同时做这三件事,那么副业项目或许非常适合你!如果你也想做副业,那你来对地方了!快来WeeklyProject.Club看看吧。
如果那不是你,请不要感到难过!
《学习经典》
这种情况并不经常出现,但是很多人告诉你,你需要阅读 Knuth、《实用编程》、《代码整洁之道》或其他一些流行书籍。
文章
这是我看过的文章列表。每篇文章都对其关键要点进行了细分。由于大多数文章都是列表文章,所以只列出列表文章的每个要点,因为这通常是文章的唯一内容。
-
- T型技能
- 感觉自己有解决问题的经验,并且能够将当前的问题与以前遇到的问题联系起来
-
- 快速发展
- 找到理想的解决方案
- 教导他人并帮助他人成长
- 分享你已经知道的内容
-
- 选择你的道路并坚持下去
- 阅读《程序员修炼之道》
- 掌握你的编程语言
- 了解你的框架
- 成为文本编辑器/IDE 的大师
- 像专业人士一样使用版本控制系统
- 致力于进行测试驱动开发
- 重构成为一种习惯
- 学习软件架构
- 释放命令行的力量
- 练习编码
-
- 提出好问题
- 能够连接点
- 情商
- 能够教导
- 能够学习
-
- 投资你的工具
- 打字速度很重要
- 探索不同的问题领域
- 在心里写下测试
- 花一些时间在敌人的框架里
- 找出你希望当前工具能够改变的 5 个方面
- 对你公司里的旧伤保持好奇心。
-
- SSH
- 高级 Javascript
- 如何提高 Web 性能
- 渐进式 Web 应用
- 流行的前端库 + 如何管理复杂状态
- 测试
- TypeScript
- 客户端渲染 vs 服务器端渲染
- 保护您的应用程序
- Docker 和容器
- 不同类型的数据库
- 如何管理应用中的登录和会话
- 基础设施即服务和平台即服务
- 关于持续集成
- 交付和部署
-
- 寻求帮助
- 沟通与合作
- 解决问题
- Javascript 服务器端语言函数式编程和区块链
- 设计与后端架构
- 紧跟新兴技术
-
- 承担责任并执行
- 总是付出额外的努力
- 成为问题解决者
- 不断学习
- 推销自己
- 讨人喜欢
- 成为一名导师
-
- 永远选择责任而不是报酬
- 采取主动
- 投资你的教育
- 让别人知道你的目标
- 让自己在公司之外更有价值
- 成为资产
- 询问具体号码
- 不要威胁
- 不要谈论你为什么需要钱
- 如果一切都失败了,那就去别处
-
- 阅读 Stack Overflow
- 缩小
- 进行自己的 QA
- 不要忽视你工作周围的世界
- 区分你的顾虑
- 编写简短的方法
- 寻求建设性批评
- 寻找导师
- 熟悉你的文本编辑器/IDE,并了解它的键盘快捷键
- 与更有经验的开发人员结对编程
- 倾听并尊重你周围的资深开发人员以及其他初级开发人员
- 使用好的方法/变量名称而不是注释
- 每天暴露你的无知,并进行一些副业。
-
- 可提升的技术技能组合
- 可提升的智力技能和工作习惯
- 保持专业
-
- 先考虑业务
- 技术第二
- 提高标准……并坚持下去
- 捏紧鼻子,举起手(项目志愿者)
- 不要推卸责任
- 成为荒野中的孤独声音(成为领导者)
- 优雅地退缩
- 开发杀手级应用
- 保持领先地位
- 滋养你的心灵
- 找到你的尤达(找一位导师)
- 把最后期限当成个人的事情
- 分享财富(教导他人)
- 做自己的啦啦队长
- 建立自己的投资组合
- 闲聊或失去
- 边走边聊
- 雇佣你自己的替代者
- 拥抱灰色地带
- 保持鼻子清洁(不要变成棕色)
- 考虑转换——出于正确的理由
-
- 更少的编码
- 架构或“亲自动手”
- 更多“文书工作”
- 战略性思考多于战术性思考
- 控制力减弱
- 责任的增加
- 更多时间解决问题
- 遵守公司规定
- 你成为“他们中的一员”
- 更多会议和更多沟通
- 建立更多外部关系的潜力
-
- 编程能力
- 沟通
- 批判性思维
- 倡议
-
- 挑战自己
- 学习大师——掌握
- 学习经典
- 用心练习
- 注意你的身体
-
- 找到并拥抱“团队”
- 学会正确地说“不”
- 让你的代码得到审核
- 为他人审查代码
- 代码可访问性
- 未来代码
- 不要天真
- 安全问题
- 使用编码标准
- 一天结束的时候
- 它必须发挥作用
- 趣味代码
-
- 在 Twitter 上关注合适的人并勤于使用
- 创建可重复使用的代码库
- 不要把每个人的话都当作福音
- 工作时听没有歌词的音乐
- 从事业余项目
- 休息一下
- 忽视冒名顶替综合症
- 学习不同的东西(语言、系统、应用程序类型)
- 分享你的作品
-
这不是通过学习新的热门框架或语言...说白了,这更多的是了解要构建什么以及是否值得构建,而不是如何构建它...[A] 掌握“构建什么”和“如何”实现它的知识的单个人可以提供卓越的结果。
-
- 练习关键技能
- 寻找你自己的项目
-
- 工作勤奋、专注
- 合作与学习
- 编码、测试、交付、迭代
- 加入社区
- 广泛阅读
- 从事宠物项目
- 在工作中加入或创建一个极客俱乐部。
-
- 技术的
- 团队
- 用户访谈技巧
- 学习
- 面试
- 社区
就这样!现在你不用再读关于“如何成为高级开发人员”的文章了。你会如何利用这些额外的时间呢?请在评论区留言告诉我!或者,你也可以回答一下你最纠结的是什么。
文章来源:https://dev.to/samborick/i-read-21-articles-about-how-to-become-a-senior-developer-so-you-don-t-have-to-4dap