在CTO眼里,什么样的程序员是更值得

作者|李汐  

    编辑|小智  

戳「阅读原文」,获得短信提醒,不错过下次InfoQ大咖说直播!

回复:核心,获取视频下载。

    平衡个人成长和公司效率  

我的个人经验来看,互联网公司分为两种:一种是独角兽公司,另一种是创业公司。当你在创业公司的时候,公司给你的title可能不是太得到市场的认可,这就要求你和公司一起成长,当公司成为这一行业里面的独角兽的时候,你也同时会得到市场的认可。公司的发展和工程师的个人成长的成长是相辅相成的。

从程序员的角度来想,个人考虑的大多数是如何涨工资,如何提高个人技能,或者获得一些资格认证,然后来证明自己的获得成长,一步步走向成功。

在公司层面来看,一是希望每个小伙伴都能成长地更快,这样做事的人感觉到成就感,人才自然而然就留下来。二是做事的效率和结果。一般公司也会经常组织进行技术分享会、内部交流探讨会,鼓励大家申请技术专利等,或者给予一些参加技术大会的门票福利,如QCon、ArchSummit等大会。这样小伙伴得到成长,提高效率把公司业务发展得更好。达到一个平衡,也是双方的共识。

    90后程序员  

其实最开始创业的时候,内心觉得80后会比90后更能拼,二次元沟通困难。轻松筹开始从校招之后,我们发现很多90后小伙伴挺能拼的,经常加班到很晚。做事情也很积极主动。

如果你是一个新手程序员或者是刚刚进入互联网行业不久的90后程序员,其实你不必担心,你只需要一步一步稳扎稳打地做。当你找不到方向的时候,你可以从网上找到权威的网站InfoQ或者是技术大会,你只需了解一些关键词,看看他们的方向,然后做深入研究。最重要的是花大量的时间在这上面,并且持续投入。最近有个很流行“一万个小时”的理论。就是你在这个很专业的领域持续投入一万个小时,刻意练习后你就能达到一个很成熟的程度,大约就是三年的时间你就可以成长起来。

当然80后做事稳重、更加成熟、经验丰富。他们会帮助这些90后小伙伴更快的成长起来,90后小伙伴也渴求得到指点。有的90后小伙伴也慢慢逐渐有了独立完成任务的能力,成为了团队的中坚力量。

    技术选型  

轻松筹前端框架有基于Vue、React、还有自己研发的一套已经开源的框架H5UI.IO,后端框架使用的开发语言是Golang,我们是在15年下半年使用Golang,之前使用的是PHP,年经历过一次高峰期,我们切换到能够扛高并发的Golang。PHP是CPU消耗型,所以当时用PHP成本非常高,还有语言的特性本身有一些局限,比如说要写一个连接池或者守护进程都很麻烦。

当时考虑Go语言的语言特性自身就支持协程,支持高并发,I/O消耗型,所以当时决定选型用Golang的时候,在比较大的并发和流量的页面,比如众筹的一个详情页面,然后发现用GoLang5台机器干了PHP用几十台机器干的活,机器还没有压力,所以试验了一段时间,发现Go语言比较好,当时我们用1.5就开始做了(这里指Go语言的版本号),现在Go语言都到1.9,已经比较成熟,很多创业公司从一开始创业就直接选择Golang。

我觉得产品初期或者创业公司初期,技术负责人选择自己最熟悉的语言是最好的语言,用PHP做东西快就用PHP,用Golang快就用Golang,因为项目初期可能更多要求的是这个赶快上线,每种编程语言都是需要你投入时间去深耕的,或多或少都会踩各种各样的坑,所以在技术选型上用哪一个语言,就是在你适合的时候选择合适的语言。

关于系统重构,如果你是一个负责任的人,你可以把旧的东西推倒重做,不建议为老代码填坑。如果想做好这个事情。初期可以先在一些边缘业务尝试,不用提前和产品、运营沟通新型技术,他们可能会觉得会影响到进度或者不稳定因素来阻止你。最好是等上线一段时间后,再开始跟非技术人员讲,或许他们并关心技术如何实现,只要结果好就行。关键是要保证好项目进度。做好备用方案,如果新架构执行失败,那就加班在原有的基础上完成新的任务。

    个人转型  

我觉得大龄程序员还接着干,是因为喜欢写程序这个事情。如果你现在不是因为喜欢代码而是在养老,那么可能就会逐渐失去竞争力。

不要因为最近哪个技术火就盲目选择,到底做设计、前端、后端、人工智能或者大数据,这都取决于你的个人因素。如果你是一个喜欢做一些看起来很酷的事情,那么做前端比较好,如果你是一个逻辑思维比较清楚而且有点内向,那么你适合做后端。这都完全取决于你个人。

对于不在互联网行业的同学,比如有数学或者统计学方面的功底,可以尝试转型做互联网大数据,对黑客方面有所研究的,可以转型做互联网安全方面。如果你有这样的机会,初期不要要求太高薪水,要耐得住寂寞,三年时间你就可以在这个行业站稳脚跟。

    公司方面  

程序员最熟悉的,可能在大多数互联网公司已经司空见惯,当然也有很多弹性工作时间,周末不加班的公司,公司从实际的角度来讲是以结果来衡量程序员的,所以不必追问中间过程环节,但是一些特殊项目或者重要时间节骨眼,公司也可能会要求。目的是为了把公司的运转效率提高。

程序员和架构师在创业公司没有分的那么清楚和严格,都得写代码,因为创业公司人比较少,有可能是看上你可以一个人顶10个人用,所以还得看创业公司为什么邀请你,看重你哪方便的个人能力。

    优秀程序员身上重要的特质  

一、聪明,大部分人都喜欢和更聪明的人一起工作,聪明人理解事情的程度、做事的方向、察言观色等方面都出色。

二、积极主动,不管是个人的生活态度还是工作态度,都是充满阳光的,甚至能给别人带来正能量的人。

三、责任感,如果公司网站出故障,不管是不是自己平时负责的,都能主动尝试先去解决问题。

四、完美主义,代码结构非常清晰,一旦决定做一个事情,会自始至终把这件事做到极致。当写完代码会再次review,而且会从别人角度来审视代码,自测也是一个非常重要的环节,完美主义者bug是很少的,在别人心中是一位“老司机”,对自己也要求非常严格。

    程序员也需要高情商  

情商高低标志一个人对别人关心的程度。讲述三个方面的情况:

    1、沟通协作  

做一个互联网产品,需要很多角色的齐力协作。现在已经不是一个能单打独斗的时代,对整个团队来说,你的口碑更好,别人也会更愿意和你合作。别人觉得你更靠谱,后面有合作也会主动来找你。就是俗称的“人缘好”。

如果遇到队友代码很烂,当着别人的面羞辱一番,可能一时痛快,后面可能所有队友也会对你有所距离和谨慎。好的方式是你可以一个产品升级的时候提出重构项目,之后对这个项目有了主动权,选择一些更优秀的人和一起协作。

    2、做事方式  

一些程序员不爱讲话,在自己的舒适区域埋头苦干,做一个事情也很少讲出来,是很吃亏的。既然已经辛辛苦苦把一个事情做了,至少总结或者记录下来,拿出点实际的结果数据或者事实,这样你在团队合作的结束后会给人留下很深的印象。

    3、技术管理  

成为一个好的技术管理者,特别是遇到一个问题,会去分析问题原因,找谁来解决问题,最后有人总结出问题的本质,避免再次发生。管理团队需要因人而异,找到一个合适的人来做这件事非常关键,如何引导和激励团队成员,需要具备良好的沟通能力,从别出拿过来的需求是否也理解透彻,不要把团队成员带到一个错误方向。

另外程序员可以参加一些meetup,可以给自己找到一个更宽广的社交范围。这样生活更加与众不同。

与产品经理共同打造一款成功的产品  

互联网公司主要考虑的第一个因素是用户,不管你做什么,互联网最


转载请注明:http://www.aierlanlan.com/tzrz/628.html