如何培养Python程序员所需要的思维幼儿逻辑思维训练500题

Python大神告诉你成为优秀程序员的几个个有效方法
作为一个在IT行业的软件程序员,每天促使我去上班的动力就是对编程的乐趣和激情。但是为了激发乐趣并获得永恒的快感,我们需要学习和遵守一些基础知识以成为一名优秀的程序员。
当然我总结的这些东西没有那么神,你说你要想学了之后就一定可以成为优秀程序员,那是不可能的。这只是从我的经验角度出发提供的一些捷径。对于优秀程序员的定义,此处可以理解为能开发出超棒的IT解决方案并且能促进行业整体发展的程序员。
这里还是要推荐下小编的Python学习群:483 546 4I6,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2017最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。
1.掌握基础知识
不管任何行业和任何工作,概念的理解都是成功的关键。除非你有强大的概念基础,否则就不可能成为一名优秀的程序员。核心概念的理解有助于你用最佳的方式设计和实施解决方案。如果你觉得你现在还没有好好掌握关于核心计算机科学和编程语言的特定概念,那么现在回过头去重新学习这些基础知识犹未晚矣。
2.给自己写的每个代码集都贴上标签(how,what)
我发现区分程序员优劣的一条很明显的分割线就是,是否有这个热情去知道“what and how”。有的程序员对于自己的代码是如何执行的以及执行结果等知道得一清二楚。我也理解有时候因为时间紧迫,我们不得不在只知道这些代码可以完成工作的情况下就立刻进行下一步。虽然这对解决问题而言,似乎是另一个方向的话题,但是作为一个程序员,我们应该尽可能地深入研究问题以达到最高水平。相信我,随着时间的推移,你会在不知不觉中养成这个好习惯,然后受益无穷。。
3.通过帮助他人从而学到更多
可能我们中的大多数人只有在自己需要帮助的时候才会上论坛和群。有一条区别程序员是否优秀的分割线就是,优秀者经常会去这些地方以帮助他人。而且他们在帮助别人的同时,自己也能学到很多东西。如果是在一个团队中,也应该互相帮助。相信我,理解别人的问题背景、研究并提出解决方案会让你学到的更多,成长的更快。
4.代码要写得简单、易懂、有逻辑
正如在生活中其他方面一样,KISS(Keep it simple and short)规则同样适用于编程领域。代码要有逻辑,避免过于复杂。有些人之所以要将代码写得那么复杂只是为了证明自己有写复杂代码的能力。但是我的经验告诉我,简单且逻辑化的代码才能有效工作,不但问题少而且更易扩展。我记得有这么一句话
好的代码本身就是最好的文档。在你要添加注释之前,先问问自己,“我怎么改进代码,才能不需要写这个注释?”——Steve McConnell
5.多花时间分析问题,后面就可以少花时间去修复
多花点时间用来理解和分析问题,设计出最优的解决方案,然后你会发现接下来的工作将事半功倍。设计过程并不意味着一定要使用建模语言和工具,也可以很简单,例如抬头仰望天空,然后在脑子里来一场头脑风暴。那些一拿到问题就习惯性去噼里啪啦写代码的程序员,最后拿出来的成果往往会与要求的不同。
你如果在洗澡的时候脑子里还没有程序的整体结构,那就意味着还没有做好开工写代码的准备。——Richard Pattis
6.第一个分析审核自己的代码
虽然有点困难,但是在其他人发现之前自己先知道问题的所在,能让你学会如何写出“接近于无bug”的代码。自己对自己的代码审核要公正严谨,也要能毫无犹豫地接受他人的审核。近朱者赤,与优秀的程序员一起工作,积极听取他们的反馈,必然也会帮助你成为一名优秀的程序员。
7.面对日新月异的技术千万不要沮丧
最近一段时间在IT行业里,我碰到的很多人——要么念叨着对他们的工作失望了,要么甚至于已经辞职在找新工作了——都一致表示,他们想要学习并使用最新的技术。对于这个愿望我认为可以理解,但是这个词“最新的”,我觉得不甚正确。我们每天都能听到有人在说“现在又出来什么新的工具、API、框架和其他方法等”可以使得编程工作更加的简捷。这在技术领域其实一直在发生。真正需要我们去关注和理解的是核心和基本技术的转变,在这个基础上再去看新的框架、工具和API。举个例子,在很多Java公司可能每隔一周就会换上新的web框架,但是其基于客户端—服务端通信模式的需求方式、MVC模式、filters/servlets/JSP、资源绑定、XML解析等核心概念依然是相同的。所以,与其时刻担心框架和工具的变化,还不如花点时间好好学习这些核心概念。相信我,在理解这些核心概念的基础上,我们才可以更快地掌握新的框架、工具和API。
8.应急措施并不能长久有效
很多时候,软件程序员可能会采取应急和变通的解决方案(或因为时间紧迫,或缺乏对问题的深刻认识,或技术经验不足)。但是,这些应急方案会破坏代码,导致其后期很难扩展和维护。我能理解,有的时候这种情况真的很难避免,但是就像我们都应该讲实话一样,你讲了谎话,那就得知道谎言总有戳穿的那一天。
9.阅读文档
优秀程序员的基本习惯之一就是阅读大量的文档,技术指标、JSR、API文档、教程等等。阅读文档为我们用最好的方式编程打下了必需的基石。
10.学习他人的代码
我非常喜欢与那些在IDE里有java源代码的优秀程序员交流互动,阅读/参考他们的代码。因为这么做不但能了解基本知识,还可以学会写项目的新方法。阅读和参考一些可靠和已知的开放源码或者自己的高级代码,也有助于我们更好地编程。
最后一点,前面没有列进去的:不要和别人比
俗话说,人比人,气死人,拿自己与别人作比较只会导致负面情绪,并演变成不良竞争。尺有所短寸有所长,每个人都有自己的长处和短处。我看到过很多次一些所谓的特别牛叉的程序员也会犯一些很愚蠢的错误。所以,剖析自己,列出不足之处,努力改进自己,才是正途。
编程是一种真正的乐趣,欢迎乐在其中。
“任何一个傻瓜,都写得出能让计算机理解的代码,但是,优秀程序员写出来的代码,能让全人类理解。”——Martin Fowler
我觉得优秀的程序员,不仅优秀在代码上,更重要在思维等方面。
我认为一个优秀程序员是谨慎的,在有需求与任务时,会不断的澄清需求与任务,并且多次确认想要的结果,而非闷头听着或者看着需求与任务列表。
我认为一个优秀程序员的思维是清晰的,在写代码时,他的脑海是有一系列详细步骤的,即知道他在做什么,而且写下的每一步他都能清楚的知道在表达什么。
我认为一个优秀程序员的思维是缜密细致的,在出问题后,他会详细的先研究问题出在哪里,思考缘由,而非闷头瞎使用printf大法,然后去撞大运,头痛医头,脚疼医脚,因为这样解开了Bug其实连自己都心虚。而优秀的程序员即使解开了Bug,他也会扩展问题,并且思考是否其它部分是否也有类似的问题,只是还未体现,而且他也会详细反思获得的经验。
我认为一个优秀程序员的编码习惯是良好的,他的代码读起来是赏心悦目的,若遇到难理解的实现点时,他也会写下清晰的注释来帮助后来人理解,因为他知道代码不仅是让计算机执行,更是需要让别人也理解的,因为项目开发是团队合作,而非单打独斗。
与优秀程序员的合作是愉快的,而非觉得难处。
优秀的程序员最终总是能解决问题,而且不论花多长时间, 他/她对这个问题能否解决,如何解决有很清楚的思路和想法, 他可能用1个星期解决一个bug,但是他解决bug的方法绝对是有计划性的;一般程序员基本上只能解决与自己解决过的问题高度相似的问题,如果这个问题没碰到过, 基本上就是乱试碰运气了。这个说起来容易, 做起来就难了, 基本上是综合了一个人的智力,体力,经验,对系统的了解, 业务知识,底层理解, 对架构的掌握,语言的细节的把握。。。等等很多方面, 简单的说, 优秀的程序员看起来好像总是能够避免问题, 而一般的程序员却总是被一些乱七八糟的问题给挡住
--- 这个其实不是偶然的, 有一定的必然。
Python 程序员都会喜欢的6个程序库
带你走进第一个Python 程序
学习python的第二十五天-老程序员的忠告
1年开发经验,25万年薪的1个捷径,98%Python程序员都不知道
如何学成Python大神?这里有些建议!
神级程序员大佬分享给python小白入门教程及学习路线,涨知识啦!
Python程序员最常犯的十个错误
没有更多推荐了,Python的xor 异或逻辑实现 - 为程序员服务
为程序员服务
Python的xor 异或逻辑实现
python中没有异或操作符,但是可以很容易的实现异或操作:
xor = bool(a) != bool(b)
这样异或操作就可以方便实现了, python总是那么简单直接。
您可能的代码
相关聚客文章
相关专栏文章https://kuaibao.qq.com/s/Y6N100?refer=cp_1026分享分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板扫描二维码扫描关注云+社区相关快讯分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板扫描二维码扫描关注云+社区程序员自学Python开发,20到30岁几乎决定了你的未来!
之前程序员界流行一句话:人生苦短,请用Python。
随着Python成为网红语言之后,不少程序员想多学这一门语言好傍身。
甚至有些27、28岁的程序员开始考虑要从安卓转行做Python。
这是一个非常有趣的现象:之前安卓比较火热,很多人从java转到安卓。现在人工智能也开始火了,又开始准备转python。
要说学习难度,Python远远比C和C++、java、php容易。不过呢,Python程序员收入也高,这一部分原因是它还没有被一些培训机构染指。
如果你打算再业余时间学习python,或者转型做python程序员,应该准备些什么呢?
下面w3cschool就来分享Python学习的一些要点,以便我们可以更快地掌握python。
0、1~2周学习Python基础教程
像Python基础教程,包含了变量、数据结构、语法等,如果你已经掌握了一门编程语言,用一两个星期,就可以搞定Python基础教程。
Python基础教程可以直接使用w3cschool官方教程,讲解比较清楚。
1、心态上调整
不过,在学习Python基础教程过程中,难免会浮躁,从入门到放弃!
这时候就需要心态上的调整,给自己打打鸡血。
你需要意识到:20到30岁这个时间段的发展,几乎决定了你的未来。
在这个阶段,首要就是提高学习力以及解决问题的能力。
要锻炼这两种能力,不仅仅要靠平时工作中的学习,业余时间学习也至关重要。
或许可以把python当作小白鼠,通过不断的试验,掌握快速学习一门新技术的方法。
或许是学会了举一反三的能力、或许提高了融会贯通的能力,总之只有重视学习,时间才会回馈应有的报酬。
2、Python精华:Python必备的6个库:
Python库是Python的精华所在,在这里w3cschool特别给程序员小伙伴们分享Python开发者的6个必备库:
PyPy、CFFI、PyInstaller、PBR、WxPython、Mypy。
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
w3cschool是一个专业的编程入门学习及技术文档查询网站,并且提供实用的编程工具。
帮助企业构建企业内部知识库和团队协作中心。
今日搜狐热点每个程序员都应该学习使用Python或Ruby - 文章 - 伯乐在线
& 每个程序员都应该学习使用Python或Ruby
如果你是个学生,你应该会C,C++和Java。还会一些VB,或C#/.NET。多少你还可能开发过一些Web网页,你知道一些HTML,CSS和JavaScript知识。总体上说,我们很难发现会有学生显露出掌握超出这几种语言范围外的语言的才能。这真让人遗憾,因为还有很多种编程语言,它们能让你成为一个更好的程序员。
在这篇文章里,我将会告诉你,为什么你一定要学习Python或Ruby语言。
跟C/C++/Java相比 — Python/Ruby能让你用少的多的多的代码写出相同的程序。有人计算过,Python或Ruby写出的程序的代码行数只相当于相对应的Java代码的行数的五分之一。如果没有绝对的必要,为什么要花这么多时间写出这么多的代码呢?而且有人说,一个优秀的程序员能维护的代码量最多是2万行。这不区分用的语言究竟是汇编,C还是Python/Ruby/PHP/Lisp。所以,如果你用Python/Ruby写,你一个人干的,不管是干什么,如果换用Java/C/C++,那都需要一个5人的小团队来干。
跟VB/PHP比较 — 跟PHP/VB相比,Python/Ruby的是一种从设计上讲比它们好的不知多少倍的语言。PHP和VB分别是在开发网站和桌面应用程序上非常流行的语言。它们流行的原因是非常的易学。不懂计算机的人也很容易的上手。如果你用这些语言开发过大型的项目,你就会发现这些语言的设计是如此的糟糕。是朋友,他就不会劝你使用PHP/VB。
跟Lisp/Scala/Haskell/Closure/Erlang相比 — Python/Ruby跟它们比起来显得相当的“主流”。确实,这些语言每种都有其很酷的特征,对于高级编程人员,了解这些语言能给他们对编程的思考带来实际的提升。但这些应该在你以后的职业生涯中才去决定学哪一两种。对于现在,Python/Ruby是在语言功能和实际运用之间平衡后的更好的选择。
跟Perl相比 — Python和Ruby都受恩于Perl,在这两种语言异军突起前,Perl是最好、最大的一种动态语言。但现在,Perl已是昨日黄花,越来越多的人转向Ruby/Python。我感觉Perl的面向对象机制有点做作,很不好用。通常认为,Perl一种比较难学的语言,因为它提供你了太多不同的方法去完成同一个任务,它的语法有点像密码,非常不直观 — 除非你对它掌握的非常好。总之,我感觉Perl是一种对于学生来说不是很合适的语言—除非你有特殊的理由去学它(例如,你有很多正则表达式要处理,这是Perl的闪光点)。
跟sh/sed/awk/bash相比 — 如果你使用Linux/Unix,你可能需要做一些shell编程,甚至会编写一些不小的程序。但是,对于这些语言,一旦程序达到一定的行数,事情就会开始变得让你痛苦不堪,你最好是用Python去做这些事情。当然,做这种事情,Perl是最好的选择,Python排第二。(Ruby对于系统shell脚本不是很合适)。
你可以在Google上搜一下“为什么X比Y好” — 其中把X换成Python或Ruby,把Y换成另外一种语言 — 你就会发现,有无数的文章来说明它们为什么这么好。
如果你有选择你的毕业设计使用的编程语言的自由,你应该选择Python或Ruby,它们能让你在开发项目的过程中节省一半的时间(除非你要开发的是移动应用,这样你必须要使用Java或Objective-C)。
下面是xkcd上的一幅漫画,告诉你掌握Python后你会变得多么的强大:
如何去学它们呢?很多很多的网站上都提供了学习Python和Ruby的教材和课程。下面的是我从中选出的一些:
,学习Python的好资源。
,学习Ruby的一个好网站。
有疑问吗?请在评论了写出来,我会尽量回答你们。
1 :我的这篇文章可能会让很多Perl爱好者很郁闷,现在回味一下,我认识到对这种语言的要求过于苛刻了。因此,我把关于Perl的一节改写了一下。
Python和Ruby都受恩于Perl,在这两种语言出现之前,Perl是最大、最好的动态语言。但Perl现在太老了。它的面向对象性不完整。它很久没有升级更新了,它的市场份额正在丢失。对于一些新的、很火的事物(例如Web编程框架,Web API),它不如Python & Ruby 那样能跟上时代的步伐。基本上,Python/Ruby在兴起,Perl在衰退。
2 :本文中的所有语言的比较都是用来给印度计算机科学专业的学生选编程语言时做参考的。像“X比Y好”这样的句子准确的讲是毫无意义的,因为所有的语言都是经过时间的考验而存活下来的,有些语言会在某些领域比另外一种要强,这也是它们存活下来的原因。换句话说,总有一些情况下,PHP/Java/C/C++/Perl 看起来会比 Ruby/Python 等其它语言显的更适合。
译文:  原文:}

我要回帖

更多关于 怎样提高逻辑思维能力 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信