美文网首页JAVAIT好文收集正是
21天成为高级程序员,就看这一本

21天成为高级程序员,就看这一本

作者: 老韩大叔 | 来源:发表于2017-03-12 15:58 被阅读5488次

【文|风万里】

老话说的好“内行看门道,外行看热闹。”前几天TIOBE公布了2017年3月全球编程语言排行榜,Java语言以16.384%占比稳居第一,高出第二名C语言二倍之多。

2017年3月编程语言排行

那由此证明Java是世界上最好的语言么?还是Php(不是拍黄片啊)是世界上最好的语言??

我以为,学编程如同习武。世上的武功没有高低之分,只有习武的人才有强弱之别。如何才能快速提升战斗力?如何在短时间内可以和高手对决?笔者接下来奉上干货,教你一套内功心法。

《编码》

《编码——隐匿在计算机软硬件背后的语言》的作者Petzold从1984年开始编写个人计算机程序,曾经被微软公司授予Windows Pioneer奖。本书通俗易懂的讲述了一台计算机是如何工作的。作者使用电线、电灯泡、触发器等这些非常常见的零件,拼拼接接,最后令人惊异的建造了一台电子计算机。

本书的作者用丰富的想象和清晰的笔墨将看似繁杂的理论描述得生动、简单,使读者不会感到枯燥和生硬。即便读者不是计算机专业人士、程序员也可以轻松阅读此书。

作者在书中主要围绕的两大部分讲述:第一部分描述字母和数字在计算机中的编码,第二部分介绍计算机的硬件组成结构。下面我们分别来说明。

第一部分:字母和数字在计算机中的编码

什么是编码?对任何能听见我们的声音并理解我们所说的语言的人来说,我们发出的声音所形成的词语是一种可识别的编码。说是编码的过程,听是解码的而过程。

打个比方你喜欢一个阿拉伯女孩,你不会阿拉伯语,她也不会汉语。你想要对她表白说“我爱你”。当你从开始的想法到说出这句话,你的大脑(CPU)进行了编码的过程。

大脑把这句话“我爱你”编码成了汉语。而这个阿拉伯女孩,因为她无法解释你的编码,她听不懂汉语。

你还可以使用聋哑人使用的编码方式手语来表达。你还可以使用盲人使用的布莱叶盲文来表达。不过,这一切的前提是她都学习过这些编码。

你如何对计算机来表达“我爱你”呢?当程序员大侠敲击键盘输入我爱你时,计算机怎么会知道如何解码??它怎么知道你是爱它的???

本书前十三章都在解释计算机对人类语言编码和解码的过程。

第二章编码与组合中提到莫尔斯码(Morse Code)。莫尔斯码是伴随着电报机的问世而被发明的。我们在抗战片经常看到这样的场景:电报员头戴大耳麦,手里不停的拨弄着电键。电报机发出滴嗒滴嗒的声音。在电报机中一次快速的“滴-嗒”代表着“点”,一次慢速的“滴——嗒”代表着“划”。不同的“点”“划”组合可以代表不同的汉字。而更加耐人寻味的是,这个发明使用了二进制编码。

第九章二进制数中,提到在计算机的世界里全部的信息都是使用数字0和1来表示。0和1在计算机中是怎样编码的呢?是使用电灯泡的开关来表示。灯泡亮代表数字1,灯泡不亮代表数字0。不同的0和1的组合可以代表不同的数字和汉字。序列“01000001”代表字母A。序列“100111000101101”代表字符的“中”字。

21天成为高级程序员,就看这一本
第二部分:计算机的硬件组成结构

一台计算机包括很多部件:中央处理器、存储器、输入/输出设备等。通常这些部件按照功能被分别安装在两个或更多的电路板上。这些电路板之间通过总线通信。

用我们人类身体的组成结构做一个类比。中央处理器(CPU)类似于人体的大脑。存储器类似于人体的胃。输入设备类似于人体的耳朵、眼睛和鼻子等。输出设备类似于人体的手和脚。计算机的总线传输设备类似于人体的血管。

作者一边讲解了计算机的组成,一边回顾了计算机的发展史。如果大家想更进一步感性的了解这段历史,可以观看《模仿游戏》这部电影。这部电影讲述了图灵是如何发明一部计算机的。

电影《模仿游戏》剧照

有读者一定会疑惑,读完这本书真的就可以达到高级程序员的水平么?

举个栗子:内存溢出的bug是我们经常会碰到的棘手问题,这个问题发生之后,不同级别的程序员反应如何呢?

初级程序员的第一反应是:先来个{try catch}把异常捕获了,以后有时间再查下原因吧。而很快就没有以后了。

高级程序员第一反应是:哪块代码占用内存大?是图片占用内存空间大么?为什么占用这么大?调用了第三方库?第三方库实现的原理是什么?一定要查清楚具体原因,了解事物的原理。

在基础原理上的深刻理解,透过现象进而探索本质可以发现新事物;将复杂的事物简单化,可以发现解决问题的新方法。

我们需要在思想上有一个转变,达到高级程序员的思维高度,学习他们解决问题的方法。由这些方法作为指引,假以时日,你一定可以变得越来越优秀。

后记:一张图片到底占用多大内存?欢迎评论探讨。

相关文章

网友评论

  • 48287f0ed034:简历模板能不能再分享下🤗
  • 郁盏:标题党啊
  • 魅璃儿:哇塞哇塞!!!
    老韩大叔:@魅璃儿 :joy:
  • 永清_7ea6:没有c有Java吗?Java不止是c改进的,Java运行也离不开c。
    老韩大叔:@永清_7ea6 C语言是世界上最好的语言:joy:
  • 又吃饭了:js怎么学?
    又吃饭了: @风万里 正在看😂
    老韩大叔:@1b6dc6d7b5f6 教程
    老韩大叔:@1b6dc6d7b5f6 可以去W3school搜索下简历
  • 3abebc8a9caf:大大请问入党对以后有什么用啊?
    浅彻: @ChocolateBig 出国签证不太方便
    3abebc8a9caf: @风万里 现在才大一,我家有一个位子,我不知道要不要ヽ(≧Д≦)ノ
    老韩大叔:@ChocolateBig 要考公务员?还是去国企?
  • cd88e7eba187:为啥没人扯一张图片多少内存呢?没记错的话,图片的大小是: 图片长X图片宽X颜色深度/8。。。不考虑压缩什么的因素。
    php程序看过类似的处理,再把这个大小乘一个倍数。低于这个大小,抛出内存不够的错误。
    老韩大叔:@利维亚坦 :+1:
  • c0825a5f3de2:😂
    老韩大叔:@失联CHINA :joy:
  • ChrisYu_小魚:需要一种参透到底的心态
    老韩大叔:@ChrisYu_小魚 嗯嗯,打破砂锅问到底。
  • 鲁克巴克诗:如果真有作者说得这么好的话,我一定要买!
  • Luh的星河:楼主你真逗,21天从入门到放弃:grin:
    老韩大叔:@MrZang 有用就好:smile:
    Luh的星河:@风万里 没事看看也是极好的 开阔视野 给你赞一个
    老韩大叔:@MrZang :joy:
  • movingtarget:负责任地说,带上了硬件知识的书想教你变成高级程序员,这根本不可能。所有编程资料书,最多小白入门,或者入门都不行,更别说高级了。
  • dfe147f4a102:进来看了看 我还是回去看我的Java 编程思想跟算法导论了
    老韩大叔:@_v君 Java是世界上最好的语言:joy:
  • x_zhaohu:看见这个标题 忍不住要喷,但是冷静想了想,楼主,可能是内功深厚,通过这本<编码>的洗礼,突破了瓶颈!
    老韩大叔:@x_zhaohu 感谢冷静:smile:
  • 无颜Flower:Javascript是最好的语言
    老韩大叔:@DaiFlower JS是最好的语言:joy:
  • b2fcc9834564:21天成为高级程序员,纯粹扯淡,看来是真不懂程序
    老韩大叔:@青天有月 :joy:
  • 某人李下:很棒
    老韩大叔:@尹沽城 谢谢老师指导:smile:
  • 51f418a7d0c0:十年老鸟带我上车😬
    老韩大叔:@哼哼哈哈小男孩 不客气,能帮到你很高兴。
    51f418a7d0c0: @风万里 😬好的,非常感谢
    老韩大叔:@哼哼哈哈小男孩 私信免费上车:joy:
  • Dream胡:我保证,初学者看完了也不会写代码。这是高手进阶篇
    老韩大叔:@Dream胡 如果想寻求改变,先需要改变思维方式:smile:
  • 60afbd6ddedf:标题党
  • 孔二二:又是21天,这么激
    老韩大叔:@孔二二 :scream:
    孔二二:@风万里 21天还没办法完成习惯,让其无意识自动播放
    老韩大叔:@孔二二 21天养成一个好习惯,先改变思维方式
  • MisterT:看了你的文章感觉我的安卓开发之路走到头了,始终建立不了编程思维,基础知识老是忘记,不知道从哪写起代码
    老韩大叔:@RamMin 把基础打扎实,不要急,把时间拉长,相信自己。
  • 小l新:标题党
  • d11277e6a8f7:求学,无法入门🤓
    d11277e6a8f7: @风万里 谢谢🌹🌹🌹
    movingtarget:小白学编程还不如直接自己上去找任务刚,写个项目哪里不会查哪里,经历过一些困难的人口中的那些事情都不能叫做难了,因为要装逼。
    老韩大叔:@辰小北 可以私信我,笔者不才,十年编程经验。
  • 闪电迷:评论区很感人,没有喷子,很适合交流学习
    老韩大叔:@大海边的程序猿 一起进步,互相帮助。:smile:
  • 老韩大叔:Python是最好的语言:joy:
    墨昕: @风万里 是滴
  • 破地瓜:21天,真牛
    老韩大叔:@破地瓜 嗯嗯:smile:
    破地瓜:@风万里 靠谱,有时候思维比技术重要
    老韩大叔:@破地瓜 21天养成高级程序员的思维,技能可以慢慢学
  • 吕中宜:看过,当时看的反应就是“如果他是我初中物理老师,我物理绝对次次满分”,不过你这标题过分了啊,看书的面子给你赞个
    老韩大叔:@吕中宜 :pray:
  • b2c89dbb1cc0:想学编程求带😂
    老韩大叔:@Cantu 你的渴望,决定你的出路。
    ac94889d263f: @风万里 什么都不会的小白可以带吗?😂
    老韩大叔:@天赐MIT 私信我吧,可以带。
  • e2f8c0f688eb:@风万里 有电子档么,能否借来一阅:wink:
    老韩大叔:@ones狗尾巴草 :smile:
    e2f8c0f688eb:@风万里 哈哈,已经这样做了:stuck_out_tongue_winking_eye::stuck_out_tongue_winking_eye:
    老韩大叔:@ones狗尾巴草 百度一下,什么都有
  • hackywit:那书太啰嗦了,真要入门,还是按计算机导论,计算机组成原理,计算机网络,数据结构,编译原理,看完这些基本就算入门了。
    老韩大叔:@无事此静坐 前十三章都没问题的
    Web3:@若雨清风 别的专业可以跨专业看懂这些书嘛?如果自学的话
  • 方兴wx:这本书我们老师有推荐!!!!!!好气啊还没怎么看图书馆就提示要还书了
    老韩大叔:@路人王某某 可以先看看电子版:blush:
    方兴wx: @风万里 我准备去买一本了😂,书后面预约的人不少
    老韩大叔:@路人王某某 再借回来吧:smile:
  • 颭夏:我能说有点标题党么
    老韩大叔:@ChocolateBig 英雄所见略同:joy:
    3abebc8a9caf:同感。
    老韩大叔:@颭夏 :joy:
  • 应果:没看太懂,😊望再多讲点。谢谢!😍
    老韩大叔:@应果 最近在准备写详细些
  • 老韩大叔:PHP是最好的语言:joy:
    墨昕: @风万里 这么不坚定,看来大叔是啥都会了~
    老韩大叔:@墨昕 C++是最好的语言:joy:
    墨昕: @风万里 刚刚不还说Python么
  • 陈凯利:同意。思维锻炼最关键
    老韩大叔:@公的Kelly 是的,最近刚刚开始输出:joy:
    陈凯利:@风万里 这文章不是输出吗
    老韩大叔:@公的Kelly 嗯嗯,这就是为什么知道了很多大道理,仍然过不好这一生。只有输入没有输出。:joy:
  • 德罗巴007_592:想学编程,但老白一个,有课程吗,收费也行
    9e48ffba3a80:@小小刘一 你想学什么
    德罗巴007_592:@小小刘一 好
    老韩大叔:@小小刘一 现在网络上有很多公开课的,可以先自学,看看是否感兴趣。

本文标题:21天成为高级程序员,就看这一本

本文链接:https://www.haomeiwen.com/subject/dvhzgttx.html