工程师个人发展指南
李云
前阿里高级技术专家,《全面效能》作者
4083 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 35 讲
开篇词 (1讲)
工程师个人发展指南
15
15
1.0x
00:00/00:00
登录|注册

15|多读多练:如何提高编程水平?

你好,我是李云。这一讲我想和你聊一聊如何提高编程水平。
在软件工程领域中,编程水平是每位工程师的核心专业技能。这不仅是个体工作质效的代表,更是团队工作质效和产品质量的关键。我想你一定会认同这些观点,不过你可能会问了,提高编程水平有没有什么好的办法呢?
基于个人的成长经历,我总结为“多读多练”,下面让我用自己的经历来进一步解释这四个字。

胜任工作

1999 年我第一次成为软件开发工程师时,编程对于我来说还是相当手生的事,刚进到公司参与的软件项目,是用微软的 Visual C++,基于 MFC 框架,开发 Windows 操作系统上的一个变电站视频监控应用程序。在那之前,我根本没有商业软件的开发经验,也不知道什么是套接字、多线程、VxD 驱动、RS485 通讯、图像处理等。
好在进到公司时,那个视频监控软件的雏形已经有了。那段时间,我除了干好手头的工作,最大的精力花在阅读整个项目的源代码,掌握每个功能的具体程序实现。因为我开始的编程技能基本上是一张白纸,所以那段时期觉得个人的专业技能提高得特别快。
这段经历,我总结了提高编程水平的第一个方法——在完成日常工作任务之余,通过阅读整个软件项目的源代码来学习。这样做的好处,不只是学习新的编程知识,还能掌握整个软件项目的具体实现,当日常开发工作中碰到程序错误时,就更有查错思路。少了这样的知识储备,咱查起错来就难免低效,有时盲目试错还让人着急上火。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《工程师个人发展指南》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • Day_Day_Up
    有时候想想,技术应该很好锤炼;就像nba那些职业球员一样,实战和平时的训练相结合;编程也是如此!工作中不够那就私下来凑,但其实最难的是前面提到的律己;这个是最难的。

    作者回复: 提高专业技能的律己,最好还是建立在对专业的兴趣之上的,这样才有内驱力。

    2024-09-24归属地:浙江
    2
  • 骨汤鸡蛋面
    一些技术细节,即便知道了也就那么回事,但只要像窗户纸那样没有捅破,面对技术的不确定性就会胆怯,缺少“我一定能搞定”的霸气。 对这个深有体会,另外,如果没有深刻理解,过一段时间就会忘记,而深刻理解的东西,可能说一个关键字,立马就能想到xx是怎么回事。

    作者回复: 你好, 关于深刻理解这一点,确实是,咱工程师就是喜欢原理、规则、定义什么的,而深刻理解其实是包含掌握这些内容的。另外,我在学习的过程中,总是想从根上知道为什么,所以有时得花大量的时间深入下去,直到自己觉得踏实为止,这个过程应当就是咱在学精学深的过程吧。 做技术也是需要有那些学习和解决问题的成功体验,这样能力强了胆子也就大了,霸气也就出来了。不是有“艺高则胆大”这话吗。

    2024-04-10归属地:上海
    2
  • pyhhou
    感觉不管是什么方法,想要提高编程都离不开 “学” 跟 “练”。学是为了拓宽自己的视野,让自己了解更多有用的知识、工具、以及做事情的方法,而练则是为了将所学来的东西落到实处,最终转化成自己的经验,毕竟纸上得来终觉浅,编程是门技艺,没有实践是不行的。 老师说的这个 8 个方法,前面 4 个我一直在做,而后面这几个我想做,但是一直没有合适的机会,更不知道咋开始,没有一个方向。我觉得工程师跟铁匠、木匠、厨师有点类似,只不过工程师需要更强的逻辑思考能力。如果能在工作中有老师傅带着自己入门,上手,介绍机会等等,那应该是件美事,有了一次成功的经验,后面就会顺利的多。这不得不说工作环境也是一个考虑因素,比如小公司就很难有参与大规模软件开发的机会,当然我也在想如何能创造一些自己与公司共赢的机会。 就拿我自己的经历来说,技术写作也能提升编程水平。通过写作,将自己学到的东西反思、总结,并尝试着教授给他人,能够很大程度上增加自己对所学知识的理解,也能查漏补缺,弄清自己还有哪些知识短板。不过这还是在 “学”,写作起到了催化剂的作用,让可以让我们学得更好,对知识本身理解得更深,但是没法替代 “练”,更没办法给予我们项目实战的经验。

    作者回复: 你好, 我觉得你总结得很好了。如果想掌握后面4个方法,可以学习我提交的这个embedded这个开源项目(https://gitee.com/embeddedpro/embedded),有一定的复杂度,也有方法论。刚好这两天我在补充完整文档,这样读者能更好地上手。当然,这个是C语言的,如果不是用C语言的话,可能就不大适用了。

    2024-04-15归属地:美国
    1
  • 新生\
    多读 多练 读:开拓视野,提高经历密度 练:落地 消化 转化为自己的东西
    2024-07-17归属地:江苏
    2
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)