FaGe's Blog

吹啊吹啊。

标签:程序员

共 11 篇文章

附录A-练习8:目录切换(pushd, popd)

附录A-练习8:目录切换(pushd, popd) 这节练习中,你将学习如何使用pushd实现保存你的当前位置,并去一个新的位置,然后您将学习如何使用popd恢复保存位置。 做到这些 Linux/OSX $ cd temp $ mkdir -p i/like/icecream $ pushd i/like/icecream ~/temp/i/like/icecream ~/temp $ popd ~/temp $ pwd ~/temp $ pushd i/like ~/temp/i/like ~/temp $ pwd ~/temp/i/like $ pushd icecream ~/temp/i/like/icecream ~/temp/i/like ~/temp $ pwd ~/temp/i/like/icecream $ popd ~/temp/i/like ~/temp $ pwd ~/temp/i/like $ popd ~/temp $ pushd i/like/ice...

阅读全文

来自老程序员的建议

来自老程序员的建议 你已经完成了这本书而且打算继续编程。也许这会成为你的一门职业,也许你只是作为业余爱好玩玩。无论如何,你都需要一些建议以保证你在正确的道路上继续前行,并且让这项新的爱好为你带来最大程度的享受。 我从事编程已经太长时间,长到对我来说编程已经是非常乏味的事情了。我写这本书的时候,已经懂得大约20种编程语言,而且可以在大约一天或者一个星期内学会一门编程语言(取决于这门语言有多古怪)。现在对我来说编程这件事情已经很无聊,已经谈不上什么兴趣了。当然这不是说编程本身是一件无聊的事情,也不是说你以后也一定会...

阅读全文

练习44.继承Vs.包含

练习44.继承Vs.包含 在有关英雄战胜邪恶的童话中,总是有某种形式的黑暗森林。它可能是一个山洞,森林,另一个星球或者其他地方,每个人都知道英雄不应该去。当然,当不就之后坏人被你找到的时候,你发现,英雄已经去那个愚蠢的森林里杀坏人去了。看起来英雄进入了一种状态,这种状态要求英雄必须在这个邪恶的森林中冒险。 在面向对象编程中,继承就是那个黑暗森林。有经验的程序员知道要避免这种邪恶,因为他们知道,黑暗森林深处有着多重继承这个邪恶的皇后。 她喜欢那她那庞大的牙齿吃掉软件和程序员。但这个森林是如此强大,如此诱人,几乎每一个...

阅读全文

练习36.设计和调试

练习36.设计和调试 现在你已经学会了if 语句,我将给你一些使用for 循环和while 循环的规则,以免你日后碰到麻烦。我还会教你一些调试的小技巧,以便你能发现自己程序的问题。最后,你将需要设计一个和上节类似的小游戏,不过内容略有更改。 IF 语句的规则: 每一个“if 语句”必须包含一个 else. 如果这个else永远都不应该被执行到,因为它本身没有任何意义,那你必须在else语句后面使用一个叫做die的函数,让它打印出错误信息,这和上一节的习题类似,这样你可以找到很多的错误。 “if 语句”的嵌套不要超过 2 层,最好尽量保持只有 1 层。 将“if...

阅读全文

练习34.访问列表元素

练习34.访问列表元素 列表的用处很大,但只有你能访问里边的内容时它才能发挥出作用来。你已经学会了按顺序读出列表的内容,但如果你要得到第5个元素该怎么办呢?你需要知道如何访问列表中的元素。访问第一个元素的方法是这样的: animals = ['bear', 'tiger', 'penguin', 'zebra'] bear = animals[0] 你定义了一个 animals 的列表,然后你用 0 来获取第一个元素?! 这是怎么回事?因为数学里边就是这样,所以 Python 的列表也是从 0 开始的。虽然看上去很奇怪,这样定义其实有它的好处,实际上设计成 0 或者 1 开头其实都可以。 最好的解释方式是将...

阅读全文

练习26.恭喜你,可以进行一次考试了

练习26.恭喜你,可以进行一次考试了 你已经完成这本书的前半部分了,不过后半部分才更有趣。你将会学习逻辑,并通过条件判断实现有用的功能。 在你继续学习之前,你要完成一道试题。这道试题很难,因为它需要你修正别人写的代码。当你成为程序员以后,你将需要经常面对别的程序员的代码,也许还有他们的傲慢态度,他们会经常说自己的代码是完美的。 这样的程序员是自以为是不在乎别人的蠢货。优秀的程序员也会认为自己的代码总有出错的可能,他们会先假设是自己的代码有问题,然后用排除法清查所有可能是自己有问题的地方,最后才会得出“这是别人的...

阅读全文

简介

简介 笨办法更简单 在这本书的帮助下,你将通过非常简单的练习学会一门编程语言。做练习 是每个程序员的必经之路: 做每一道习题 一字不差地写出每一个程序 让程序运行起来 就是这样,刚开始可能会非常难,但你要坚持下去。如果你通读了这本书,并且每晚花一两个小时做习题,你可以为自己读下一本关于Python的编程书籍打下良好的基础。这本书不会在一夜之间把你变成一个程序员,但是它会帮你掌握学习编程的最基本的方法。 这本书的目的是教会你作为编程新手所需的三种最重要的技能:读和写、注重细节、发现不同。 读和写 如果你连打字都成问题的话...

阅读全文

练习32:双向链表

练习32:双向链表 原文:Exercise 32: Double Linked Lists 译者:飞龙 这本书的目的是教给你计算机实际上如何工作,这也包括多种数据结构和算法函数。计算机自己其实并没有太大用处。为了让它们做一些有用的事情,你需要构建数据,之后在这些结构上组织处理。其它编程语言带有实现所有这些结构的库,或者带有直接的语法来创建它们。C需要你手动实现所有数据结构,这使它成为最“完美”的语言,让你知道它们的工作原理。 我的目标是交给你这些数据结构,以及相关算法的知识,来帮助你完成下面这三件事: 理解Python、Ruby或JavaScript的data = {"...

阅读全文

练习31:代码调试

练习31:代码调试 原文:Exercise 31: Debugging Code 译者:飞龙 我已经教给你一些关于我的强大的调试宏的技巧,并且你已经开始用它们了。当我调试代码时,我使用debug()宏,分析发生了什么以及跟踪问题。在这个练习中我打算教给你一些使用gdb的技巧,用于监视一个不会退出的简单程序。你会学到如何使用gdb附加到运行中的进程,并挂起它来观察发生了什么。在此之后我会给你一些用于gdb的小提示和小技巧。 调试输出、GDB或Valgrind 我主要按照一种“科学方法”的方式来调试,我会提出可能的所有原因,之后排除它们或证明它们导致了缺陷。许多程序...

阅读全文

练习27:创造性和防御性编程

练习27:创造性和防御性编程 原文:Exercise 27: Creative And Defensive Programming 译者:飞龙 你已经学到了大多数C语言的基础,并且准备好开始成为一个更严谨的程序员了。这里就是从初学者走向专家的地方,不仅仅对于C,更对于核心的计算机科学概念。我将会教给你一些核心的数据结构和算法,它们是每个程序员都要懂的,还有一些我在真实程序中所使用的一些非常有趣的东西。 在我开始之前,我需要教给你一些基本的技巧和观念,它们能帮助你编写更好的软件。练习27到31会教给你高级的概念和特性,而不是谈论编程,但是这些之后你将会应用它们来...

阅读全文