编辑|小智
戳「阅读原文」,获得短信提醒,不错过下次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,可以给自己找到一个更宽广的社交范围。这样生活更加与众不同。
与产品经理共同打造一款成功的产品互联网公司主要考虑的第一个因素是用户,不管你做什么,互联网最