本日在csdn逛到的,是csdn张勇采访雷果国整理的一篇老文章,以为依然适用于当下的暴躁互联网环境。同时分享一句话,找对方向,你只管努力,剩下的交给韶光。
雷果国(goosman.lei),2009年毕业于兰州商学院打算机科学专业,目前在百度任职PHP高等研发工程师。翻译有《extending and embedding php》一书,以及JQuery-UI-1.7.2官方文档、Pcntl、Pcre、Memcache和Memcached等PHP扩展的官方文档。录有《let’s python》视频教程。热衷分享,希望可以通过自己的努力,让海内的程序员入门及提升本钱变低。

背景:
2008年3月开始学习编程, 目前2013年3月。2009年6月打算机专业本科毕业。大学期间, 基本稳拿班级倒数第一, 高考英语49分, 大学英语除了补考没及格过。总结:
5年间60%以上的韶光, 每天凌晨2-4点睡觉。为学习编程花费的总韶光超过6000小时。手写了超过50万行代码。记录了超过100万字学习条记。录制了两份视频教程。翻译了小型技能文档5份以上, 5个php扩展的官方文档, jqueryui官方文档一份, 书本《PHP扩展和嵌入式》。得到两次精良员工。雷果国先从2008年开始,讲述了自己在学校的生活状态和当时学习不雅观念,他指出不要怕英文、出错信息和文档,它们都是学习英文的机会,同时也不要怕出错, 出错便是学习的机会。在随后做项目和找事情的小插曲中,雷果国认识到刚开始不要期望什么,放低身体,去做自己的积累就好。毕业之后,雷果国的口试并非一帆风顺,在他人生的第一家公司中雷果国的人为也只有1千五,他和在学校学习时一样,依旧吃着泡面每天加班到9点,回家后连续学习到2点。而在这个屋里,冬天虽然有小电暖但屋里水龙头却已结冰,不过这并不妨碍他的学习和生活,由于他始终坚信:只要依然坚持学习,未来有一天他将不再这样。2010年3月雷果国到了北京事情,他这一年始终为公司付出,从JavaScript进入,到后来页面制作、PHP和做事器等等,他没有以为有多辛劳,相反认为这是种磨炼,是他最大的收成。在2011年到现在的韶光里,他学会了团队协作、同事关系处理等等,并且仍旧在连续学习着,连续每天学到凌晨2-3点才睡觉,完成了Unix环境高等编程、Unix网络编程和PHP内核等主要积累。通过这五年的努力,雷果国如今已进入自己心仪的公司。此外还值得一提的是他此前网名是selfimpr,含义是发奋图强,是从self-improvement简写而来,而如今他的新网名是goosman,是从Swan Goose蜕变而来,他期待自己五年的积累,能够在新环境中一展自己的青云之志。
以下为本次专访内容:从开始到现在:我的学习进程为什么会写《PHP程序员从1.5k到18k,一个程序员的5年景长之路》博文分享这段发展经历?其余博文开头先容了自己成绩倒数和英语不及格的背景,想给读者通报什么?
雷果国:我实在一贯想写这样一篇文章,由于我看到身边多数人都不是很努力,我以为如果写这样一篇文章做分享,哪怕能有一个人能够有跟我一样的变革,那也是非常值得的。
恰好最近得到了百度的事情机会,我以为这算是自己这几年一个比较大的收成,以是借此机会写了这篇文章。
至于我先容的成绩倒数,英语不及格,有两方面的缘故原由:
我希望那些看到这篇文章并且想要改变的人,不要由于自己没有根本而打退堂鼓。如果我的背景不是这么差,现在取得的成绩就不值一提了。当初为什么会选择打算机专业?在大学起初几年,你都在干什么?为什么溘然意识到要努力学习?有什么事情影响或起到决定浸染吗?
雷果国:我当时第一志愿是物理学,对物理教材上关于爱因斯坦相对论的先容很感兴趣,可是自己学习成绩弗成,不能如愿。当时自己很爱玩游戏,调配志愿就写了打算机,结果就被这个专业录取了。大学前2.5年便是整天玩游戏,通宵玩,玩到差不多被劝退的程度。能够有所转变努力学习,是我老婆的功劳,有一次和老婆约会,聊我们的未来,我创造自己能给她的未来便是回家一起种地。以是我就开始学习,刚开始的半年也没有方向,去学习老师以前讲过的教材知识,没有效果,后来是当时尚学堂的免费视频教程,让我找到了方向,大概一周韶光,我就进入了状态。
开始学习后,对自己有信心吗?身边的人又是如何看你的?你又是如何调度心态,忽略这统统?这中间有没有发生什么特殊的故事?
雷果国:刚开始学习的时候,信心是十足的,问题涌如今大概半年后,那些以前整天一起玩,一起疯的同学,就换了一种眼力看你,貌似在说“就你这样的,还学编程”。这段韶光是很纠结的。当时,我只是花更多的韶光去学习,可能有一种要证明自己的心态。直到第二年学校Java课我基本没上,但考试得了90多分的时候,同学们的意见才逐渐转变。
确定目标后,你是怎么开始学习的?比如确定学什么?从哪方面入手?都用哪些书或教程?按照什么步骤进行?等等……
雷果国:如前面所说,我前半年学教材知识没有效果。这并不是说教材知识没用,而是作为我当时的状态,我没有对整体知识脉络的理解,无从找到打破口,入不了门,建立不了兴趣。后来是尚学堂的视频教程,给出了详细的学习路线,从Java的基本语法、到I/O、GUI、多线程、网络编程、网页编程和框架,到临毕业自己又看书学习了基本的数据构造与算法。至此,建立了在程序设计方面一个基本的知识体系,为往后独立自学打下了根本。
在学习过程中,你还翻译了不少技能文档,为什么去翻译官方文档?这对你有什么浸染?其余,大约是什么时候开始找到觉得和自傲的?
雷果国:我自己是靠别人的免费分享找到方向的,包括刚开始的时候,在CSDN论坛里提各种问题,得到很多无私的帮助,以是我乐意把自己知道的东西分享出去。翻译官方文档,实在只是我在学习过程中的副产品,并且这个副产品对我的学习本身也有促进浸染(翻译时看不懂英文的,就得去看源代码帮助理解),以是只要韶光不紧张,我就乐意做这种事情。觉得是在打仗到视频教程大概一周找到的,自傲是在学完数据构造和算法后才找到。
你录制了多套视频教程,有人以为这是比较摧残浪费蹂躏韶光的事情,为什么要录制视频?它有没有影响到你学习进度,同时对你有没有起到什么帮助?其余,你称乐于分享是促进程序员进步非常主要的一个关键点,为什么会这么认为?
雷果国:最初录制视频教程,是由于我当时要学python,但没找到python的视频教程,只能看书,而在之前我一贯是看视频教程学习,以是只看书没视频很不习气,这样学了3个月后,我突发奇想以为自己也可以考试测验录制一份教程。想了后我就录了,我是边学边录制,大概是自己学第10章的时候,开始录制第一章内容,这份视频教程不仅没有摧残浪费蹂躏韶光,反而对我的学习有促进浸染,由于你一旦要把自己学到的东西,讲给别人的时候,你会创造很多自己学的时候根本没有创造的问题就涌现了,以是这份视频的录制,让我对python的学习更加深入和全面。我们知道完成功能的软件和可交付的软件是有差距的,分享也是这个道理,你学习完一个知识,只是完成了功能,当你要把这些知识打包分享出去的时候,便是交付。从完成功能,到可交付,你会创造有很多不敷须要改进。此外,如果这个分享是被分享者和分享者可以互动的,那就更故意思了,被分享者便是分享者的QA,分享过程中会暴露更多的问题。因此,我说“乐于分享是促进程序员进步非常主要的一个关键点”。
从你霸王口试开始,到进入心仪公司,能不能从你求职经历等分享一些口试履历?其余在口试中,你都有过什么挫折?如何面对的?
雷果国:关于口试,我紧张是放低自己的心态,这有好处也有坏处,坏处是薪资常日比实际能力要低一些,好处是放低心态,可以让自己在技能这条路上走的更远。口试过程中的挫折便是第一次到北京的时候,去用友口试一败涂地,会的不会的都说不出来。所幸还有一家创业游戏公司收了我,我就沉下心来连续修炼,后来基本就没有在口试上被PK的太惨。
这统统都来自于心态大厂必备口试题,须要的请看到末了从开始学习,到学有所成和找事情,再到事情中碰着各种困难,然后得到打破,在全体过程中,能总结下你心态都有哪些变革?是用利用什么方法或办法进行调度?
雷果国:
学习之前,我是破罐子破摔,爱若何就若何。开始学习后,是由于找到了兴趣,开始有了目标,有了追求。学习了一段韶光之后,我开始认为自己不是破罐子,以是不再破摔,而是修补缺口。能够给别人分享知识后,我以为人的代价不在于自己挣多少钱,而是为这个社会创造多少代价。目前,我以为团队的代价大于个人的代价。关于心态调度方法,我以为是便是塞翁失落马焉知非福,好的时候,想想未来的不好,不好的时候,想想未来的好,总之及时做好自己的生理平衡就好。
你提到只有会管理自己感情,才利于朝着目标达成的方向发展,你都是如何管理和培养自己的感情?其余如何才能引发自己潜能,让自己对学习很愉快?
雷果国:感情这方面,我们知道做技能的须要一颗沉着的心,以是我会在平时就给自己生理暗示,见告自己遇事要心平气和,然后当我浮躁了之后,比如给人发火了,或者论坛里和人对骂了,在自己气消了之后,反省自己,有可能的话还要拉下脸来给对方道歉,这样韶光久了,就能逐步做到遇事不惊。还有一点,便是劳动报酬方面(薪资等),我会尽可能的不去关心这一点,由于我以为希望是造成暴躁一个很主要的缘故原由。引发潜能方面,举一个例子:高中的时候,我常常去网吧通宵达旦的打游戏,那个时候,我喜好听《2002年的第一场雪》,后来学编程之后,我已经基本不玩游戏了,但是到现在为止,每次带起耳机听这首歌的时候,我都仿佛置身当时网吧的环境,非常神往当时游戏的状态。以是我在家写代码的时候,会喝点小酒,哼个小曲儿,让自己写代码的时候非常愉快,长此以往,对这种环境形成一些生理上的依赖,这样就培养了对编程的兴趣。
你的发展经历让很多人佩服,从当初的那个“我”到如今的“我”,很多人都很好奇你是如何探求到发展方向,一步一步走到本日?
雷果国:在我揭橥了那篇博文后,从评论中看到很多人说,这篇博文能够勉励到自己,但能不能坚持不一定。我以为问题的关键在于兴趣,很多人是不得已才从事这行。如果有正在上大学的同学能够看到这份采访,该当趁还没有走出校门,赶紧探求自己的兴趣和事情的结合点,不要等到临出校门被现实逼着去做一份事情。做事情很大略,但把事情要做成奇迹,没有兴趣的支撑,真的很难做到,事情4年,我目前没有见到过一个没有兴趣却能写好代码的人,哪怕是曾经在百度、阿里巴巴和腾讯这样公司事情的员工,也不例外。
很多人都知道坚持便是成功,但很多人都坚持不了,这五年你是如何坚持下来的?都是如何激烈自己?有哪些办法或手段?
雷果国:坚持便是成功,但不坚持不代表失落败。有的人坚韧,有的人果断,有的人善言,每一种性情特点的人都有适宜从事的事情,我以为我能坚持下来,是所做的事情和兴趣、性情契合。条条大路通罗马,每个人要找到自己的路。勉励自己的手段,除了培养兴趣外,产出是很主要的一点,在事情学习的过程中,对自己的产出做评估,比如我的博文列出的数据,我每隔一段韶光都会去统计这些数据,当你看到自己一贯在进步的时候,就会更加有信心向前走。
博客下面不少人都很关心一个问题:刻苦学习长期熬夜,你身体状态是否一贯都很好?这样康健的身体你是如何保持的?
雷果国:我一样平常晚上回家吃完饭会先陪家人1-2小时,然落后修到2-3点睡觉,8-9点起床,多数时候是能担保6个小时就寝韶光。此外,便是周末睡个我的认识和感悟
错过根本课让你面临技能上很多瓶劲,在这里能谈谈根本课的主要性吗?在浩瀚根本课中,您认为哪些根本课比较主要?
雷果国:虽然我是从运用开始学习,但是根本理论知识真的非常主要。我以为运用是腿,决定你能不能走路,理论是干粮,决定你能走多远。我做linux-web方向,以是就说说我认为对付linux-web方向研发比较主要的根本理论知识(不见得是大学的课程):打算机网络、网络编程(套接字,TCP/IP)、Unix环境编程(进程,线程,内存管理,I/O系统)、数据构造与算法、HTTP协议、字符串处理(编译,正则,模板引擎)和C措辞(学习C对理解底层环境有帮助)。
自学成功你最大的收成和感悟是什么?对付那些在编程学习道路上仍在努力的初学者,有什么建议送给他们?
雷果国:最大的收成:写程序时我很愉快,我很愉快我百口都很愉快,我百口愉快我就更愉快……无限循环。最大的感悟:无私必能成其私。对付初学者,我想说:如果你不是发自内心的喜好写程序,趁着还没陷入泥潭,赶紧找到自己的兴趣所在吧,如果你是发自内心的喜好写程序,跟随你的内心,惬意的发挥吧。
你的成功可以复制吗?如果别人也这么去做,作为过来人你以为该当把稳哪些问题?其余,有人在钦佩之余还指出,这样学习会失落去生活的意义,你是如何看待这个不雅观点?
雷果国:我倒也算不上成功,但这份经历如果要复制,也是有条件的。我以为,在走这条路之前,一定要在开始之前想清楚两个问题:这个职业是否真的有兴趣,这个职业特点是否真的符合自己性情特点。如果想清楚这两个问题,我以为过程是多彩的,每个人都有自己的精彩。起初看到有人评论说这样学习会失落去生活的意义,我困惑过几天。不过我想开了,每个人对生活的定义是不一样的,现在如果不让我这样学习,那生活的意义是什么?
PHP是最易学的措辞,但难点也是这——大略易学难精通一开始学Java为什么会转到前端?后来又为什么从前端跑去做PHP?其余,在Java和PHP间,为何终极选择了PHP?你在这个转变过程中有没有碰着什么坎?
雷果国:Java到前端,以及前端到PHP的转型,都是事情的须要。在我刚开始学习编程的时候,有一个长期目标是做程序员,有一个短期目标是做好Java编程,当我第一次换事情时,请假来北京找事情,3天韶光并没有找到乐意收受接管我的公司,以是我退而求其次,以前端开拓工程师的身份进入到了一家创业游戏公司。在这里,我改动了短期目标做好前端开拓。后来,我打仗到了PHP,而此时已经做了一段韶光前端,我以为做前端没有一些艺术细胞很难做到很好,而我是理性思维更多的人,以是我开始学习PHP。这次,我又改动了短期目标做好php编程。在PHP和Java之间的选择,是由于PHP的完备开源,有任何问题,我都能以比较透明的技能手段追踪到根源。实在这也是一个职业方案的问题,我们无法预估十年乃至二十年后自己的兴趣和能力,只能按照自己当前的兴趣和喜好程度,定出长期方案和短期方案,并根据发展的情形做出调度,该当说,只要你把职业方案当做一件事情来做,那目标肯定会越来越稳定。转到前端时,困难比较明显,我是打算机专业,程序写的再好,做前端没有艺术感还是比较困难。而到PHP的转型,比较困难的便是java语法比较严格,到了一个疏松的语法环境中略有不适,不过这一点相比拟较好战胜,严格哀求自己就好。
在百度做PHP方面的开拓,新公司在技能或文化上哪里让你感触最深?其余事情这么永劫光,你现在如何看待实践和理论这两者关系?
雷果国:到百度之后,同事均匀本色明显高于以前的公司,而且百度的文化实行的很好,在一个这么大的公司,却明显能觉得到身边的人都在实行“大略可依赖,具有狼性”的文化。技能方面的感触,我就说说敏捷开拓吧:我是在进入百度后才打仗到敏捷开拓的,满打满算,才40天韶光,但这种开拓模式真的对我冲击很大,它改变了我一个固有的意见——大公司专人做专事、流程化安全而缓慢。在敏捷的团队中,大家更多的是强调团队的产出,弱化个人能力对团队的影响力,让团队成为一个原子性的整体。对事情量,进度的估算都不再按照个人进行,而是按照团队为单位估算,同时强调弱化角色分工,减小团队对个人的依赖性。
我以为,站在项目的角度,这统统切实其实太美妙了:
进度预估的风险:过去以成员为单位预估,问题是难于估算,并且准确度低,现在以团队为单位估算,成员间的偏差是有互补性的,提高了准确度。人力风险:角色的弱化,大家都可以根据兴趣或团队须要做一些其他方面的事情,这使得每个团队成员都能放宽眼界,提升综合能力,另一方面,单个成员请假等分外状况的风险也可有其他成员互补,降落产生团队人力瓶颈的风险。质量风险:持续集成,持续测试,这使得每一次发布都是经由集成后测试的,降落了产品质量方面的风险。需求变更风险:敏捷哀求快速迭代,这就使得我们在迭代操持的时候,只安排少量高优先级的开拓任务,因此,对低优先级的开拓任务我们不会花过多韶光关注,当需求变更时,多数情形都只是从需求池中将尚未细化的需求拿走,而很少会影响我们已经详细方案并进入迭代操持的需求。当然,站在个人的角度,这实在提出了更大的寻衅,每个团队成员须要对项目整体卖力,须要节制更多的技能。虽然只打仗了40天,但敏捷开拓带给我的感想是很深刻的,我以为互联网公司特殊须要敏捷开拓,由于它的目标是快速发布、拥抱变革和降落风险,这非常相符互联网产品的特点。如果没有实践,就不会有产出(专门搞理论的科学家,也是要经由实验验证理论的),但是如果没有理论,就只能重复性的实践,很难提升产出代价。以是,我认为实践和理论并没有孰轻孰重的关系,两者相辅相成,缺一不可。
你比较善于PHP,能不能就你学习和事情履历与大家分享下PHP学习如何开始和深入?有没有什么窍门?其余,PHP学习有什么难点?如何办理这些难点?
雷果国:关于措辞的学习,每个人有不同的方法,我就说说自己的学习过程:在学习PHP之前,我有3种措辞的履历,以是就随便找了本入门书本,花一周韶光,看看语法和函数库就上手干工作了。对PHP理解的第一次进阶,是阅读PHP手册,PHP的手册非常棒,组织构造清晰,讲解详细,内容涵盖面非常广,负责读一遍,收成非常大。接下来是两个方向:工程设计和底层实现。工程设计方面,紧张是找一些设计模式、持续集成和开拓方法方面的书本,广泛的阅读,并考试测验在实际运用中去领悟书中所讲的内容。底层实现方面,紧张便是先去理解操作系统和网络等一些底层的知识,节制C措辞,然后去阅读PHP的源代码,看看PHP怎么运转。众所周知,PHP是最易学的措辞。但我以为这便是PHP最大的难点——大略易学难精通。这方面,我认为要战胜的紧张还是生理成分,千万不能有“已经学会PHP”的想法。其余,PHP语法灵巧,很难把握到底该若何去写,这方面须要量的积累以及不断的思考。还有一点,PHP从内核的设计上,比较强调自由的扩展,以是对PHP内核的理解也很主要,这一点难度也很大,须要大量的根本知识积累,要战胜也只有玩命的学了。
写在末了:在与雷果国的互换中,他还和我分享了一些总结,以为这些分享蛮有代价,虽然有的点或许会与专访内容重复,但丝毫不影响个中通报出来的其余一种心态和不雅观念,有心的朋友可以看下。
内容摘录如下:
心态上:我开始学习编程的时候,已经大三第二学期了,当时有自己的质疑,有周围人的质疑,"现在学还能来得及吗?",对付跟我一样,在大学的最初几年已经荒废的同学来说,这个心态的调度很主要,便是坚信自己能行。
期望值:不少同学(包括那时的我),在刚毕业的时候,以为自己给老师做过项目,就觉得自己找事情会很随意马虎,导致对自己期望过高。实在,就我自己的发展而言,如果不是这几年恶补根本理论,肯定不会走进自己梦想的企业。目标定位的问题。我以为很多大学生乃至毕业一两年都找不到自己的人生定位。我自己在刚开始学习编程的时候,已经有了一个目标定位,便是做程序员,这个目标定位非常符合我的兴趣,以是我可以5年间丝毫不改变这个目标定位。态度上:分三个方面来讲,一方面是要付出很多努力;另一方面是不能认为自己已经付出了很多努力,就哀求短期回报,而是向着长远目标看齐,宁肯放弃一些短期回报;还有一个方面便是始终如一的坚持前两点。方法上:坚持读英文,坚持读源代码,碰到问题就去世磕,我在刚学了半年的时候,在没有网络的条件下,碰到一个问题靠跟踪源代码,花了7,8个小时才找到一个非常的根源。感情培养上:要学会管理自己的感情。可以刻意找一些让自己愉快的事情,在写程序时引发自己的潜能。同时生活中有不顺苦处情的时候,只管即便减少编码,防止这种心情潜在的影响自己对编码的意见。熬夜的问题:有不少人表示自己做不到,或身体弗成。实在,都是对自己哀求不足(当然,不可避免有些人确实会受身体成分限定)。码品如人品:我以前是一个邋遢的人,但是自从我刻意的去规范自己的编码风格后,我自己也变得不那么邋遢了,同时改变他的代码风格,也会潜移默化的改变他处世风格。分享会迎来进步和尊重:乐于分享是非常主要的。由于一次分享过程,收益最大的常日不是听的人,而是讲的人。我翻译了很多文档,录制过视频教程,这背后最大的受益者实在是我自己。并且除了自己知识上的收成,分享者还能得到更多人的尊重。实践与理论孰轻孰重:实践决定你能不能走路,理论决定你能走多远。以上内容希望帮助到大家,很多PHPer在进阶的时候总会碰着一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、做事器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微做事、Nginx等多个知识点高等进阶干货须要的可以免费分享给大家,须要的可以点击粉丝福利领取。
喜好我的文章就关注我吧,持续更新!
!
!