不要用面向对象来迷惑程序员新手

当我被问及“哪种编程语言是教我[儿子 / 女儿 / 其他没有编程经验的人的首选]时,”我的答案这五年多来一直没变:Python。

这也许会出乎你的意料,经常有人会说这是非主流语言,但我坚持我的看法。

Python十分适合解决很多简单的、有趣的问题,比用C语言要省力的多。(这是实话,几行Python代码你就能制作一个简单的拼写检查程序。)你会发现这种语言里几乎没有任何复杂或让人困惑的东西,用它编程简单易懂,比如说数组更新你可以用固有的方法来实现任何的操作算法。在Python里,你学习的曲线很平滑。数组,字典,集合是最主要的东西。

把Python当作入门语言,有一点需要注意:避免使用面向对象特征。你当然不可能完全的回避它们,有些基本数据类型里一些有用的方法跟它们有关
联,问题不大。你只是使用它们已经提供的东西,不要去创建什么类,要避免任何的面向对象设计里的声明,否则的话,你一点点的数据都需要会打包成类。

从面向过程到面向对象的转移带来后果是你从关注问题和解决方法转移到关注架构。你通过对比面向过程的程序和面向对象的程序,很容易能看出这点来。后者的程序会更长,到处是多余的接口和缩进和标记。你也许忍不住想将一些小代码移进类里,或往类里添加一些小方法,这些都没必要,等日后你再做这些也不迟。

当你在帮助某人把一个有问题的语句改正确的时候,你要做的最后一件事是给他们布置一些没有实际用处的技术工作。因为有些人没事时就喜欢玩能一些面向

对象的知识技术,做一些可怕的类继承,最终没有学到他们该学的东西。有些人在学习的时候慢慢的会失去兴趣,因为他们看到了太多的这些没有实际用处的继承、
接口代码,感觉程序越来越笨重、难以处理。

从某方面说,当然,你需要学习一下Python的面向对象的知识,但尽可能的避免使用它们吧。

来源:51CTO

时间: 2024-09-22 02:29:24

不要用面向对象来迷惑程序员新手的相关文章

为什么程序员新手要考虑接单?

许多年轻有才华的开发员正不断的寻找新的项目和解决不同的问题,以此来增加经验.然而,很少有一个单一的环境能够提供这样的条件.如果基于遗留系统代码(维护原有系统),架构方面没有多大的想象空间.因此,许多开发人员觉得需要变换工作,到不同的环境去获取新一阶段的学习. 然而,"跳槽"只不过是获取丰富经验的途径之一,我仍提议另一个选择: 承接网站开发项目或者软件开发项目.如果你从来没有接过单,可以参考伯乐在线的这篇文章<如何找到你的第一个客户>. 回想起来,我能成长为一名成熟的软件开发

程序员成长规划

引言 我的程序员成长之路 程序员的成长经历往往很相似,大部分的人走过了最前面相同的一段路,而有的人则走得更远.总结自己这些年来的历程,这也许能让年轻的程序员少走一些弯路,成长得更快:或许更好一些,能让大家从中得到一些启发,早日进入优秀程序员的阶段,实现梦想,释放激情. 第一阶段,最初是在学校里学习计算机基础知识,学习经典的程序设计语言,编写测试用的小程序.这个过程可以说是对计算机和程序设计的入门阶段.这个阶段主要是培养了自己对计算机软件的兴趣,打下了良好的计算机基础知识. 第二阶段,而后参加工作

也谈“为什么中国的程序员总被称为码农?”

        我经常在CSDN上浏览新闻,同时也喜欢阅读博客.最近,我看到有不少文章在谈"为什么中国的程序员总被称为码农"这个话题.大家虽然各抒己见,但都在表明一个事实:在中国做程序员真的很累,与种地的农民没有什么区别.        作为一个刚工作不久的程序员新手,我想就自己的经历谈一下对这个话题的认识.        在学校的时候,我们对那些"IT界的英雄"很是敬佩,包括:盖茨.乔布斯.扎克伯格,以及大家都很熟悉的李开复老师.想到他们用自己的智慧改变了人类的生

当我和程序员说:你的Bug,我可以帮忙解决时...

简评:其实对于程序员而言,你如果质疑说他的代码有Bug,他往往会觉得你很SB,但是当他承认有个Bug的时候,也会尽可能地将问题给什么环境变量呀,有个包没导入呀,尽量把锅丢给别人,如果锅是在甩不掉的话,就只能说这个问题其实很难...难以调试,如果这个Bug被菜鸟调试出来了,那么又会什么样呢? 当我和IT程序员说,"你的Bug,我可以帮忙解决"时... n久之前遗留下的bug竟然被一个菜鸟解决了... 代码编译通过,我们上线吧! 世上有两种人(代码风格),程序员都懂的.你是哪一种呢? 虽然

JAVA程序员必读:基础篇(2)面向对象编程概念

编程|程序|程序员|对象|概念 如果你以前从来没有使用面向对象语言,你需要在开始编写JAVA代码之前先理解这个概念.你需要理解什么是对象.什么是类.对象和类的关系怎样以及使用消息怎样在对象之间进行通讯.本教程的前面部分将描述面向对象编程的概念,而后面的教程将教你怎样将这个概念编成代码. 2.1什么是对象 对象是一些相关的变量和方法的软件集.软件对象经常用于模仿现实世界中我们身边的一些对象.对象是理解面向对象技术的关键.你在学习之前可以看看现实生活中的对象,比如狗.桌子.电视.自行车等等.你可以发

整理类库-新手Net开发程序员想知道如何整理C#类库?

问题描述 新手Net开发程序员想知道如何整理C#类库? 刚工作不久带我的师父在做框架,让我帮忙整理类库,我不知道如何下手,求有经验的大神指导一下(最好能具体告知整理类库的步骤和注意事项)谢谢了

有哪些老鸟程序员知道而新手不知道的小技巧?自我感受

最近在朋友圈看到别人分享的一篇知乎回答:https://www.zhihu.com/question/36426051/answer/76031743 我觉得写得挺有道理的,作为一个写了10多年C#代码的老程序员来说,很多地方我能感同身受,所以也谈谈我的自我感受. 1.重构是程序员的主力技能. 是的,我之前经常也提到一点,就是好多设计模式不是提前就设计出来的,而是重构出来的.很多情况是我们在做设计的时候考虑不到的,是写代码时也考虑不到的,只有在项目上线后,客户使用过程中才会反应出来,这个时候就需

Java程序员应当知道的10个面向对象设计原则

(设计原则)底线是永远追求高内聚.低耦合的编码或设计. Apache 和 Sun的开源代码是学习Java和OOPS设计原则的良好范例.它们向我们展示了,设计原则在Java编程中是如何使用的.Java JDK 使用了一些设计原则:BorderFactory类中的工厂模式.Runtime类中的单例模式.java.io 类中的装饰器模式.顺便说一句,如果您真的对Java编码原则感兴趣,请阅读Joshua Bloch 的Effective Java,他编写过Java API.我个人最喜欢的关于面向对象设

程序员应知道这十大面向对象设计原则

面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) . Decorator(装饰器).Observer(观察者) 等设计模式, 而没有把足够多的注意力放在学习面向对象的分析和设计上面.学习面向对象编程像"抽象"."封装"."多态"."继承" 等基础知识是重要的,但同时为了创建简洁.模块化的设计,了解这些设计原则也同等重要.我经常看到不同经验水平的java程序员,他们有的不