算法太TM重要了!字节跳动Android研发岗这些知识点内部泄露出来了,讲的明明白白!

最近我在接受采访时被问到我关于成为一名伟大的程序员见解。这是一个有趣的问题,我认为我们都可以是伟大的程序员,无论我们的天赋如何,如果我们遵循一些规则的话——我相信——这应该是常识。实际上,这些规则并不只适用于编程领域,也适合任何专业。

当然,这些要点中的所有内容并不都是完全正儿八经的,有些事情只是我的看法,你的情况可能会有所不同,所以如果出现矛盾的话,不要耿耿于怀。

image.png

第一:首先弄清楚自己岗位晋升(转型)路线

大多数程序员的晋升路径无非以下几种:

技术型:初级工程师->中级工程师->高级工程师->架构师(技术专家)->技术总监->CTO

管理型:工程师->项目组长->项目经理->项目总监->技术总监->CTO

交叉型:初级工程师->中级工程师->项目经理->技术总监->CTO(此路线技术和管理交叉进行,每个阶段做的事情不固定)

转行型:初级工程师->转行产品、设计、销售、运营等

第二:跳出自己的舒适区,对自己喜欢的事情投入100%的热情

很多程序员都会下意识的标榜自己是一名c++程序员,java程序员,ios开发,安卓开发,php程序员等等,但是他们往往忽略了一个事实,就是你首先是一名程序员,有意无意的将自己绑定在某个领域或者某一个语言上是非常危险的事情。

做某个事情的时候,投入100%的热情,并持之以恒,我知道这是非常难的事情,也正因为如此,技术专家,资深大牛才那么稀缺。

第三:站在巨人的肩膀上,适当说“不”

另外一点提高自己瓶颈的方法就是借鉴前人的代码,程序员这个行业,并不一定非要什么都不看直接写,也许你在有基础的情况下,直接开始写,遇到问题在查找问题会来的更加容易上手。

但是正因为这样,你写出来的代码往往质量非常差,优化性不够,语法啰嗦,不够优雅,因此我们要学会多从其他人的代码中汲取优点,多逛逛开源社区,针对自己感兴趣的方向去学习别人的代码,也是进步的一种方法。

在团队中,经常会遇到需求方给你提出某个需求,也许你觉得这个需求不合理,但是还是碍于同事的面子抽时间给他完成这个需求,这个时候你在同事的眼里也许就是负责的好同事,但是也许你遇到的只是一个不动脑子,或者压根只是抱着试一试态度的产品经理,没有经过完整的调研,只是拍拍脑袋觉得用户可能会喜欢这个产品,没有做出需求调研就话了一个prd给你扔了过来,如果项目表现不错,你的努力受到了大家的认可,那么皆大欢喜,但是如果这个项目最后还是失败了。那么你付出的努力也会白白浪费。

在需求方提出需求的时候,你一定要问他,做这个功能的意义是什么? 你有数据做出支撑么? 这个功能对我们现有的产品会有什么影响以及正面作用? 没有数据支撑的需求一律说不!

第四:搞好人际关系,提高沟通能力

学会处理人际关系,以及表达自我想法,沟通能力,也是程序员需要掌握的一件事情,因为你的上司看重你的表现的,往往不是 你实现某个功能的细枝末节,而是你对于整个项目的把控,以及沟通,他需要的只是结果,而不是过程,因此往往沟通能力强的资 深程序员,最后都会往高层去发展,慢慢转为管理层,而如果你只是想要安静的写代码,不想被这些无聊的事情干扰的话,那么你可以忽略。

这个行业很多资深大牛往往都是沟通能力强,技术高深的体现,随着年代发展,团队式工作已经是主流,你无法一个人去单一的实现某个任务或者功能。

团队式开发效率,项目进度,复杂度,以及成本控制都比单一人员要好,而团队式协作就表明,你必须要有最基本的沟通能力。

最后

希望大家能有一个好心态,想进什么样的公司要想清楚,并不一定是大公司,我选的也不是特大厂。当然如果你不知道选或是没有规划,那就选大公司!希望我们能先选好想去的公司再投或内推,而不是有一个公司要我我就去!还有就是不要害怕,也不要有压力,平常心对待就行,但准备要充足。最后希望大家都能拿到一份满意的 offer !如果目前有一份工作也请好好珍惜好好努力,找工作其实挺累挺辛苦的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。可以点击GitHub免费获取

BC%81.md)

[外链图片转存中…(img-KmAIAw45-1611629595623)]

猜你喜欢

转载自blog.csdn.net/m0_52308677/article/details/113175501