关于编程能力的思考

编程能力

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

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

 

理论基础

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

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

 

系统设计能力

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

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

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

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

关于编程能力的思考 | 后端开发那点事儿

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值