今天看到一句话——"如果想在世界上留下更多印记,那么就要养成记录的习惯"。所以就记下简书的处女作了吧,希望把这里变成自己经常记下一些东西的地方(以后努力做到每周更新两篇文章,内容包括互联网产品分析、生活感悟、读书笔记)。
进入正题。
这两周感觉好像很忙碌,却又发现并没有做多少事情:app写的很慢,进度还是在拖;每天的主要任务就是写app,书却看的很少,技术进步很小,以至于小组会都分享不出多少东西;面试的准备很不充分,腾讯一面就挂得很惨。这两天好不容易找到了一点以前写代码的感觉,感觉能够专注起来了,效率也可以慢慢提起来,不过这两天写麻烦的逻辑写的蛋疼了。大概还是因为整体代码架构不好,第一版写完之后必须马上用EventBus/MVP架构重构代码,现在这种架构写起来效率太低,代码也很容易变得丑陋。
今天的会议原本想翘掉好好撸代码,不过最终证明去开会还是有了不少收获,知道了大家最近都在干什么,也交流了不少面试经验。总的来说,每个人都有自己的事在做、也有自己的学习方向在进行,所以自己也得保持项目好好做、学习好好学,不然要落后啊!这两次会议谈到自己在做什么都说在做项目,别的就说不出来了,这种情况该停止了,学学大神白天写工作项目、晚上学习自己感兴趣的东西这种模式,不能光写代码而没有积累。
有关今晚谈到的面试经验,我印象深刻的方面主要有这些:
1.数据结构、算法基本是必考的,接下来半个月可能没有时间去完成『21天精通』这种程度了,但是把数据结构课的东西好好掌握了、实验好好做,然后把算法、算法导论、数据结构与算法分析都好好啃啃,再加上每天LeetCode的刷题,怎么样都能达到一个入门水平。像快排、插入排序、冒泡排序这几个算法肯定得了解得很清楚,代码随手写的程度;链表、ArrayList、HashMap等几个相关数据结构的原理以及一些操作得能搞定。这些面试考到的概率很大。
2.网络方面几乎也是必考,所以TCP/IP和http都需要去看看。这些平时写代码暂时还用不到,深层的原理也不用一下子就全部理解。但是理解这大致是个什么过程还是很有意思的,至少要能说出一次请求是怎么发送的、一次通信是怎么一个过程。这些可能得多看看书再做点题才能更好理解。
3.Android有个上线了的项目很重要,有这个给面试官展示会有一些加分,自己通过项目有一些总结当然最好。
4.JVM、内存管理、Looper、进程间通信机制(IBinder)这几个方面都可以考得很深,因此这些东西都得去好好了解并写点代码测试,刚好都是了解很少的部分。
5.开源库的理解基本也会考,比如EventBus跟广播的区别在哪里,以及可以去看看ION的实现原理作为一个学习。
6.能写出一个自己的控件库或者别的工具类库肯定是加分项,即使面试官不会看这个,对个人技能一定是大考验。等这三天产品写完了也就开始写自己的开源库。
7.技术之外的一些能力也很重要。比如涉及软件工程的一些能力、解决问题的思路等综合素质考察。这个短时间肯定陪养不了,只是到时别紧张正常发挥就行了,有些问题的回答可以多参考一下别人的面经。
已经很久没有做过一件很值得称道的事情了,那么现在该去努力做一件了。近一点的就是产品上线,当然能有怎样的反应又是另一回事,我只要把我作为程序员的工作做到最好。而另外一件,就是拿到阿里的Offer。已经挂了这么多家公司的面试,只剩阿里了,那么就好好准备、让自己的技术再次获得一个层次的提升,一定要拿下阿里的Offer!
打起十二分的精神去战斗!