本文是来自一位国外资深程序员 托马斯·阿科米 工作数年的几点感悟。一篇很有趣也很真实的文章,颇有感触,也希望能够帮到你。(外文链接)

目录

  • 1、与人交谈比与机器交谈更重要
  • 2、了解你在做什么以及为什么这么做
  • 3、如果代码审查让你倍感压力,这可不是个好事儿
  • 4、防患于未然
  • 5、别害怕让别人看到自己的一无所知
  • 6、学会分享

几年不见,打工人你好!

流年似水,物是人非,不是么~​

  我的编程之旅始于2012年,当时我还只是个C++编程实习生。说实话,我根本不知道自己在做什么。即使是到了现在,这种状况依然没有改变。不过,在这个过程中,我确实学到了很多东西。

  问题来了:在程序员生涯中,你觉得什么语言最重要?

  PHP?Python?还是Java?

  对我来说,或许,跟同事、客户打交道的语言才至关重要。

1、与人交谈比与机器交谈更重要

  编程是一项团队运动!

  现在早已不是那个一把刀闯天下的年代了,更多是需要多元化技术团队的整合,才能够创造出一个出色的产品。

  沟通技巧可以成就一个项目,也可能会毁了它。相比存粹的技术,软技能对一个项目的成功起到更重要的作用。我们需要学习如何与不同的人有效地交流我们的想法和思想,以解决我们(作为一个团队)面临的问题。

  试想一下,你把世界上最好的 5 个数据库专家都请来了,但如果他们各自为政,互不沟通,最后他们只会给你搞出 5 个不同的 MySQL、Aurora 或 MongoDB 实例。

2、了解你在做什么以及为什么这么做

  人一旦有了明确目标,效率和主动性会明显提高,就像我每每深夜读完鸡汤文,我就睡不着。其实,在工作中也是一样的。

  作为软件开发人员,你的目标不应该只是把 JIRA 转换成 JavaScript,或者把 Github 中的项目变成 Java。

  你的目标应该是用代码来解决问题。

  如果你对要构建/维护的系统有深刻的了解,则可以在纯技术之外做出决策。这个功能是必需的吗?它解决了什么问题?可以用其他方式来解决这个问题吗?真的有必要解决这个问题吗?说真的,有时解决该问题甚至不需要任何代码。

  这种思路有时被称之为业务环境,如果你想把工作做好,不仅应该了解环境,还应该能够塑造和影响环境。即使你在公司里不是Leader,也不影响你这么做,至少,你要明白自己在做什么。

3、如果代码审查让你倍感压力,这可不是个好事儿

  好家伙,代码审查。

  虽然没有必要那么想,但把自己写的代码放出来让其他人围观评论,这种体验跟写代码还真是有点不一样,也难怪人们会感到焦虑。

  我亲自看到有人在X不在办公室或Y出差时提交代码审查,X是位出色的程序员,但对他的审查过程很多人都受够了。试想,如果你在一个新手的 PR 底下轰炸式地给出数十条不那么友好的评论,你其实不只是在证明自己作为一名高级程序员的优越感,也是在证明你不是一个“好人”。

  那么,当我看到功能有很大漏洞时,该怎么办?

  你可以私底下找那个人,跟他好好聊聊,问他为什么把代码写成那样。

  其实大多数人也不想把代码写臭,如果你看到臭代码,他们也可能正在处理你不知道的问题。当然,也有可能是因为他们的编程技能还不够好,这个时候你要承担起导师的角色,给他们提供一些指导。

4、防患于未然

墨菲定律:会出错的事情就一定会出错。

  这是太真实的事情之一。设计系统时,请始终假定某些东西可能会损坏。

  比如登录表单,请假设人们会将整本书复制并粘贴到“密码”字段中。

  如果要构建所见即所得的窗口,请假设有人会尝试搞破坏,并且他们很可能会成功。

  如果系统中使用了数据库,它一定会在某个时刻挂掉。如果你没有尝试使用备份来恢复数据库,那它们就算不上是备份。

  如果你在给客户做演示,请确保这个演示在任何情况下都能正常进行,哪怕把它翻个底朝天,甚至是把它丢到水底下。

5、别害怕让别人看到自己的一无所知

  我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系。 – 《一百岁感言》杨绛

  这里用杨绛先生的话来当引子,作为一位工作多年的资深程序员,当别人问一些我不懂的问题时,我可以很淡然地告诉他们:这个东西我也不懂,因为以前没有遇到过,不过我可以看一下,然后再告诉你。

  当我还是一个初级程序员的时候,我总是很害怕别人会看到我的无知。经过几年的磨练,我才明白,如果碰到了自己不懂的东西,说明学习的机会来了。终身学习绝对不只是一个“口头禅”,而是现实。

6、学会分享

  等你把不懂的东西搞懂了,记得把它们分享出来。写一篇博客,录个教学视频,或者在公司里搞个分享演讲……你不要认为你刚学会的东西别人也都懂,即使是一个非常资深的人,他们也能从初级人员身上学到东西,反过来也是。

  分享的过程其实是一个检验你是否真正理解所学的东西的过程。有句话说得好:当你在教一个人的时候,其实有两个人在学。

记得早先在一个问答中问到:

你的编程能力从什么时候开始突飞猛进的?

有个回答我印象很深,说:突飞猛进往往是自然发生的。你在某个夜晚苦熬一个知识点时,不会觉得自己突飞猛进;只有在多年后某日熟练地给别人讲解这个知识点后,内心才会小小地波动一下,猛然忆起当年深夜中的青灯一盏。

共勉。

九年程序员生涯,我的一些经验教训相关推荐

  1. 像程序员一样思考_如何像程序员一样思考-解决问题的经验教训

    像程序员一样思考 by Richard Reis 理查德·里斯(Richard Reis) 如何像程序员一样思考-解决问题的经验教训 (How to think like a programmer - ...

  2. 九年程序员生涯一些经验教训,九年磨一剑奥里给!

    目录 1.与人交谈比与机器交谈更重要 2.了解你在做什么以及为什么这么做 3.如果代码审查让你倍感压力,这可不是个好事儿 4.防患于未然 5.别害怕让别人看到自己的一无所知 6.学会分享 几年不见,打 ...

  3. 一位10年程序员生涯的总结与经验忠告分享

    展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的1 ...

  4. 转:10+年程序员总结的20+条经验教训

    2019独角兽企业重金招聘Python工程师标准>>> 以下是我作为一名程序员经过10几年时间总结出的一些有关于软件开发的经验规则:   开发 1.从小事做起,然后再扩展 无论是创建 ...

  5. 程序员找工作的个人经验教训以及注意事项

    忽然间想到如果要找工作的话,需要注意一些什么问题. 没毕业的,刚刚毕业的,刚刚工作的都可以借鉴一下. 大师兄结合自身经历,经验,稍微总结下.保存下来,以备后来者-------自己或观众使用.想当初刚刚 ...

  6. 10+年程序员总结的20+条经验教训

    以下是我作为一名程序员经过10几年时间总结出的一些有关于软件开发的经验规则: 开发 1.从小事做起,然后再扩展 无论是创建一个新的系统,还是添加功能到现有的系统中,我总是从一个简单到几乎没有任何所需功 ...

  7. 程序员生涯之我见 找到自己的兴趣所在 (zz)

    程序员生涯之我见 找到自己的兴趣所在 2006.01.13  来自:网易科技 冯羽   <script language="JavaScript" type="te ...

  8. 雷军 | 我十年的程序员生涯

    文章来源与编辑 深度智能眼 文仅交流侵删 雷军回忆: 最近,和UCWEB同事讨论,怎么才能把我们的UCWEB做到极致.我说,"手机上的平台非常多,如果想做好,需要足够多.足够优秀的程序员.优 ...

  9. 雷军:《我十年的程序员生涯》系列之二(我赚的第一桶金)

    // 转载自雷军2008年11月5日写的博客.以下内容为博客原文: <我十年的程序员生涯>系列之二:我写BITLOK的这七年 1989年8月,大二暑假,我和王全国合作写了我的第一个正式作品 ...

最新文章

  1. 用python画梵高星空-谷歌AI:推进实例级别识别 (ILR)研究
  2. 文巾解题 10. 正则表达式匹配
  3. HashMap实现相同key,对value的操作
  4. Linux umask 文件默认权限
  5. 商业软件划分的网格导入OpenFOAM问题总结【终极】
  6. ffmpeg音视频基础知识
  7. 提交成功信息显示_上海居住证积分从提交材料,到打印通知单要多久?
  8. SQL入门-Navicat的基本使用
  9. Python实现中英文分词
  10. java寻路算法_具有指定距离/节点数的寻路算法
  11. python代码阅读_莫烦Python RL 代码阅读一
  12. java download oracle,Java Archive Downloads - Java SE 6 | Oracle 中国
  13. 人工智能教学解决方案
  14. 编写一个班级管理程序java_java课程设计(班级管理系统)
  15. 手机游戏连接计算机屏幕,教你如何把手机屏幕投到电脑上玩手游还能跟端游一样键鼠操作!...
  16. 高级计量经济学及stata应用_推荐使用的计量经济学教材
  17. 永磁同步电机矢量控制(二)—— 控制原理与坐标变换推导
  18. 安卓系统格式化SD卡
  19. 使用a标签下载文件而不是直接打开
  20. 转到计算机科学与技术专业的申请书,转专业的申请书范文(精选5篇)

热门文章

  1. 外贸行业网站的seo优化推广怎么做?优化技巧详解
  2. FCPX:600种VHS Studio转场效果合集
  3. DCI format 5A相关学习
  4. Android平台单独编译内核模块ko insmod
  5. adb remount失败的一种解决办法
  6. Python应用实战案例:Python编程环境配置(Anaconda、Jupyter、GPU环境)
  7. 2021年10月24日马丁加德纳聚会线上主题分享开启通知
  8. 游戏网站搭建,不止是一个网站那么简单
  9. utf8和utf8mb4的区别详解
  10. Metrolog XG 构建坐标系