订阅业界RSS CSDN首页> 业界

专访雷果国:从1.5K到18K 一个程序员的5年成长之路

发表于2013-05-15 07:17| 次阅读| 来源CSDN| 0 条评论| 作者张勇

摘要:上段时间CSDN博客上流传了一篇比较励志的博文,讲述了一个程序员从基础薄弱到入职心仪公司的5年成长经历,为了给那些待毕业或已毕业但对未来仍很迷茫的朋友指引前行的方向,CSDN专访了这篇博文的作者。

PHP是最易学的语言,但难点也是这——简单易学难精通

CSDN:一开始学Java为什么会转到前端?后来又为什么从前端跑去做PHP?另外,在Java和PHP间,为何最终选择了PHP?你在这个转变过程中有没有遇到什么坎?

雷果国:Java到前端,以及前端到PHP的转型,都是工作的需要。

在我刚开始学习编程的时候,有一个长期目标是做程序员,有一个短期目标是做好Java编程,当我第一次换工作时,请假来北京找工作,3天时间并没有找到愿意接纳我的公司,所以我退而求其次,以前端开发工程师的身份进入到了一家创业游戏公司。在这里,我修正了短期目标做好前端开发。后来,我接触到了PHP,而此时已经做了一段时间前端,我觉得做前端没有一些艺术细胞很难做到很好,而我是理性思维更多的人,所以我开始学习PHP。这次,我又修正了短期目标做好php编程。

在PHP和Java之间的选择,是因为PHP的完全开源,有任何问题,我都能以比较透明的技术手段追踪到根源。

其实这也是一个职业规划的问题,我们无法预估十年乃至二十年后自己的兴趣和能力,只能按照自己当前的兴趣和喜好程度,定出长期规划和短期规划,并根据发展的情况做出调整,应该说,只要你把职业规划当做一件事情来做,那目标肯定会越来越稳定。

转到前端时,困难比较明显,我是计算机专业,程序写的再好,做前端没有艺术感还是比较困难。而到PHP的转型,比较困难的就是java语法比较严格,到了一个松散的语法环境中略有不适,不过这一点相对比较好克服,严格要求自己就好。

CSDN:在百度做PHP方面的开发,新公司在技术或文化上哪里让你感触最深?另外工作这么长时间,你现在如何看待实践和理论这两者关系?

雷果国:到百度之后,同事平均素质明显高于以前的公司,而且百度的文化执行的很好,在一个这么大的公司,却明显能感觉到身边的人都在执行“简单可依赖,具有狼性”的文化。

技术方面的感触,我就说说敏捷开发吧:我是在进入百度后才接触到敏捷开发的,满打满算,才40天时间,但这种开发模式真的对我冲击很大,它改变了我一个固有的看法——大公司专人做专事、流程化安全而缓慢。

在敏捷的团队中,大家更多的是强调团队的产出,弱化个人能力对团队的影响力,让团队成为一个原子性的整体。对工作量,进度的估算都不再按照个人进行,而是按照团队为单位估算,同时强调弱化角色分工,减小团队对个人的依赖性。

我觉得,站在项目的角度,这一切简直太美妙了:

  1. 进度预估的风险:过去以成员为单位预估,问题是难于估算,并且准确度低,现在以团队为单位估算,成员间的误差是有互补性的,提高了准确度。
  2. 人力风险:角色的弱化,大家都可以根据兴趣或团队需要做一些其他方面的工作,这使得每个团队成员都能放宽眼界,提升综合能力,另一方面,单个成员请假等特殊状况的风险也可有其他成员互补,降低产生团队人力瓶颈的风险。
  3. 质量风险:持续集成,持续测试,这使得每一次发布都是经过集成后测试的,降低了产品质量方面的风险。
  4. 需求变更风险:敏捷要求快速迭代,这就使得我们在迭代计划的时候,只安排少量高优先级的开发任务,因此,对低优先级的开发任务我们不会花过多时间关注,当需求变更时,多数情况都只是从需求池中将尚未细化的需求拿走,而很少会影响我们已经详细规划并进入迭代计划的需求。

当然,站在个人的角度,这其实提出了更大的挑战,每个团队成员需要对项目整体负责,需要掌握更多的技能。虽然只接触了40天,但敏捷开发带给我的感想是很深刻的,我觉得互联网公司特别需要敏捷开发,因为它的目标是快速发布、拥抱变化和降低风险,这非常切合互联网产品的特点。

如果没有实践,就不会有产出(专门搞理论的科学家,也是要经过实验验证理论的),但是如果没有理论,就只能重复性的实践,很难提升产出价值。所以,我认为实践和理论并没有孰轻孰重的关系,两者相辅相成,缺一不可。

CSDN:你比较擅长PHP,能不能就你学习和工作经验与大家分享下PHP学习如何开始和深入?有没有什么窍门?另外,PHP学习有什么难点?如何解决这些难点?

雷果国:关于语言的学习,每个人有不同的方法,我就说说自己的学习过程:

在学习PHP之前,我有3种语言的经验,所以就随便找了本入门书籍,花一周时间,看看语法和函数库就上手做事情了。对PHP了解的第一次进阶,是阅读PHP手册,PHP的手册非常棒,组织结构清晰,讲解详细,内容涵盖面非常广,认真读一遍,收获非常大。

接下来是两个方向:工程设计和底层实现。工程设计方面,主要是找一些设计模式、持续集成和开发方法方面的书籍,广泛的阅读,并尝试在实际应用中去领悟书中所讲的内容。底层实现方面,主要就是先去了解操作系统和网络等一些底层的知识,掌握C语言,然后去阅读PHP的源代码,看看PHP怎么运转。

众所周知,PHP是最易学的语言。但我觉得这就是PHP最大的难点——简单易学难精通。这方面,我认为要克服的主要还是心理因素,千万不能有“已经学会PHP”的想法。另外,PHP语法灵活,很难把握到底该怎样去写,这方面需要量的积累以及不断的思考。还有一点,PHP从内核的设计上,比较强调自由的扩展,所以对PHP内核的了解也很重要,这一点难度也很大,需要大量的基础知识积累,要克服也只有玩命的学了。

CSDN:你是什么时候开始接触CSDN的?它对你学习和工作都带来哪些影响?另外,你对CSDN有什么建议和期待吗?

雷果国:我大概是2008年接触CSDN的,到现在也5年多时间了,起初它是我求知的主要平台,后来它是我分享的主要平台。一直以来,CSDN上的大牛们都是我奋斗的目标,当我低迷的时候,我就会想,或许有一天我也能成为那样的大牛。

也许是我最近两年逐渐转向博客,BBS这边光顾的少,目前对CSDN的感觉是在媒体方面的力度比社区方面大。从技术人员的角度来看,当然是希望CSDN这样的大平台更多一些社区特性,能够刺激国内技术人员的交流和成长。

写在最后:

在与雷果国的交流中,他还和我分享了一些总结,记者觉得这些分享蛮有价值,虽然有的点或许会与专访内容重复,但丝毫不影响其中传递出来的另外一种心态和观念,有心的朋友可以看下。

内容摘录如下:

心态上:我开始学习编程的时候,已经大三第二学期了,当时有自己的质疑,有周围人的质疑,"现在学还能来得及吗?",对于跟我一样,在大学的最初几年已经荒废的同学来说,这个心态的调整很重要,就是坚信自己能行。

  • 期望值:不少同学(包括那时的我),在刚毕业的时候,觉得自己给老师做过项目,就感觉自己找工作会很容易,导致对自己期望过高。其实,就我自己的发展而言,如果不是这几年恶补基础理论,肯定不会走进自己梦想的企业。
  • 目标定位的问题。我觉得很多大学生甚至毕业一两年都找不到自己的人生定位。我自己在刚开始学习编程的时候,已经有了一个目标定位,就是做程序员,这个目标定位非常符合我的兴趣,所以我可以5年间丝毫不改变这个目标定位。
  • 态度上:分三个方面来讲,一方面是要付出很多努力;另一方面是不能认为自己已经付出了很多努力,就要求短期回报,而是向着长远目标看齐,宁肯放弃一些短期回报;还有一个方面就是持之以恒的坚持前两点。
  • 方法上:坚持读英文,坚持读源代码,碰到问题就死磕,我在刚学了半年的时候,在没有网络的条件下,碰到一个问题靠跟踪源代码,花了7,8个小时才找到一个异常的根源。
  • 情绪培养上:要学会管理自己的情绪。可以刻意找一些让自己兴奋的事情,在写程序时激发自己的潜能。同时生活中有不顺心事情的时候,尽量减少编码,防止这种心情潜在的影响自己对编码的看法。
  • 熬夜的问题:有不少人表示自己做不到,或身体不行。其实,都是对自己要求不够(当然,不可避免有些人确实会受身体因素限制)。
  • 码品如人品:我以前是一个邋遢的人,但是自从我刻意的去规范自己的编码风格后,我自己也变得不那么邋遢了,同时改变他的代码风格,也会潜移默化的改变他处世风格。
  • 分享会迎来进步和尊重:乐于分享是非常重要的。因为一次分享过程,收益最大的通常不是听的人,而是讲的人。我翻译了很多文档,录制过视频教程,这背后最大的受益者其实是我自己。并且除了自己知识上的收获,分享者还能得到更多人的尊重。
  • 实践与理论孰轻孰重:实践决定你能不能走路,理论决定你能走多远。(文/张勇 责编/魏兵)

若想获悉雷果国更多动态,请关注:

个人博客:请点此进入

社区之星访谈系列文章

专访邓凡平:Android开发路上的快速学习之道

专访阿朱:企业信息化的革命前夜

更多精彩内容,请点击社区之星查看。

本文为CSDN原创,未经允许不得转载。如需转载请联系market@csdn.net。

0
0