博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给Android程序员的一些面试建议,已开源
阅读量:4151 次
发布时间:2019-05-25

本文共 2088 字,大约阅读时间需要 6 分钟。

最近跟我的一些读者交流,有一位读者的经历让我记忆深刻:

“有一次和大学同学聚会,和几个在BAT的同学聊了聊技术,发现自己在创业公司这几年,完全是吃老本的状态,没有什么机会精进技术,同样是工作了三年,和同学的差距越来越大”

我继续问他,他说真正让他受打击的是这个月的一次面试。

“面的是一个大厂,面试官问了很多问题,一大半的问题我都是一知半解,回答上来问题也是特没底。

大概回顾了这场面试:上来先是问了Java基础知识,自定义view,算法等等,这部分我还算准备的充分。第二部分开始复杂了,主要是底层、NDK、设计模式、调优方面的问题,像是如何检测一段代码的执行时间?滑动不流畅怎么处理??

我之前工作上经历的少,加上自己技术储备浅薄,到这部分时我就感觉自己快凉了。面试到最后,问了mvvm架构相关的,当时已经懵了,我只记得一个问题:让你做一个项目,怎么选择mvvm架构和MVP架构?我。。。。“

面完后他说,觉得自己在技术上欠了很多债,最惨的是,在这之前他根本不知道。

听了这位读者的经历,于是有了今天这篇文章。很多工作了1-3年的Android人,想够一够 3w月薪的岗位,但在底层技术上却有很大的问题:

毕业几年,表面上用过很多技术,但都没能深入学习,一年的工作经验,干了好几年。结果就是遇到实际问题时无从下手,最终还是走着普通工程师的道路,和高手的距离越来越远。

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最后送福利了,现在关注我并且加入群聊可以获取包含源码解析,自定义View,动画实现,架构分享等。

内容难度适中,篇幅精炼,每天只需花上十几分钟阅读即可。
大家可以跟我一起探讨,欢迎加群探讨,有flutter—底层开发—性能优化—移动架构—资深UI工程师 —NDK相关专业人员和视频教学资料,还有更多面试题等你来拿
录播视频图.png

/DSkNLaERkbnFoS0ZF)**

[外链图片转存中…(img-nCL3K4T9-1619489643312)]

转载地址:http://djoti.baihongyu.com/

你可能感兴趣的文章
db db2_monitorTool IBM Rational Performace Tester
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
Objective-C 基础入门(一)
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
VUe+webpack构建单页router应用(一)
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
Mysql复制表以及复制数据库
查看>>
Linux分区方案
查看>>
如何使用 systemd 中的定时器
查看>>
linux进程监控和自动重启的简单实现
查看>>