[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

相關文章
相關標籤/搜索