个提问:你的编程能力从什么时候开始突飞猛进的?
↓↓↓
今天,我们就这个话题一起来做个讨论。
我的回答
话说这个话题着实有点泛、难以回答,这里简单跟大家分享一下我对于这个问题的一些看法,希望大家喜欢。
我的观点认为,一个程序员但凡编程能力突飞猛进之后,会在如下6个能力方面有所体现:
1、编程语言熟练度:良好的编程能力要求掌握一到多门编程语言,能够熟练运用这些语言进行软件开发。
对相关语言的API语法、框架、工具包非常熟悉与掌握,能够娴熟的在合适场景下进行选择性的应用。
2、问题解决能力:编程能力包括对问题的分析和解决能力,能够有效地定位和解决在软件开发过程中遇到的各种问题。
这主要体现在解决线上bug的能力。相关开发同学能不能第一时间快速止血问题(通过数据订正、回滚等手段快速阻断问题源,避免事态进一步恶化),然后线下快速定位到问题(查阅线上日志再结合项目源码),继而快速修复问题(发bugfix版)的能力。
3、代码质量和规范:良好的编程能力表现在编写高质量、易读、可维护的代码,遵循编程规范和最佳实践。
我之前写过一些列所谓的“屎山”代码的文章。描述什么是“屎山”代码?它有什么特征?以及如何规避产生这种”屎山“代码?
有几个链接供大家做个参考:
为什么祖传代码被称为“屎山”?
Bug是如何产生的?
4、软件设计与架构:良好的编程能力涉及对软件设计和架构的理解,能够设计出具有良好扩展性和灵活性的系统。
这主要体现在用一些画图工具(processOn、diagrams.net、Excalidraw、PPT等)画一些UML图或业务架构图、系统架构图等,抽象化你的具体业务需求内容,以详细设计文档的形式体现出来。
关于UML画图工具,我曾写过一篇文章,这个工具我自己一直在用,画图效果也确实不错,比较专业和美观,大家不妨可以看看:这款uml画图工具,阿里字节都用疯了,你还不知道?
5、调试和优化:良好的编程能力包括对代码进行调试和性能优化的能力,使得软件能够更高效、更稳定地运行。
关于调优,如果流量小,世界注定一片祥和,但如果有一天流量暴增,就会出现各种性能问题(比如响应缓慢啊、OOM、甚至程序直接崩溃),所以程序员是需要花时间去进行调优的。
通常调优的手段有:服务水平扩容、利用缓存减轻数据库“读”的压力、通过mq对流量进行削峰填谷、数据库分库分表减轻数据库写的压力与存储压力等
6、测试与质量保证:编程能力要求对测试和质量保证有基本的理解,能够编写有效的测试用例和进行单元测试等。
虽然编程界有句笑话,程序员写代码写的就是BUG。但无可厚非体现一个程序员好的编程能力其能编写出高质量、不易出错的代码往往是是最低要求。很难想象一个一天到晚写BUG的程序员能力能好到哪里去。
关于在实际编程中,如何才能写出不易出错质量高的代码,这里我贴一篇我在早些时候发表过的关于此话题的一篇文章:代码重构前vs重构后,大家可以参考看看。
终上所述,上述我总结的这6个编程能力是我认为可以体现一个程序员编程突飞猛进后的标志,当然实际操作过程中,具体的要求可能会因具体的职位、项目需求和行业特点而有所不同。
OK,今天的分享到处接近尾声,接下来,分享一则我们可爱的知友关于这个问题的精彩答复,灰常精彩,一定看到最后哦!
知友作答