留言与评论(共有 0 条评论) |
发布时间:2020-04-12 08:57:21
我来回答一下。
首先说个人背景,大四学生,专业机械类,学校只教了C语言基础,其他编程知识均为自学。
大二时准备学Android开发,看了一点java基础的语法知识,然后不了了之。
大三因为自己参加的项目,接触C++,用MFC写了个简单的桌面软件。
大四开始找工作,由于之前在机械公司的实习经历,感觉自己不喜欢机械类的工作,也不适合,开始改简历,投一些计算机类的公司,可惜并不是很理想,期间面了一家Android开发的实习生,人家提问,好多不懂,面试完感觉自己好渣。那是去年12月份左右。
面试失败回来后,不再海投简历,觉得与其抱着侥幸的心理去让别人给你一个机会,不如练好技术,给自己更多的选择机会。
12月份到2月初放寒假那段时间,每天白天去另外一家公司实习,回来就背着电脑去图书馆,看书,敲代码,直到图书馆熄灯。每天坚持,周末更是泡在图书馆。啃完郭霖大神的那本《第一行代码》,开始对一些大致的概念有所理解,Android的基础知识也掌握了一些。
看完书前面一大半的时候,我花了几天时间,写了一个拨号软件,Google原生的拨号不带T9拨号,我就自己写了一个,现在看来很简单,界面也很粗糙,不过那时还是成就感满满的。在这个问题如何评价《第一行代码》一书? - Android下可以看到,第一名的匿名答案就是。
后来就是放寒假了,寒假之前开始写一个软件,『在读』,就是记录你阅读纸质书进度的一个软件,由于觉得功能不实用,已经停止开发了。下面是一些简单的截图。
功能很简单,就是记录一本书的阅读进度,高级一点的就是加入调用豆瓣的API,可以根据关键字联网查询一些书的信息,如上图所示,点击进去可以看到书籍的大致信息。
寒假在家写这个软件,并开始看《Java编程思想》,开始系统地理解一些Java的知识。
寒假过得很充实,每天看书,做笔记,有时连着好几天晚上敲代码敲到凌晨2点,可是不觉得累,因为喜欢这种感觉,看着自己写的软件在手机上跑起来,特别开心,这也是我为什么转行做程序猿的原因吧。
凭着这段时间的学习,今年开学初,投了几个Android开发的实习生职位,基本上都获得了面试机会,技术面问的那些问题,自己在写上面这个软件时都多多少少遇到过,所以基本上都没问题,然后陆陆续续拿到一些offer。现在在其中一家公司实习,职位就是Android开发。
最近自己写的一个习惯养成的App上线了,满满的成就感。
虽然功能简单,界面也简洁,但是看着自己写的一行行代码,一点点改进界面,最后得到一个自己满意的结果,还是很开心的。 : )
以上罗嗦了这么多,讲了本人从只有一点编程基础到找到Android开发工作的经历,没有大牛那么厉害,只是一番很平常的经历,希望题主你可以得到一些你想要的经验。
回答题主的问题:
觉得自己有毅力,有信心的话,同时学习能力比较强,那就自学,不差钱的话就报班吧,找个靠谱的。
第二个问题我已经回答了。
第三个问题,我觉得起码郭霖的《第一行代码》上那些知识点要掌握的吧。
如果题主自学的话,以下是建议:
推荐书籍,郭霖的《第一行代码》,很好的Android入门书。
Java的话,一开始不推荐《Java编程思想》,没有编程基础的有点难懂,你可以看看网上教程之类的。
多敲代码。书上的例子,不要看着觉得会,就不去敲了,很多时候你自己敲一遍,才发现存在很多问题,试着去解决这些问题,你会学到很多。
在有一定基础上,可以想着写一些个人的项目,思考要添加什么功能,怎么实现,不懂的就Google。
学习网站的话,Android开发的官网不翻墙是打不开的,可以考虑买个vpn或者别的途径,翻墙去看,反正我是习惯了Google,vpn一直挂着。贴一个我自己的书签。安卓开发者必备的42个链接
推荐stormzhang 的Android学习之路博文。Android学习之路,很赞,一些Android初学者资源都很赞,仔细看完这篇,你会学习到很多。
开发工具下载,同样是墙的问题,这里有不需要翻墙的资源。AndroidDevTools 配置中遇到的问题自己多搜索。
最后再说一下,推荐Android Studio,真心好用。 = =
最后最重要的就是,要有兴趣,有坚持的决心,不要轻易放弃,遇到问题多看看文档,多搜搜,不要失去信心,慢慢成长起来,不要急功近利。
加油!
如果只是单纯漂亮的静态页面,只要看下android布局文件的编写、控件的使用,要是涉及到动态效果、特殊的形状之类的,就还要看下动画、自定义控件之类的,还要从代码层次实现其效果。
前者只要搜下android入门教程和相关的android页面布局教程,主要看下布局方面,什么事件监听等功能就不需要看了,不过这个就有点鸡肋了,应该不会有公司需要这种只会做页面布局的。
后者语言、页面布局就都要学了,android是用java编程,所以java的一些基本的东西还是要熟悉的,然后再看android的教程,这个也需要学的比较深了,不仅要把页面做好,还要代码实现其各种效果之类的。
1.Java基本数据类型与表达式,分支循环。
2.String和StringBuffer的使用、正則表達式。
3.面向对象的抽象。封装,继承,多态。类与对象。对象初始化和回收;构造函数、thiskeyword、方法和方法的參数传递过程、statickeyword、内部类,Java的垃极回收机制。Javadoc介绍。
4.对象实例化过程、方法的覆盖、finalkeyword、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的优点。
5.Java异常处理,异常的机制原理。
6.经常使用的设计模式:Singleton、Template、Strategy模式。
7.JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。
8.Java集合介绍:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等经常使用集合类API。
9.Java I/O输入输出流:File和FileRandomAccess类。字节流InputStream和OutputStream,字符流Reader和Writer,以及对应实现类,IO性能分析。字节和字符的转化流,包装流的概念。以及经常使用包装类,计算机编码。
10.Java高级特性:反射、代理和泛型。
11.多线程原理:怎样在程序中创建多线程(Thread、Runnable)。线程安全问题,线程的同步,线程之间的通讯、死锁。
12.Socket网络编程。
第二阶段:Java Web开发
1.Java解析XML文件DOM4J。
第三阶段:android UI编程
1、Android开发环境搭建:Android介绍,Android开发环境搭建,第一个Android应用程序,Android应用程序文件夹结构。
2、Android0基础控件的使用:
TextView控件的使用Button控件的用法EditText控件的用法ImageView的用法RadioButton的用法Checkbox的用法Menu的用法
3、Android高级控件的使用:
Autocompletion的用法ListView的用法GridView的用法Adapter的用法Spinner的用法Gallary的用法ScrollView的用法
4、对话框与菜单的使用:
Dialog的基本概念AlertDialog的用法DatePickerDialog的用法Menu的用法自己定义Menu的实现方法
5、控件的布局方法:
线性布局的用法相对布局的用法表格布局的用法
6、多Acitivity管理:
AndroidManifest.xml文件的作用 Intent的用法使用Intent传递数据的方法启动Activity的方法IntentFilter的用法Activity Group的用法
7、自己定义控件实现方法:
第四阶段:android网络编程与数据存储
1、基于Android平台的HTTP通讯:
Http协议回想Apache Commons 工具包介绍使用Get方法向server提交数据的方法解析server响应数据的方法使用POST方法向server提交数据的实现方法向server提交非文本数据的实现方法使用Http协议实现多线程下载使用Http协议实现断点续传
2、Android数据存储技术:
SQLite3数据库简单介绍SQL语句回想SQLite3编程接口介绍SQLite3事务管理SQLite3游标用法SQLite3性能分析訪问SDCard的方法訪问SharedPreferences的方法
3、ContentProvider用法:
第五阶段:android手机硬件管理
1、地图及定位技术:GPS简单介绍;LocationManager的用法;在Google Map上加入标记的方法。查询某地附近建筑的方法。使用Google Map实现点对点导航。
2、传感器用法:方向、加速度(重力)、光线、磁场、距离、温度等传感器的使用。
3、近场通信技术:NFC技术简单介绍;NFC技术是用场景介绍。NFC技术实现方法。
4、媒体管理技术:MediaPlayer的用法。
5、触摸屏技术:手势识别;多点触摸技术。
第六阶段:Android图形编程技术
1、图形处理基础:2D图形编程基础。
2、点、线、面等基本图形元素绘制方法。
3、Android动画框架简单介绍;
4、位移动画的实现方法;
5、淡入淡出动画的实现方法;
6、旋转动画的实现方法;
7、Matrix的用法。
第七阶段:Android游戏开发
1、Android游戏开发:Android游戏开发概述;
2、SurfaceView的用法;
3、物理小球技术。
4、碰撞检測技术。
5、图片、文字和背景音乐等资源的用法。
6、游戏引擎基础概念;
7、Cocoa2d-Android引擎用法;
8、OpenGL ES用法。
学习Android(安卓)以后可以做什么?
首先要明确的一点就是,何为Android(安卓),Android(安卓)学习方向和知识要点,以及Android(安卓)学成后会成为哪个方向的人才,最后,还要分析一下目前安卓的发展对象,当这些情况分析总结后,我们才能够更好的知道,学习完安卓的课程后,我们会成为哪些工作领域的精英。
接下来我们就先了解一下何为Android(安卓)的由来、Android(安卓)工程师、Android(安卓)系统架构等。
Android:一词的本义指“机器人”,同时也是Google于07年11月5日发布的基于Linux核心的开源手机软件平台,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
Android工程师:是以手机开发为主要对象,包括但不限于手机操作系统、手机游戏、手机其他多种功能的开发和优化人员。
Android系统架构:由Linux Kernel、Android Runtime、Libraries、Application Framework、Applications五部分组成。Android系统的高级编程语言是Java,很多Java和C#程序员用来做基于Android系统的软件开发,比如基于Android系统的QQ等。
目前对该平台的应用主要分为两部分人员,一是设备制造商,希望在自己的硬件平台上运行Android;另外一部分是移动应用开发者,希望将自己的应用移植到该平台上或者在该平台上开发应用。但是无论哪部分人员,首要解决的就是需要对Android的系统架构和运行机制有全面而整体的了解和把握。
Android的由来:
Android是一家在美国的公司,成立于2003年,创办人:Andy Rubin,Andy McFadden、Richard Miner Chris White;中文名为:安卓(官方译名);主要业务为:手机软件和手机操作系统。
Andy Rubin创立了两个手机操作系统公司:Danger和Android。Danger 5亿美元卖给微软,2013年成为了Kin,Android4千万美元卖给Google。Android是Google于2007年11月05日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。
底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。Google通过与软、硬件开发商、设备制造商、电信运营商等其他有 关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Android 作为Google企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。全球为数众多的移动电话用户正在使用各种基于Android 的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于这个目的,Android 将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
Android在中国的发展
Android在中国的前景十分广阔,首先是有成熟的消费者,在国内,android社区十分红火,这些社区为android在中国的普及做了很好的推广作用。国内厂商和运营商也纷纷加入了android阵营,包括中国移动,中国联通,中兴通讯,华为通讯,联想等大企业,同时不仅仅局限于手机,国内厂家也陆续推出了采用android系统的MID产品。
Android的就业前景和行业需求
国外Android市场正在如日中天的扩展,据市场调研机构NPDGroup最近发布的一份报告称,今年第一季度基于Android操作系统的智能手机在美国智能手机总销量中所占比例达到28%,首度超过苹果iphone,苹果iphone约为21%,相信在不久的将来会有更多的用户选择Android系统的手机或是无线终端设备。
目前中国拥有世界上最大的手机用户群,再加上5G的推出对整个行业的巨大推动作用,全世界所有大中小型手机制造商几乎都在招聘Android工程师。然而每天有超过16万台的Android设备出货,一年后全球可能会有超过1亿台的Android设备,以后将超越iphone成为智能手机平台的旗舰。
随着Android平台的扩张,引发了Android人才荒,2010年移动开发人才需求20万,未来人才需求缺口将达百万。但符合条件的Android工程师屈指可数,企业招聘难度可想而知。我们相信,在未来几年内,Android开发工程师将成为5G行业炙手可热的岗位之一。
人才全球紧缺,实用人才培养已迫在眉睫!在国内三大运营商如火如荼的营销战持续升温,再加上5G推出对整个行业的巨大推动作用,无疑将引爆手机开发工程师这个黄金职位。所以我们说程序员必学Google Android的理由可以总结为以下几点:更快的薪酬提升通道、更好的热门就业岗位、更多的行业人才需求、最热门的新技术行业。下图为:普通软件工程师与Android软件工程师的薪资区别。
写在最后,欢迎大家注我们的头条号(搜课)一个可以免费学技术的地方!
搜课 ~ 搜罗天下好课!
作为一个从事8年安卓开发的过来人告诉你,学安卓能做的有很多,由于安卓的开源,安卓系统被广泛应用在各个领域,除了手机外还在车载导航,智能家居,智能柜员机,等等各个产业,一但学好了安卓,就业是不愁的,但如果想找个好的工作就只有靠自己努力磨炼技术,不断学习,不断扩展技能,才能到达不断提高自己,实现人生的目标。至于怎么从零自学,推荐你在哔哩哔哩上直接搜android,你会发现大量的教学视频,选一个浏览量多的,从头看到尾,跟着老师一边看一边操作,如果能够坚持下来就基本入门了,然后就是自己找几个不太难的应用仿照着开发一遍巩固知识,最后就是多在技术论坛逛逛看看相关的技术讨论最好自己也开一个技术博客,写写自己的技术心得,总结,或者对安卓的理解等等可以帮助你提高技术水平。详细的从零学习安卓可以关注我的头条号文章从零开始学习android。
留言与评论(共有 0 条评论) |
全站搜索