【重走Android之路】【开篇】
 
【序】
        本人Nodin,偶尔也叫MoNodin,朋友们都喜欢叫我丁,还有个笔名叫陌上幽人,文艺时叫恋风,发奋时叫不肯腐烂的土壤。。。也许你觉得我逗,其实25年来我从没长过青春痘——看来还太年轻,(唱起来)我的青春期它还没来到!
        开个玩笑,言归正传。
        2011年3月份开始试水Android手游,三个月后转而做应用层开发,目前在百度垂直搜索部图片团队担任客户端研发工程师。至今从事Android工作已经有三年时间,主要参与过五个项目的开发。其中三个是针对特定客户的定制APP,后边两个分别是百度魔拍和百度相机。魔拍的下载量在2013年已经过千万,日活也非常喜人,虽然很久没发新版,但是日活一直保持增长的势头。相机是垂搜比较重视的一个产品,由于还处于摸索阶段基本无运营推广,但是在自然状态下其用户在稳步上升,相信不久会有不错的成绩。在百度的半年试用期期间还参与了百度相册几个版本的开发升级工作。其实上头本来计划等转正后让我进魔图,结果蹦出来个魔拍,于是就这样黯然错过了2013年魔图的风光时刻(此处有淡淡的忧伤)。以上所述几款产品都是在Robin提出“读图时代”的背景下应运而生的产品。在百度2011年联盟峰会上,Robin演讲时提到了他对中国互联网领域的三个预测,即:“中间业务”、“读图时代”和“应用为王”。这几年互联网的发展都印证了他的预测。其中所谓“读图时代”是指以图片内容消费为基础衍生出一系列产品和服务。魔图魔拍相机,包括美图秀秀、美颜相机、Camera360等等是以图片内容消费为基础的产品。个人觉得,其实往大了说,二维码扫描功能也属于图片内容消费,而图片消费真正的入口并不是各类图片处理APP,而是相机,特别是手机相机。这也是百度相机及其衍生品的真是意图:占据相机入口。
        接着话题,再往前推,大一暑假(美好的大学生活哇,肿么就这么快结束了捏,一不留神小白驹就跳了六下,恁有木有想过年的感受[抠鼻])。为了不荒废大学时光,我毅然决然滴选择了给自己找点事儿做,好好充实一下自己,也为以后的工作做做准备(艾玛,我好伟大,连我自己都感动了[此处应该有掌声])。当时学院的ACM实验室在招新,于是乎就和几个好友报名参加。来的同学倒是不少,屋里两个学长对我们逐个面试,问的是一些基础的算法和思想(当时只学过C++,感觉这些问题很是高大上)。结果依旧是淡淡的忧桑。。。他们都成功进入,留我一人站在门口独自彷徨,清风吹落我眼角的泪滴,打湿了身边女同学的花衣裳(咳咳,不好意思,刚周公拉我喝酒去了)。告别了ACM实验室,转身发现隔壁也有个实验室,名曰——创新实验室。心里顿时一亮:艾玛,好高大上的名字!敲门进去一问,主要教一些实用的技术进行项目开发,同时关注并学习最新技术。这些正好和我的专业对应,而且以后工作干的就是这些活,这是个提前磨刀的好机会啊,于是就报名,于是就参加考试,于是就通过了,于是进入了创新实验室。自此到大四上学期快结束的两年半时间里,先后学习了Delphi、SQLServer、HTML、JavaScript、JSP、SSH等语言和技术,担任了一年的Java开发组组长,参与了两个Delphi项目和一个J2EE项目的开发工作。这些是我用大学的三个暑假、三个寒假和日常的课余时间换来的,因此回家探望父母的时间便减少到一年只有半个月左右,有时候也会思考这样到底值不值。事实上,不论你的初衷如何,做什么事都需要代价。从小看到父母含辛茹苦把老姐和我艰难拉扯大,看到老姐放弃上学出去打工供我读书,我心里就暗下决心,等我长大一定不能再让他们受苦。所以高中毕业时便决定以后不再上研究生,本科毕业直接工作,早日减轻父母的负担。2010年11月底,我独自一人踏上了北上的列车,开始了漫长的找工作之旅。
        一个半月时间里,面试了三十多家公司,拿到了近10个offer,还是没有自己特别中意的。由于临近年底,便挑了一家暂时干着,结果一干便是小两年。一开始做J2EE项目,后来转到Android平台开发。由于有多年的Java开发基础,学起Android来便很容易。起初三个月是边学边练,主要是游戏开发,接着公司接了几个单子让我们实践。大概有一年的时间,我的Android技术也主要在这段时间里学习。后续半年我开始带队做项目,一边负责J2EE,一边负责Android。这半年算是巩固提升的阶段,期间主导了公司基于Mina的IM设计开发工作,算是一点点小成就。
        2012年9月底辞职,回家休息一段时间,带爸妈来北京玩了一星期。对于父母,我能做的就是报喜不报忧,不能让他们跟着操心。所以辞职的事并没有告诉他们,甚至包括最初一个人来北京找工作。10月下旬开始找工作,11月初入职百度,先后从事百度相册、百度魔拍、百度相机的Android端研发工作。在百度的一年多时间里,是收获和成长最多的时期。大公司大平台,每个人都很牛逼,每个人身上都有能学到的东西。在这段时间里,我给自己定的基调是学习。然而工作还是重头戏,很少有时间能静下来整理积累的知识。
        最近决定回顾我的学习之路,结合这些年的开发经验,搜集网络上一些有价值的资料、教程,制定一套比较完善的学习方案。我把这套学习方案叫做《重走Android之路》。以此为契机,整理自己的想法和成果(源码、博客等方式)与大家共享,也算是对自己知识的总结和提升。由于本人能力有限,源码和博客难免会有思路闭塞和错误,欢迎大家指正。
        
——2014年5月12日于北京
 

【重走Android之路】【开篇】序的更多相关文章

  1. 【重走Android之路】【番外篇】关于==和equals

    [重走Android之路][番外篇]关于==和equals   在实际的编程当中,经常会使用==和equals来判断变量是否相同.但是这两种比较方式也常常让人搞得云里雾里摸不着头脑.下面是我个人做的总 ...

  2. 【重走Android之路】【番外篇】有关于null的一些知识点

    [重走Android之路][番外篇]有关于null的一些知识点   1.首先,到底什么是null? null是Java中的一个关键字,用于表示一个空对象引用,但其本身并不是任何类型也不是属于任何对象. ...

  3. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

  4. 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder

    [重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder   1.String String是Java中的一个final ...

  5. 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符

    [重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符   1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...

  6. 【重走Android之路】【路线篇(二)】知识点归纳

    [重走Android之路][路线篇(二)]知识点归纳   参考:http://blog.csdn.net/xujing81/article/details/7313507   第一阶段:Java面向对 ...

  7. 【重走Android之路】【路线篇(一)】路线图

    总结归纳了J2SE和Android的知识点,自己制订了一套详细的路线图,其中肯定有考虑不全和不合适的地方,欢迎各位大牛批评指正.   详细路线图如下:  

  8. 我的VSTO之路:序

    原文:我的VSTO之路:序 VSTO是微软提供给.Net开发人员的一个接口,通过他我们可以对Office程序做一些处理.但是这个接口并不尽善尽美,相比微软的很多其他产品,VSTO的稳定性并不好,相关的 ...

  9. [项目实施失败讨论Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)

    [Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn) 原文:http://community.csdn.net/Exp ...

随机推荐

  1. MySQL 存储过程学习笔记

    存储过程框架 DEMILITER $$ -- 重定义符 DROP PROCEDURE IF EXISTS store_procedure$$ -- 如果存在此名的存储过程,先删除 CREATE PRO ...

  2. 高效线程池(threadpool)的实现

    高效线程池(threadpool)的实现 Nodejs编程是全异步的,这就意味着我们不必每次都阻塞等待该次操作的结果,而事件完成(就绪)时会主动回调通知我们.在网络编程中,一般都是基于Reactor线 ...

  3. C++中常见的几种异常类型

    1.C++具有完善的异常捕获机制,采用try{}  catch(){}机制,这是C语言无法比拟的 2.常见的几种异常: bad_alloc:       请求分配内存失败, operator new ...

  4. Hibernate学习---第五节:普通组件和动态组件

    一.普通组件映射配置 1.创建组件类,代码如下: package learn.hibernate.bean; /** * 组件类 */ public class Phones { private St ...

  5. Java 字符编码归纳总结

    String newStr = new String(oldStr.getBytes(), "UTF-8");       java中的String类是按照unicode进行编码的 ...

  6. OS X 使用技巧——访问所有的键盘功能

    苹果笔记本电脑和苹果的无线键盘只有一个Delete键,可以删除光标前面的字. 按住Fn键再按Delete键就能删除光标后面的字符. 按住Fn键会把上下方向键的效果变成Page Up / Page Do ...

  7. python--参数列表的分拆

    当你要传递的参数已经是一个列表,调用的函数却接受分开一个个的参数,这个时候可以考虑参数列表拆分: 可以使用* 操作符来自动把参数列表拆开: args=[3,6] x=list(range(*args) ...

  8. modernizr.js

    1.判断浏览器是否支持 h5 if(Modernizr.canvas){ alert(123); }else{ alert(321); } 2.判断浏览器是否支持 canvas function su ...

  9. hdu 2883 kebab 网络流

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2883 Almost everyone likes kebabs nowadays (Here a ke ...

  10. Hibernate exercise 54

    针对马士兵的Hibernate讲解第54讲的练习: 1) 学生.课程.分数的设计,并用Hibernate操作 在实际中,一般是先手动写SQL(可以优化)去创建表和关系,再设置Hibernate配置为u ...