除了编程语言,程序员还需要具备哪些能力
4个回答
展开全部
抽像思维能力
作者认为这是程序员最重要的能力。我们在编程时,用到的都是一些抽像的概念。作者认为应该把培养抽像思维能力作为平时练习最重要的事情长期做下去。
问题分解能力
现实编程时,我们要解决的问题往往都比较大,比较复杂。怎么样把复杂的大问题分解成一个个小问题,再逐个去解决这些小问题。这个就是问题分解能力。缺少问题分解能力的人,拿到问题时总会没有思路,因为他们不懂地把问题分解成一个个简单地可解决的问题。
模式识别
作者举了个笑话:在一个程序员的面试过程中,面试官问被试者,微波炉着火了怎么办?被试者说把微波炉扔到窗外。面试官继续问如果咖啡机着火了怎么办?被试者说把咖啡机装在微波炉里,然后扔到窗外。
这里作者想提的其实是一种问题转换的思路。把遇到的一个问题分解后,把子问题使用已经有成熟解决方案的方法来解决。其实模式识别就是抽像思维的一种。我在教女儿算数时,就用了这个方法,我先问她你有三个苹果,妈妈吃掉一个还剩下几个。等她理解后,再问她你有三个桃子,妈妈吃掉一个还剩下几个。所以,实际上我是在教我女儿抽像思维的能力,问题的重点不是苹果或桃子,而是三和一。
判断代码质量的能力
这里作者讲的是不要过早,过度去优化代码,不要片面去追求完美解决方案。代码的性能和质量要和问题的复杂度相当。
怎么样去判断代码的质量和效率刚刚好呢?作者没有提,我觉得这个需要有一些 benchmark 工具来测量以及实际使用来衡量。在这一点上,其实我比较少看到程序员犯这方面的毛病,看到更多的是完全没有优化或没去思考性能问题的低级错误。
练习
练习,练习,练习。没有捷径。10000 小时理论在编程这件事情上一定是真理。可能有天才,但只要你不是特别笨,在一个细分领域持续练习,投入时间,一定会成为专家。当然,这里有些人是工作一年,学了三年的经验,有些人是工作了五年,只学了一年的经验。
基本原理
这条是我加的。当学会用 Java 读写文件后, 不管是 Swift 还是 Python ,他们的读写文件的方法都类似。当熟练使用 Java 的多线程编程,并且理解线程的运作方式之后,要用其他语言实现多线程编程,只需要查看 API DOC 很快就可以写出多线程代码。类似的概念还有网络编程,内存管理,进程间通信,设计模式等等。新技术层出不穷,但基本原理却发展异常缓慢,而且基本保持不变。
作者:kamidox
链接:https://www.jianshu.com/p/9d5366dd157f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者认为这是程序员最重要的能力。我们在编程时,用到的都是一些抽像的概念。作者认为应该把培养抽像思维能力作为平时练习最重要的事情长期做下去。
问题分解能力
现实编程时,我们要解决的问题往往都比较大,比较复杂。怎么样把复杂的大问题分解成一个个小问题,再逐个去解决这些小问题。这个就是问题分解能力。缺少问题分解能力的人,拿到问题时总会没有思路,因为他们不懂地把问题分解成一个个简单地可解决的问题。
模式识别
作者举了个笑话:在一个程序员的面试过程中,面试官问被试者,微波炉着火了怎么办?被试者说把微波炉扔到窗外。面试官继续问如果咖啡机着火了怎么办?被试者说把咖啡机装在微波炉里,然后扔到窗外。
这里作者想提的其实是一种问题转换的思路。把遇到的一个问题分解后,把子问题使用已经有成熟解决方案的方法来解决。其实模式识别就是抽像思维的一种。我在教女儿算数时,就用了这个方法,我先问她你有三个苹果,妈妈吃掉一个还剩下几个。等她理解后,再问她你有三个桃子,妈妈吃掉一个还剩下几个。所以,实际上我是在教我女儿抽像思维的能力,问题的重点不是苹果或桃子,而是三和一。
判断代码质量的能力
这里作者讲的是不要过早,过度去优化代码,不要片面去追求完美解决方案。代码的性能和质量要和问题的复杂度相当。
怎么样去判断代码的质量和效率刚刚好呢?作者没有提,我觉得这个需要有一些 benchmark 工具来测量以及实际使用来衡量。在这一点上,其实我比较少看到程序员犯这方面的毛病,看到更多的是完全没有优化或没去思考性能问题的低级错误。
练习
练习,练习,练习。没有捷径。10000 小时理论在编程这件事情上一定是真理。可能有天才,但只要你不是特别笨,在一个细分领域持续练习,投入时间,一定会成为专家。当然,这里有些人是工作一年,学了三年的经验,有些人是工作了五年,只学了一年的经验。
基本原理
这条是我加的。当学会用 Java 读写文件后, 不管是 Swift 还是 Python ,他们的读写文件的方法都类似。当熟练使用 Java 的多线程编程,并且理解线程的运作方式之后,要用其他语言实现多线程编程,只需要查看 API DOC 很快就可以写出多线程代码。类似的概念还有网络编程,内存管理,进程间通信,设计模式等等。新技术层出不穷,但基本原理却发展异常缓慢,而且基本保持不变。
作者:kamidox
链接:https://www.jianshu.com/p/9d5366dd157f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
展开全部
抽像思维能力
作者认为这是程序员最重要的能力。我们在编程时,用到的都是一些抽像的概念。作者认为应该把培养抽像思维能力作为平时练习最重要的事情长期做下去。
问题分解能力
现实编程时,我们要解决的问题往往都比较大,比较复杂。怎么样把复杂的大问题分解成一个个小问题,再逐个去解决这些小问题。这个就是问题分解能力。缺少问题分解能力的人,拿到问题时总会没有思路,因为他们不懂地把问题分解成一个个简单地可解决的问题。
模式识别
作者举了个笑话:在一个程序员的面试过程中,面试官问被试者,微波炉着火了怎么办?被试者说把微波炉扔到窗外。面试官继续问如果咖啡机着火了怎么办?被试者说把咖啡机装在微波炉里,然后扔到窗外。
这里作者想提的其实是一种问题转换的思路。把遇到的一个问题分解后,把子问题使用已经有成熟解决方案的方法来解决。其实模式识别就是抽像思维的一种。我在教女儿算数时,就用了这个方法,我先问她你有三个苹果,妈妈吃掉一个还剩下几个。等她理解后,再问她你有三个桃子,妈妈吃掉一个还剩下几个。所以,实际上我是在教我女儿抽像思维的能力,问题的重点不是苹果或桃子,而是三和一。
判断代码质量的能力
这里作者讲的是不要过早,过度去优化代码,不要片面去追求完美解决方案。代码的性能和质量要和问题的复杂度相当。
怎么样去判断代码的质量和效率刚刚好呢?作者没有提,我觉得这个需要有一些 benchmark 工具来测量以及实际使用来衡量。在这一点上,其实我比较少看到程序员犯这方面的毛病,看到更多的是完全没有优化或没去思考性能问题的低级错误。
练习
练习,练习,练习。没有捷径。10000 小时理论在编程这件事情上一定是真理。可能有天才,但只要你不是特别笨,在一个细分领域持续练习,投入时间,一定会成为专家。当然,这里有些人是工作一年,学了三年的经验,有些人是工作了五年,只学了一年的经验。
基本原理
这条是我加的。当学会用 Java 读写文件后, 不管是 Swift 还是 Python ,他们的读写文件的方法都类似。当熟练使用 Java 的多线程编程,并且理解线程的运作方式之后,要用其他语言实现多线程编程,只需要查看 API DOC 很快就可以写出多线程代码。类似的概念还有网络编程,内存管理,进程间通信,设计模式等等。新技术层出不穷,但基本原理却发展异常缓慢,而且基本保持不变。
作者:kamidox
链接:https://www.jianshu.com/p/9d5366dd157f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者认为这是程序员最重要的能力。我们在编程时,用到的都是一些抽像的概念。作者认为应该把培养抽像思维能力作为平时练习最重要的事情长期做下去。
问题分解能力
现实编程时,我们要解决的问题往往都比较大,比较复杂。怎么样把复杂的大问题分解成一个个小问题,再逐个去解决这些小问题。这个就是问题分解能力。缺少问题分解能力的人,拿到问题时总会没有思路,因为他们不懂地把问题分解成一个个简单地可解决的问题。
模式识别
作者举了个笑话:在一个程序员的面试过程中,面试官问被试者,微波炉着火了怎么办?被试者说把微波炉扔到窗外。面试官继续问如果咖啡机着火了怎么办?被试者说把咖啡机装在微波炉里,然后扔到窗外。
这里作者想提的其实是一种问题转换的思路。把遇到的一个问题分解后,把子问题使用已经有成熟解决方案的方法来解决。其实模式识别就是抽像思维的一种。我在教女儿算数时,就用了这个方法,我先问她你有三个苹果,妈妈吃掉一个还剩下几个。等她理解后,再问她你有三个桃子,妈妈吃掉一个还剩下几个。所以,实际上我是在教我女儿抽像思维的能力,问题的重点不是苹果或桃子,而是三和一。
判断代码质量的能力
这里作者讲的是不要过早,过度去优化代码,不要片面去追求完美解决方案。代码的性能和质量要和问题的复杂度相当。
怎么样去判断代码的质量和效率刚刚好呢?作者没有提,我觉得这个需要有一些 benchmark 工具来测量以及实际使用来衡量。在这一点上,其实我比较少看到程序员犯这方面的毛病,看到更多的是完全没有优化或没去思考性能问题的低级错误。
练习
练习,练习,练习。没有捷径。10000 小时理论在编程这件事情上一定是真理。可能有天才,但只要你不是特别笨,在一个细分领域持续练习,投入时间,一定会成为专家。当然,这里有些人是工作一年,学了三年的经验,有些人是工作了五年,只学了一年的经验。
基本原理
这条是我加的。当学会用 Java 读写文件后, 不管是 Swift 还是 Python ,他们的读写文件的方法都类似。当熟练使用 Java 的多线程编程,并且理解线程的运作方式之后,要用其他语言实现多线程编程,只需要查看 API DOC 很快就可以写出多线程代码。类似的概念还有网络编程,内存管理,进程间通信,设计模式等等。新技术层出不穷,但基本原理却发展异常缓慢,而且基本保持不变。
作者:kamidox
链接:https://www.jianshu.com/p/9d5366dd157f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Java毕竟是一门语言,学语言必然需要有“天赋”,不然怎么会有那么多的技术大牛,但话说回来了,并不是每个人都必须有天赋才能学好Java的,这归结到自身的学习能力上。
学Java编程恰恰也需要这样的自我学习能力,如果你下定决心学了,就要有意识的去培养自己的学习能力,因为Java是一种灵活多变的语言,虽然技术核心变化不大,但可移植性强,更新速度也比其他语言快,如果以后从事Java开发这些问题都是要自己解决的。
学Java编程恰恰也需要这样的自我学习能力,如果你下定决心学了,就要有意识的去培养自己的学习能力,因为Java是一种灵活多变的语言,虽然技术核心变化不大,但可移植性强,更新速度也比其他语言快,如果以后从事Java开发这些问题都是要自己解决的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编程语言只是个工具,程序员需要多方面的知识,至少熟悉自已设计领域项目的基础知识,比如账务软件你得对会计工作业务流程,账务处理有所熟悉或了解,用户需要什么功能,用户如何操作使用更方便等,这样开发出来的软件才有市场,其它软件也一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询