有时候不得不承认,写代码是会上瘾的。
很多人认为写着一行行命令是一件很枯燥的事。没错,当我没有学写程序时也是这么想的。我当时不只认为写程序很无聊,我还不理解为什么像盖茨,像扎克伯格都会坚持写代码,他们都已经过了那个艰苦奋斗的阶段了。
但怎么说呢?就像我看到一本书《黑客与画家》里说的,程序是最公平的事物了。
世界上没有比这更好的: 你输入什么肯定能得到相应的结果的东西了。**或许以前我认为有——物理学不也是确确实实的遵循定律的吗?**这个理念也在我了解量子物理学以后差不多崩塌了。那数学呢?或许是吧,但学编程不就是在锻炼自己数学思维和能力吗。
###在计算机的世界里只有0和1
这就是计算机世界的规则,程序不会出错,出错的只有写程序的你。我是从C语言写起的,你写的每一行命令,都会被转化成最基本的 0 和 1 运算到计算机,然后通过那几十亿计的集成电路管,完成这次浩大的运算,返回给你结果。
这是难以被人掌握的,早期会使用计算机编程的人都是天才。于是就有了编译器,有了高级语言。这两件东西把底层的逻辑打了个包,让人类能更贴近自然的去使用它(虽然这'自然'脱离了计算机的自然)。
编译器能帮你检查对错,高级语言能帮你打包逻辑。当一个没有逻辑的语句输入编译器时,它不会再进行一次明显是南辕北辙的运算,而直接在编码之前就检查出了你的错误;高级语言可以直接封装好一部分的逻辑,你可以不用重新再造一个轮子来使用它。越高级的计算机语言就越接近人们的习惯。
而且编程就像搭积木一样,其实从c语言到更后面先进的语言都会呈现出这种趋势,你把一块块的函数组合在一起,那程序就能产生作用。我用的 Xcode 编译器能很深的感受到这一点,红红绿绿的是一块一块的积木,之间用另一些蓝色黑色的积木拼搭起来,有一些'指针'穿梭在其间,把两块老远的积木联系了起来,或是直接把一块积木 '引用' 用到了其它空缺的部位。**确实好玩。**
编程在哲学意义上来讲就更加的伟大,辩证法证明了任何事物都有转化的可能性,而世界更是虚虚实实瞬息万变,在这里没有因果律,我想**再重复一遍这事实,没有因果律**。
而计算机则给了你另一个世界,这里你的每一个结果和原因都会相互关联,简单且强大。使得很多程序员沉浸在其中的也是这点,因为在这个世界里,公平完美。
而一个写代码的人确实是可以十分有趣的,就我所知王小波是会写程序的,他写的小说也特别有趣;刘慈欣也是会写程序的,但他既是发电厂的工程师也是一名科幻作家;有能力的设计师也是会写程序的,他会自己设计工具来使用。
**因此在我看来会写程序只是一种爱好**,我也会写程序,但我想做的是佩奇盖茨那种事,至少也得是扎克伯格那样的事。
我认识的很多朋友,它们有的是和我一样想创立一家伟大公司的梦想家;有的是想在学术海洋中寻找彼岸的追寻者;有的是一心报效国家的预备军人,但他们都是会写程序的,这是一种最适合现代这个社会的生存方式。
而在未来可见的十数年或数十年,软件的重要性还会继续的加重。我们的生活越来越被软件给覆盖,或者说吞噬,不管你是什么职业、兴趣,软件会直接的介入你的生活。
那何不学会了解它们呢?跟我一样,我并不准备未来在工作中使用代码,但在这却成为了一种兴趣或者是能力,足以拓展你的现实世界了。