打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于编程能力的思考

编程能力

在一次面试中与主管聊到了什么是编程能力,这是一个值得思索和回味的话题。什么才是一个程序员真正的编程能力?或者,非科班程序员与科班程序员相比差在哪里?

作者认为,编程能力分为两个方面:理论基础和系统设计能力。在当前的技术水平上,继续提高实力需要一“上'一'下':'上'是往宏观方向走提高系统设计能力,“下”是往微观方向深挖夯实基础。

理论基础

理论基础是指程序员需要掌握的关于计算机和编程的基础知识,包括计算机组成原理、操作系统原理、编译原理、数据结构与算法等。如果往机器学习、大数据、图像识别领域发展,还需要掌握高等数学、线性代数、概率分析、离散数学等数学知识。

虽然工作中,绝大多数开发任务都不会用到太多基础知识,但这些基础知识作为根基,决定了一个程序员能否成为优秀的程序员。编程是一种抽象,程序是人类与计算机交流的载体,了解计算机才能更好地交流。数学是程序的基础,拥有良好的数学功底才能设计出合理、高效的算法去解决问题。

系统设计能力

系统设计能力是对问题进行抽象并设计出合理实现方案的能力。拥有良好的系统设计能力是成为软件架构师的基本要求。虽然有很多成熟的框架可供程序员使用,如 spring、MyBatis、dubbo 等,但通用框架解决的是一类常见场景的抽象问题,工作中遇到具体需求仍然要求程序员自主设计。

系统设计的好坏直接影响项目的长远发展。随着业务的发展,对兼容性、并发性、可用性、扩展性、伸缩性等会有越来越高的要求。真正达到极限的时候,不可能推倒重来、不可能冒着风险进行大规模的重构,因此系统设计终将成为瓶颈,必须有好的程序员进行良好的设计才能支撑起不断发展的业务规模。

流行的开源框架往往规模巨大,凝聚了很多优秀程序员的智慧,模块划分合理,拥有良好的架构设计、恰到好处的设计模式、安全高效的并发处理、值得学习的编程思路。深入研究开源框架能够提供系统设计能力。

每周 3 篇学习笔记或技术总结,面向有一定基础的 Java 程序员,内容涉及 Java 进阶、虚拟机、MySQL、NoSQL、分布式计算、开源框架等多个领域。关注作者第一时间获取最新内容。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
真正“自学”入门编程/程序员是一种怎样的体验?
喜欢的计算机书籍
自学与转行程序员,必学计算机专业课
程序员的“数学编程修炼宝典”,入行必备!
一步一步走向程序员 9天扎实掌握C语言⑥丨理解*编程设计基础知识
1211本书通通免费!这是个专为程序员准备的网站
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服