如何通过自学成为一名安卓软件开发工程师?
发布时间:2018-12-10来源:软件公司
关键字:如何通过自学成为一名安卓软件开发工程师?
我正在自学Android开发,已经有半年时间了,基本上业余时间可以挤出来的,都拿来学习了
由于还没有找到Android开发的工作,先占个坑,不敢擅自回答,以免误导,等找到工作了,再详细描述着一路过来的自学经历。
PS:本人之前没有任何软件开发经验。
**********************
update:2014.9.22
经过了八个月的自己,终于在上周五被一家公司录用了,现在遵守诺言,说说这段时间的自学经历。
背景介绍:性别:男、无任何编程经验、年龄:28(大龄青年了)、学习方式:工作业余时间自学。
第一阶段:学习Java 用时:一个半月
一开始我使用的是Princeton大学的线上资源学习:Introduction to Programming in Java: An Interdisciplinary Approach,学习完后,觉得自己掌握的不够系统,于是找到了另外一本教程:Introduction to Java Programming, Eighth Edition,继续学习,该教程学到第30章,没有继续学习下去是因为后面的越来越难懂了,于是就学到这里,等学习Android开发的时候,有需要的,再回国头来学习。
Java阶段学习的主要方式是一边学习,一边用Eclipse模拟练习,该阶段的学习持续一个半月。
第二阶段:初步熟悉Android开发 用时:两个月
???内容较多,稍后更新
************************************
不好意思,耽搁了这么久,现继续更新
第二阶段:入门Android 用时:两个月(业余时间学习计算)
在入门Android的时候,听从了网上一些人的发言,首先选择了google官方的文档,里面有一个trainging的资料,发现这个资料学习起来生恢难懂,而且讲得不够详细,跟着做项目也是困难重重,很不适合初学者,不建议,我也是在学习了一周后,果断放弃;然后选择了
4个实战项目,教你7天学会Android
24个Android常用知识点精讲
Android系统安全【教程 实战 策略 项目 开发 课程】
通过对现代网络安全的基础理论的学习,掌握和理解其核心原理。
此外,还有诸如
Flappy Bird 开发视频教程 源码下载【教程 实战 策略 项目 开发 课程】
轻松玩转微信分享--极客学院
『极客学院-android开发教程|android视频教程』还有很多不错的课程,我们也在每天不断添加新的课程,我个人觉得是每个学习 android 的人必备的,超值的很~~
447 人赞同收藏GeekPlux自在如风的少年 http://geekplux.com绝大部分人说官方文档和范例(App Components)是最好的教程,如果你英语好,且有Java和XML基础,那按照官方的Training一路下来就算入门了。
如果英语不好,可以看一些视频入门,如Mars的《Android视频教程》的。最起码得先把开发平台搭建起来吧。再结合视频做一些小练习,最基础的布局先练好,不要急。
当然,看视频的话虽然通俗易懂,但是进度可能比较慢(即使我视频调至2倍速看),所以必须结合看书。但是,市面上的书大部分都跟不上Android最新的脚步。
不过还是推荐两本:
李刚的《疯狂Android讲义》,此书大而全。
《Google Android SDK开发范例大全(第3版)》,此书可以照着练(不要ctrlc+ctrlv)。
对了,现在还有更新颖的学习方式,可以在线互动编程学习(Android开发 | Fenby.com),你可以尝试一下。
总体来说,书都比较落后,Android学习主要还是靠网络。入门是最关键的,入门之后相信你自己也会找资源了。然后可以启动以项目为导向的学习方式,用到什么学什么,这样最快。但是,快并不是浮躁,别想一口气吃成胖子。况且,一入IT深似海。。。不扯淡了-_-。
其他参考:
StackOverFlow的Android Tag(Newest 'android' Questions)
GitHub搜Android(Search android)
Google Code上的优秀APP源码(Google 代码)
直接拿来用的Android开源代码(最火的Android开源项目(完结篇))
Android沈阳网站设计中文Wiki
Android设计指南非官方简体中文版(Android Design)
Android开发者社区(Android开发 - 安卓开发)
CSDN上的优秀博客和牛人(Android系列开发博客资源汇总),比如这位老罗的Android之旅
我现在也在慢慢学习和摸索中,望共同进步。113 人赞同收藏大猫布丁┏ (゜ω゜)=? 大家讲了论坛和知识区,我补充融入程序员圈子的部分吧。
有圈子,有人有朋友,更能坚持学下去。
可以去github上面找开源项目自己编译运百度排名行,并且改编成其他版本。
多参加线下活动,很多免费活动的。本题里面所有图片,都是我自己拍的,或者我电脑屏幕截图。
这是今晚我参加线下活动,零基础学ios开发(免费活动我说了咩?)
最后真的做了一个简单iphone app出来,虽然超简单,只有一个动作。
我个人最最推荐当然是GDG(Google Dev Group)所有活动。
大牛非常多,活动全部免费,而且都是编程相关。
加入G+圈子和邮件组后,里面全是工程师,新人到大牛都有,而且都非常乐于分享。
各种国外新技术,新教程,新XXXX,第一时间都有人讨论。
补充刚刚好一年前,在上海时候,GDG组织活动,也是零基础学Android开发,当时做出一个APP
可惜我一直没坚持,所有软件都半途而废。认真想学,很容易加入圈子的。
另外硬件相关的,北京创客空间 我参加过他们线下活动,免费,教你单片机开发,很好玩。
上海有新车间:http://xinchejian.com/
看老外编程也很有趣,他超短时间开发一个社交APP,从零开始写代码,全程英文。
这个活动是barcamp ,免费,全天,并且提供午餐。
对了,我前面提到GDG大部分活动有吃有喝咩?
最后贴今晚的图,免费,从零开始学ios开发,成果见最上方:
(车库咖啡也有很多不错活动嗯嗯)
对了,我有提到GDG全国都有组织咩?
我个人觉得质量不错线下活动是:
上海,北京GDG组织线下活动。北京Barcamp 且都是免费。
创业聚会一般不错:北京创业影院,车库咖啡,3W咖啡,上海创智天地等等。
线上不错的网站有:
Code.org | Anybody can learn
w3school 在线教程
Khan Academy
Course Catalog for Free Online Classes
Learn to code (这个我比较喜欢)
Treehouse | Library ( 目前我最喜欢的,用这个学Android来着 )
Learn HTML5, CSS3, Javascript
最后放北京GDG活动(真的是免费的,还有茶歇和零食)这是在某个酒店,后一张是创业咖啡店。
以上。祝好。
——————补充的分割线——————
说了是GDG,加入GDG有各种讨论~~ 再三提到我个人最推荐的是GDG组织。
我从邮箱截图吧,上海GDG和北京GDG我都有参加。
这些是Gmail邮件列表,线上和线下活动都有,够不够干货?
772 人赞同收藏李晨互联网大叔一枚,营销/摄影开发android,需要掌握这些基础。
①Java基础知识 ②Linux基础知识 ③数据库基础知识 ④网络协议 ⑤Android基础知识 ⑥服务器端开发知识①Java基础知识
很多朋友一上手就开始学习Android,似乎太着急了一些。Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。万丈高楼平地而起,Java就是筑起高楼的每一块砖头。那么Java学到什么程度才算是过关呢?我个人认为至少要掌握以下两个方面的内容:
a)Java基础语法:具体的知识点列表可以在这里下载:《Java知识点列表》V1.0。这部分内容没有讨价还价的余地,必须烂熟于胸。至于具体的学习方法,可以看书或者是看视频,但是关键是要多加练习,无论是书上的练习还是视频里面的练习,都需要仔仔细细的完成;
b)设计模式:由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣。设计模式的种类非常之多,一个一个的全部掌握,是不现实的,必须首先掌握面向对象的基础设计原则,有了这些基础原则的支持,就可以举一反三。这部分内容可以在《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》这两本书中找到。
②Linux基础知识
大家都知道,Android系统的基础是Linux操作系统。在开发过程当中,我们也需要使用到一些Linux命令。所以说一些Linux的基础知识是必须的(话说现在的程序员,不懂Linux都不好意思跟人家打招呼),推荐大家看看《鸟哥的私房菜》这本书,写的相当不错;
③数据库基础知识
这个比较简单,就是一个增删改查的数据库操作,可以看一下这本书:《SQL编程练习与解答》
④网络协议
至少需要学习两种基础的协议,HTTP协议与Socket协议;
⑤Android基础知识
⑥服务器端开发知识
由于很多Android应用程序都需要服务器端的支持,所以掌握一些服务器端开发知识还是非常有必要的。至于选择哪一种服务器端知识进行学习,就比较麻烦了,因为技术的种类实在是太多了:
a)Java EE:就是上面邮件当中所提到的SSH—Struts+Spring+Hibernate。这种技术的优点的功能完整、强大,已经使用了很多年,而且既然大家已经非常熟悉Java了,那么学习SSH看起来也顺理成章。但是使用这种技术开发服务器端程序,非常麻烦。即使是一些简单的功能,也可能需要大量的代码和配置文件来实现;
b)PHP:简单易学,开发快速。但是我们需要多学一种语言,是否得不偿失,就要大家自己判断了;
c).NET:这项技术的特点和Java EE差不多,但是要想掌握.NET,则需要掌握c#,也是个麻烦的事情;
d)ruby on rails:这是我个人最喜欢的服务器端技术,简洁,优雅,寥寥几行代码,就可以实现很复杂的功能,但是这需要Ruby语言知识作为基础;
至于选择哪一种知识,就看大家自己的判断了,毕竟每个人想法不一样,爱好也不相同。
-
-