自学从来都是一件难以坚持的事情,看过太多人三分钟热度之后就颓然放弃,然后告诉下一个要自学的人,自学很难,还是正儿八经去培训机构吧

所以首先你要对安卓开发非常感兴趣,发自内心喜欢安卓系统,日常手机如果是安卓机子最好了,这样你写完了一个app,立刻就可以在手上体验了。

推荐边学边做项目的模式

生活中缺点啥,咱就用技术去实现它,这种创造力,只有程序员才有!

你实现了自己的需求,感到非常振奋,继续下一个需求,继续振奋,这一直是个很好的正反馈循环。

所以,半年来咱陆陆续续一共完成了4个项目,除了第一个太简单没多大价值,其他3个都已开源。

1:记账类App

小伙伴三个人一起吃饭,充钱、消费,就靠它记录。非常简单实用,以前都是靠脑子算的。。

2:偷拍类App

音量键就可以完成隐蔽拍照,完成了自己造福狼友的愿望。没怎么用,不坐公交车,屌丝也不去逛街。。

3:博客园知乎日报风格的App

园子里的大神都有自己的实现,咱觉得信息太繁杂了,就参考知乎日报简约的风格实现了一个。蹲坑、睡前我都在用他看新闻。。。 离线数据+自己实现的蒙版、配色夜间模式,晚上看着非常爽

4: 集团通讯录App

这是自学阶段最后一个作品,代码上相比前三个都在不断的优化,并且尝到了并发线程池带来的快感!用过app的同事都说好。

看到了吗?都是咱非常感兴趣实用的4个项目,自然会在洗澡睡觉蹲坑时琢磨着怎么去优化他们,怎么去精心优化打动用户。

接下来就说说咱的学习步骤,对咱是行之有效并且能打动面试官拿到满意offer的:

再重申一遍,对安卓开发一定要发自内心热爱

再重申一遍,对安卓开发一定要发自内心热爱

再重申一遍,对安卓开发一定要发自内心热爱

如果只是填补业余时间空白,让自己心底不空虚悔恨的,还是别浪费时间了。。(荒废了4年时间,我明白了这个道理)

0:网上那些泛滥的视频没必要看,太慢

这个可能因人而异,事实上咱个人观点是除非心底没安全感,需要视频老师一步步按部就班教你打出一个可以运行的项目,否则没必要看视频,太慢了。

1:入门不需要太高深java知识,边做别学即可

java语言从c#转过去不生疏 ,一些语法之类的可以参考博客 JAVA快速教程

入门了之后,想提高的话可以去看看《Effective Java 第二版》,看了前几章讲的非常不错

2:挑一本好书入门

推荐一本郭神出品的《第一行代码》,电子书我就不放出来了,因为真的写的很详细易懂,写的很好!值得你花钱去买实体书

你参照着这本书入门,初步掌握了知识点之后,就可以尝试去做自己的项目了,不懂就翻翻看这本书

个人是非常感激这本书的,特别是在我读过《Android编程权威指南》觉得自己很蠢的时候。

3:IDE&管理工具

IDE使用android studio

这几天从面试结果看,很多杭州的公司都在逐渐使用这个平台了,用下来感觉非常的痛快,硬件最好有SSD+8G内存,会让你飞起来的。官方地址被墙了,国内下载地址最新百度网盘

管理工具使用git

写给新手朋友看的图文git入门教程

4:出了问题怎么办?

学习的过程中,写代码出BUG,报错是很正常的,不用担心,把错误的关键提示复制下来,去stackoverflow上搜,80%都能搜到答案。

英语不行也可去百度上搜,不过有些答案都是雷同或质量很低的,需要自己去判断

5:项目优化

android studio里面有个code inspect选项,可以智能帮你分析出项目里面可能drawcall过高啊、潜在的内存泄露风险啊、潜在的bug啊之类的

对照着提示,有选择性的去改就好了(因为机器智能分析不可能尽善尽美)

为什么会drawcall太高,为什么会有内存泄露,怎么优化请参考谷歌性能优化典范,有个博客翻译的非常好,看下来你一定会收获太多!

6:快速提高

无他,多做项目,多思考,多总结。

比如咱的图片功能模块,从第三个项目博客园新闻客户端开始就在用了,在第四个项目通讯录里面得到了大幅的优化,引入了并发线程池,加强了资源调度之间的逻辑;所以通讯录你用起来会非常的丝滑顺手

7:面试技巧

首先要说的是,咱这类自学成才的路子,简历上天然比较弱势,没有项目经验,要的薪资还是中级水准,如果你是老板,你会要这样的人吗?

找工作那几天心里非常的忐忑,因为前4年全部都是在做.net开发,离开自己的舒适区,转到一个陌生的领域,一切都是未知,躺在床上还要辗转反侧一阵子,脑海里浮现很多片段。

所以咱们除了笔试能过关,最好还要带上自己的作品(比如我就把三个项目全带了,面试的时候给面试官演示,讲解里面的原理、技术难点如何解决之类的,这样交流起来气氛就比较好了),要让面试官相信,你虽然没有在安卓岗位上开发过,但是进公司之后,你可以快速胜任这个岗位。

8:生命在扶摇直上中绽放!

以前咱呆过某个公司,年终奖只有150块钱(你没看错,也没有少打两个零)。眼红其他子公司的编辑小姑娘,年终奖能拿300(别怪我人穷气短。。)

我常常会在想:为什么同样是努力做事,我拿的比别人少?难道是因为我特别蠢?还是我工作不努力?

特别受刺激的是一次,和以前带的小弟吃饭,他的工资竟然也超过我很多,那顿饭吃的真是没滋没味。。。

咱也不去抱怨,招聘网上高薪的岗位那么多,就看咱有没有能力去拿下了,没能力就去学,毕竟咱还年轻啊!

拿到期望的offer的那一刻,心里百感交集,就像《当幸福来敲门》一样,美国梦般故事的结局:天道酬勤,我们的主角通过自己的努力终于换来了社会的认可。

非常喜欢这句座右铭,来自园子里敬佩的大神深蓝色的右手

生命在扶摇直上中绽放!

自学android半年,已从.net转型成android程序员,分享下这个过程的更多相关文章

  1. CSharp程序员学Android开发---3.Android内部元素不填充BUG

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  2. CSharp程序员学Android开发---2.个人总结的快捷键

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  3. 大龄程序员的出路在哪里?八年老Android的一点心得

    这篇文章,给大家聊聊Android工程师的职业发展规划的一些思考,同时也给不少20多岁.30多岁,但是对自己的职业未来很迷茫的同学一些建议. 笔者希望通过此文,帮大家梳理一下程序员的职业发展方向,让大 ...

  4. CSharp程序员学Android开发---1.初识AndriodIDE,掌握工具使用

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  5. 使用py2exe将python程序打包成exe程序

    近日帮朋友写了个python小程序,从互联网上抓取一些需要的文章到本地.为了运行方便,希望能转换成exe程序在windows下定期执行.从百度上找了些文章,发现py2exe的应用比较多,遂使用之. 1 ...

  6. android checkbox 未选中状态 已选中状态 替换成自己的图片

    效果图: 未选中状态: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  7. cocos2d安装配置及打包成Android

    vs+python+cocos2d python下载:点这里 这里需要下载Python 2.X版本.曾经以为要下载3.x版本 后来装上发现cocos2d-x提供的python运行报错,所以卸载以后重新 ...

  8. 在Android Studio上测试运行,Unity发布成Android包的环境搭建步骤

      我用的是unity5.4.3版本,jdk是1.8.0_131版本,Android-SDK是r24.4.1版本,Android-NDK是r13b版本,作者是刚开始写博客,希望对在unity摸索的人有 ...

  9. html5 如何打包成apk,将H5封装成android应用APK文件的几种方法

    直接使用编程软件提供的方法: 1.需要下载安装MyEclipse2014,Android SDK,eclipse(需配置Android开发环境) Java和Android环境安装与配置. 2.打开My ...

随机推荐

  1. WinForm 中TreeView 控件的使用实例

    新建一个窗体,在本窗体界面上需要以下几个按钮 (一个TreeView    一个 TextBox  三个Button 按钮) 后台代码如下: using System; using System.Co ...

  2. RAC初体验

    什么是RAC? 几乎每一篇介绍RAC的文章开头都是这么一个问题.我这篇文章是写给新手(包括我自己)看的,所以这个问题更是无法忽视. 简单的说,RAC就是一个第三方库,他可以大大简化你的代码过程. 官方 ...

  3. java核心技术第一卷

    sell窗口(dos窗口命令)中要注意大小写: 编译java文件需要加上扩展名,运行java.class时只要文件名java,不需要扩展名:

  4. Linux下安装搭建WordPress网站

    WordPress简介 WordPress 是一种使用 PHP语言和 MySQL数据库开发的开源.免费的Blog(博客,网志)引擎,用户可以在支持 PHP 和 MySQL 数据库的服务器上建立自己的 ...

  5. 高性能Server---Reactor模型

    原文地址:http://www.ivaneye.com/2016/07/23/iomodel.html 无处不在的C/S架构 在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的! 你发邮 ...

  6. kafka - advertised.listeners and listeners

    listeners, Listener List - Comma-separated list of URIs we will listen on and their protocols. Speci ...

  7. 微信小程序时代已经来临

    昨天估计微信公众号上产生了第一篇最快的30万+文章,10万+只花了10多分钟.就是冯大辉(著名Oracle专家,知名博主)同学的「微信应用号来了」. 为什么这么一篇如此简单又技术类的文章一下能刷遍朋友 ...

  8. iOS项目的本地化处理(多国语言)

    项目的本地化就是:iOS系统在不同语言环境下自动切换语言,从而实现一个app发布到全世界各个国家的AppStore上. 我们不仅仅需要在iOS项目中做本地化处理,在上架iOS APP的时候,也需要做对 ...

  9. Node.js配置And HelloWorld

    先从https://nodejs.org/en/上下载Node.js的安装程序  node-v4.4.4-x64.msi 直接双击运行,安装到默认路径 C:\Program Files\nodejs ...

  10. DOS基础命令

    对服务(service)的操作 命令 功能 Net start 查看Windows开启的服务 Net stop [service name] 停止服务 net start [service name] ...