最近在讨论 2015 年的团队培训计划问题,Quora 上的一篇文章给了我不少启发。排行第一的回答中有几个很有意思的见解。

抽像思维能力

作者认为这是程序员最重要的能力。我们在编程时,用到的都是一些抽像的概念。作者认为应该把培养抽像思维能力作为平时练习最重要的事情长期做下去。

问题分解能力

现实编程时,我们要解决的问题往往都比较大,比较复杂。怎么样把复杂的大问题分解成一个个小问题,再逐个去解决这些小问题。这个就是问题分解能力。缺少问题分解能力的人,拿到问题时总会没有思路,因为他们不懂地把问题分解成一个个简单地可解决的问题。

模式识别

作者举了个笑话:在一个程序员的面试过程中,面试官问被试者,微波炉着火了怎么办?被试者说把微波炉扔到窗外。面试官继续问如果咖啡机着火了怎么办?被试者说把咖啡机装在微波炉里,然后扔到窗外。

这里作者想提的其实是一种问题转换的思路。把遇到的一个问题分解后,把子问题使用已经有成熟解决方案的方法来解决。其实模式识别就是抽像思维的一种。我在教女儿算数时,就用了这个方法,我先问她你有三个苹果,妈妈吃掉一个还剩下几个。等她理解后,再问她你有三个桃子,妈妈吃掉一个还剩下几个。所以,实际上我是在教我女儿抽像思维的能力,问题的重点不是苹果或桃子,而是三和一。

判断代码质量的能力

这里作者讲的是不要过早,过度去优化代码,不要片面去追求完美解决方案。代码的性能和质量要和问题的复杂度相当。

怎么样去判断代码的质量和效率刚刚好呢?作者没有提,我觉得这个需要有一些 benchmark 工具来测量以及实际使用来衡量。在这一点上,其实我比较少看到程序员犯这方面的毛病,看到更多的是完全没有优化或没去思考性能问题的低级错误。

练习

练习,练习,练习。没有捷径。10000 小时理论在编程这件事情上一定是真理。可能有天才,但只要你不是特别笨,在一个细分领域持续练习,投入时间,一定会成为专家。当然,这里有些人是工作一年,学了三年的经验,有些人是工作了五年,只学了一年的经验。

基本原理

这条是我加的。当学会用 Java 读写文件后, 不管是 Swift 还是 Python ,他们的读写文件的方法都类似。当熟练使用 Java 的多线程编程,并且理解线程的运作方式之后,要用其他语言实现多线程编程,只需要查看 API DOC 很快就可以写出多线程代码。类似的概念还有网络编程,内存管理,进程间通信,设计模式等等。新技术层出不穷,但基本原理却发展异常缓慢,而且基本保持不变。

今日推荐

那么问题来了,怎么样提高这些能力呢?作者没有给出答案。hackerrank 是个不错的选择,长期练习一些有趣的算法题是对这些能力的培养很有帮助。

计算机语言编程能力有哪些,除了编程语言,程序员还需要具备哪些能力相关推荐

  1. 一个合格的初级程序员所应该具备的能力

    前言:这篇文章的创作之初是在我上家公司时,部门经理给我讲述他从业十年,所认为的一个合格初级程序员所应该能力和我练习两年半所总结的,适用于入行1-2年内工作经验的小伙伴们,也是在面试时经常被问到的问题. ...

  2. 程序员是学历重要还是能力更重要

    前言 你是不是总能听到身边有人说,"现在职场越来越不好混了,打算回去考个研." 作为差不多的"同龄人",我是很能理解这些回去考研的人,毕竟现在中国每年这么多大学 ...

  3. 这些编程语言程序员工资最高!Java才第四

    在众多行业中,程序员属于高薪职业.无论是在国外还是国内,程序员的薪金水平普遍高于其他行业的工作岗位. 高薪的诱惑和充满挑战性的工作,令程序员一直成为备受欢迎的职业.在今年年初,Glassdoor发布的 ...

  4. 「编程羽录」上线,程序员必备的这些技能你能get到嘛?

    大家好,我是小羽. 好久不见,给大家带来个好消息,小羽的全新专题「编程羽录」系列正式上新,主要是介绍一些关于面试题和经验总结的文章. 会为大家提供一些技术栈之外,程序员还需要的其他方面硬核知识,做到全 ...

  5. 做了5年程序员才明白,这项能力原来这么重要

    对于每一个工程师,似乎都在工作.学习中遇到以下这几样问题: 毕业季找工作的时候,即使是名校毕业,企业也都会优先考虑数学专业的毕业生,因为数学越好,越容易上手: 每次找工作的时候,都想从小公司向大厂跳槽 ...

  6. 程序员应如何提高系统分析能力(转)

    程序员应如何提高系统分析能力(转) 来源: javafan 最近领导安排我来负责公司招聘面试.面试中发现,有一两年工作经验的应聘人员,系统分析能力普通较差,不知道该如何做一个系统.如何设计数据库.与他 ...

  7. 适合ipad的python编程软件-这15个应用,程序员用iPad照样可以编程!

    [IT168 评论]1.Dash API文档 Dash是一个API文档浏览器,使用户可以使用离线功能即时搜索无数API. 程序员使用Dash可访问iOS,MacOS,WatchOS,tvOS,Swif ...

  8. 一分钟明白什么是“编程”,再也不会被程序员笑话了

    有人问,编程难吗? 其实没有一件事情是入门难上天,精通易到爆的.编程亦是如此,编程其实入门不会像小白想的这么费劲,但是精通却比你想象的难. 今天此文献给所有听过编程打算学习编程的小白们,了解一下编程其 ...

  9. 当 ChatGPT 比你更会写代码,程序员还能干什么?

    作者 | 何苗 出品 | CSDN(ID:CSDNnews) 大模型的火热引爆了 AI 编程领域的全面革新,人们开始思考如何借助 AI 提高编程效率的同时,也在思考未来需要怎样的"新程序员& ...

最新文章

  1. 导师:学CV的不懂目标检测?那你别学了
  2. The Third Revolution in Sequencing Technology
  3. python中with及closing
  4. 字符驱动之按键(四:poll机制)
  5. LintCode 1677. 石头(自定义优先队列)
  6. java javah_Java开发网 - 一个javah的问题
  7. .Net 高效开发之不可错过的实用工具(转载)
  8. MySQL 如何实现行转列分级输出?
  9. mysql_config缺失_安装 mysqlclient 报 mysql_config not found
  10. android 盒子gpu,挑选电视盒子时CPU和GPU哪个更重要?
  11. 智能聊天机器人平台的架构与应用
  12. CentOS 7 yum update 报错 Failed to connect to 2404:6800:4012::200e: Network is unreachable
  13. matlab锯齿交换,MATLAB折线消除锯齿平滑
  14. SEO中的简单代码优化
  15. opencv-python 详解图像梯度、边缘检测
  16. PDPS软件:机器人搬运工艺应用虚拟仿真操作方法
  17. java中输出一天每半个小时的时间段
  18. 网络唤醒的原理原来是这样的,GET!
  19. 柯尼卡美能达复合机进入维修模式的方法大全
  20. 应广单片机adc_应广单片机adc和pwm例程

热门文章

  1. 利用python获取指定url在ATS中缓存对象的信息
  2. Clip Studio Paint 高级着色学习教程
  3. Rocksdb 的优秀代码(三)-- 工业级 线程池实现分享
  4. leetcode-55 跳跃游戏
  5. [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)
  6. linux 使用sendmail发送邮件
  7. rsa证书ssh登陆服务器
  8. Kafka集群配置说明
  9. 安卓真机测试安装时报错
  10. 异步编程之Promise(2):探究原理