程序员

新手程序员成长之路的五本必读书籍(附资源下载)

孤者浪人 提交于 2019-12-01 00:02:30
全文共 3351 字,预计学习时长 7 分钟 图片来自Pixabay,IvanPais 书籍可以清晰而有条理地陈诉观点,纸张上的笔墨也会给人一种不慌不忙的感觉。不过,科技类书籍存在一些严重的问题:它们几乎很快就过时了。由于缺乏交互性,此类书籍无法实时展示其概念(或让读者玩味这些概念)。它们的带宽相对较低——例如,需要将长代码示例分解为很小的块,而阅读这些书便成了件苦差事。 部分科技书籍多年来不断应对挑战,保持实用性。这些书籍不再传授最新编程框架的技术细节,而是阐明软件开发理念,传授最佳编程技术与设计技术,向你介绍软件行业的工作感受,告诉你成为一名程序员意味着什么。本文将列举五本相关书籍供你学习参考。 公众号后台回复“20191005”即可获得电子版图书下载链接。 1. 《程序员修炼之道》(The Pragmatic Programmer) 第一版发行后,一本与编程有关的书籍可以在20年后继续保持实用性吗?可以,如果这本书具有代码编写技术的永恒智慧的话。 《程序员修炼之道》能启发程序员,更为深入地思考如何应对挑战、与其他人合作以及成为效率更高的程序员。 书中解释了如何对抗软件衰减——使每个大项目中的代码逐渐陷入混乱的强大力量。该书简单介绍了单元测试和重构,并对调试(不要惊慌!)做出合理建议,可有效解决问题,而不会伤害任何程序员自尊。《程序员修炼之道》可帮助你学习一些很酷的程序员术语

初级程序员进阶

≯℡__Kan透↙ 提交于 2019-11-30 22:40:50
转自:某司的新员工建议 编程&技术实践 入门 1. 《代码整洁之道(Clean Code)》 2. 《敏捷软件开发:原则、模式与实践》 3. 《高效程序员的45个习惯》 进阶 4. 《重构》 5. 《解析极限编程:拥抱变化》 6. 《Python语言入门》 高级 7. 《程序员的自我修养:链接,装载与库》 8. 《计算机程序的构造和解释》 架构&设计 入门 1. 《SaaS互联网时代的软件革命》 2. 《设计模式》 进阶 3. 《Docker:容器与容器云》 4. 《Build Microservices》 5. 《一线架构师实践指南》 高级 6. 《恰如其分的软件架构:风险驱动的设计方法》 7. 《领域驱动设计》 敏捷交付&流程 入门 1. 《硝烟中的Scrum和XP 》 2. 《敏捷软件开发:原则、模式与实践》 3. 《用户故事与敏捷方法》 进阶 4. 《敏捷软件需求》 5. 《精益软件度量》 高级 6. 《精益和敏捷大型软件开发应用指南》 7. 《精益和敏捷大型软件开发应用实战》 职场修炼&提升 入门 1. 《金字塔原理》 2. 《程序员的思维修炼:开发认知潜能的九堂课》 3. 《影响力》 进阶 4. 《思考:快与慢》 5. 《第五项修炼》 高级 6. 《反脆弱》 7. 《必然》 来源: https://www.cnblogs.com/meiguhuaxian/p

程序员如何提升自己

五迷三道 提交于 2019-11-30 22:05:09
如果你去网上搜索这个话题,应该可以搜素到很多文章,里面也很详细说了很多方法。 我相信这些文章是有用的,至少可能对写文章的人来说。但是那么多方法,谁又能一个一个去做呢。 我们每个人如果要提升自己,唯有不断练习。 其实看看古今往来的名人,无不是大量练习,方名震四海。 我们很大可能是不能名震四海,因为我们的付出达到人家1/10。 所以我们也需要练习,那是当然的,名门世家的孩子还有去读博读研呢。但是不仅只是练习那么简单,有本书还说刻意练习呢。 因为练习是需要方法的,错误的练习,带来结果不及正确练习的一半功效。 下面就说说正确的方法: 1.当你准备编程的时候,最好要连续不断的去工作。 不要被社交媒体,背景噪音等事情打断,因为重新开始,又需要花不少时间去回顾,代码编写忌讳中断。此方法不适合,某个技术要点暂时没法实现的情况。 2.工具也是必须的 打造适合自己的一套代码编写工具,电脑桌椅,电脑,软件。 不要坐在板凳上编程,不要让自己在不舒适的状态下编程。你现在不对自己好点,留着钱以后老了再对自己好吗,呜呼,晚矣! 给自己一个舒适的环境吧。 本人自从买了个升降桌,再也不担心每天坐着太久,腰酸脖子难受了。 电脑能高配就不要低配了,高配用起来的不是一般的爽,能用得起mac就不要window。编程最佳电脑非mac莫属,此处不接受喷子。 软件方面:有很多很棒的软件很极大的提升我们的工作效率。 3

作为一个有理想的程序员,必读的书都有哪些?

巧了我就是萌 提交于 2019-11-30 21:37:50
一位有理想的程序员 一定是一个热爱学习的程序员 一定是愿意接受新事物的程序员 一定是一个好的产品经理 程序员要读的书可以分为五个类别,分别是: 编程实践(Coding Practice) 设计与架构(Design & Architecture) 方法学(Methodology) 思想(Thought) 产品(Product) 以下是小王子列出的书单: 1.《人件(原书第3版)》 软件管理领域的传奇经典,被誉为“对美国软件业影响最大的一本书”。作为经久不衰的畅销书,本书深刻地洞察到软件开发的最大问题不在于技术,而在于人。人 的因素并不容易解决,一旦解决了,你将更有可能获得成功。人们认为《人月神话》关注"软件开发"本身,《人件》则关注软件开发中的"人",因此,在成千上 万的书架上,《人件》永远和《人月神话》并列在一起。 2.《人月神话》 与《人件》共同被誉为软件管理图书领域最为璀璨的“双子星”,作者为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。 3.《设计原本》 未来数十年内从事软件行业的程序员、项目经理和架构师必读的一本书,是计算机图书领域的又一史诗级著作。本书从工程师和架构师的视角深入地探讨了设计的和过程,尤其是复杂系统的设计过程,旨在提高产品的实用性与有效性,以及设计的效率和优雅性。 4.《程序员修炼之道:从小工到专家》

程序员修炼之道:从小工到专家2

回眸只為那壹抹淺笑 提交于 2019-11-30 21:09:43
现在这本书已经看了一半收获很多本书相对比较基础,不是那种大规模程序设计、高并发设计等等,主要是针对程序员的一些基本素质和一些基本常规编程设计做一些梳理和规范,对于初入职的程序员,养成这些良好素质是非常有必要的;对于已经入职多年的程序员,回顾一下本书,然后结合自身情况看看是否能够基本达到本书中的一些素养也是有必要的。 贯彻全书的一个原则是DRY(Don‘t Repeat Yourself)原则,这也是每个优秀的开发人员必须要遵循的规范,编码过程中任何地方都不要重复,因为重复暂时节省的时间将会给以后的维护使用带来巨大的麻烦,如果发现代码有重复或者违反正交性等原则的地方要立刻找机会重构。这样才能够拥有更快、更好、更强健、更优雅的代码。 书中有些法则定理让我恒安兴趣,比如说德墨忒尔法则——减少耦合:避免为了访问第三个对象中的方法而进入某个对象。某些情况下,可以为了换取速度而增加耦合。只要对于那些被耦合在一起的模块而言,这是众所周知并且可以接受的即可。 将细节提取出来,编写可动态配置的系统。 时间耦合:调整事件次序,增加并发。 不要让已有的代码支配将来的代码,如果不再实用,所有的代码都可被替换。 怎样进行利大于弊的重构: (1)不要试图在重构的同时增加功能; (2)在开始重构之前,确保有良好的测试; (3)采取短小、深思熟虑的步骤。 规定需求:把底层的语义不变项当作需求进行捕捉

关于深夜技术事故纪实录的若干问题回复

痴心易碎 提交于 2019-11-30 20:54:15
前一段时间写了一篇文章 《凌晨1点突发致命生产事故,人工多线程来破局!》 ,只是一篇生产事故的记实文章,没想到在圈内流传甚广,其中有程序员对其中的细节有点疑惑,刚好国庆可以和大家再进一步探讨一下。 现在技术圈有一个不太好的现象,经常看到这样一个现象,当出现稍微热门一点的文章的时候,总会出现两级分化的现象,一拨人会反馈牛逼写得太好了,然后另一拨人总是反馈又开始吹牛逼了,各种无脑质疑。 个人认为两个现象其实都不太客观,一篇文章的出现只是作者本人对于技术的阐述,难免有自身的局限,同样既然能写文章必然也不会是瞎乱吹牛逼,那毕竟也有同事朋友都认识,后面还要在这个行业混。 既然文章肯定具有它的局限性,如果写出来读者可以给出一些更好的建议,这样对于写文章的人也是一种学习,我经常从读者的留言中学到了很多知识,这是一种正反馈。 现在的问题是很多技术人把抬杠当作了一种本事,用以展示自己的优越感,如果能说到点子上也还好,关键是有的留言你一看就可以发现,技术涵养太低了明显是不懂行的情况。 这篇文章发出来后,公众号的用户反馈还可以,因为大家对我有个基本认识,在博客园和开源中国中,部分技术朋友质疑比较多的地方给予解释一下: 问题 1:“几百万商户、几千个代理商”,“上千多张表,关系极为复杂”,“在生产环境找十台服务器”至少也得是淘宝,京东这个级别的电商网站才能有这个规模了吧! 回复:淘宝

好程序员大数据学习路线分享Scala系列之抽象类

给你一囗甜甜゛ 提交于 2019-11-30 18:56:28
好程序员大数据学习路线继续为大家分享分享Scala系列之抽象类 1抽象类的定义 定义一个抽象类: 如果某个类至少存在一个抽象方法或一个抽象字段,则该类必须声明为abstract。 abstract class Person{ //没有初始值,抽象字段 var name:String //没有方法体,是抽象方法 def id: Int } class Employ extends Person{ var name:String= "Fred" //实现,不需要overide关键字 def id = name. hashCode } 2抽象类的应用 定义带有抽象类型成员的特质: trait Buffer { type T val element: T } 定义一个抽象类,增加类型的上边界 abstract class SeqBuffer extends Buffer { type U // type T <: Seq[U] def length = element. length } abstract class IntSeqBuffer extends SeqBuffer { type U = Int } abstract class IntSeqBuffer extends SeqBuffer { type U = Int } //使用匿名类将 type T 设置为 List

高效程序员的 7 个共同特征

回眸只為那壹抹淺笑 提交于 2019-11-30 18:20:56
导读:要想成为一个伟大的程序员,需要的可不仅仅是能够编写出可以正常运行的代码。Justin James给出了能够成为业内顶尖高手的程序员应该具有的几个典型特质。 要想成为高效的程序员,你需要具备一定的综合素质才能够让你用你所掌握的技能、经验和知识编写出有效的代码。有一些开发人员在技术方面具备一定的技巧,但他们永远无法成为高效的程序员,就是因为他们缺乏所需的其它几项特质。本文将给出成为一个伟大的程序员所必须具备的7项特质。 fbm 翻译于 2013/05/06 21:53 顶 7 其它翻译版本 (1) 1. 主动学习新的技术和非技术两方面的知识 不好的程序员只有在实在不行的时候才开始进行知识学习。良好的程序员会主动学习新的技术知识。伟大的程序员不仅会自行学习新的技术知识, 而且还会学习非技术方面的知识,对各种知识来源都有一种开放的心态,而不会象有的人那样固步自封。 具体点说,不好的程序员只有在参加了采用WPF的项目时才开始学习XAML;良好的程序员一年前就学习了XAML,因为他感觉它很有意思;而伟大的程序员还阅读了WPF应用程序的设计指南、可用性(usability)理论或者什么类似的学习课程,因而他能够制作出卓尔不群的UI。 fbm 翻译于 2013/05/06 22:09 顶 6 其它翻译版本 (1) 2. 务实而不教条 严格遵守那些不成文的“编程规则”往往是一种奢侈品

《程序员的修炼之道——从小工到专家》读第一章有感

那年仲夏 提交于 2019-11-30 17:49:35
九月份,我读了《程序员的修炼之道--从小工到专家》这本书,虽然只是读了其中小小的一章,却让我收获了许多,收益匪浅。 从《程序员的修炼之道》这本书的介绍部分可以看出,该书是一本很棒的作品,该书由一系列独立的部分组成,讲述了许多富有娱乐性的奇闻轶事、有思想性的例子、以及有趣的类比,内容丰富多彩,并且本书还阐明了软件开发的许多不同方面的最佳实践和重大陷阱,无论是初学者还是有经验的编程员,都能从中获益。书中更是例举了许多程序员对这本书的看法,从他们的介绍中让我认识到这本书对一个程序员的重要性,值得每一个学习编程 的人去阅读,去学习,无论是编程小工还是编程专家,这本书最终都能成为有用信息的极好来源。从序论中让我了解到编程是一种技艺,用最简单的话说,编程可归结为让计算机做你想让它做的事情,作为程序员,你既是倾听者又是顾问,既是解释者又是发号施令者,编程是艰难的工作,要注重实效,我们也要学这从编程中寻找乐趣、寻找方法。 该书的第一章讲的是注重时效的哲学。注重时效的程序员不仅有方法,更有责任。他们能够越出直接的问题去思考,总是设法把问题放在更大的语境中,总是设法注意更大的图景。他们成功的另一关键就是他们对他们所作的每一件事情负责。该章节先用“我们的源码让猫给吃了”生动幽默的写出来程序员的源码丢失问题,然后为我们介绍了责任问题,注重实效的程序员对他或她自己的职业生涯负责,并且不怕承认无知和错误

程序员修炼之道读后感1

荒凉一梦 提交于 2019-11-30 16:27:22
   本书围绕“注重实效”讲述了关于编程的各种话题,个人责任、拽光弹开发、调试策略、元程序设计、按合约设计、重构、无情的测试,等等。作者认为注重实效的程序员的特征是程序员在处理问题、寻找解决方案时的态度、风格、哲学,他们能够超越直接的问题去思考,总是设法把问题放在更大的语境中,总是设法注意更大的图景。 来源: https://www.cnblogs.com/125418a/p/11604237.html