程序员

程序员不是砌砖工人,他们是作家

≡放荡痞女 提交于 2020-02-27 01:04:16
英文原文: Your Developers Aren’t Bricklayers, They’re Writers 如果你有 10 个程序员,最好的那个可能至少比最差的那个好 5 倍。这绝对不是胡扯。 我们这样定义“更好”:工作速度更快,产生的 bug 更少,代码更具可读性、逻辑性和可维护性。 程序员不是砌砖工人,但他们往往被当成是砌砖工人。 (我并不是说歧视这些职业) “为什么我需要高级程序员,要知道同样的薪酬我可以雇两个初级的了?” “这个功能一个程序员做需要三个月的时间,那就只需要再加两个,就可以在一个月内搞定了。”   为什么说上面的想法很荒谬?因为我们没有一种简单又有效的方法来衡量程序员的生产力。一旦碰到我们无法衡量的东西,我们就会忽略它。   我这样问你好了:你是愿意让两个新手来照顾你的宝宝,维修你的车,给你做腰椎穿刺,还是宁愿找一个资深的? 相关研究表明,最好程序员的生产力最高可比最差程序员的高 28 倍。但是用在这些最好程序员身上的成本肯定不会有这么多,所以他们是软件领域中最划算的“特价商品”。 ROBERT GLASS,《FACTS AND FALLACIES OF SOFTWARE ENGINEERING》   如果你一定要比较的话,那么其实程序员更像是作家。   有些作家写出的东西能数以百万计地卖出去,而有些作家写出来的东西无聊至极最后只能用来烧火用!  

“奔三”了,程序员,你该怎么选择未来的路?

ⅰ亾dé卋堺 提交于 2020-02-26 19:26:06
摘要: 古人说“三十而立”,对于类似于“奔三”的程序员而言,也应该静下心来思考自己未来的发展方向了,是继续深耕于技术,还是转向管理和其他。其实无论是怎样的选择,都没有绝对的好与坏之分叩问自己的内心,问问自己到底想要什么,才会找到一切问题的答案。 其实对于程序员这个行业到底是不是吃“青春饭”的争论,从未停歇过,大家往往各执一词。其实,在我看来,这个问题是因人而异的,每个人成为程序员,走进互联网行业的原因以及目标都不同,很多的人简单的就是因为热爱,所以走进这个行业,所以乔布斯在车库里创办了苹果公司,比尔盖茨连大学都没来得及完成就创办了微软,直到今天,在美国的硅谷还有数不胜数的“大龄”程序员依然战斗在软件开发的第一线,并非他们技术成长太慢,直到今天还只是程序员,而可能恰恰相反,他们却是程序界的大牛,或许亲自写出了某种流行语世界的语言或者框架,代码是他们一生所爱,相比于与人打交道,他们更喜欢使用机器的语言。当然也有很多的程序员,当自己在技术上走向成熟之后,选择了转向管理层或者技术高层,不在会去写一行代码了,这样的路或许也会非常精彩。 古人说“三十而立”,对于类似于“奔三”的程序员而言,也应该静下心来思考自己未来的发展方向了,是继续深耕于技术,还是转向管理和其他。其实无论是怎样的选择,都没有绝对的好与坏之分,自然也没有对和错,其实只有夜深人静时,叩问自己的内心,问问自己到底想要什么

程序员打造影响力常犯的 3 个错

限于喜欢 提交于 2020-02-26 14:17:05
何为影响力?影响力就是帮助他人的能力,除了掌握专业技术之外,你还要练就自我销售的能力。 最初,老兵哥写博客也是以记录为主,借文字来记录生活或梳理知识,读书笔记、观影感受、户外游记、技术积累等,偶尔会有读者关注或互动,但我没太关注阅读量和订阅量。直到前些年我才逐渐意识到,打造影响力对职业或事业的发展都非常重要。如果你能持续输出有价值的知识或经验给读者,或解答读者遇到的问题,或给读者一些建议指引,那么日久天长你就能赢得读者信任,从而获得影响力。从做记录到做分享,我摸索着前行,穿越了不少误区,今天来聊一聊其中几点: 懂得读者视角,满足读者诉求 分享跟记录不同的,记录是为了避免遗忘,以便日后查阅,默认读者是自己。你最清楚自己的知识储备,为了提升效率,在记录时你很可能缩略那些已知内容,仅留下提示词。在遣词造句上,你会使用极个人化的风格。分享的默认读者不是自己,分享必须以读者为中心,在写作前必须了解目标读者对该主题上下文背景的掌握情况,对大部分读者可能不懂的前序知识要做些铺垫说明,行文必须要照顾读者的阅读习惯,例如:尽量使用短句,段落不易过长,阐述复杂概念时最好搭配生动形象的图例,字体排版等都要考虑阅读体验等。 从做记录到做分享,你必须完成意识的转变,说起来容易,做起来却很难,尤其是从事技术工作的程序员。在日复一日的专业工作中,大家都会积累下大量有价值的知识或者经验

让一线大厂的面试官来告诉你,如何做职业规划

左心房为你撑大大i 提交于 2020-02-26 13:45:41
前言 在面试中不论是在一面二面三面这种技术面,还是在最后的hr面,经常会被人问及, "谈谈你的职业规划" 这种问题,我们回答的很可能会给我们的面试表现加分, 如果回答地不好,对于一些面试官来说无伤大雅,但对于某些 面试官来说,可能直接就会给我们pass掉 ,可能有些人看到这里会说,“你就在吓我吧,哪有这么严重,我当初也是这么想的,直到我在秋招中付出了惨重的学费,才知道回答这类问题的重要性。这里真没有吓大家,这里分享一波我之前的面试经历。 面试经历 这个面试经历是我秋招面过的第4家公司,远景能源,我依次通过了前两轮的技术面+第三面的hr面,然后这家公司是有第四面的,叫综合面试,其实就是部门总监面一下你,当时我通过了前三轮面试,其实感觉十拿八稳了,感觉第四面就是谈谈人生和理想。 四面是总监面,其他问题有点忘了,但到现在我还记得一个问题,就是当时他问我你觉得我应该问你一个什么问题才能觉得你有能力胜任这个职位? 当时我听到这个问题,有点懵了,由于我之前对ConCurrentMap了解的多一些,我说要不然你问问我这个?他说我不懂技术,你再想一个……然后我感觉自己真是傻,想都没想就说要不你问我一个排序算法,然后他说这还是技术问题,总监都说他不懂技术了,我这真的是在作死。 这时候感觉他有点不开心了,他说你觉得什么是人才

程序员内功修炼(三)计算机网络之数据链路层

南笙酒味 提交于 2020-02-26 12:55:52
1、数据链路层功能概述 一、数据链路层功能概述 二、数据链路层基本概念 三、数据链路层功能概述 2、封装成帧&透明传输 一、数据链路层功能概述 二、封装成帧 三、透明传输 四、字符计数法 五、字符填充法 六、零比特填充法 七、违规编码法 3、差错控制(检错编码&纠错编码) 一、差错从何而来 二、数据链路层的差错控制 三、检错编码——奇偶校验码 四、检错编码——CRC循环冗余码 五、纠错编码——海明码 4、流量控制与可靠传输机制 一、数据链路层的流量控制 二、流量控制的方法 三、可靠传输、滑动窗口、流量控制 四、脑图梳理 5、停止—等待协议 一、停止等待协议 二、停等协议——无差错情况 三、停等协议——有差错的情况 四、停等协议性能分析 五、信道利用率 六、脑图梳理 6、后退N帧协议(GBN) 一、停等协议的弊端 二、后退N帧协议中的滑动窗口 三、GBN发送方必须响应的三件事 四、GBN接收方要做的事 五、滑动窗口的长度 六、GBN协议重点总结 七、习题 八、GBN协议性能分析 九、脑图梳理 7、选择重传协议(Selective Repeat) 一、GBN协议的弊端 二、选择重传协议中的滑动窗口 三、SR发送方必须响应的三件事 四、SR接收方要做的事 五、滑动窗口长度 六、SR协议重点总结 七、习题 八、脑图梳理 8、ALOHA协议 一、介质访问控制 二、ALOHA协议 三

Golang之变量去哪儿

蹲街弑〆低调 提交于 2020-02-26 07:30:36
目录 什么是逃逸分析 为什么要逃逸分析 逃逸分析是怎么完成的 逃逸分析实例 总结 参考资料 写过C/C++的同学都知道,调用著名的malloc和new函数可以在堆上分配一块内存,这块内存的使用和销毁的责任都在程序员。一不小心,就会发生内存泄露,搞得胆战心惊。 切换到Golang后,基本不会担心内存泄露了。虽然也有new函数,但是使用new函数得到的内存不一定就在堆上。堆和栈的区别对程序员“模糊化”了,当然这一切都是Go编译器在背后帮我们完成的。 一个变量是在堆上分配,还是在栈上分配,是经过编译器的 逃逸分析 之后得出的结论。 这篇文章,就将带领大家一起去探索 逃逸分析 ——变量到底去哪儿,堆还是栈? 什么是逃逸分析 以前写C/C++代码时,为了提高效率,常常将 pass-by-value (传值)“升级”成 pass-by-reference ,企图避免构造函数的运行,并且直接返回一个指针。 你一定还记得,这里隐藏了一个很大的坑:在函数内部定义了一个局部变量,然后返回这个局部变量的地址(指针)。这些局部变量是在栈上分配的(静态内存分配),一旦函数执行完毕,变量占据的内存会被销毁,任何对这个返回值作的动作(如解引用),都将扰乱程序的运行,甚至导致程序直接崩溃。比如下面的这段代码: int *foo ( void ) { int t = 3; return &t; }

快速了解掌握中文自然语言处理

岁酱吖の 提交于 2020-02-26 02:43:20
NLP是什么 在计算机领域, NLP(Natural Language Processing),也就是人们常说的「自然语言处理」,就是研究如何让计算机读懂人类语言。这包括,既要能让计算机理解自然语言文本的意义,也能以自然语言文本来表达给定的深层的意图、思想等。所以,这项技术往往体现了人工智能的最高任务与境界,也就是说,只有当计算机具备了理解自然语言的能力时,机器才算实现了真正的智能。但是,由于中文词语是由汉字千变万化组成的,所以中文领域的「自然语言处理」显得尤为复杂。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。 专注于「自然语言处理」领域多年, NLP 的技术和服务一直伴随着大快的发展而不断进步。从自动翻译、情报检索、自动标引、自动文摘、自动写故事小说等领域,都可以用我们的工具类DKNLPBase来处理,NLP 技术已不再单纯的停留在概念层面,而是逐步***并成功应用在大快的各个领域中。 为什么需要NLP 举个例子,日常生活中,我们总会碰到一些不知道怎么读的生僻字,

十年编程老司机:给新手程序员的几点建议~

百般思念 提交于 2020-02-26 02:35:22
每年都有无数年轻程序员,加入软件行业。他们在学校里学过编程,但是对这个行业的却一无所知,现在来听听新手程序员应该如何开始其职业生涯以及为了能有一个成功的职业生涯而需要牢记的一些东西。 我从Joseph——一个想要成为程序员的人那里采集到了一些重要问题。他给我发了这样一封邮件: David你好,我叫Joseph。我徘徊于你的网站,想要寻找一个专业的计算机程序员,我不知道你是否能够帮助我。虽然我还年少,但是已经下定决心要为编程奉献我的一生。你在你的个人资料上面说你是一个专家,所以我希望能直接得到专家的指导。你能给我一些关于编程的技巧吗?进入的最佳领域是什么,应该学习什么语言,以及想要成为一个成功的程序员,我应该怎么做。 希望能尽快收到你的来信,非常感谢。 下面是我的回信: Joseph你好, 你可能不相信,但我可以告诉你,你已经在正确的轨道上,并遥遥领先于其他许多人: 你的目标明确:你想成为一个程序员。 你准备学习如何成为一个专家。 你采取了行动。 你从我——一个有经验的程序员这儿寻求帮助。 如果你想知道编程的最佳领域是什么以及要学习什么语言,那么我给不了你确切的答案。 举个例子,我的专长是用Java构建后端应用程序,但我认识相当多的一些前端开发人员讨厌每天去上班。就像医生也有成功的外科医生,麻醉师和儿科医生,成功的程序员也有许多不同的类型。 你可以成为一个成功的前端或后端开发人员

对程序员来说,ACP证书价值?

北战南征 提交于 2020-02-26 02:24:03
PMI-ACP®认证对于组织的价值在于: 1.适应不断变化的业务需求,使组织得以对需求的增加、变化或消除施加更多影响。 2·尽早提供持续客户反馈,改进了企业与客户之间的交流,也为企业所有者提供支持,帮助他们获取并审查重要信息,用于做出正确决策,引导项目在开发流程中的发展方向。 3·尽早获得可测投资回报。 4·提高项目进度的可见性和影响力,有助于及早发现问题。 5·采用递增式交付,取代项目结束时的一次性交付模式,减少了产品与流程浪费。 PMI-ACP®认证对于个人的价值在于: 1·获得证书可证实从业者在敏捷原则、实践、工具和技能等方面拥有的知识和技能。 2·该证书覆盖多种敏捷方法,而不是简单地将从业者限定于一种敏捷策略。 3·增加项目管理专业能力。 4·为从业者提供比现有的仅基于培训或考试的入门级认证更可靠的证书。 来源: 51CTO 作者: 小鹏pmp 链接: https://blog.51cto.com/14640218/2472340

程序员如何高效提升保持学习动力?

為{幸葍}努か 提交于 2020-02-26 01:53:16
相信对于很多程序员来说,最初接触编程的初衷还是来源于兴趣。爱因斯坦有句名言:“兴趣是最好的老师。”古人亦云:“知之者不如好之者,好知者不如乐之者。” 所以兴趣真的很重要,兴趣是你成为程序员的一个内在驱动力,这种力量很神奇,可化不可能成可能,可化腐朽为神奇。不断的、创造性的给自己一些个好奇心,欲望无限,你的动力就无限。 无论是不是计算机专业的科班出身,想成为程序员一定要有一份兴趣,一份对未来日新月异技术的兴趣,一份主动探究知识奥秘的兴趣。这对激发你的学习兴趣对提提升你程序员素质至关重要且十分有效。 那么对于那些梦想成为程序员的新手,或是已经进入程序员行列的初级程序员来说,该如何学习练习才能保持对编程长久的兴趣呢? 如何保持学习的动力呢? 01被工作倒逼 这是很常见的一种情况,工作中有搞不定的事情,通过学习来掌握;这种方式倒逼自己学习,压力最大但是效果最好,所以如果领导分配给你一些看起来不可能完成的任务,不要当做“看你不顺眼”,而是“最好的挑战”。 02追求更高收入 谈钱难免会让人觉得俗气,但是相信大多数人工作都是一样“俗气”;但是这种“俗气”小渡觉得并没有什么错,提高自己的挣钱能力,让自己和家人能生活的更好,想一想坚持学习一年,明年说不定涨薪30%,是不是就有动力了呢! 03监督与督促 长时间坚持学习确实很难坚持,比如坚持一年;不像学生时代,还有老师和家长的督促