先来两句话:
一个人可以走的很快,一群人可以走得更远
靠谱的人都是主动发现问题,然后解决问题
谈找工作与面试
我总结了一下,一般以下三种人,能够找到比较好的工作:
学霸级人物,主要表现:计算机理论基础相当扎实,算法、操作系统、编译原理等基础理论无不精通,通过校招的几轮笔试、面试,一路过关斩将,拿到offer,这种人多半在211,985等名牌院校,各大名企也会去这些学校安排校招、笔试;这类人物,企业比较喜欢,因为在校期间就表现出了较强的学习能力,到企业中表现不错的概率也比较大;
网络知名博主,学生期间就大量写博文,可读性较强,技术性也不错,有较大的访问量,典型代表人物:July;
出色的实习经验和项目经验,这类人,也是企业比较喜欢的,招过来直接就能用,因为本来企业招人就是做项目;
还有就是同时具备以上2~3种的人,这种人基本是气死人的类型,还让不让同龄人活了。
找到自己的定位,分析自己的优势
那么,我们来根据上面4中分类,来找准自己的定位;
我对自己的定位是第3种。
那么你在面试求职时,就要重点体现自己的优势,也就是项目经验。
有的同学,有比较出色的项目经验,但是会在意自己算法、操作系统等理论比较差,会在面试的时候不自信。那么我的办法是:
简历、面试时重点强调自己优势,引导面试官,其实面试的人一般也是工程师,喜欢跟面试者讨论技术,如果你们的讨论感觉不错,那么你通过可能性较大;
优先培养自己的优势,�逐渐弥补自己的短板;
精力有限,忌讳多线开工,又想有实习经验,又想精通基础计算机理论,那么导致的结果,是各个方面都没有亮点。在求职、面试时缺少亮点打动面试官;
如果你在简历上,写上了项目实习经验,又表现出熟悉Java/Javascript,算法等等啊,因为你在两个方面都缺少亮点,面试官跟你想深入讨论项目时,你就说自己不会了,面试官考你一下比较难的算法时,你又不会了。给人的感觉很不好。
好哒,本人以血泪的亲身经历来告诉你们当年我如何Too young too simple.
面试第一家公司,面了很多基本计算机理论,也面了前端,那年前端是稀缺物种,甚至前端这个词还没火。最后boss,问我想干前端还是干Python 工程师。我有点不知道该选择那个方向;
面试粉笔网,现在的猿题库、小猿搜题,核心工程师和技术总监就是当年面试我的那个几个人,第一个面我的就是现在的国内IOS开发大牛,唐巧。当初面的时候就是因为简历上没有重点,记得当时被面了算法、Android、Java服务器端。被面了好多个方向,记得有服务器端、Android、前端;每个方向都表现一般,没有亮点,结果被拒了;
面试用友研究院,没错给我发邮件是MacTalk的作者:池建强,现在他是锤子科技的云平台的技术总监了,当年还没有MacTalk。那边在招Java、Android、IOS、Python.我也没特别表现出想做哪个方向...然后就没安排面试...多么痛的领悟
好啦,写了这么多,希望同学们清楚分析自己的定位,培养自己的优势。
如何在团队中快速成长
既然是靠谱的项目经验,项目一般是靠团队协作。有产品、设计师、前端、后端、移动端、技术总监大家的通力协作。
首先:
改变态度,由被动变为主动,改变在学校的坏习惯
我们读书时,一切都由学校、老师安排。我们念什么书,用什么教材,考试考什么内容,完成什么作业。你需要的只是等学校、老师把要求规定好,同学们只要完成,OK,你就是一个出色的学生。但在项目中工作不是。
所有在牛A与牛C之间的产品,都是主动发现问题,然后解决了生活中的痛点
你可以列举近几年的手机、APP等,比如IPhone,Uber,微信。
在它们横空出世之前,没有人帮你定义IPhone,Uber,微信等应该长成什么样子。
那在工作中如何主动呢,
- 主动质疑自己的工作,是否可以有更好的方案,是否可以效率更高;
- 主动去寻找能承担、改进的工作,不是被动等着上级分发“作业”;
- 主动让上级、同事了解你的工作情况和进度;
- 主动了解团队其他人的工作情况和进度,而不是偏安一隅,只顾好自己的事情。
- 主动发现团队中的痛点,如:信息沟通不及时,沟通效率底下,某个解决方案可以有更好的方法?而不仅仅满足于完成工作就好。
- 靠谱的人都是主动发现问题,然后解决问题
学会沟通
沟通,很多公司效率低下重点就体现在沟通上。
沟通的主要影响体现在:
因为沟通是很耗费精力的。它需要让至少两个人放下手上的工作来共同解决一个问题。等于花费了更多的人力;
沟通要打断工作,当工程师再回到自己原来的工作时,需要较长时间的思考来想起来上下文,再接着工作;
会议有毒,会议意味着更多的人要打断工作,一起来沟通,我每次提议开会,都特别慎重,因为会议的时间成本较大。
我自己总结了一些沟通的原则:
- 沟通不是什么事都要说,进行必要的沟通,避免不必要的沟通;
- 有时候文字沟通好过语言沟通,因为在用文字描述时,你的思考更加完善;别人也更容易把握你的意图;
- 不是什么事都需要别人立即回复,我经常有很多事需要别人回复,但不是立即回复,我都是写邮件,告诉别人,需要什么时间给我回复,这样既没有打断别人工作,我在等待回复的时间,也可以做别的事情。
- 有些事的细节需要讨论,我一般在午饭、晚饭时跟对方一起吃饭的时候,讨论、确认。
自己在以前一篇文章里,写过一些沟通的反思,也可参考:链接
深度合作,培养团队默契
我先举一个页面的例子:
这是将要开发的APP的一个首页,需要前端、服务器端、移动端,几个人的协作,才能完成这个效果。主要工作有:
- 前端实现这个页面的效果;
- 服务器端给前端提供数据;
- 移动端需要跟前端的界面进行一些交互事件,点击最中间的广告跳转到其他界面等等;
- 还需要三个人协作的部分,比如,现在界面代码需要更新啦,在不更新客户端的情况下更新这个界面,移动端需要下载到新的前端代码,替换本地的前端代码,然后界面更新。这可能就需要前端、移动端、服务器端三个人来共同完成。
这个工作显然交给一个人完成是效率最高的,因为只有一个人的时候,是没有沟通障碍的,但是一个人的时间和精力是有限的,所以需要团队协作。
当我们的团队看到一个方案,想要实现它时,
每个人都知道自己该怎么做,该怎么配合别人去做,那么几个人合作无间,效率是很可观的
无论在哪个团队,默契是需要培养。团队沟通,讨论实现方案,每一次代码改进,每次方案讨论,每个人都值得切身地去体会,去反思:
- 这次的实现方案是否最佳,是否有改进的方案;
- 自己是否没拖团队后腿?自己如何进步,来促进团队配置更佳;
- 团队在沟通和技术协作上,一定有改进的空间,是通过改变使用的技术框架还是其他工具?