首页 > 其他分享 >从20年工程生涯中学到的重要经验

从20年工程生涯中学到的重要经验

时间:2024-10-22 23:17:56浏览次数:9  
标签:中学 20 博士 代码 工程师 Smith 生涯 软件工程 文档

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

当20年前踏上软件工程的职业旅程时,Jason Smith博士从未预料到这一领域的迅速发展。从敏捷方法的兴起到云计算的繁荣,从单体应用架构到微服务架构的变化与回归,IT行业在各个方向不断进步。然而,尽管技术日新月异,Smith博士发现,有些基本原则经受住了时间的考验,并在如今复杂的软件工程世界中愈发重要。

以下是他在职业生涯中总结出的十个重要教训,这些原则帮助他在多个项目中成功导航、领导团队,并持续实现自我成长。

1. 不要过早优化

不要过早优化代码,这是许多新手工程师容易犯的错误。Smith博士引用Donald Knuth的名言:“过早优化是万恶之源。”他曾花费数周时间开发一个文件管理系统,目标用户是数百万,结果却发现每月访问量仅有一千人。这种过度设计最终只是浪费时间和精力。因此,遵循YAGNI原则(You Aren't Gonna Need It),只在需要时实现功能,而非为了可能的需求提前抽象和优化。

2. 写代码前三思

并非每个问题都需要用代码解决。Smith博士提到,有时通过重新配置系统可以解决问题,而无需编写新代码。记住,每一行代码都是责任,它需要被维护、测试和调试。作为工程师,解决问题和创造价值才是关键,而不是单纯地写代码。

3. 学习良好的实践

理解并应用软件开发中的好习惯至关重要。Smith博士建议掌握清洁代码、设计模式以及SOLID原则,但不要盲目跟从。要了解这些实践背后的原理,灵活应用,而不是将它们强行套用到每个场景中。

4. 保持简单,再简单

保持代码和系统设计简单可以减少故障点,加快开发速度,降低调试难度。引用爱因斯坦的名言:“一切应尽可能简单,但不能更简单。”简洁的代码更易理解和维护,有助于提高生产效率。

5. 正确命名

命名是软件工程中的一大难点,Phil Karlton曾说过:“计算机科学中只有两件困难的事:缓存失效和命名。”好的命名减少了代码阅读和维护时的认知负荷,使代码更具可读性和自我解释性。要具体、描述性强,避免模糊的缩写,并根据代码的作用范围选择合适的命名风格。

6. 始终测试代码

在职业生涯早期,Smith博士曾低估测试的重要性,结果导致了诸多问题。如今,他强调,没有测试的代码是不负责任的。通过单元测试、集成测试和端到端测试,工程师能够确保系统的健壮性,减少故障,并且能够自信地进行重构和功能扩展。

7. 明智地使用时间

时间是工程师最宝贵的资源。Smith博士建议,通过制定优先级、时间块管理、深度工作和合理规划,来提高效率并避免过度工作。有效的时间管理不仅能帮助提高生产力,还能避免职业倦怠。

8. 沟通,沟通,再沟通

技术解决方案的成功往往依赖于良好的沟通。Smith博士指出,清晰且有效的沟通能避免误解并确保团队达成一致目标。无论是与团队成员还是业务人员沟通,都要注重简洁、准确,并根据对方的技术背景调整表达方式。

9. 不仅要学习,还要实践

在软件工程领域,学习新技术和概念非常重要,但更关键的是将所学应用于实际项目中。Smith博士建议,学习时要有目的性,并尽快将新知识运用到实际工作中,因为实践是最好的学习方式

10. 培养文档文化

早期的Smith博士认为文档是“编码之后的无聊工作”,但随着经验的积累,他认识到文档对项目成功至关重要。良好的文档记录可以帮助团队成员快速上手,减少“巴士因子”,并有助于未来的代码维护和理解。保持文档紧贴代码,避免过度或不足的文档。

总结

回顾20年的软件工程生涯,Smith博士感慨,尽管技术日新月异,这些基本原则却始终适用。最重要的是,工程师需要持续学习和适应。技术会过时,但批判性思维、创造性解决问题的能力以及与他人合作的技巧将永不过时。

Smith博士鼓励未来的工程师们:每一行代码都有可能改变系统、驱动业务或影响生活,因此在编写代码时要充满责任感。

标签:中学,20,博士,代码,工程师,Smith,生涯,软件工程,文档
From: https://blog.csdn.net/2301_79342058/article/details/143171216

相关文章

  • 【笔记】CSE 365 - Fall 2024之Talking Web(pwn.college)
    【入门笔记】CSE365-Fall2024之TalkingWeb(pwn.college)先看完level1 使用curl发送HTTP请求curl是一个用于在命令行中与网络进行交互的工具,支持多种协议,如HTTP、HTTPS、FTP等。它可以用来发送GET、POST等请求,下载文件,上传数据,甚至处理API调用。由于其灵活性和广......
  • [强网拟态 2024 初赛] Reverse赛题复现
    队内的爹做的太快了,完全跟不上......
  • 20241023
    一、博主咨询沐白情绪主升华为半导体科技重组低空传媒其他沐白情绪主升核心长虹,长虹竞价加强,一致性的加速,当前的长虹定位从趋势核心转变为连板情绪核心,没有先手不太好追高,锚定长虹作为情绪标,去做后排康佳、创维的套利,而明天如果大科技延续分歧,长虹需要接受放量分......
  • [SDOI2013] 随机数生成器
    BSGS对于高阶同余方程的求解通过题目给出的式子\(x_{2}\equiva*x_{1}\modp\)\(x_{2}+\frac{b}{a}\equiva*x_{1}+\frac{b}{a}\modp\)\(x_{3}=a*x_{2}+b\equiv(a^2)*x_{1}+a*b+b]\modp\)\(对该式子进行继续推导可以得出\)\(x_{i}=a^{i-1}*x1+\sum_{j=0}^{i-2}a^{j}......
  • 2024.10.20心有错做题笔记
    赛时:\(60+50+0+0\)A.bookstore题意:\(m\)套书,\(n\)本书。要求选出两个交集为空的套书的集合,使得两集合中出现的书的种类相同。见到二元组,显然考虑连边。然后发现若有偶环必定有解,01交替染色即可。然后发现剩下来没环和奇环都无法成功。难点在于判偶环。显然可以搞出搜索树......
  • 【C++-NOIP篇-4】 [NOIP2007 普及组] 纪念品分组
    文章目录[NOIP2007普及组]纪念品分组题目背景题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示题目思路完整Code[NOIP2007普及组]纪念品分组题目背景NOIP2007普及组T2题目描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参......
  • 20222306 2024-2025-1《网络与系统攻防技术》实验三实验报告
    1.实验内容1.1实践任务(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧(2)通过组合应用各种技术实现恶意代码免杀(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本1.2问题回答(1)杀软是如何检测出恶意代码的?杀软检测......
  • P9751 [CSP-J 2023] 旅游巴士 题解
    思路首先,举一个例子,假如说小Z到了入口,但是没到时间,所以没法进去,该怎么办?当然是等$k$个时间单位呀.除此之外,像到了其他景区,但是还没开门怎么办?继续等$k$的非负整数倍时间呀.知道这个后,我们先定义状态$f_{i,j}$,表示到达点$i$时,路径长度(即时间)$mod$$k$的最早时......
  • 2024.10.22 鲜花
    列表题解你从未离去浩瀚星空里只剩你的背影银河已凝结成冰记忆滑过泪滴想象能回到过去终会存在我心底虽然逃避她消失在梦里日出的幻境再次感觉到你风送来你的呼吸月色倒映着惊喜原来你从未离去默默守护在这里无声无息如影随形我不再迷茫思念是唯一的行囊漫......
  • 20222304 2024-2025-1 《网络与系统攻防技术》实验二实验报告
    一、实验内容1.1知识回顾堆栈结构和堆栈变化EIP:存储下一条指令;EBP:栈底指针;ESP:栈顶指针。栈溢出的三种方法:修改栈中邻接变量;修改函数返回地址;代码植入。shellcode构建RET返回地址;NOP空(0X90);shellcode调用shell;NSR模式;RNS模式;RS模式缓冲区溢出的防范技术源程序检查:静态检......