设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者
123426 人已学习
新⼈⾸单¥98
登录后,你可以任选6讲全文学习
课程目录
已完结/共 113 讲
设计模式与范式:行为型 (18讲)
设计模式之美
15
15
1.0x
00:00/00:00
登录|注册

加餐六 | 什么才是所谓的编程能力?如何考察一个人的编程能力?

IT技术领域的不变的内功
在平时的开发中进行设计思想原则和模式的练习
刷LeetCode上的题目
不依赖算法背景和特殊解题技巧的题目
面试中的白板编程
设计思想、原则和模式
数据结构和算法
编程语言
灵活使用设计思想、原则和模式
熟练使用编程语言、开发类库等工具
编写正确、快速、bug少、性能好、质量高的代码
把“逻辑”翻译成代码的能力
课堂讨论
如何提高编程能力?
如何考察编程能力?
什么是编程能力?
编程能力

该思维导图由 AI 生成,仅供参考

在招聘要求里,我们经常看到“要求候选人有扎实的编程能力”。在面试反馈中,我们也经常看到面试官用“编程能力很强”来评价候选人。那到底什么是编程能力呢?如何考察一个人的编程能力呢?又如何提高编程能力呢?今天,我们就编程能力这个话题展开聊一聊。
话不多说,让我们正式开始今天的内容吧!

什么是编程能力?

所谓编程能力,指的是把“逻辑”(或者说“功能”“业务”)翻译成代码的能力。所谓编程能力强,指的是,不仅能编写正确的代码,而且编写代码的速度很快,写出来的代码 bug 很少、性能很好、质量很高。
更加具体点讲,一个编程能力强的人,能熟练使用编程语言、开发类库等工具,思路清晰,面对复杂的逻辑,能够编写出 bug free 的代码,能够合理地利用数据结构和算法编写高效的代码,能够灵活地使用设计思想、原则和模式,编写易读、易扩展、易维护、可复用的高质量代码。
相反,一个编程能力差的人,往往逻辑思维能力比较差,面对复杂的逻辑,编写代码的速度很慢,而且容易考虑不周,写出来的代码 bug 很多,更没有性能意识,不懂得如何分析代码的时间复杂度、空间复杂度,更不懂得如何借助现成的数据结构和算法来优化代码性能。除此之外,写代码的时候,几乎不考虑代码的可读性、可扩展性等质量问题,只追求能运行就可以。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

编程能力是指将逻辑转化为代码的能力,包括编写正确、高效、高质量的代码。考察编程能力主要包括编程语言、数据结构和算法、设计思想、原则和模式。面试中通过白板编程考察候选人的基本技术素养,重点考察数据结构和算法。建议不考察需要记忆特定算法或技巧的题目,而是考察基本编程素质。提高编程能力可通过刷LeetCode题目加强对数据结构和算法的掌握,锻炼逻辑思维、写出bug free代码的能力,同时在平时开发中练习设计思想、原则和模式。文章强调内功的重要性,提倡持续积累不变的能力。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《设计模式之美》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(37)

  • 最新
  • 精选
  • Jie
    沟通能力很重要,和领导和同事和客户可以聊得起来。和机器打交道久了,人不能变得像机器一样。
    2020-07-01
    57
  • J.Smile
    做人要务虚,做事要务实。程序员不懂得务虚在职场很吃亏,即便技术不差,但得出类拔萃,挺难。
    2020-07-01
    7
    31
  • 君哥聊技术
    技术上讲,数据结构,操作系统,网络,设计模式,数据库,这些都是不变的内功
    2020-07-06
    16
  • enjoylearning
    产品意识也是一种内功,不能只是还原客户的需求,要了解客户需求背后的需求。
    2020-07-01
    16
  • 守拙
    “写一个函数将 IPv4 地址字符串(仅包含数字、点、空格)转化成 32 位整数。另外,数字和点之间的空格是合法的,其他情况均为非法地址,要求输出合法地址的 32 位整型结果。” 思路: 1. 根据.和空格判定输入是否合法; 2. 将输入以.分割为4个8bit的十进制int值; 3. 遍历4个int值, 将其转为二进制值; 4. 拼接4个二进制值, 得到32位整型结果.
    2020-07-01
    4
    14
  • 程序员小跃
    最近一直在和同学聊如何提升自己的能力,因为他刚转行到 Java 开发不久,我零零碎碎的整理了一些知识点给他;恨自己没早点学习专栏,没有把这篇文章做一个观后感的整理。 还早现在还来得及,我反复读了几遍,顺带分享给我同学,希望他能转行找到心仪的工作。
    2020-10-24
    7
  • 业余爱好者
    量子计算普及之前,冯诺依曼架构的理论知识(如os,网络等)还是需要学习的,不过这些底层知识的学习最终还是要落到编程能力上,因为少有人去设计一个操作系统或编译器。 编程能力确实是一个衡量程序员水平的很好的指标,编程能力又可以拆分为算法能力,设计能力等。对程序员来说,一切工作都是围绕编程的,失去这一宗旨,一切都是扯淡,即使所谓沟通之类能力也是为了协作以完成编程目标而已。
    2020-07-01
    7
  • Geek_7f18eb
    private static String ipTo32(String str) { String result = ""; int length = str.length(); int i = 0; for (; ; ) { if (i > length - 1) { if (result.length() < 32) { result += "0"; continue; } else { break; } } char index = str.charAt(i); Boolean last = Character.isDigit(index); Boolean lastPoint = ".".equals(String.valueOf(index)); if (last) { result += String.valueOf(index); } int j = i + 1; if (j < length && " ".equals(String.valueOf(str.charAt(j)))) { Boolean nextPoint = ".".equals(String.valueOf(str.charAt(j + 1))); Boolean next = Character.isDigit(str.charAt(j + 1)); if ((last && nextPoint) || (lastPoint && next)) { } else { result = "false"; break; } } i++; } return result; }
    2020-07-03
    6
  • 我能走多远
    底层得知识是内功,计算机理论基础;内核的内存管理及文件管理;数据结构与算法等等吧
    2020-07-01
    3
    4
  • 全炸攻城狮
    合法字符串trim后,按照.分割成4个串,再分别转换成二进制,最后合并。这道题关键应该是对于字符串是否合法的判断吧,比较能体现出一个人逻辑思维是否缜密
    2020-07-02
    3
收起评论
显示
设置
留言
37
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部