[编程开发] 你的编程能力从什么时候开始突飞猛进?

[复制链接]
龙一品 发表于 2023-11-5 04:36:52|来自:北京 | 显示全部楼层 |阅读模式
你的编程能力从什么时候开始突飞猛进?
全部回复5 显示全部楼层
十月¢潴潴 发表于 2023-11-5 04:36:59|来自:北京 | 显示全部楼层
先说结论:
1、一定要接触最好的编程体系,好的体系可以达到事半功倍的效果,否则即便智商再高,也有可能要走很长的弯路;
2、切勿有畏难心理,在学习的过程中会遇到数次平台期,期间有可能会怀疑人生,需要熬过去;
3、编程水平的提升需要经过大量的练习,不存在不劳而获;
4、要和优秀的人一起学,遇到不会的问题,要放下面子,敢于提问;
5、遇到不会的知识点,需要硬啃,今天不解决的问题,明天不会自己解决;
6、数学对于编程非常重要,请学好数学;
7、教别人会让你自己水平变高;
我是从初一开始学编程的,一开始学编程只是为了多玩会游戏。2010年在三线城市的普通初中,编程这个事情压根就没有普及,我也不知道学这个东西有什么用,那时就是学着玩呗。因为也没有人教,我就买了一本清华大学出版社出的Pascal的教材在那边瞎折腾。那时候网上也没什么资料,所以我学了三年啥也没整明白,像搜索、最短路这些算法我连名字都没听过,更不用说会写了。
进入了绍兴一中,我突然发现,原来编程不是我以前认为的那样子的,是另一个样子的。因为周围有一些很牛逼的人,就是那些能拿国内甚至国际奥赛金牌的人,我才意识到差距不是一般的大,他们五分钟十分钟能解决的问题,我自己搞了两三天都不知道在干什么,就只能拼命地学,每天压力也很大,因为周围的人都比我水平高,他们都是从好的初中过来的而我的初中水平差,我每天就担心自己会不会垫底,所以心态很不好,人就很焦虑。
我那时从初三暑假开始在绍兴一中学,一个暑假就学会了很多东西,因为有学长带着,就把动态规划、图论基本上都学会了。后来想一想好像我也愿意走这条算法竞赛的路,就继续学了。
我人生有三次编程水平大飞跃的时期,我的高中时期是第一次。但这次背负了太大的压力,因为世界第一次向我敞开了大门,我之前根本就不敢去想清华北大之类的学校,因为我的人生目标一直都只是考上一个一本学校,然后回老家做一个公务员。突然间,看到了不一样的希望,因为太想要,所以最后也得不到。每天就是失眠,两三点要嗑安眠药才能睡着。大冬天下着雪,我穿一件衬衫也会流汗,但我就在那边拼命地学,因为我相信努力还是能出成绩的。那时候确实也学到了很多东西,每天早上七点就到机房,晚上怎么也得到十点十一点睡觉,有比赛的话就要到凌晨两三点,第二天又是七点去机房,每天重复这样的生活,大概过了一年多的时间。最后高中我水平也比较高,小比赛都很牛逼,但由于心态的原因,一到大比赛就会全线崩盘,差点就没大学上了,也受到了很多的质疑,质疑我平时在作弊,因为我平时的水平和比赛的水平差距实在太大了。我受了很大的委屈,我从小就很看不起作弊这件事情。
最后我运气比较好,进了上海交大,进交大的时候,我心里其实是有一股气的。我觉得我要证明我自己,因为高中相对来说还是有点失败的。那我得告诉以前那些小瞧我的人,他们是错的。
很庆幸我进了上海交通大学,无论是从能力上还是思想上都极大地改变了我的一生。
大学的时候,比赛是三个人一队,有两个队友,每天都在一起学习一起训练,这样的道路就不会觉得太孤单,以前一个人的时候会害怕,总会患得患失,现在队友就是坚强的后盾,你就不会再恐惧,因为你们三个人是一个整体。
那时候我也学了很多的数学,因为高中的学习其实很多是建立在猜上的,很多都是靠直觉,直觉就是依靠多次训练之后锻炼出来的,你觉得它是对的,它也确实是对的,但就是不知道为什么。大学学了线性代数、数分等等之后,第一次知道这些为什么是对的,而不是仅仅只会用它们。这件事情让我养成了一个很好的习惯,就是写代码之前要从数学上证明自己的想法,这会让你在写代码、打比赛的时候犯更少的错误。于是我实现了第二次飞跃。
那时候,我和队友们经常一起睡机房,也经常半夜到处翻墙,因为管机房的大爷要赶我们,我们每天要和他打游击。但那时候的生活是快乐的,为什么呢?因为我心中有一个目标,我就是要去战胜世界上最强大的对手,去追求那种一览众山小的感觉,所以你不会觉得那是一种苦,相反你会觉得非常有乐趣。最后的结果说好也不好,因为各种各样的原因,最后到一半我自己就把这个事情停掉了,就去做科研了。
在这个过程中,我花了五年的时间,也慢慢地自己治好了自己内心的不安和焦虑,重新获得了小时候那种平静。最后,我也发现,我压根就不需要向世界证明什么,压根就不需要去打败任何人,我唯一想做的就是,去探索更多的东西,去探索自己的极限到底在哪里,我的人生没有那么多的观众,做好我自己就行了。
又过了几年,当我开始教别人写程序的时候,我的编程水平又实现了一次飞跃。在这个过程当中,我神奇地发现,我对一些基础的理解其实并没有那么深刻,所以就经常讲了一半会讲不出个所以然来,于是就迫使我重新回去思考,突然就发现,自己又能做一些以前做不到的事情,又学会了一些以前好几年都学不会的算法。那就是说,我以前学不会是因为自己对一些事情的基础理解是错误的。所以大家在学习的时候,也要把自己的想法和理解告诉别人,这对你来说也是一个检验和提升的机会。
还有,在学习编程的过程中,我自己遇到了非常非常多的瓶颈期,就是那种半年一年啥都没提高的状态,每天练练练就是过不了那道坎。最后其实发现,其实熬熬就过去了,编程水平的提升好像就是这样的状态,你缓很久,然后突然上一个台阶,然后又缓很久,再提升,如此循环。所以现在大家学不会也不要着急,再熬一熬,也许过一段时间就上去了。
回首往事的时候我觉得自己是幸运的,为什么呢?
第一,我确实遇到了一批世界上最好的人,无论是高中还是大学,大家因为共同的爱好聚在一起,每天不分日夜地去努力,在这个过程中互帮互助;
第二,我接触到了很好的编程体系,因为无论是高中还是大学,都拥有全世界最好的编程训练体系。我为什么对这个事情有很深刻的理解呢,因为我初中三年真的什么都没学会,初中三年做的事,高中一个礼拜就全都能做到了,如果我不进绍兴一中或上海交通大学,我可能一辈子都不会知道编程到底是什么、算法到底是什么;
第三,也是感谢命运给了我那么多的失败,让我非常早地就理解了,成功不是我追求的东西,我追求的是变成一个更好的自己;
第四,在过程中我也抵挡住了很多的诱惑,因为我的初中老师和我讲,我的天赋是低于平均水平的,但就是熬熬熬,好像把比我聪明的人都熬走了,因为他们都去做别的事情了,就我继续在干这个,好像熬一熬我也熬成了这个圈子里水平不那么差的人。所以我相信,很多事情是因为坚持,你才能够与众不同。天赋只能帮助你一时,但只有热爱和坚持才能帮助你一世;
第五,那时候我经常会死磕,经常下一个狠心,我不吃饭不睡觉一定要做完一个事情。如果没有这一次次的死磕,我想我也不会是今天这样。
后来,无论是科研也好工作也罢,我真的看到了很多很多东西,每天都抱着一种好奇心,想要对世界多了解一点,但如果不是因为遇到了编程,遇到了这么多非常优秀的人,遇到了这么多优秀的老师,我这样天赋的人是压根不可能走到今天的。所以,现在我们想把我们的好东西分享给更多的人,我们真的想要把自己了解到的东西开放出来让大家少走一些弯路。因为我们知道走弯路是什么样的感觉,我们知道那种苦涩。那么既然我们有能力,我们就应该帮助更多的人。我们后面做的很多事情都是基于这个逻辑。
zenger 发表于 2023-11-5 04:37:39|来自:北京 | 显示全部楼层
update:
评论区很多学弟学妹要求整理一个学习路线,刚写了篇文章:
从小白到后端工程师的自学之路 - MutexLock的文章 - 知乎 https://zhuanlan.zhihu.com/p/130364187
---------------
在啃掉一本本计算机经典书籍和写下大量代码以后。
疫情原因回不去学校,作为一个马上毕业,即将入职腾讯的大四生,分享一下自己的学习历程吧。
本人在大学之前从未接触过编程,最开始的编程学习还是在高考完后,从书店买了本C Primer Plus,然后暑假开始啃,前前后后也就看了几十页。
大一上的时候,来到了华中师范大学,还没有转专业到计算机,一直在自学C语言和看一些计算机入门书籍(编码、计算机科学概论)。当时也很迷茫,不知道以后道路如何,所以也学了一些杂七杂八的东西(前端 python啥的),所幸的是,当时坚持把C Primer Plus结结实实地精读了一遍,而且几乎练习题都做了,算是比较好的开端。
大一下,转专业到计算机了,开始自学数据结构,算法和C++,部分看完了 数据结构与算法分析,并且把书上的数据结构实现了一遍,记得当时五月份给自己的flag是看完C++ Primer,然后每天上课看,晚饭吃完后也跑去七号楼刷书,最后囫囵吞枣似的看完了大部分。
大一暑假,txr大佬 @杏仁糖 给我说他面试通过了华科的联创团队Unique Studio,而且给我说他们团队都特别厉害,有些人在军训的时候就把C++ Primer给蹲着看完了,当时十分钦佩,幻想也能够进入贵团队。于是打算在大二上的时候,去报名他们的秋招。所以,那个暑假在学校自学,呆了五十多天。最初,拿起一本APUE,看了一章后感觉看不懂又放下了。然后,又拿起一本红色封面的算法第四版,这本书看完了,并且用C++把上面的算法都实现了一遍。另外,听知乎大佬说CSAPP是必看的神书,当时也懵懵懂懂地看了前面三章,做了lab。为了学习linux,还看了一本叫linux命令行大全的书。武汉的夏天很热,只能寂寞待在宿舍的我,打开了LeetCode的世界,写了一百多道题。
大二上,十月,忐忑迎来了联创的面试,前面两轮都过了,直到其特色的“熬夜测试”环节,因为实力不足+精力不足,测试败北,没有通过。清晨七点,在回学校的公交车上思考自己不足,总结是知识体系仍然不够完全,而且深度也不够。后来这个学期有点“误入歧途”的意思,入了Machine Learning的坑,记得当时花了好几个月刷完西瓜书和吴恩达机器学习课程的讲义(真佩服当时的毅力,都是英文和公式推导),后来想了想,ML/DL这个东西有点玄学,于是毅然决定成为一名做工程的程序员。总的来说,虽然这个学期的时间都投入到ML的学习中,没有学习工程方面的东西,只有用python写了一点好玩的爬虫,但是给了我以后坚定走工程方向的决心吧。
大二下,这个学期是打下计算机知识基础的关键时期。从知乎找了一系列书单,看完了CSAPP(做了lab,为了bomb lab还通宵了,强迫症想让自己把炸弹都拆了)、半本算法导论、effective C++、计算机网络系统方法(前三章)、部分TCP/IP详解等,做了一些项目,比如正则引擎(这个是参考了轮子哥的教程)等等,尝试写JSON库(未遂)。其实,因为学校只是一个普通211,找到好工作的学长学姐先例很少,一直是没有信心自己能去大厂,直到当时了解到myk @孟永康 学长在春招收割了一系列offer后,才有了些许信心,相信自己如果能够像他那样努力,那么也能够找到好工作(感谢myk学长那时的鼓励和指导)。所以,定下了一年把自己水平提升到能够在大三下春招的时候拿下大厂offer的目标。
大二暑假和大三上也一直为这个目标奋斗,补上了APUE、部分UNP、深度探索C++对象模型、STL源码剖析、操作系统概念、操作系统真象还原、Linux多线程服务端编程、部分C++ template、部分C++ Concurrency in Action等书籍。然后,也一直没有放弃刷题,LeetCode写到了三百多道。同时也做了一些项目,跟着操作系统真象还原写的操作系统、简单的协程库,阅读了一些优秀的开源项目,SGI STL、muduo、libgo、libco等。中途还对haskell产生过兴趣,打印了一本Learn Yourself Haskell For Great Good,看完后感觉坑太深,还是专注找工作吧,haskell对我一直都有很强的吸引力,但是这种也只能作为爱好吧。另外,编译器也是有这种魔力,看了部分编译原理(龙书)、部分现代编译原理(虎书)和部分Engineering a Compiler,多次尝试写自己的编译器,多次未遂(不过现在有空了,在补上之前的烂尾项目)。当年的笔记哈哈:



部分学习笔记

时间到了12月份,9号楼某个自习室内,txr大佬一直鼓励我去投简历找实习,本来我一直畏畏缩缩,对自己不太有信心,被鼓励后想着投就投吧。当时投了字节跳动和momenta的实习,面试都比较顺利,于是在大三上就在字节跳动开始了愉快的实习,比自己的计划早了大半年。当时为了准备面试,看了好多牛客网的面经,查漏补缺式地补齐自己的知识盲区。
大三下,基本都是在实习,学习了很多工程实践上的东西,接触了go的技术栈,并且对devops和软件工程方面有了认知,包括代码管理、发布流程、微服务啥的。然后实习的时候骑驴找马,找到了腾讯的暑期实习。因为这个时候没有了找工作的压力,所以开始学一些自己感兴趣的东西,包括Rust(至今水平还是不太行)、分布式系统(DDIA、MIT6.824等),零零散散学了点东西。
大三暑假,腾讯实习了两个月,开始学习kubernetes、各种中间件等实际业务用到的东西,这个时候就感觉拥有到扎实的计算机基础是最重要的东西。
最后,顺利拿到了腾讯转正和字节跳动的秋招offer,两家都给的比较高,选择了工作体验更喜欢的腾讯哈哈。
总的来说,学习计算机是需要积累的,花一两年时间啃下那些厚厚的经典书籍后,才能构建自己的知识体系,然后阅读大量优秀源码,做一些有趣的项目,编程能力就能突飞猛进啦。
现在回头来看,大学时光真是如此宝贵,这是人生中为数不多可以静心学习的一段时间,可以不用考虑任何其他事情,每天学习十多个小时。
部分藏书:















mam520 发表于 2023-11-5 04:38:31|来自:北京 | 显示全部楼层
回顾一下,我的技术能力(不仅仅是编程,而是解决问题的能力)的进步大约有几个重要的节点:
1. 刚入行时的入门练习题
这个是当年狼厂网页搜索部门的传统,不知道现在还有没有,入职第一个任务是完成两道练习题。一题是在Linux上用纯C(不许用C++,没有stl可用)完成一个多线程的网页抓取器,另一题是同样的环境语言完成2G大小的query(搜索查询词)的top100提取,有时间要求。
入厂之前我在Linux上没有写过代码。
两天时间从Linux基本命令的熟悉,vim gcc gdb的使用学习,从malloc和free开始搞内存管理,从0开始码hashtable(还得自己写hash函数),从socket开始实现http client和各种协议码解析,使用pthread多线程和信号量互斥同步,基本把操作系统计算机网络复习了一遍。
这两天把我四年本科三年研究生没搞扎实的工程基础全部补上了。
结论:有目的的练习,尤其是一个完整的应用问题的解决,是学习的不二法门。
2. 接手一个完整的模块(子系统)
搞完入门练习,leader过来跟我说:小胡,现在有一个重要的模块交给你,赶紧熟悉一下,然后完成如下功能升级。
这个模块是前厂存储网页的核心模块,在当年内存4g的奔腾主机上单机存储几千万网页,几台机器存下了当时整个中文互联网。支持高性能的随机存取和顺序读,可以说把机器性能压榨到了极致。
3w行,纯C。
啃了几天终于搞明白了结构,(多年以后我还得感谢source insight),同时也对写这个模块的大牛佩服的五体投地,为了压榨内存把每一个bit都物尽其用,各子模块之间的分工又是那么的优雅。
然后是上手改,看懂了之后功能升级很简单,只改了十几行代码,但上线的时候真是手发抖!
后来才知道这个模块好几个前任都没成功接下来就被fire了....
后来又经历了若干次升级,解决各种诡异bug(搞过高并发存储系统的应该知道坑有多深),编码和解决问题的能力突飞猛进。
结论: 学习系统设计的最佳途径是看一个优秀设计的源码,检验成果的方式是改造它应用于你的实际场景。
3. 接手一个完整的系统
搞定存储模块之后,我的下一个任务是升级喝扩展一个完整的抓取系统。
和入门练习做的抓取器不同,这个完整的抓取系统(又称spider)是工业级的,需要每天完成千万级的抓取量,还需要考虑并发压力控制,网页更新调度,垃圾网页处理,去重等等诸多现实的工程问题。
大大小小十来个模块,十来万行代码,大部分是C,还有接近一万行的bash脚本(用bash实现分布式的网页去重处理你信?)
这时会发现很多模块内部都有不少实现不尽如人意的地方,但是由于借口定义的好,模块直接容错性强,整个系统还是work的。
这促使我思考系统级的架构,最需要关注的重点是什么,良好的结构远胜于细节的雕琢。
大约小半年后,我对这个系统基本做到出任何问题能立刻反映到是那个模块出的问题,对问题的分析定位能力又上了一个台阶。
结论: 理解了接口定义和系统结构重于实现细节,就迈出了架构师的第一步
4. 设计一个完整的子系统
此时大概工作快两年了,原来的抓取系统有一个很大的问题,就是积累的网页数太多,更新资源分配不过来,导致系统中大量网页在互联网上已经404但仍然会进到线上被检索出来。我们称之为死链接问题
通过对死链的规律分析,我发现互联网上大部分死链存在站点或目录级聚集的现象,这个其实很好理解,一个网站无力维护了,自然就全部挂掉,目录级很可能是网站改版了,或者一个子频道关闭了。利用这个规律,我们可以大幅度降低死链检测的资源耗费。
在这个认识的基础上,我设计了一个独立的死链检测系统。上线效果很不错,检查死链的流量开销降低到原来10%,网页库中死链还下降了。
结论: 架构师首选要解决的是待解决问题的精确描述,和对问题域的分布规律的挖掘,然后才是结构设计。
5. 设计一个新的系统
工作第四,五年间,hadoop在业界逐渐流行起来,基于Google三件套的设计,当年的hadoop最上层的table还很不完善,但是mapreduce和hdfs已经很可以用了。  如何利用分布式基础框架改造系统,让系统更健壮(以及永更廉价的硬件給公司省钱),成了当时的一个重要问题。
整个抓取系统和建库系统的分布式改造,相当于重新设计一个新的大系统。需要考虑方方面面,如何逐步升级兼容原有系统?如何保证功能的完整性?原有设计中有一些不合理的地方,如何利用这次迁移同步改造?
主导完这些工作后,系统架构方面再也没有遇到搞不定的问题。
结论:  好的架构师需要在合适的时机解决重要的问题,业务发展才能给你这样的机会。
上面5个节点,大致是T3 T4 T5 T6 T8的水平。
新冠在家隔离,半夜睡不着码字这么多。看完给个赞呗。
爱笑的眼睛 发表于 2023-11-5 04:38:59|来自:北京 | 显示全部楼层
大概……是为了追女生而写了一个游戏的时候吧。
大概七年前,我为了追一个女生,以她和我为主角写了一个战棋类RPG游戏(其实还做了很多别的事情hhhhh),灵感来源于小时候玩的世嘉版《水浒传》。故事的背景是我大学,游戏名字叫做《凌工路2号》。
我一直都觉得,在大学,生产力的来源主要有两件事情:

  • deadline;
  • 荷尔蒙。
这个游戏有对话系统:




有战斗系统:




有职业/升级/转职/职业相克系统:



职业/转职系统



职业相克系数表

有角色属性、物品、存档系统:


有剧情:


https://www.zhihu.com/video/1199972733460791296


https://www.zhihu.com/video/1199969996434366464



地图背景是我的学校

有作战系统和敌人的AI:




https://www.zhihu.com/video/1199816448673271808
故事的背景是我的大学,这是中心食堂和足球场:





看到这个毛主席像有人应该会觉得很熟悉吧

我甚至还在综合楼的自动售货机上做了一个物品买卖系统:


https://www.zhihu.com/video/1199817616090726400
这个游戏大概不到一万行Qt代码,没有用任何的框架和引擎,现在看来相当原始,所有的移动和动画效果都是用Qt的定时器+一堆if/else判断徒手撸出来的(当时不知道更好的办法,就这么一根筋地写了几个月)。我自己的感觉是,写代码超过5000行的时候,自己的能力会有一个飞跃——以前从没有注意过的东西开始觉得费解,从而逼迫自己思考和学习,然后进步。在我参加校招的时候,这个游戏的代码量占我当时的代码量的差不多一半……现在回想起来,我校招能进阿里,这个游戏带来的能力提升功不可没。
这个游戏没有最终完成,也从未发布,静静地在我的硬盘里躺了七年。
四年前我跟游戏设定的女主角结婚了。
这周二我无意中看到它,拿到现在的机器上重新编译通过。在吃晚饭的时候,我问她:
“你知道我当时给你写了个游戏么?“
她说:“不知道啊”。
<hr/>代码在这里(我知道它很烂),遵守WhatTheFuckPublicLicense,随便修改:
https://github.com/blindpirate/no2-linggong-road<hr/>最后放几个全地图的场景,如果你和我是一个学校的,会觉得相当亲切。不过,大部分的地图都不是我做的,我自己做了中心食堂、综合楼、研教楼、校医院、一馆五个场景的室内地图。


https://www.zhihu.com/video/1200365109958516736


https://www.zhihu.com/video/1200365234147590144


https://www.zhihu.com/video/1200365395993206784
<hr/>评论区炸出了很多同道中人:
@杜凯 说:
我去,天涯何处无知己啊,我做过一个类似的玩意 http://www.dklogs.net/xiaoming
@ Authur  说(at找不到这位老哥,刚刚at错一次):
是rpg游戏。
还记得98年和曾经大学同学一起在dos下用turbo pascal写过类似的rpg游戏 红楼梦,扒的剑侠情缘的图片库(分析后发现都是去掉调色板头部的bmp图片),还自己做了地图编辑器可以编辑地图,背景音乐在dos单任务系统下是用中断来持续播放,640k内存不够用,还用到了高位内存和扩展内存,由于dos下声卡驱动问题,代码只能在寝室机器上运行,曾经学校软件大赛前把寝室电脑主机搬到网吧通宵撸代码调试,把门卫大爷还有网吧老板惊得外焦里嫩——没见过来网吧还自带主机的。后来幸不辱使命,参加大赛得了二等奖(因为学校评委说一等奖不能是游戏…)
往事历历在目,恍如昨日,但转瞬间已经二十载过去了,感叹…
如果赞能破万的话我就把可以运行的二进制版本release到GitHub上……
zzfsmsk 发表于 2023-11-5 04:39:53|来自:北京 | 显示全部楼层
百度多了
你就明白:它也许有用,但它封印了你精进计算机英语的机会。
Google多了
你就明白:各地大佬们的文章很Nice,但它们仅是你技术知识体系的精华补充。
开始读书了
你就明白:你以往东拼西凑几十篇烂文才明白的事,书上那几页纸都写着,而且详细的很。
接触到国内外大社的经典书后
你就明白:那些烂大街的21天宝典,7周速成,都是些什么玩意,误人子弟!
图灵牛逼,动物牛逼,Manning牛逼。
好书读多了
你就明白:技术是一环扣一环的,有牢固的技术知识体系,学啥都事半功倍。
多做业务
你就明白:所学的技术该用在哪。
多做用户量大的业务
你就明白:光会用技术,和用好技术是两码子事。
多找第三方开源
你就明白:原来工作摸鱼不是梦。
太随便用第三方
你就明白:某天需求一变,它兼顾不到,可以把你往死里坑,坑到你得去看源码。
第一次看完源码
你就明白:开始还是很讨厌的,等全盘搞明白了,发现“咦~有点意思”。
源码看多了
你就明白:自己的查克拉莫名的增多了。而且吐槽文档不全的习惯也渐渐少了,一个不服就跑去观摩别人的源码,顺便偷个师。
再往后,或许你的技术确实突飞猛进了,然而你却只会觉得编程本来就是这个样子的。
因为,但凡通过点滴付出,累积出来的结果,都是平淡无声的。
<hr/>突然获得这么多支持,十分感谢大家。
知乎就是师兄的心得记事本,喜欢的可以关注哦~
关于书籍的推荐,师兄挑几本常看常新的经典

一、新手进阶,可看
《重构 改善既有代码的设计》
本书的优点:篇幅短小,示例经典,讲解细致。最重要的是新手读起来不费力,可以作为长久阅读的床头书,开卷必有益。
本书的作用:帮助你学会如何写出有层次的好代码,让你在工作中赢在细节,更容易获得有实力的前辈的认可,职业发展更轻松。
二、寻求职业长久发展,可看
《人月神话》
本书的优点:偏重于讲述编程哲学,几乎无代码阅读成本,笔者像一位睿智的导师,以亦师亦友的口吻,有条有理地为你分析各种项目问题,分享各种工程与人的权衡,还有可靠的处理准则,有志于在编程事业上长久发展的朋友推荐阅读,可以少走很多弯路。
本书的作用:主要是打开你规划工程的格局,次要是积累行业谈资,一石二鸟

《UNIX环境高级编程》
本书的优点:就是全书都是优点,UNIX作为经典中的经典,它的设计理念,基础功能的实现方案,都是值得熟透于心中的,无论往后有多少新系统,最底层的东西都是大同小异。书的内容量大,适合长年小口啃。
本书的作用:打牢基本功,基本功是你技术高度的基石,永远要记住这一点。
此外,不要局限于自己是什么IT岗,只要能帮助你积累优秀的技术思维,好资料再多也不嫌多,职业路走宽了,在IT行业,你什么时候都能走得雄赳赳气昂昂。
更多优秀技术书籍,请看师兄这篇新文章就够了
适合程序员入门与进阶,阅读目的都有说明
→ (持续更新)
<a href="http://www.zhihu.com/question/421913237/answer/2976883265" data-draft-node="block" data-draft-type="link-card" data-image="http://pic4.zhimg.com/v2-76bae9fa183cfdc867836dedd0a7141f_180x120.jpg" data-image-width="905" data-image-height="476" class="internal">在你自学计算机的路上,哪些书籍对你的帮助最大?相关 IT 高赞干货:
师兄总结的一波行业经验(精华版)

作为 IT 行业的过来人,你有什么话想对后辈说的?师兄多年来对编程的小感悟

普通的程序员和大神级的程序员有什么区别?→
怎么在编程中找到快乐,并得到持久的动力?师兄谈自学编程的小心得
(带过 10 来位新人入行的经验)

自学简单编程可行吗?→
自学编程的人,都是怎么找到第一份软件开发工作的?师兄关于职场的经验分享

面试想拿 10K,HR 说你只值 7K,该怎样回答或者反驳?人生在世有哪些观念是越早建立越好的?以下为冷门,但我自己很喜欢的知识点。
师兄讲编程的难,有趣又真实得心痛

编程到底难在哪里?师兄实践了多年的自律方法论

如何养成习惯性自律?师兄关于优秀书籍的分享

不同领域的圣经级书籍有哪些?最后,
还是万分感谢大家的支持^_^。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则