[iOS]关于零基础学习iOS开发的学习方法总结

关于零基础学习iOS开发的学习方法总结

最近不少零基础来参加蓝鸥培训的学生常常会问到一些学习方法的问题,就以下我本身见过的好的学习方法一块儿讨论一下.ios

  • 蓝鸥iOS开发技术的学习路线图
  • 程序员的主要工做是什么
  • 在培训期间,老师与学生的时间应该如何分配

蓝鸥培训的主要内容是什么

  • iOS开发技术
  • Unity3D开发技术
  • Android开发技术
  • HTML5开发技术

iOS开发技术的学习路线图

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.直到,咱们能够将咱们负责的模块功能的实现方式.app

  • 编写代码
    • 编写功能中的主要逻辑代码(主要以实现功能为主);
    • 编程功能中须要测试逻辑是否正确的测试用例(主要以测试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.当开始给同事编写接口代码时,要注意的地方就是方便些与扩展性的问题了:ide

#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,用来完成今天的做业及预习次日的内容,而且将做业中遇到的问题及预习时遇到的问题记录下来,在次日上课时能够拿出笔记本来问老师;

若是还有遇到须要时间去补习的内容,能够在每一个周周6、周日,经过解决笔记本上的遗漏知识点来补习.
顺便提供给你们相关的复习视频:学习

C语言技术视频:

连接: http://pan.baidu.com/s/1jGH7WQ6 密码: smv8

iOS技术视频:

连接: http://pan.baidu.com/s/1o6ORsoU 密码: hvfm

还有须要帮忙的请QQ或者邮箱联系我. QQ:632138357 Mail:xiaohao@lanou3g.com

相关文章
相关标签/搜索