程序员

首页 » 常识 » 问答 » 阿里P10毕玄如何从生物系学生,到阿里
TUhjnbcbe - 2024/5/10 18:11:00
治疗白癜风的著名专家 https://m.39.net/news/a_5941636.html

如果你在网上搜索:中国都有哪些大神级程序员?

跳出的无数个答案中,一定有毕玄的姓名——阿里基础设施负责人P10,也是阿里程序员中的Java大牛。

能在阿里这种众神云集的地方脱颖而出,一定是科班出身履历辉煌的吧!

其实不然,毕玄大学读的是生物专业,甚至在在上大学前完全没接触过计算机。

据他所说,对计算机感兴趣的契机源于大学军训的一次经历:他第一次走进机房的时候,别人问:“你是要玩windows,还是dos?”他却完全的一抹黑,不自觉地跟着机房一堆人练习盲打,直至军训完,对计算机就这么产生了浓厚的兴趣。

你可能又要问了:从小白到爱好者有什么难的,我要知道的是他怎么就成大牛了!

其实这些最终能成为大牛的人,都勇于跨出从毫无专业基础的小白到职业程序员这一步。他在分享会中也说过:

“在有兴趣的基础上,从业余程序员跨越到成为职业程序员,真的不是件难事!”

从业余程序员到职业程序员

毕玄因为大学读的是生物系,缺少了专业的训练,这个使得他在技术能力上其实欠缺的很多。

他自述,程序员刚入行时,最重要的是把自己培养成职业的程序员。通常来说,业余或半职业的程序员,多数是1个人,或者很小的一个团队一起开发,使得在开发流程、协作工具(例如jira、cvs/svn/git等)、测试上通常会有很大的欠缺。

而职业的程序员在这方面则会专业很多,另外,职业的程序员做的系统都要运行较长的时间,所以在可维护性上会特别注意,一个运行10年的系统,和一个写来玩玩的系统显然是有非常大差别的。

编程能力的成长

作为程序员,最重要的能力始终是编程能力,编程能力首先要会用。

编程,首先都是从学习编程语言的基本知识学起的,不论是什么编程语言,有很多共同的基本知识,例如怎么写第一个HelloWorld、if/while/for、变量等。

因此刚刚开始学一门编程语言的时候,还是就看看编程语言自己的一些文档就好,而不要上来就去看一些高阶的书。

除了看文档以外,编程是个超级实践的活,所以一定要多写代码,只有这样才能真正熟练起来,因为很多面试官在面试的时候会让面试者手写代码,这是很重要的,这个过程是非常容易判断写代码的熟悉程度的。

编程能力初级这个阶段对于大部分程序员来说都不会是问题,勤学苦练,是这个阶段的核心。

其次,编程能力要会查和避免问题,除了初级要掌握的会熟练的使用编程语言去解决问题外,后面首先是提升查问题的能力。

在写代码的过程中,出问题是非常正常的,怎么去有效且高效的排查问题,是程序员群体中通常能感受到的大家在编程能力上最大的差距,解决问题能力强的基本很容易在程序员群体里得到很高的认可。

最后,编程能力要能懂高级API和原理,API对真正的理解一门编程语言是至关重要的,在学习高级API的过程中,你会越来越明白懂编程语言的运行原理,这是非常重要的。

因此,后面的阶段开始学习Java的编译机制、内存管理、线程机制等,对于非科班出身的人而言,会因缺乏基础而难很多,但这些更原理性的东西学会了后,对自己的编程能力会有质的提升,包括以后学习其他编程语言的能力。

系统设计能力的成长

通常一个编程能力不错的程序员,在一定阶段后就会开始承担一个模块的工作,进而承担一个子系统、系统、跨多领域的更大系统等。

系统设计能力的成长,最重要的一是先在一两个技术领域做到专业,然后尽量扩大自己的知识广度,例如除了自己的代码部分外,还应该知道具体是怎么部署的,部署到哪去了,部署的环境具体是怎么样的,和整个系统的关系是什么样的。

有时候,在加入基础设施团队后才更加明白,在软件上做的每一个决策,都会导致基础设施上巨大的硬件、网络或机房的投入。

其实有可能只需要在软件上做些调整就可以避免的,做做研发、做做运维可能是比较好的把知识广度扩大的方法。

目前由于目前IT技术更新速度还是很快的,程序员这个行当是特别需要学习能力的,只有对程序员这个职业真正的充满兴趣,保持自驱,才有可能在这个职业上做好,否则的话是很容易淘汰的。

*版权声明:文章和图片素材均来自公开网络资源,如有侵权,请联系我们删除或授权事宜!

1
查看完整版本: 阿里P10毕玄如何从生物系学生,到阿里