大多数人,都低估了编程学习的难度,而高估了自己的学习能力和毅力。
当前系列: 其他 修改讲义

经常有童靴要推荐“学编程的书籍”。说实话,飞哥已经很多年没看书了:新技术的学习,一般都是直接看官方文档。然后自己捣鼓捣鼓就OK了。另外呢,个人觉得,零基础入门的同学,学编程看书不是一个好选择(天赋异禀的除外),所以没有什么可以推荐的。


但现在办起了“一起帮·源栈”线下培训基地,觉得还是要有几本书来充充门面。于是去图书馆借了几本书(“源栈”离重庆图书馆这么近,步行可到,不充分利用一下真是太可惜了)。结果运气还挺不错!有好几本非常经典的书籍都借到了。




应童鞋们的要求,再挨个介绍一下吧。(多图预警,^_^)。



如果“经典”就是“经得起时间检验,历久弥新”的话,《人月神话》应该是当之无愧的“经典中的经典”!大家从封面就可以看到,这是“40周年纪念版”,啥意思呢?就是这本书已经出版了40周年了。事实上,《人月神话》成书于1975年。要知道计算机技术日新月异,别说40年,就是4年前的书都可以说“过时”了。

书里面的很多“金句”,现在仍然到处都可以看到,比如:“没有银弹”,“向进度落后的项目增加人手,只会使进度更加落后”,“优秀程序员的效率是差劲程序员的十倍”……

当年我听到这本书的名字的时候,是有点懵逼的,脑海里浮现出来的大概就是“狼人”“月亮”之类的画面,不知道为什么一本讲编程的书会是这种名字?哈哈。其实“人月”是一种计量单位,意思是:开发一个项目,需要多少个人花多少个月。比如一个项目的工作量是60个人月,就是:60个人花1个月的时间,或者12个人花5个月时间,或者1个人花60个月的时间。注意!注意:这本书批判的就是这种当时流行(其实现在也差不多)的概念。能把“人”“月”等同起来,很多时候,加人不能加快项目进度,甚至有可能拖累项目进度!

有点背离常识,但经过40年的实践检验,这就是事实。

总体来说,这是一本不涉及具体技术,纯项目管理的书籍。里面所讲的东西,需要具有一定的项目团队开发经验,才能够逐渐体会。初学者读起来可能有点“空”,但是基于两个原因:1)向经典致敬;2)我们的课程安排中也有“系统架构和项目管理”这一部分,我还是把它放在篇首,推荐给大家。



《重构——改善既有代码的设计》,这本书,如果还不能被称为“经典”,那么也是在“成为经典”的过程中。作者是大神Martin Fowler,他还有另外一本《企业应用架构模式》,一样是经典之作。

经常有同学问,“怎么才能写出搞质量的代码?”答案当然就是看这本书了。好代码是“改”出来的,这个改,更规范的说法就是“重构(refactor)”。我个人认为,哪怕是初学者,也可以甚至应该仔细阅读本书,从一开始就养成良好的编码习惯,比后面来纠正(实际上太多程序员根本就意识不到也不会纠正)要好得多。

读这本书,你就会明白:好代码,是写给人(不是电脑)看的。最好的代码,是简单清晰的,而不是晦涩难懂的。



这本书其实飞哥还没有看过。

但我希望,通过这本书,向同学们传达一个意思,或者期望:有机会的话,还是可以了解一些原理性的、理论性的知识。大家都知道我是“实战派”,但实战派并不是完全的拒绝理论。我们只是提倡“先实践再理论”或者“边实践边理论”。熟悉我的同学都知道,飞哥是通过了软考《软件设计师》的,计算机原理、编译和操作系统,数据结构和算法……这些东西,不光是学过,而且是考试通过的。也正因为有这样的底气,我才敢旗帜鲜明的为“野生程序猿”代言,向科班叫板:你们学过的,我都学过,凭什么就比你们差?!同样的,也有底气批评当下大学计算机教育“重理论轻实践”的做法。

选择这本书,一是因为它“世界著名计算机教材精选”的Title,另外就是因为它的目录,第一章讲的就是“系统和复杂性”。这个高度非常高,很多很多的“理论派”都没有明白这一点,当下软件开发的核心问题就是处理系统中的复杂性问题。软件是一个“系统”,意味着它的内部不是离散的堆砌的,而是有机的彼此牵连的;正是这种“系统性”带来了“复杂性”,我们为什么要“分层”“抽象”“封装”……,都是为了处理“复杂性”的问题。

整本书快速翻看了一下,有些烧脑,希望源栈能有一些“有天赋”的同学,能够看得下去。



哈哈,有没有有点晕?《深入理解网站优化》其实讲的是SEO技术,接近于销售/市场;《如何成为优秀的用户体验设计师》当然讲的是设计UI方面的事情。

“源栈”ASP.NET开发培训,怎么会有这种书?

其实我一直都在讲一件事情,不知道大家懂没懂。不管是你上大学的专业,还是现在培训的技术,都不一定是你最后的职业方向。最理想的人生,是做自己喜欢做的事,当然做这件事能养活自己。但我究竟最喜欢什么最适合什么,只有我们尝试了一下,甚至“好几下”之后才会明白。比如飞哥,大学专业是国贸,毕业后做律师、创业做家装,最后才做程序员。是不是走了很多弯路?是的。但后不后悔?不后悔,我觉得我比很多人强。比那些一直不知道自己喜欢做什么,或者一直做着自己不喜欢做的事情的人强。

找到自己的方向或者定位非常重要。但怎么才能找到?借用软件工程里的一句话:对未来开放。其实不用过早的把自己限定在一个方向,给自己给未来无限可能性。比如说你本来是来源栈学编程,但因为两本书,你发现了自己在UI在SEO方面的天赋,你不可救药的爱上了这玩意,然后改变了你的一生——我觉得这种结果比你学会了ASP.NET编程更好,好一百倍!最幸福的事,就是找到了自己的真爱,不是吗?

当然,SEO和UI和ASP.NET技术本身是相关的。ASP.NET就是建站嘛,建一个什么样的网站,需要UI方面的知识;网站建成之后,还需要推广让大家知道,这就是SEO的事情了……



终于等到了ASP.NET相关的书籍了,O(∩_∩)O哈哈~

大家可能关心的MVC和.NET core都在这里,当然还有C#。这些书籍都是参考,飞哥的课程安排都是自己设计的,和这些书没关系,当然考验借鉴。

注意的是:

  • 《C#敏捷开发实践》,敏捷开发,在过去几年,七八年前吧,曾经比较流行,很受追捧。当目前看来,问题仍然很多,可行性仍然很低。我记得是看到过一篇新闻报道,敏捷某一位的倡导者承认了这一点的。但是,这不妨碍我们试着去理解“敏捷”的思想和意图,以及一些实践方法。
  • 《.NET设计规范》,这可以算是一本在.NET领域的经典之作了。既有原理,也有实践,很多公司的编码规范都是直接借用本书,很值得一读。


(未完待续)

学习笔记
源栈学历
键盘敲烂,月薪过万作业不做,等于没学

作业

觉得很 ,不要忘记分享哟!

任何问题,都可以直接加 QQ群:273534701

在当前系列 其他 中继续学习:

多快好省!前端后端,线上线下,名师精讲

  • 先学习,后付费;
  • 不满意,不要钱。
  • 编程培训班,我就选源栈

更多了解 加:

QQ群:273534701

答疑解惑,远程debug……

B站 源栈-小九 的直播间

写代码要保持微笑 (๑•̀ㅂ•́)و✧

公众号:源栈一起帮

二维码