关于零基础学习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开发的学习方法总结的更多相关文章

  1. 【零基础学习iOS开发】【转载】

    原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开 ...

  2. 李洪强iOS开发之【零基础学习iOS开发】【01-前言】01-开篇

    从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过IT领域,也不管你是理科生还是文科生,只要你对iOS开发感兴趣,都可以来阅读此专题.我尽量以通俗易懂的语言,让每个人都能够看懂 ...

  3. 【零基础学习iOS开发】【01-前言】01-开篇

    本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开发 四.学习iOS开发的目的 五.学习iOS开发的前提 从今天开始,我就开始更新[零基础学习iOS开发]这个专题.不管你是否涉足过I ...

  4. 零基础学习iOS开发

    零基础学习iOS开发不管你是否涉足过IT领域,只要你对iOS开发感兴趣,都可以阅读此专题. [零基础学习iOS开发][02-C语言]11-函数的声明和定义 摘要: 在上一讲中,简单介绍了函数的定义和使 ...

  5. 零基础学习hadoop开发所必须具体的三个基础知识

    大数据hadoop无疑是当前互联网领域受关注热度最高的词之一,大数据技术的应用正在潜移默化中对我们的生活和工作产生巨大的改变.这种改变给我们的感觉是“水到渠成”,更为让人惊叹的是大数据已经仅仅是互联网 ...

  6. 李洪强iOS开发之【零基础学习iOS开发】【01-前言】02-准备

    在上一讲中,介绍了什么是iOS开发.说简单一点,iOS开发,就是开发运行在iPhone或者iPad上的软件.这么一说完,应该有很多人就会产生一些疑惑,比如学习iOS开发是不是一定要买iPhone?需不 ...

  7. 【零基础学习iOS开发】【01-前言】02-准备

    一.程序设计语言 上一讲已经说到:要想开发一款软件,首先得学习一些对应的程序设计语言. 至于iOS开发,须要学习的语言主要有:C.C++.Objective-C. 回到顶部 二.是否须要计算机专业知识 ...

  8. 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】02-第一个C语言程序

    前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算 ...

  9. 李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述

    前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C+ ...

随机推荐

  1. OPENWRT make menuconfig错误之一

    1.make menuconfig rm: cannot remove `tmp/.host.mk': Permission denied 退到trunk上级目录sudo chown -R 777 t ...

  2. 开发MOSS自定义字段类型

    前段时间,由于刚好项目定制的需要,笔者就开发了几个自定义字段类型.在这抽空做个详细笔记,方便初学者学习.这方面的资料也很多,如果自身觉得不大明白可以参考下SDK和网上的相关文章.本章的目的主要是给新手 ...

  3. text-size-adjust的值为100% 代替值 none

    iPhone 横屏默认会放大文字,设置text-size-adjust会解决这个问题 一般用text-size-adjust:none 但建议用100%代替none text-size-adjust: ...

  4. Google 分布式关系型数据库 F1

    F1是Google开发的分布式关系型数据库,主要服务于Google的广告系统.Google的广告系统以前使用MySQL,广告系统的用户经常需要使用复杂的query和join操作,这就需要设计shard ...

  5. Entity Framework Code First ---EF Power Tool 和MySql一起使用遇到的问题

    关于如何使用EF Power Tool的介绍请看 http://www.cnblogs.com/LingzhiSun/archive/2011/05/24/EFPowerTool_1.html, 这里 ...

  6. JSP基础语法--跳转指令 jsp:forward page

    带参数的跳转指令: <jsp:forward page="{路径|<%=表达式%>}"/> <jsp:param name="参数名称&qu ...

  7. 校验 MD5 值

    Linux 环境下:打开终端,输入命令:"md5sum filename",将结果与网页提供值对比.Windows 环境下:下载 MD5 校验软件并使用.

  8. MySQL-测试卷一

    MySQL-测试卷一 一.单项选择题 1 下面不属于Msql数据库特点的是(  ) A. 免费使用  B.不能跨平台  C.开源软件  D.功能强大 2 定义表的一个字段, 要求能表示4位整数,2位小 ...

  9. PHP错误异常处理详解【转载】

    异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法. 异常处理通常是防止未知错误产生所采取的处理措施.异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了 ...

  10. 漫谈QML

    漫谈 QML/Qt Quick QML是从Qt 4.7开始引入的,QML是一种声明语言,使得可以像设计师思考的一样编码,并且Qt Quick元素就是应用程序的编译单元,每一帧的故事板被声明为元素树中的 ...