程序员提高思维能力

szandyye 2014-07-07 12:54:03
加精
做程序这一行除了技术过硬之外还要求有非常强的逻辑思维能力,个人觉得我的逻辑思维能力不是很强,该如何提高呢?
...全文
6862 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器学习之禅 2014-07-21
  • 打赏
  • 举报
回复
玩数学游戏,做做公务员的题吧
  • 打赏
  • 举报
回复
引用 27 楼 leo2003 的回复:
每天看1集喜羊羊。
这样有用吗
beyondcj 2014-07-20
  • 打赏
  • 举报
回复
bokewangyu 2014-07-20
  • 打赏
  • 举报
回复
actingfatfan 2014-07-19
  • 打赏
  • 举报
回复
勤能补拙是不错,但是你得考虑成本?你花比别人多的时间才做的比别人好,这不叫竞争,这叫死扛。选最适合自己做的事,才是事业的前提。
actingfatfan 2014-07-19
  • 打赏
  • 举报
回复
其实我也感觉天分相对于努力来说起主导作用,你努力的方向就是人家的习惯,你觉得你很认真的情况下对别人来说是必须完成的事情,你能熬得过别人的习惯么?再就是,你花一天时间搞懂的问题人家半小时一小时搞定,你怎么去追赶?还是先选对适合自己的事,再谈追求与理想吧。
欢乐的小猪 2014-07-19
  • 打赏
  • 举报
回复
引用 1 楼 yang84523803 的回复:
多看喜羊羊与灰太狼
++
  • 打赏
  • 举报
回复
引用 4 楼 a24862 的回复:
前些天恩师有提到过ACM程序设计竞赛。 他大概意思是说可以参加一下玩玩,在学习准备的过程中锻炼的解决问题和逻辑思维能力一生受用。 所以可以从一写小算法中得到启发与思考,毕竟养成思维习惯是一件长久的事情。
这个确实是个好办法
  • 打赏
  • 举报
回复
引用 37 楼 liyingju001 的回复:
有些确实是天赋 没办法的
想当年排列组合考试,我做对了两个选择题,这是我数学史上的滑铁卢,天赋确实坑爹
  • 打赏
  • 举报
回复
引用 1 楼 yang84523803 的回复:
多看喜羊羊与灰太狼
这是个死循环
liyingju001 2014-07-18
  • 打赏
  • 举报
回复
有些确实是天赋 没办法的
threenewbee 2014-07-18
  • 打赏
  • 举报
回复
其实无非就是想说明一个道理,很多客观事实不过是一个硬币的两面,无所谓好坏。 比如说天赋和天生缺陷,比如说创新精神和冒险人格(你经常看到,人类很多发明都是建立在犯错误的基础上),再比如地域歧视和为国争光(如果你认为地域歧视是可耻的,那么你也不应该某个地域某个人的优秀和取得什么成绩而觉得这个地方/国家的人有什么好的,那么某人取得什么成就也无所谓为国争光了)。
yong7 2014-07-18
  • 打赏
  • 举报
回复
引用 5 楼 caozhy 的回复:
我觉得一些天分是天生的,换一句话说,你天生适合做一些事情,并且天生不适合做另一些事情。不要以为思维能力强是训练出来的。我您可相信逻辑思维过强是一种强迫症的病态。如同一些人成为诗人,是因为他的情感或者说对外界环境的敏感程度异于常人。他们天生喜怒哀乐超乎一般人以至于和一些精神病患有某些共通的地方。一些艺术家对于距离、形状和色彩的感知也有独特之处,这无法用某种学习和训练解释。再比如,如同《美丽心灵》的主人公那样,一些科学家之所以能在学术上达到那样的高度,和他们的孤僻也许有关——不沟通使得他们远离很多噪声。 当然这是我的一种猜想。 提供一个链接给你参考:阿斯伯格综合症
对,这就是天赋,并且天赋是无法通过后天努力提升的,后天努力只是将你的天赋发挥出来,努力程度大或许能100%发挥天赋,不努力可能只是70%。不过有一句话说得对,现在很多人的努力程度太低以至于根本到不了发挥天赋的程度。(美丽心灵那个数学教授确实牛逼,自己克服了自己的精神病)
fyh822853 2014-07-18
  • 打赏
  • 举报
回复
liyingju001 2014-07-17
  • 打赏
  • 举报
回复
先偷 大牛说的
517Thorn果 2014-07-17
  • 打赏
  • 举报
回复
锻炼呗,多看点别人的代码。
日知己所无 2014-07-16
  • 打赏
  • 举报
回复
研究一下数学……
  • 打赏
  • 举报
回复
对一个方法做N次优化,慢慢锻炼你解决能力的能力
Ju_Sang 2014-07-16
  • 打赏
  • 举报
回复
引用 13 楼 lion_kangaxx 的回复:
逻辑思维好不好啊,有专项训练的。结合数学,但是这个绝对不是1,2个月能出成果的。至少坚持1年以上。
话说 物、化、生 比 数学还好肿么办,好尴尬
rulky 2014-07-16
  • 打赏
  • 举报
回复
用灰太狼的方式去思考问题
加载更多回复(28)
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。   作一个真正合格的程序员,应该具有的素质。   1:团队精神和协作能力   团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。   2:文档习惯   文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。   3:规范化的代码编写习惯   知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。   4:需求理解能力   程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。   5:模块化思维能力   作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力提高是一个程序员的技术水平提高的一项重要指标。   6:测试习惯   测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。   7:学习和总结的能力   程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。   作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:   1、 需求分析能力   2、 整体框架能力   3、 流程处理能力   4、 模块分解能力   5、 整体项目评估能力   6、 团队组织管理能力   1,激情   我曾经遇到许多“职业程序员”,他们从事IT是因为觉得这是一种职业,他们只在工作时间编程,除非送去培训否则他们不会学习新东西,这不是好的程序员。我认为一个好的程序员总是对编程充满激情,而且好的开发者会做一些编程工作即使这没有报酬。激情是一个优秀程序员的重要指标。   2,自学好学   编程领域始终发展变化着,不出一年有些新技术就变成了老技术,这并不是说好的程序员要对所有新技术跟进,但有些却对学习任何新技术都没有兴趣。他们通常在学校学习了编程,然后工作后单位安排学什么就学什么。如果在招聘中你听到“让我培训一个星期我就会胜任这个工作”那不要雇佣他。实际上,真正优秀的程序员始终谈论着你所不知道的新技术,向人们解释为什么你必须用这个技术,哪怕没有听众听得明白,哪怕他自己也不明白。   3,聪明   聪明包括很多因素,情绪和社会交际只是其中之一。好的程序员绝不木讷,他们是最聪明的人,他们中的许多善于交际,健谈、兴趣广泛。   4,隐性的经验   —好的程序员通常有自己的私人的一些研究、爱好、项目,而这些是他们不写在简历上 (通常觉得不值得写),但表现出来却可能恰恰是他的潜能、深度和后劲所在。   5,技术多样性   由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有 “强烈”的个人意见/见解,喜好尝试新鲜技术。   6,资格证书   资格证书并不是识别真正程序员的方法,MCSE、SCJP说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。   原文作者在文末写道:以上所说的标准并不是绝对的,因为有些优秀的程序员确实不符合上述,而有些bad程序员却符合了。但相信这些对大多数真正的程序员都适用。   总结而言,优秀的程序员通常有一下特点:   对技术充满激情   将编程作为一种爱好   如果你允许会滔滔不绝地跟你谈论技术   有过个人的开发经历(与4意思相同)   坚持认为某种技术最好   如果让他用他认为不好的技术他会非常别扭   聪明、健谈、兴趣广泛   在大学和工作前就开始接触程序
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。   作一个真正合格的程序员,应该具有的素质。   1:团队精神和协作能力   团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。   2:文档习惯   文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。   3:规范化的代码编写习惯   知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。   4:需求理解能力   程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。   5:模块化思维能力   作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力提高是一个程序员的技术水平提高的一项重要指标。   6:测试习惯   测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。   7:学习和总结的能力   程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。   作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:   1、 需求分析能力   2、 整体框架能力   3、 流程处理能力   4、 模块分解能力   5、 整体项目评估能力   6、 团队组织管理能力   1,激情   我曾经遇到许多“职业程序员”,他们从事IT是因为觉得这是一种职业,他们只在工作时间编程,除非送去培训否则他们不会学习新东西,这不是好的程序员。我认为一个好的程序员总是对编程充满激情,而且好的开发者会做一些编程工作即使这没有报酬。激情是一个优秀程序员的重要指标。   2,自学好学   编程领域始终发展变化着,不出一年有些新技术就变成了老技术,这并不是说好的程序员要对所有新技术跟进,但有些却对学习任何新技术都没有兴趣。他们通常在学校学习了编程,然后工作后单位安排学什么就学什么。如果在招聘中你听到“让我培训一个星期我就会胜任这个工作”那不要雇佣他。实际上,真正优秀的程序员始终谈论着你所不知道的新技术,向人们解释为什么你必须用这个技术,哪怕没有听众听得明白,哪怕他自己也不明白。   3,聪明   聪明包括很多因素,情绪和社会交际只是其中之一。好的程序员绝不木讷,他们是最聪明的人,他们中的许多善于交际,健谈、兴趣广泛。   4,隐性的经验   —好的程序员通常有自己的私人的一些研究、爱好、项目,而这些是他们不写在简历上 (通常觉得不值得写),但表现出来却可能恰恰是他的潜能、深度和后劲所在。   5,技术多样性   由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有 “强烈”的个人意见/见解,喜好尝试新鲜技术。   6,资格证书   资格证书并不是识别真正程序员的方法,MCSE、SCJP说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。   原文作者在文末写道:以上所说的标准并不是绝对的,因为有些优秀的程序员确实不符合上述,而有些bad程序员却符合了。但相信这些对大多数真正的程序员都适用。   总结而言,优秀的程序员通常有一下特点:   对技术充满激情   将编程作为一种爱好   如果你允许会滔滔不绝地跟你谈论技术   有过个人的开发经历(与4意思相同)   坚持认为某种技术最好   如果让他用他认为不好的技术他会非常别扭   聪明、健谈、兴趣广泛   在大学和工作前就开始接触程序

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧