上一篇 : 作为软件工程师你应该知道的100件事(上)

学习

(47) 作为一名程序员,你应该从根本上享受学习和探索。如果你不喜欢它们,你应该认真考虑其他职业选择。

(48) 你不需要学习进入市场的每一种技术。随时了解趋势,但在需要时学习和使用它们。

(49) 从一个刚毕业的大学实习生那里也能学到很多东西。永远不要将您的学习范围仅限于担任更高职位的人。

(50) 阅读您使用的不同开源项目的源代码,以了解和学习干净的代码实践和代码组织。

(51) 学习某些技术的最好方法是自己构建一个高度简化的版本。

(52) 几天之内学一门语言很容易。但了解其生态系统需要数月或数年的时间。

(53) 探索不同的编程语言以理解不同的范式。了解不同的编程范式将帮助您为您的用例选择正确的语言。

(54) 学习 Git。不只是 git pull 和 git commit,了解所有高级概念。无论您使用何种技术,git 都将保持普遍。

(55) 鉴于大多数开发人员的工作都集中在网络/网络编程上。了解网络系统中的底层协议很有帮助:HTTP、HTTPS、SSL/TLS、DNS、SMTP、IPv4、IPv6 等。

(56) 拥有良好的 CSS 专业知识将使您看起来像个巫师!如果您是一名全栈 Web 开发人员,花几天时间掌握 CSS 将节省“我不知道自己在做什么”的时间。

(57) 吸引人的 UI 设计比强大的系统架构更容易给人们留下深刻印象(显然不是指领域专家)。因此,当您进行概念验证时,拥有良好的设计技能会派上用场。(只是不要通过在 HTML 中硬编码所有内容来滥用它)

生产率

(58) 创建细粒度的子任务来跟踪您的进度,尤其是当您正在处理一项巨大的任务时。很难描述检查某事完成后的幸福感,这反过来又会激励你保持正轨。

(59) 不要试图同时处理多项任务。专注于一项任务并尽量减少上下文切换。上下文切换的成本高于您的预期。

(60) 改进和自定义您的工作流程(IDE、调试工具、生产力工具、CI/CD),以便您可以更快地迭代。迭代越快,失败的速度就越快。你失败得越快,你学得就越快。

(61) 花时间在自动化日常任务上。如果你做的事情不止两次,那就写一个工具让它第三次自动化。同时,不要浪费数小时/数天来自动化一项几乎不需要几分钟的简单任务。找到正确的平衡点!

(62) 用文件夹和标签组织您的工作邮件(个人邮件也是如此)。每天组织邮件的小努力将帮助您在需要时快速找到重要的文档或对话。

(63)+ :q! + 退出 Vi 编辑器!认真地说,学习基本的 Vi 绑定,即使 Vi 不是您的默认编辑器,您也可以在几乎所有可用的文本编辑器中使用 Vi 绑定,相信我,在那之后您的工作效率会飙升。

(64) 文档技能在这个行业中被严重低估。学习如何编写设计文档、更改提案等。开始使用笔记工具来组织和记录几乎所有内容 - 妈妈、个人目标、职业目标、随机想法、书籍摘要,等等。(推荐工具:Notion

(65) 在对您的任务进行估算时,请始终保留一些缓冲时间。你永远不知道在一个未开发的洞穴中会遇到什么怪物。

(66) 最好听器乐或lo-fi 节拍或平静的声音,而不是带歌词的音乐。就我个人而言,我觉得我在器乐方面更有效率,而且科学也支持它并不奇怪。

自己

(67) 立即在办公桌前调整您的身体姿势!

(68) 工作之余有不同的爱好是好事。仅仅因为您是开发人员,您就不需要 24x7 编码。

(69) 善待每一个人!时刻保持冷静!最重要的是,要谦虚!

(70) 记得定期休息。不要烧坏自己。

(71) 投资于良好的工作站设置。鉴于您大部分时间都在办公桌前度过(尤其是在这些远程工作日期间)。在高质量的产品上多花几分钱是值得的。

(72) 阅读不同的认知偏差。它不仅会帮助您做出更好的个人决策,还会帮助您做出更好的技术决策。

(73) 在你的职业生涯早期就开始投资。了解复利的力量,相信我,它很神奇。同时不要过度储蓄,当你不享受现在的时候,储蓄一切又有什么意义呢?就是这样,没有更多的财务建议。

人际关系

(74) 人际交往能力与您的技术技能一样重要。练习指导、公开演讲、领导项目等。开发人员不需要遵循社交无能的刻板印象。

(75) 不是每个人都会有和你一样的动机。永远不要指望别人会因为你这样做而对任何话题感到兴奋和表现出兴趣。不同的人对不同的动机做出反应。

(76) 不要用你的同事(实际上是任何人)不知道的东西来判断他们。

(77) 学习如何推销自己。您可能在很多方面都非常熟练,但如果您没有在正确的平台上展示这些技能,那么没有人会欣赏它。

(78) 帮助周围的人变得更好。教授或分享您学到的东西。对你所学的东西进行教学或写作会让你更好地理解它。

(79) 永远不要犹豫说“我不知道”。你可能是一个很好的骗子,但我们的大脑在发现某人是否在撒谎或假装方面是惊人的。更糟糕的是,伪造会导致更高的期望。

(80) 你的团队中总会有一位摇滚明星开发者,他几乎可以解决任何问题。不要被他们的技能吓倒,而是阅读他们的拉取请求,进行技术聊天,并定期从他们那里获得反馈以提高自己。

(81) 你很有可能在工作中遇到你的BFF。不要向同事敞开心扉。(请自行决定是否采纳此建议)

沟通

(82) 一直在听,我再说一遍:听!

(83) 开会没有什么要说的也没关系,不要乱说话,浪费别人的时间。

(84) 不要只用 Hi/Hello/Good Morning! 给别人 IM,然后等待他们的回复。给他们你为什么 ping 的原因。没有人只想听到你的问候或祝福。https://www.nohello.com/

(85) 在解释您的设计时,尽可能使用图表。一张图片胜过千言万语。它也可用于记录。(推荐工具:draw.io)

(86) 在向某人解释某些设计或概念时,减少行话的使用。并非每个人都熟悉所有技术术语。以适当的平衡使用它们。

(87) 提出一个你认为微不足道或愚蠢的问题,你不应该感到羞耻。

(88) 如果您想在几分钟内完成工作,请致电。如果你想在几个小时内完成工作,那么 IM。如果你永远不想完成工作,那么电子邮件(人们在 2021 年仍然使用电子邮件吗?)。

(89) 当你就某个问题向某人寻求帮助时,不要只是四处说“嘿 X 不起作用,你能帮帮我吗?”,而是说“嘿,当我运行 X 时,我正面临错误Y,我已经研究并尝试了解决方案 Z,但它似乎也不起作用,你能帮我解决这个问题吗?”。在接受别人的帮助之前做你的研究,请不要因为你的代码中的一些错字而浪费别人的时间,认真!

(90) 不要成为自行车棚效应的牺牲品。在会议或讨论中,将复杂/关键项目置于琐碎项目之上。

职业

(91) 做自己不喜欢的事情是可以的,但做自己讨厌的事情是不可接受的。

(92) 在职业生涯早期,将学习和机会置于薪酬、福利等之上。在学习率高的活动或工作上投入更多时间。学习化合物,你必须尽早开始才能获得它的好处。

(93) 你在工作中的纯粹动机应该是为团队和项目增加价值,而不是为了给任何人留下更高的薪水或升职。如果处理好前者,后者只是副产品。

(94) 花时间在简历上并始终保持最新状态。建议拥有一个描述您的项目和经验的作品集网站。

(95) 你解决的问题越是模糊不清,你的角色就越高。适应不确定性和模糊性。

(96) 每六个月问自己这些问题:

  • 我是否正在学习新技能并拓宽我的专业领域?

  • 我是否在组织中产生影响?

  • 我的技能和经验是否足够好?

如果你的答案都是否定的,那么你必须考虑更换公司或团队。如果你已经在现在的公司工作了 2-3 年以上,并且你的答案都是肯定的,那么你仍然应该考虑换公司,或者至少对它持开放态度。除非你一直在寻找,否则你永远不会知道你错过了什么。

(97) 如果仔细观察,编程与写作非常相似。编程语言类似于人类语言,程序员类似于作家/诗人。任何人都可以成为作家,但要成为一名优秀的作家需要付出很多努力和时间。

(98) 定期与您的经理进行一对一交流并寻求反馈。不要等到您的年度审查才突然出现惊喜。

(99) 如果你的经理不对你的失败负责,并没有责怪你,那么你在他们手下工作是在冒着个人和职业发展的风险。

(100) 年的经验只是一个数字。有时您会发现初级工程师比高级工程师更熟练。不要误会我的意思,经验教给你的不仅仅是技能,工作经验很重要,但这不是唯一的因素。

作为软件工程师你应该知道的100件事(下)相关推荐

  1. 作为软件工程师你应该知道的100件事(上)

    构建软件 (1)过早优化是万恶之源.不要低估这个说法. (2) 您很少需要从头开始构建某些东西.几乎每个用例都有库和依赖项.所以握住你的键盘,不要重新发明轮子. (3) 了解问题的范围是您在找到解决方 ...

  2. 《抓住听众心理——演讲者要知道的100件事》一第 1 章 人们是怎样思考和学习的...

    本节书摘来异步社区<抓住听众心理--演讲者要知道的100件事>一书中的第1章,第1.1节,作者: [美]Susan M. Weinschenk 译者: 杨妩霞 , 杨煜泳 责编: 赵轩,更 ...

  3. 《抓住听众心理——演讲者要知道的100件事》一20.人们学习的最优长度是20分钟...

    本节书摘来异步社区<抓住听众心理--演讲者要知道的100件事>一书中的第1章,第20节,作者: [美]Susan M. Weinschenk 译者: 杨妩霞 , 杨煜泳 责编: 赵轩,更多 ...

  4. 《抓住听众心理——演讲者要知道的100件事》一2.听众需要上下文

    本节书摘来异步社区<抓住听众心理--演讲者要知道的100件事>一书中的第1章,第1.2节,作者: [美]Susan M. Weinschenk 译者: 杨妩霞 , 杨煜泳 责编: 赵轩,更 ...

  5. 软件工程师你应该知道的100个原则

    构建软件: (1)过早优化是万恶之源.不要低估这个说法. (2) 您很少需要从头开始构建某些东西.几乎每个用例都有库和依赖项.所以握住你的键盘,不要重新发明轮子. (3) 了解问题的范围是您在找到解决 ...

  6. 10个角度分析软件工程师应该知道的100件事

    1. 构建软件 过早优化是万恶之源.不要低估了这个说法的有效性. 你很少需要自己从头开始去开发一些东西,几乎每一种应用场景都已经有了相应的库和依赖项.所以,不要重复发明轮子. 搞清楚问题域是找到解决方 ...

  7. C/C++程序员上手C#应该知道的100件事(21~30)

    21. Console系统内置类可以生成控制台应用 22. Console.WriteLine("hello world")是第一个C#程序的核心代码:Console.ReadLi ...

  8. 软件架构师应该知道的 97 件事

    软件架构师应该知道的 97 件事  1.客户需求重于个人简历(Nitin Borwankar)          客户需求至上.为了自己的简历更炫而采用新技术是沽名钓誉,往往事与愿违.         ...

  9. 软件架构师应该知道的97件事

    原文出处:http://blog.csdn.net/seanbv/article/details/5451705 软件架构师是个让人羡慕的职业,在市场经济成熟的国家,其薪酬已经达到医生.律师.注册会计 ...

最新文章

  1. python哪本好-Python入门看哪本书好? 这里有答案
  2. 《spring实战第四版》的读书笔记
  3. FFmpeg再学习 -- Windows下安装说明
  4. mysql查看数据类型命令_mysql菜鸟指南(增删查改、数据类型、常用命令)
  5. 注释代码c语言,C/C++ 源文件删除注释代码
  6. centos 6.8安装git_RPM包的卸载与安装,包含依赖包卸载
  7. CentOS 6.4 编译安装 gcc-4.8.0
  8. android mqtt详解_Android mqtt入门 Android studio(转)
  9. oracle 性能诊断工具,oracle性能诊断工具
  10. 分支限界算法c语言_算法学习计划
  11. 程序生成30道四则运算(包括整数和真分数)
  12. serviceFabric oracle,Oracle ASM和多路径软件的兼容性【转】
  13. HTML5方式使用freeswitch——VERTO模块
  14. ai时代大学生的机遇和挑战_评估AI对美术的影响:威胁或机遇
  15. [python]SM4算法实现
  16. python统计中文字数_使用Python计算.pdf文档中的总字数
  17. 有道手机词典(安卓版)离线和发音包…
  18. 2020Android不死我不倒,作为一个程序员,你觉得最大的悲哀是什么?
  19. Android 之注册Facebook开发者账号
  20. golang实现稀疏数组(Sparse array)

热门文章

  1. 感叹号的形状像什么_育儿笔记 感叹号倒过来像什么?
  2. 如何做出html直角梯形效果,css怎么做梯形?
  3. iconify图标使用
  4. java flowlayout.left_JScrollPane FlowLayout组合显示单行解决方法
  5. 20 Newsgroups数据集
  6. 云边协同与人工智能AI的深度融合(云端训练、边端推理)
  7. Python 递归实现乘法
  8. 南邮计算机与科学排名,2019南京邮电大学专业排名
  9. 前端开发之html超链接
  10. Win32学习笔记(25)远程线程