毕业的时候是专科学历,学历的专业是计算机网络,看着周围的同学一个个的回家或者去工作,所以急着找工作,第一份工作是测试工作,当时正好公司在做底层驱动,所以基本的测试也就是测试驱动,不过是移植linux下面的开源的程序,虽然什么也不懂,但是每天都是充实的,那段时间加强了c语言的编程,最后自己也用gtk编写了一个集成的测试开发环境,算是一个结尾,然后开始接触android,当时有一定的java编程能力,所以平时就编写android测试工具,开始了android的编程生涯,期间也测试过一个月的多媒体了解了多媒体的相关信息,到了6月份,用了一个月使用javaweb开发了一个广告机后台,之后就从测试转到开发的岗位,到现在也有两年的android开发经验了,其中维护一个客户端,同时衍生出多个客户端,涉及到音视频编解码,socket,逐渐从简单的使用android自带的组建到自己自定义编写组件,在这两年里大多时间就是修改bug,自己真正创新的没有什么,前一段时间跟以前的同事做直播播放器,学会了使用jsoup解析网页,反编译其他的程序,然后获取里面的数据,然后放在自己的程序里,这样也学会了使用dom,sax,json,http请求,有一次面试那家公司要做视频会议,所以就隔三差五看了一下xmpp,呆在这家公司从毕业到现在造成一个很大的问题就是信息的封闭,只是狭隘,所以我很赞同网上有人说不要在一家公司或者一个部门呆到3年以上,如果久了你基本上就会仅仅局限在一个行业里的某个小方向,所以面试有时候不一定是找到这份工作,也可以开阔一下视野,去了解现在的公司需要什么技术,当然找一些有技术含俩的公司。
对于开发android有人说很容易,对于这个观点有它的立足点就是如果你会java很好入门,上层应用开发你去买一本基础的android书籍,也就是十几章,看明白生命周期,就可以开发了,这个阶段就是初级开发人员的状态,对于高级开发人员,如果你看的招聘信息多的话,大多数要求三年以上,不能说工作年限就决定一切,但是经验确实需要时间来积累的,同样一个listview的使用不同的开发人员能写出不同的类型代码,这里的类型指的是代码规范,性能优化,所以说做了一年的android的开发人员千万不要出去说android我很熟悉,精通这个词在各个招聘信息里面基本上都会出现,为什么招聘android的时候你家会写上精通java基础,对于我这样的半路出家的人java基础还不如刚毕业从培训公司出来的人,所以我现在也在看java基础,还有多敲代码,不要多些代码,不要看着手里的想着锅里的,干了一段android又去学习iphone,wp开发,到最后不伦不类,当然公司需求那就另当别论,毕竟我们是为公司服务的,多看看开源项目代码的结构,一个人的代码能看出一个开发人员的思维框架,当然我并不是说不要去看其他语言,同样开发android你也要会一定得c,因为有时考虑到性能你需要使用ndk。
多看博客,多写博客,多看能够丰富你的知识,毕竟是别人的积累,多写博客是你自己的输出,同时作为一个记载防止忘了,我的脑子就记性不好,写过的代码我只能这部分功能用到了什么怎么设计的,你让我写出来,我还真写不出来,多反编译一下好的应用程序看看人家是如何搭建应用的,最起码之前我还不知道ids是什么东东,也就没有遇到过,反编译别人的软件后看见了这个就查询了一下,所以之后我写代码的时候,基本上我把自己的id全部在ids里面进行管理,反编译是为了个人学习不是为了非法的事情,同样看到别人程序里面实现了一个功能,感觉很新奇,而在网上又没有找到这方面的知识,这时候反编译也不时一个好的方法,我有时就这样干过,现在互联网时代网络是必不可少的,所以很多公司招聘的时候也会要求你使用http,xml,json一类的功能,其实如果你留心的话你会看到网上很多只要你会html,css,js,那你就能开发出android,iphone程序,所以如果你有多余的时间不妨多看看这方面的知识。
最近在寻找工作,面试了三个,其中一个可以忽略不计,另外两个一个是机顶盒,一个银行支付,都没有应聘成功,但是我还是有收获的,第一家让我明白android的线程是非安全的线程,以前只知道使用handle,异步,timer,thread,虽然知道有些情况使用哪些,但是并没有追求细节,第二家明白了task任务,这个概念我之前也没有听过,有一次反编译了QQ,看到配置android文件里面怎么有android:lauchMode当时也就查了一下它有四种模式,以及含义,当别人问我appliaction,task,线程的关联和区别的时候,我也就能完整的回答线程的部分因为第一家面试的时候详细了解了,所以第二家面试的经验就是学习了application,task的内容以及运用。
所以面试不上不要气馁,我们要找到自己的不足,因为下一次这可能就是你的经验。