[iOS]关于零基础学习iOS开发的学习方法总结
关于零基础学习iOS开发的学习方法总结
最近很多零基础来参加蓝鸥培训的学生经常会问到一些学习方法的问题,就如下我自己见过的好的学习方法一起讨论一下.
- 蓝鸥iOS开发技术的学习路线图
- 程序员的主要工作是什么
- 在培训期间,老师与学生的时间应该如何分配
蓝鸥培训的主要内容是什么
- iOS开发技术
- Unity3D开发技术
- Android开发技术
- HTML5开发技术
iOS开发技术的学习路线图

- [x] C语言技术基础
- [x] OC开发基础
- [x] UI界面开发基础
- [x] 项目数据逻辑
- [x] iOS高级程序开发
- [x] 项目优化技术
- [x] 团队配合技术
程序员的主要工作是什么
- 阅读代码
- 阅读公司中已经处于迭代过程中的代码(理解公司前辈开发过程中的开发思路);
- 阅读Github上的优秀的代码框架(比较Forks与Stars的数量)(学习其他优秀程序员编写代码功能时的思路);
- 阅读代码的目的,是我们要做到对项目代码的执行流程和细节做到胸有成竹;
在阅读代码的过程中,需要注意的流程:
1.首先复制一份原始代码到当前路径,并且保存为文件名加日期;
例如:LODoudizhu2015-03-22
2.然后找到AppDelegate.m文件,并且从程序的启动流程中,阅读相关的功能代码;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//...
//程序启动流程
}
3.尝试注释程序中的某行我们认为的重要性语句,并且运行程序看结果;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
//例如,如下行的代码就非常重要,因为它决定了我们的本程序是否可以显示界面
//[self.window makeKeyAndVisible];
LO_RootViewController *root = [[LO_RootViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:root];
self.window.rootViewController = nav;
return YES;
}
4.当遇到与我们期望的运行结果不同时,可以通过进入该函数内部查看内部的实现代码,并且重复第三步;
5.直到,我们可以将我们负责的模块功能的实现方式.
- 编写代码
- 编写功能中的主要逻辑代码(主要以实现功能为主);
- 编程功能中需要测试逻辑是否正确的测试用例(主要以测试Bug为主);
- 编写提供给同事或者其他人的接口代码(主要以代码使用方便为主);
1.主要逻辑代码刚刚写完时,其实会很丑,有很多的if,for等等,举例如下:
- (void)onGetGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error
{
//
if ([result.address isEqualToString:self.startAddressTF.text]) {
// 说明当前编码的对象是开始节点
self.startNode = [[BMKPlanNode alloc] init];
// 给节点的坐标位置赋值
_startNode.pt = result.location;
// 发起对目标节点的地理编码
// 1.创建正向地理编码选项对象
BMKGeoCodeSearchOption *geoOption = [[BMKGeoCodeSearchOption alloc] init];
geoOption.city = self.endCityTF.text;
geoOption.address = self.endAddressTF.text;
// 执行正向编码
[self.getCodeSearch geoCode:geoOption];
//
self.endNode = nil;
}else{
self.endNode = [[BMKPlanNode alloc] init];
_endNode.pt = result.location;
}
if (_startNode != nil && _endNode != nil) {
// 开始进行路线规划
// 1.创建驾车路线规划
BMKDrivingRoutePlanOption *drivingRoutOption = [[BMKDrivingRoutePlanOption alloc] init];
// 2.指定开始节点和目标节点
drivingRoutOption.from = _startNode;
drivingRoutOption.to = _endNode;
// 3.让路线搜索服务对象搜索路线
[self.routeSearch drivingSearch:drivingRoutOption];
}
}
2.用例测试代码在编写过程中,其实是最消耗时间的部分,因为要大量的举例论证Bug:
// Use this for initialization
void Start ()
{
//打开数据库
LOSQLiteTools.OpenDB("yihuiyun");
SQLObject[] list = LOSQLiteTools.SelectEntity (typeof(Student));
foreach (SQLObject item in list)
{
Debug.Log (item.ToString());
}
}
3.当开始给同事编写接口代码时,要注意的地方就是方便些与扩展性的问题了:
#region 公开函数
/// <summary>
/// 异步加载资源
/// </summary>
public IEnumerator LoadAssetAsync (string assetBundleName)
{
//开始加载包裹
yield return StartCoroutine(LoadAssetBundle (assetBundleName));
}
/// <summary>
/// 异步加载场景
/// </summary>
public IEnumerator LoadLevelAsync (string assetBundleName)
{
//加载资源包
yield return StartCoroutine(LoadAssetBundle (assetBundleName));
}
#endregion
在培训期间,学生的时间应该如何分配
学生在学习期间的主要工作时间分配
- 9:00~ 9:30,认真听同学的学习阶段中的分享,俗话说的好"三人行,必有我师";
- 9:30~ 18:00,认真听老师的课堂上课,并且要准备好一个手写笔记本,好记性不如烂笔头,当然我个人认为记录在电脑上,并不靠谱,而且在复习时还费眼,我从开始上学到现在就一直有在笔记本上写写画画的习惯;
- 19:00~ 20:00,用一个小时的时间,回忆今天上课的知识点,这时笔记本的重要性就体现了,它可以帮助我们心无旁骛的复习和总结;
- 20:00~ 22:00,用来完成今天的作业及预习第二天的内容,并且将作业中遇到的问题及预习时遇到的问题记录下来,在第二天上课时可以拿出笔记本来问老师;
如果还有遇到需要时间去补习的内容,可以在每个周周六、周日,通过解决笔记本上的遗漏知识点来补习.
顺便提供给大家相关的复习视频:
C语言技术视频:
链接: http://pan.baidu.com/s/1jGH7WQ6 密码: smv8
iOS技术视频:
链接: http://pan.baidu.com/s/1o6ORsoU 密码: hvfm
还有需要帮忙的请QQ或者邮箱联系我.
QQ:632138357
Mail:xiaohao@lanou3g.com
[iOS]关于零基础学习iOS开发的学习方法总结的更多相关文章
- 【零基础学习iOS开发】【转载】
原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开 ...
- 李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇
从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂 ...
- 【零基础学习iOS开发】【01-前言】01-开篇
本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过I ...
- 零基础学习iOS开发
零基础学习iOS开发不管你是否涉足过IT领域,只要你对iOS开发感兴趣,都可以阅读此专题. [零基础学习iOS开发][02-C语言]11-函数的声明和定义 摘要: 在上一讲中,简单介绍了函数的定义和使 ...
- 零基础学习hadoop开发所必须具体的三个基础知识
大数据hadoop无疑是当前互联网领域受关注热度最高的词之一,大数据技术的应用正在潜移默化中对我们的生活和工作产生巨大的改变.这种改变给我们的感觉是“水到渠成”,更为让人惊叹的是大数据已经仅仅是互联网 ...
- 李洪强iOS开发之【零基础学习iOS开发】【01-前言】02-准备
在上一讲中,介绍了什么是iOS开发.说简单一点,iOS开发,就是开发运行在iPhone或者iPad上的软件.这么一说完,应该有很多人就会产生一些疑惑,比如学习iOS开发是不是一定要买iPhone?需不 ...
- 【零基础学习iOS开发】【01-前言】02-准备
一.程序设计语言 上一讲已经说到:要想开发一款软件,首先得学习一些对应的程序设计语言. 至于iOS开发,须要学习的语言主要有:C.C++.Objective-C. 回到顶部 二.是否须要计算机专业知识 ...
- 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】02-第一个C语言程序
前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算 ...
- 李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述
前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C+ ...
随机推荐
- HDU1051:Wooden Sticks
Problem Description There is a pile of n wooden sticks. The length and weight of each stick are know ...
- laravel多种安装方法
首先请确保环境为 PHP >= 5.5.9 OpenSSL PHP 扩展 PDO PHP 扩展 Mbstring PHP 扩展 Tokenizer PHP 扩展 方法一: 直接下载安装好的lar ...
- 很好的容斥思想 HDU 5514
题目描述:有n只青蛙,m个石头(围成圆圈).第i只青蛙每次只能条a[i]个石头,问最后所有青蛙跳过的石头的下标总和是多少? 思路:经过绘图我们发现,每次跳过的位置一定是k*gcd(a[i], m).然 ...
- 如何获取path与basePath
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding=& ...
- n++与++n的区别
n++ 是先执行n++再进行赋值返回的只却是n. ++n 是先赋值之后再执行++n. 其实执行 n++ and ++n 都算是一次赋值 所以若 n = n++ and n = ++n 其实就是2次赋值 ...
- 初次stack-overflow 提交答案
初次在stack-overflow上面提交答案,首先编辑器非常好用,语法检查都有, 还有付费版的,更高级,更好用,nice. 付费版:https://www.grammarly.com/upgrade ...
- Hadoop RPC机制
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.Hadoop底层的交互都是通过 rp ...
- jQuery仿百度帖吧头部固定不随滚动条滚动效果
<style> *{margin:0px;padding:0px;} div.nav{background:#000000;height:57px;line-height:57px;col ...
- linux的学习系列 3---目录
目录也是一个文件,它的唯一功能是用来保存文件及其相关信息.所有的文件,包括普通文件.设备文件和目录文件,都会被保存到目录中. 主目录 登录后,你所在的位置就是你的主目录(或登录目录),接下来你主要是在 ...
- UIGestureRecognizer 手势浅析
目录[-] iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用 一.引言 二.手势的抽象类——UIGestureRecognizer 1.统一的初始化方法 2.手势状态 ...