《程序员的呐喊》读书笔记

简介:

   

     在JD的购书通道里,看到了这样的一个书名,果断入手,看了以后果然非同凡响。
     通常程序员在工作开始的几年内,很多习惯就已经定型,甚至影响一辈子了。这个规律不仅适用于程序员,也适应于其他各行各业。所以,前几年好习惯的培养,或者是学校的培养,那是相当重要的。
     人总是喜欢呆在自己的舒适区,做觉得没有难度的事情。问题是,没有难度和挑战,哪来的成长和进步?很多二流程序员,会陷入自己设计的二流架构中,然后一辈子就圈在这样的陷阱中了。多跳出来看一看,多做一点让自己觉得困难的事情。
     很多公司的代码库大的让人吃惊,几百万,几千万甚至上亿行。他们为什么失去了创新和快速变化的能力?因为代码太多了。代码越多, 维护成本就成倍增长,最后甚至没人能搞定它们。设计模式就像盒子, 它虽然能把代码分门别类整理的看似很规整,可是你要知道设计模式也是代码,也一定程度上恶化了问题。
     这让我想起了我设计的框架,我花了两三年时间, 设计了一套C#的代码库,并精心维护它们。但大量的时间花在了维护框架本身,而不是解决问题上。虽然框架设计的还算合理,可是我明显感觉到它就像拖在我身后的麻袋,虽然装了并不好吃的口粮,但却让我越走越慢。仔细看每一个类,好像都有作用,但自己再想想,真的需要那么多吗?它们是财富,也是包袱,越通用的方案,解决特定问题的能力就越弱。如果我真要下定决心重写一遍,代码量会减少到现在的五分之一!
     为什么会有那么多的代码?设计人员难推其责,不断的重复和过度设计,沟通不畅,反复的堆叠,这些自不必说。程序语言本身也有问题。比如Java,什么类都要加上Manager, Builder, Factory...又丑又重,强类型语言难以对复杂的变化做拓展,于是再被设计模式添油加醋,越写越复杂。
     于是,弱类型语言就是个好选择吗?弱类型语言的动态性要强很多,能动态增加方法和属性,但这些自由也意味着一定的代价,比如不安全和一系列动态错误。这仿佛是现实世界的保守派和自由派一样,两派的争论无休无止。保守派意味着详细的文档和规范,严格的建模和测试,SQL,稳定的代码风格,拒绝新特性,各司其职和责任划分。自由派意味着弱类型,脚本风格,NoSQL,先跑起来再说,乐于接受事物,面对变化。很难说哪一派更好,对于银行业这样的系统而言,显然是保守派的天下,而如今世界纷繁多变,抢占市场,快速迭代,到底哪一种思维更好,那就是各位看官们的判断了。总之不论如何,请好好学习一门弱类型的动态语言,比如Ruby或者Python!
     弱类型有缺点,比如编译器的自动支持不够好,但这些问题在未来总归是能解决的,因为有懂编译器的大牛搞定,说起编译器,基本上懂或者写过编译器的人,编程水平超出别人一大截(这不是废话吗)。于是,在简历上写“搞过编译器”,那简直是夜空中闪亮的星!如果我是面试官,一定会首先考虑!你会想这样对不懂编译器的大牛们太不公平了吧,可惜,很多事情就是如此的正相关。算法搞得好的人,他的编程,知识和技巧肯定不会差。编译原理的知识,能够让你解决大量很酷的问题,能重新审视写过的代码和系统。什么能让你彻底精通一门语言,那就是设计它的编译器!
     软件需要哲学家,因为哲学能帮你更好的理解和抽象问题。而数学也非常重要,学生时代的数学课程有问题,它教了太多对程序员太不实用的东西。如果说普通数学和计算机最大的区别,那就是前者是连续的,而后者是离散的。如果你有机会把离散数学,概率论,线性代数都再学一遍,那么编程水平就会又有一个质的飞越,做到可以随手写一个机器学习的算法。
     所以,趁现在还处于黄金年龄,赶紧静下心来学习吧,有无数值得看的书,要学的数学和算法,要研究的编译器(也许我真能学点皮毛呢)。避免眼高手低,去把它写出来。不要问为什么,世界顶级公司的平台,待遇和发展值得你这样去努力!也许被Google这样的公司拒绝并不好受,但要知道很多大神也被拒了两三次之多,无非就是再等半年么,相信我,时间过得很快的!

  坚持做一个傻瓜!

相关文章
|
小程序 程序员 Python
程序员是怎样炼成的
程序员是怎样炼成的
47 1
|
程序员
程序员 - 箴言集
程序员 - 箴言集
100 0
|
设计模式 IDE Java
奉劝那些想把编程学好的学弟学妹们!呕心沥血,袒露心声,掏心掏肺
奉劝那些想把编程学好的学弟学妹们!呕心沥血,袒露心声,掏心掏肺
143 0
|
程序员
1024 致敬程序员
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kese7952/article/details/83351462 白茶清欢无别...
916 0
|
Java 程序员
一个“码农”自述的血泪史:当了35年程序员,我最大的遗憾就是没抓住机遇转行
注:这是一个“一子错,满盘皆落索”的故事。兢兢业业干了35年的程序员,最后却认识到,程序员的力量太过微小。无论你写程序有多厉害,你都很难有权力真正改变一些失败的产品、失败的项目。
1524 0
《软技能》读书笔记(下)
外行静坐等待灵感,其他人则唤起激情努力工作 --- 斯蒂芬.金《写作这回事:创作生涯回忆录》 第四章 生产力 第三十六章 一切始于专注 软技能第四篇:生产力第36章.
1475 0
|
程序员
程序员大牛们的经典语录
原文 程序员大牛们的经典语录 1、很多问题不见得会出在你身上,但你亦需要想法解决问题,否则就会变成你的问题;   2、懂得但策略的说不(不会这个准备累死吧,程序员);     3、我考进事业单位,呵呵,没有传说中的那么好环境。
1298 0
|
程序员
《软技能》读书笔记(上)
image 前言 这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。
1595 0
下一篇
无影云桌面