关于零基础学习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. linux 架设 postfix 邮件服务器

    http://www.cnblogs.com/dudu/archive/2012/12/12/linux-postfix-mailserver.html

  2. 使用SpringSecurity3用户验证(异常信息,验证码)

    1. 自定义user-service后,封装自定义异常信息返回 通常情况下,抛UsernameNotFoundException异常信息是捕捉不了,跟踪源码后发现 try { user = retri ...

  3. Heartbeat+DRBD+MySQL高可用方案【转】

    转自Heartbeat+DRBD+MySQL高可用方案 - yayun - 博客园 http://www.cnblogs.com/gomysql/p/3674030.html 1.方案简介 本方案采用 ...

  4. android:onTouch()和onTouchEvent()的区别?看完这篇文章就知道了

    Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等.这些Gesture会使用户体验大大提升. A ...

  5. su -无反应

    一.问题产生环境 CentOS 6.3 X64SecureCRT 7.0.0 英文版 二.问题具体描述 今天操作自己的一台Linux服务器时,突然su命令不好使了,敲入命令回车后,没有任何反应,不管是 ...

  6. c++11 对象池的实现

    ; template <typename T> class ObjectPool { template <typename... Args> using Constructor ...

  7. java设计模式案例详解:工厂模式

    1.简单工厂模式 在不考虑扩展的情况下还是很好用的,其实我们写代码也很经常用到,其主要理解在于传入不同参数则构建不同对象,只有一个工厂,如需添加产品涉及到扩展需要修改比较多的东西,不符合开闭原则,如下 ...

  8. UIGestureRecognizer 手势浅析

    目录[-] iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用 一.引言 二.手势的抽象类——UIGestureRecognizer 1.统一的初始化方法 2.手势状态 ...

  9. 利用BFS求最短路

    利用BFS求图的最短路, POJ3984 #define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<string.h& ...

  10. mapreduce 顺序组合

    import java.io.IOException;import java.util.StringTokenizer; import org.apache.hadoop.conf.Configura ...