当前位置:网站首页>从普通进阶成优秀的测试/开发程序员,一路过关斩将
从普通进阶成优秀的测试/开发程序员,一路过关斩将
2022-08-01 18:56:00 【网易测试开发猿】
目录:导读
前言
从普通进阶成优秀的测试/开发程序员
给自己设定一个提高的目标很容易,但是“想成为一名伟大的程序员”却不是一个容易实现的目标。首先,说“我想变得更好”,是建立在你认识到“更好”的样子基础之上。另外,有太多的人追求进步而不知道如何去实现。
1、时刻提醒自己:学习
学习某件事的第一步是承认你不知道。这听起来很正常,但经验丰富的程序员还记得要真正让自己承认这一点需要花多长时间。很多计算机科学专业的学生毕业的时候,都有一种很傲慢的态度,就是“我知道最好的”。
但其实这只是一种虚张声势,他们不知道从哪里来的自信,就好像他们什么都知道,并且需要向每一位新同事强烈的证明这一点。换句话说:你所谓的“我知道我在做什么!”这种态度会妨碍你学习新的东西。
2、不要试图证明自己是正确的
要想成为优秀的人,你必须学会吃一堑长一智。但是千万小心,经验也可能教会我们重复一些不良行为,甚至也教会我们养成一些不好的习惯。我们都遇到过有8年经验的程序员。对于他们来说,同样的经历,重复了8次。为了避免这种综合症,看看你做的每一种事情,然后问自己:“我怎样才能让它变得更好?”
新手(以及很多经验丰富的开发人员)会看着他们自己写的代码,欣赏它的奇妙。他们编写测试来证明他们写的代码是可以运行的,而不是试图让它运行失败。真正优秀的程序员会积极地寻找他们的错误在哪里,因为他们知道最终用户会发现这些遗漏的bug。
3、“可以运行了”这个目标不是终点,而是起点
是的,你的第一步总是想写出质量很高的代码,而且代码上面都写满了注释。但是一般的程序员在这一点上就退出,然后继续下一件事。
但是一旦“完成”就停止了这种思想就像是拍一张快照,然后期待它是一件艺术品一样。伟大的程序员都知道第一次迭代只是一次迭代。它运行起来了,恭喜你!但你的工作还有很多。现在,使它变的更好。
4、写三次代码
好的程序员目标是写出可以运行的软件就可以了。伟大的程序员写出来的软件目标是运行得非常好。通过一次编写这种情况几乎不可能发生。最好的软件通常被写三次:
首先,编写软件以向你自己(或客户)证明解决方案是可行的。其他人可能没有意识到这只是一个概念验证,但你确实这么做了。
第二次可以让它正常地运行。
第三次你能够让它平稳的运行。
5、阅读大量的代码
你可能希望我能够引导这个建议,实际上,这也是提高编程技能的最常见和最有价值的建议。阅读他人代码的原因也很重要,只是不是很明显而已。
当阅读其他人的代码时,你会看到其他人是如何解决编程问题的。但不要把它当成是文学作品,而是把它当成一种教训和一种挑战。想要变得更好,问问自己:
那块代码我该怎么写呢?既然你已经看到了别人的解决方案,那你会有什么思路呢?
6、不要把编码仅仅看作是任务
从事个人编程项目有很多优势。首先,它为你提供了一种学习工具以及学习技术的方法,而这些工具和技术在你当前的工作中是用不到的,但是这将使你在下一份工作中更有市场。
无论你是为开源项目做贡献,还是为当地社区组织做公益工作,你都能获得技术技能和自信。(此外,你的个人项目向潜在雇主证明,你是一个从不停止学习的人。)
编写代码的另一个好处是它强迫你自己去解决问题。你不能把这些难啃的问题留给别人,所以它会让你过早地寻求帮助。
7、你是在学习技术,而不是在学如何使用工具
编程语言、工具和方法这些都只是一时的。这就是为什么需要你在这么多的语言和框架中尽可能多的获得经验。重点关注编程基础,因为基础永远不会改变;更关注体系结构而不是如何编程。
如果你觉得做某件事只有一种正确的方式,那可能是时候进行现实核查了。条条框框的限制会妨碍你学习新事物的能力,也会使你很难适应变化。
下面是我整理的2022年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结
向着目标奔跑,何必在意折翼的翅膀,只要信心不死,就看得见方向。顺风适合行走,逆风更适合飞翔,人生路上什么都不怕,就怕自己投降。
勤学苦练为理想,百折不挠争未来。
边栏推荐
- How to make the fixed-point monitoring equipment display the geographic location on the EasyCVR platform GIS electronic map?
- Golang协程调度器scheduler怎么使用
- [National Programming] "Software Programming - Lecture Video" [Zero Basic Introduction to Practical Application]
- 【服务器数据恢复】服务器Raid5阵列mdisk组中多块磁盘离线的数据恢复案例
- odoo coding conventions (programming conventions, coding guidelines)
- 屏:全贴合工艺之GFF、OGS、Oncell、Incell
- Leetcode75. Color Classification
- 电商库存系统的防超卖和高并发扣减方案
- Multi-Party Threshold Private Set Intersection with Sublinear Communication-2021:解读
- Prometheus的Recording rules实践
猜你喜欢
kubernetes-部署nfs存储类
[pyqt5] Custom controls to achieve scaling sub-controls that maintain the aspect ratio
Keras深度学习实战——交通标志识别
LeetCode 0152. Product Maximum Subarray: dp + Roll in Place
el-form-item prop属性动态绑定不生效如何解决
三种方案解决:npm WARN config global --global, --local are deprecated. Use --location=global instead.
MySQL数据库————存储过程和函数
What is the JVM runtime data area and the JMM memory model
基于flowable的upp(统一流程平台)运行性能优化
Leetcode71. 简化路径
随机推荐
opencv syntax Mat type summary
[Kapok] #Summer Challenge# Hongmeng mini game project - Sudoku (3)
生命周期和作用域
SQL function TO_DATE (1)
C#/VB.NET: extracted from the PDF document all form
重保特辑|拦截99%恶意流量,揭秘WAF攻防演练最佳实践
驱动上下游高效协同,跨境B2B电商平台如何释放LED产业供应链核心价值?
How to use the Golang coroutine scheduler scheduler
腾讯云主机安全 x 轻量应用服务器|强强联合主机安全普惠版重磅发布
C#/VB.NET 从PDF中提取表格
Leetcode75. 颜色分类
深入浅出Flask PIN
请你说说多线程
用VS2013编译带boost库程序时提示 fatal error C1001: 编译器中发生内部错误
Multi-Party Threshold Private Set Intersection with Sublinear Communication-2021:解读
【翻译】CNCF培养的OpenMetrics成为一个孵化项目
Live chat system technology (8) : vivo live IM message module architecture practice in the system
【综述专栏】IJCAI 2022 | 图结构学习最新综述:研究进展与未来展望
安徽建筑大学&杭州电子科技大学|基于机器学习方法的建筑可再生能源优化控制
123123123123