【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

七年程序员生涯,我学到最重要的 6 个教训

  • 2019-05-19
  • 本文字数:1630 字

    阅读完需:约 5 分钟

七年程序员生涯,我学到最重要的6个教训

身为开发者的你是否思考过这个问题:在编程过程中,到底什么才是最重要的?本文作者的编程生涯始于 2012,到今年正好 7 年的时间。面对“七年之痒”,作者带来了对编程的一些思考,希望能够对你有所帮助。




时间如梭,不是吗?


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


问题来了:在编程过程中,什么语言才是最重要的?


是英语?西班牙语?中文?波兰语?还是其他在工作中用来与其他人进行沟通的语言?

与人沟通比与机器沟更重要

编程是一项团队活动。很少有出色的软件产品是完全由一个人从头到尾做出来的(CodeSandbox 算是一个,但后来 Ives 还是请了一些人),大多数产品需要一个团队来打造。


沟通技巧可以成就一个项目,也可能会毁了它。相比存粹的技术,软技能对一个项目的成功起到更重要的作用。试想一下,你把世界上最好的 5 个数据库专家都请来了,但如果他们各自为政,互不沟通,最后他们会给你搞出 5 个不同的 MySQL、Aurora 或 MongoDB 实例。

了解你在做什么以及为什么

人一旦有了目标感,就会感觉好一些,这在工作中也是一样的。


作为软件开发人员,你的目标不应该只是把 JIRA 中的问题变成 JavaScript,或者把 Trello 中的项目变成 C#。


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


如果你对正在构建或维护的系统很了解,就可以抛开技术做决策。这个功能是必需的吗?它解决了什么问题?可以用其他方式来解决这个问题吗?真的有必要解决这个问题吗?


这些都是业务问题,如果你想把工作做好,不仅要理解这些业务,还要主动参与其中。即使你在公司里不是 C 级别的人,也不影响你这么做,至少,你要明白自己在做什么。

如果代码评审让你感到有压力,那肯定是打开方式出错了

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


有人因为不坎忍受某些人的吹毛求疵,选择在这个人不在公司的时候提交代码评审。试想,如果你在一个新手的 PR 底下轰炸式地给出 50 个不那么友好的评论,你其实不只是在证明自己作为一名高级程序员的优越感,也是在证明你不是一个“好人”。


那么,正确的打开方式应该是怎样的?


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


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

未雨绸缪

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


这就像是一个真理,在设计系统时总会有一些东西会出错。


在开发一个登陆表单时,你要假设会有一些居心叵测的人把整本书的内容拷贝到密码输入框里。


在开发一个可见即所得的窗口时,你要假设会有人试图搞破坏,而且他们通常都能如愿以偿。


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


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

不要害怕让别人看到自己的无知

作为高级程序员的一个好处是,当别人问一些我不懂的问题时,我可以很淡然地告诉他们:


这个东西我也不懂,因为以前没有遇到过,不过我可以看一下,然后再告诉你。


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

分享

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


分享的过程其实是一个检验你是否真正理解所学的东西的过程。有句话说得好:


当你在教一个人的时候,其实有两个人在学。



2019-05-19 14:2812861
用户头像

发布了 731 篇内容, 共 432.2 次阅读, 收获喜欢 1997 次。

关注

评论 7 条评论

发布
用户头像
说的真不错,以后一定要学会分享。
2019-06-01 15:20
回复
用户头像
墨菲定律:会出错的事情就一定会出错。
这句话说的很对啊,就像是再学校考试时不会的题,总是会出来。
2019-05-30 11:28
回复
用户头像
《礼记·学记》:“学然后知不足,教然后知困。知不足,然后能自反也;知困,然后能自强也。故曰:教学相长也。” 分享做好一次分享需要准备很多东西,还要克服自己内敛害羞的性格,还担心分享过程中被提问自己的知识盲区。恰恰是这些让自己快速成长。
2019-05-30 10:00
回复
用户头像
分享的很不错,这些肯定是自己多年来的超级心得,希望与作者共同进步!
2019-05-21 08:40
回复
用户头像
虽然我知道这样不大友好,但是“登陆”应该改成“登录”,之所以直接评论是因为我没有作者联系方式。已点喜欢。
2019-05-20 10:49
回复
哈哈,很好的反馈
2019-05-20 11:57
回复
哈哈,可以的。不知道有多少人犯过这个错误。
2019-05-28 16:03
回复
没有更多了
发现更多内容

11月月更开奖啦!看看获奖名单有没有你?

InfoQ写作社区官方

热门活动

AngularJS进阶(三十七)IE浏览器兼容性后续

No Silver Bullet

AngularJS 12月月更 浏览器兼容 下拉加载

mysql数据库之schema与数据类型优化

@下一站

程序设计 代码优化 MySQL优化 11月日更 11月月更

react hook 源码完全解读

flyzz177

React

AngularJS进阶(三十五)浏览器兼容性解决之道

No Silver Bullet

AngularJS 12月月更 浏览器兼容

如何利用A/B实验提升产品用户留存?看字节实战案例给你答案!

字节跳动数据平台

大数据 AB testing实战 12 月 PK 榜

架构学习笔记1:什么是架构设计?

生活需要激情

架构训练营10期

云安全系列5:2023 年需要了解的 40个云安全术语

HummerCloud

云计算 云安全

云数据库技术行业动态:ClickHouse Cloud正式GA或有融资;openGauss社区引入新成员

数据库小组

行业资讯 企业动态 产品功能 数据库技术

凡泰极客荣获了第二届产业互联高峰论坛「2022年度行业科技创新产品奖」

FinClip

全面支持 PyTorch 2.0:BladeDISC 5月~11月新功能发布

阿里云大数据AI技术

深度学习 编译器 PyTorch 12 月 PK 榜

城市云灾备,为业务连续性保驾护航

华为云开发者联盟

云计算 公有云 华为云 政务云 12 月 PK 榜

面对庞大复杂的身份和权限管理,企业该怎么办?

华为云开发者联盟

后端 开发 数字化 华为云 12 月 PK 榜

「虚拟社交」爆火,资深玩家「当道」

融云 RongCloud

社交 虚拟形象

Nexus3常用功能备忘

程序员欣宸

Java maven nexus3 12月月更

Span抽取和元学习能碰撞出怎样的新火花,小样本实体识别来告诉你!

阿里云大数据AI技术

机器学习 12 月 PK 榜 小样本学习

DevEco Studio 3.1差异化构建打包,提升多版本应用开发效率

HarmonyOS开发者

HarmonyOS

BI智慧仓储行业应用方案,让你的仓储物流不再复杂

葡萄城技术团队

前端 数据可视化 仓储 智慧仓储 大屏

React源码分析5-commit

goClient1992

React

AngularJS进阶(三十六)AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记)

No Silver Bullet

项目开发 AngularJS 12月月更

元年SecDevOps的实践之路

元年技术洞察

数字化转型 趋势研究 方舟平台

React源码分析6-hooks源码

goClient1992

React

React源码解读之更新的创建

flyzz177

React

实测|超融合数据库 MatrixDB 实现百万级 TPS!

YMatrix 超融合数据库

intel OLTP 超融合数据库 YMatrix tpcb

数据安全新战场,EasyMR为企业筑起“安全防线”

袋鼠云数栈

数据安全 大数据基础平台

企业想要提升数据分析能力,还需要选择瓴羊Quick BI

三十

React源码分析4-深度理解diff算法

goClient1992

React

构建高性能内存队列:Disruptor yyds~

小小怪下士

Java 高性能

一文带你读懂 Google GUAC 项目

SEAL安全

Google 软件供应链安全 12 月 PK 榜 GUAC

企业的可视化分析能力想要提升,还需要多多关注瓴羊Quick BI

巷子

React源码解读之任务调度

flyzz177

React

七年程序员生涯,我学到最重要的6个教训_语言 & 开发_Tomasz Łakomy_InfoQ精选文章