博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android进阶!关于Android开发的面试经验总结,内含福利
阅读量:4154 次
发布时间:2019-05-25

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

背景

惯例,先简单陈述一下自己的,91年生人,164年三本毕业后在深圳工作,末流小公司,工资13k,无房,无车,无户口。

那时候感觉生活也还行,父母有退休金,我基本上不用太操心,女朋友在一起很久了,很体贴,没有怎么要求我。

本来生活就这样一帆风顺下去我就满足了,但是去年初,女朋友家里出了一些事情,一点积蓄全给她了,后面疫情来了,家里开始催婚了,我感觉到了压力。

目前的工资无法满足生活,虽然这些年来有一点点的提升,但是,房价物价涨的更快,于是我决定跳槽。

从去年年底开始瞎投简历,回顾了一下,一共投了33份简历吧,只有3家企业感兴趣,还0家约面试。

(一开始还非常悲伤,后面……后面就习惯了)

接着就厮混了一阵子,就忽然间意识到不管是经济的寒冬,还是我的寒冬,都来了。

一.你应该承担怎么的责任

这是专业和不专业的分水岭。对于一般的程序员来说,责任就是及时、高质量的完成任务;对于 一个领导者来说,其责任就是统领全组,合理安排任务,让组员各司其职。这里包括3点:

  • 承担合适的责任。**选择自己能力范围内、自己喜欢做的。**一旦选择了工作,请承担完成的责任;
  • 学会说不。经常看到,产品经理或者领导会催促在极短的时间内完成任务,而程序员这个时候总是欲拒还休,说我来试试吧。专业的程序员对于任务有靠谱的预判和掌控力。当完成不了的时候,一定要说不。否则既是对自己不负责任,也是对他人不负责任。
  • 应对最坏的情况。程序员最悲催的莫过于搞不定任务,这个时候一定不要推卸责任。这时候最重要的是给出一个切实可行的补救方案,最好有一个完成任务的时间点。老板不在乎你为什么完不成,在乎的是究竟怎样能完成。
    image.png

二.代码的质量

  • 没有Bug,每一段代码都要有相应测试。很多人不写测试,那是因为他们抱着侥幸心理觉得自己代码没问题,同时写测试又很浪费时间。实际上保证代码质量的第一要素就是测试,测试可以让你检测不同输入所产生的输出,有时候甚至可以推动你去修改开发代码以提高质量。
  • 可读性要高,让别人看懂理解非常的重要。
  • 可扩展性和解耦性。最好的代码不仅针对当前特殊的情况,还可以应对其他情况;以后即使对现有的代码进行大量修改,也不应该影响其他模块。

三.敲代码所需要的时间长短

一个专业的程序员一周的花在计算机上的时间应该为每周60小时。最基本的40小时,要花在工作中。剩下的20小时,要花在提高自己身上。提高可以是多种多样的:读博客、做项目、看文档、上公开课。

有人说没时间,我们来算一笔账。一周有168个小时,假设你一天睡8小时,吃喝拉撒2小时,这样你还剩 168 - (8 + 2) x 7 = 98小时。然后你花在代码上60个小时,你还剩 98 - 60 = 38小时。你完全可以用20个小时陪伴家人(我知道很多人没有成家),再用10个小时与朋友聚会出游,就算这样,你也还有8个小时可以自由支配。

之所以要在代码上花费这么长时间,是因为软件这一行这一行变化太快了:乔布斯逝世才5年,Google已经声称移动时代已经过去,现在是人工智能时代;Objective-C还没火几年,转眼Swift已经出到了第3个版本;Html 5刚刚落寞,Facebook又推出了React Native试图整合Android和iOS两个平台。。。技术的进步,总是让程序员有太多的东西要去学习。

image.png

三.有自己精通的专属领域

无论是那个领域,都有自己的一套架构体系。作为一名专业的程序员,我觉得应该至少对自己领域所有的知识都有涉猎了解;对于核心的部分,则要做到烂熟于心的程度。

之前看过一篇文章,是说新技术又新又酷,鼓励大家快来学啊。**学习新技术的原因永远不是因为它新、它潮,而是因为它可以更好的解决当前问题。**对于深度和广度两个维度谁先谁后的问题,我个人永远支持深度优先。只有本专业弄通的情况下,才能融会贯通。Andrew Ng出名是因为他在Machine Learning的专长;提到John Carmack,大家都会想到游戏编程狂人;谈起乔布斯,大家都绕不开iPhone。专业程序员能做普通程序员不能做的,这才叫专业。

###四.拥有自己独特的思考问题的方式

很多程序员平常写代码只在乎能快速解决问题,不在乎选择解决问题的方法和原因,这是典型的不知其所以然。专业的程序员,理应对每一个问题、每一步设计都有自己的理解
所以,在我们做开发的过程中,不过遇到什么样子的问题,我们应该注重考虑我们如何提升自己的技术内功,用什么样子的方法最完美的解决问题,而不是只求解决问题的速度。提升技术内功才是关键所在

五.团队沟通

绝大多数程序员都是:一壶水一盒烟一行代码敲一天。

只想写代码,做个安安静静的美男子,这当然无可厚非。但是你真的确定,正在在做的东西是老板希望、客户期待的吗?作为一名程序员,理解自己应该做什么、达到什么效果、同时让老板知道什么能够实现、什么实现不了,才是专业的表现。
举个工作的实例:
部门经理:我们组A这个项目要赶紧干完,老大盯着我们。
程序员甲:好,那我赶紧做。
程序员乙:好。但能问一下这个项目为什么老大盯着?做了对整个组或者项目有什么好处?A项目的所有功能都要完成吗?有没有具体的截止日期?

上面我们可以看到,也许程序员甲和乙技术能力相同,但是甲更偏向于兢兢业业、努力干活的老黄牛程序员,他写出的代码很有可能是他认为非常好的代码;而乙则更擅长沟通,更有大局观的程序员,他写出的代码就更有可能被大家都认可。他们的专业程度高下立判。

最后

分享一份工作1到5年以上的Android程序员架构进阶学习路线体系,希望能对那些还在从事Android开发却还不知道如何去提升自己的,还处于迷茫的朋友!

  • 阿里P7级Android架构师技术脑图;查漏补缺,体系化深入学习提升()

  • **全套体系化高级架构视频;**七大主流技术模块,视频+源码+笔记

需要架构学习笔记导图的可以

群内有许多技术大牛,高手如云,有任何问题,欢迎广大网友一起来交流,群内还不定期免费分享高阶Android学习视频资料和面试资料包~

F)

群内有许多技术大牛,高手如云,有任何问题,欢迎广大网友一起来交流,群内还不定期免费分享高阶Android学习视频资料和面试资料包~

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

你可能感兴趣的文章
springmvc----demo2---a->b--bai
查看>>
阿里编码规范约定禁止使用枚举作为返回值,了解一下内部原因
查看>>
开发资源索引
查看>>
网络地址转换NAT
查看>>
CentOS自动同步时间
查看>>
数据结构习题——第二章 线性表
查看>>
iredmail安装脚本分析(一)---iRedmail.sh
查看>>
Game of Credit Cards(贪心+思维)
查看>>
Windows中的Timer
查看>>
JDBC
查看>>
金融类软件测试
查看>>
mysql 查询第几行到第几行记录 查询最后一行和第一行记录 查询前几行和后几行记录...
查看>>
win10 硬盘更换方法
查看>>
RBAC权限管理
查看>>
【转】jsp 页面 按回车键 触发事件
查看>>
java
查看>>
js对div取值与赋值
查看>>
python用wheel离线安装第三方模块
查看>>
DB2系统内置——db2日期和时间常用汇总
查看>>
javascript删除JSON元素
查看>>