自学android半年,已从.net转型成android程序员,分享下这个过程
自学从来都是一件难以坚持的事情,看过太多人三分钟热度之后就颓然放弃,然后告诉下一个要自学的人,自学很难,还是正儿八经去培训机构吧
所以首先你要对安卓开发非常感兴趣,发自内心喜欢安卓系统,日常手机如果是安卓机子最好了,这样你写完了一个app,立刻就可以在手上体验了。
推荐边学边做项目的模式
生活中缺点啥,咱就用技术去实现它,这种创造力,只有程序员才有!
你实现了自己的需求,感到非常振奋,继续下一个需求,继续振奋,这一直是个很好的正反馈循环。
所以,半年来咱陆陆续续一共完成了4个项目,除了第一个太简单没多大价值,其他3个都已开源。
1:记账类App
小伙伴三个人一起吃饭,充钱、消费,就靠它记录。非常简单实用,以前都是靠脑子算的。。
2:偷拍类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
4:出了问题怎么办?
学习的过程中,写代码出BUG,报错是很正常的,不用担心,把错误的关键提示复制下来,去stackoverflow上搜,80%都能搜到答案。
英语不行也可去百度上搜,不过有些答案都是雷同或质量很低的,需要自己去判断
5:项目优化
android studio里面有个code inspect选项,可以智能帮你分析出项目里面可能drawcall过高啊、潜在的内存泄露风险啊、潜在的bug啊之类的
对照着提示,有选择性的去改就好了(因为机器智能分析不可能尽善尽美)
为什么会drawcall太高,为什么会有内存泄露,怎么优化请参考谷歌性能优化典范,有个博客翻译的非常好,看下来你一定会收获太多!
6:快速提高
无他,多做项目,多思考,多总结。
比如咱的图片功能模块,从第三个项目博客园新闻客户端开始就在用了,在第四个项目通讯录里面得到了大幅的优化,引入了并发线程池,加强了资源调度之间的逻辑;所以通讯录你用起来会非常的丝滑顺手
7:面试技巧
首先要说的是,咱这类自学成才的路子,简历上天然比较弱势,没有项目经验,要的薪资还是中级水准,如果你是老板,你会要这样的人吗?
找工作那几天心里非常的忐忑,因为前4年全部都是在做.net开发,离开自己的舒适区,转到一个陌生的领域,一切都是未知,躺在床上还要辗转反侧一阵子,脑海里浮现很多片段。
所以咱们除了笔试能过关,最好还要带上自己的作品(比如我就把三个项目全带了,面试的时候给面试官演示,讲解里面的原理、技术难点如何解决之类的,这样交流起来气氛就比较好了),要让面试官相信,你虽然没有在安卓岗位上开发过,但是进公司之后,你可以快速胜任这个岗位。
8:生命在扶摇直上中绽放!
以前咱呆过某个公司,年终奖只有150块钱(你没看错,也没有少打两个零)。眼红其他子公司的编辑小姑娘,年终奖能拿300(别怪我人穷气短。。)
我常常会在想:为什么同样是努力做事,我拿的比别人少?难道是因为我特别蠢?还是我工作不努力?
特别受刺激的是一次,和以前带的小弟吃饭,他的工资竟然也超过我很多,那顿饭吃的真是没滋没味。。。
咱也不去抱怨,招聘网上高薪的岗位那么多,就看咱有没有能力去拿下了,没能力就去学,毕竟咱还年轻啊!
拿到期望的offer的那一刻,心里百感交集,就像《当幸福来敲门》一样,美国梦般故事的结局:天道酬勤,我们的主角通过自己的努力终于换来了社会的认可。
非常喜欢这句座右铭,来自园子里敬佩的大神深蓝色的右手
生命在扶摇直上中绽放!
自学android半年,已从.net转型成android程序员,分享下这个过程的更多相关文章
- CSharp程序员学Android开发---3.Android内部元素不填充BUG
最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...
- CSharp程序员学Android开发---2.个人总结的快捷键
最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...
- 大龄程序员的出路在哪里?八年老Android的一点心得
这篇文章,给大家聊聊Android工程师的职业发展规划的一些思考,同时也给不少20多岁.30多岁,但是对自己的职业未来很迷茫的同学一些建议. 笔者希望通过此文,帮大家梳理一下程序员的职业发展方向,让大 ...
- CSharp程序员学Android开发---1.初识AndriodIDE,掌握工具使用
最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...
- 使用py2exe将python程序打包成exe程序
近日帮朋友写了个python小程序,从互联网上抓取一些需要的文章到本地.为了运行方便,希望能转换成exe程序在windows下定期执行.从百度上找了些文章,发现py2exe的应用比较多,遂使用之. 1 ...
- android checkbox 未选中状态 已选中状态 替换成自己的图片
效果图: 未选中状态: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- cocos2d安装配置及打包成Android
vs+python+cocos2d python下载:点这里 这里需要下载Python 2.X版本.曾经以为要下载3.x版本 后来装上发现cocos2d-x提供的python运行报错,所以卸载以后重新 ...
- 在Android Studio上测试运行,Unity发布成Android包的环境搭建步骤
我用的是unity5.4.3版本,jdk是1.8.0_131版本,Android-SDK是r24.4.1版本,Android-NDK是r13b版本,作者是刚开始写博客,希望对在unity摸索的人有 ...
- html5 如何打包成apk,将H5封装成android应用APK文件的几种方法
直接使用编程软件提供的方法: 1.需要下载安装MyEclipse2014,Android SDK,eclipse(需配置Android开发环境) Java和Android环境安装与配置. 2.打开My ...
随机推荐
- zk textbox 更改字体大小及高度
.z-textbox{ height:100px; font-size:30px; padding:20px; } <textbox/> 效果如下:
- windows下读取磁盘扇区数据
在Windows下,磁盘可以看做是一个文件,其文件名为\\\\.\\PhysicalDriveX,其中X表示磁盘的编号,例如\\\\.\\PhysicalDrive0表示的是第0号磁盘,如果需要读取一 ...
- Graph Cuts初步理解
一些知识点的初步理解_8(Graph Cuts,ing...) Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image segmentation).立 ...
- PHP 接入芝麻信用 注意 事项
芝麻官方下载的SDK,跑不起来,百度搜索一番也没有发现太多的文章 ,只有一个CSDN博客写的一篇文章,比较有参考价值 详细查阅文档+几天测试整理以下几点注意事项: 接入芝麻API接口,应该分2步: 第 ...
- 在MVC架构中使用CodeSmith生成NHibernate映射对象和实体类
第一步:找到生成模板,如下图 第二步:配置数据库连接(如下图),然后右击第一步找到的模板,点击Excute 第三步:执行操做(如下图) 第四步: 找到之前配置生成的文件夹,找到如下文件(图中标记的文件 ...
- vi 技巧和诀窍~转IBM
复合搜索 1 #!/bin/ksh 2 # 3 echo "Starting" 4 file=${1} 5 6 echo ${file} 7 8 if [[ ${file} = 1 ...
- vert.x学习(五),用StaticHandler来处理静态文件
做web开发,css.js.图片等静态资源是必不可少的,那么vert.x又是怎么来加载这些静态资源呢.请看StaticHandler 编写HelloStaticResource.java packag ...
- angularJS实现可编辑的下拉框
将angularJS与插件select2结合使用即可 <!DOCTYPE html><html lang="en"><head> < ...
- 原生js实现网页触屏滑动
前言: 我有一个html格式的2048游戏,可以用键盘上下左右操作,但是放到手机上就抓瞎了.于是想修改一下代码,将键盘事件改成手机触屏事件. html5 的touch事件 html5支持touch事件 ...
- l段子
段子简介 L段子起源.L段子是开发者根据市场调查, 用户可在等候列车,飞机,或在公交车上无 聊之余使用本应用.打发无聊的时间,分为段 子,图片,活动和个人中心,用户可根据自己 喜好进入不同的区域.段子 ...