機械專業自學編程轉行iOS工程師,我是如何做到的?

2021-01-10 百家號

我是題主,感謝各位答主的答案,感謝各位知友的鼓勵,時隔半年,我已成功轉行網際網路,今天我就自己來回答一下這個問題。

最近我找到了一份iOS開發的正式工作,所以想把自己學習iOS開發的經驗和心得寫出來,希望能夠幫到那些努力但迷茫的初學者。

首先介紹一下自己的背景,我大學學的是機械專業,與計算機有關的課程只有一門C語言。

在接觸iOS開發之前,我已經在一家機械製造公司工作一年多,工作內容與計算機毫無關係,所以我屬於零基礎轉行。

2014年10月,出於對機械行業的失望和對網際網路行業的濃厚興趣,我萌發了轉行的念頭。

於是開始利用下班時間自學計算機知識(Java、Python、數據結構與算法)。學了大概兩個月,基本的東西有了大致的了解,但是感覺要熟練掌握還任重道遠。由於時間的原因,我就將重心轉移到iOS開發上面。

2015年1月,我開始開發我的第一個iOS應用,這款APP從第一行代碼到蘋果App Store上架用了大概兩個月的時間,但總的時間跨度有接近4個月(春節期間停滯了一個多月,等待蘋果審核10天)。

APP上架後,我即開始投簡歷,並拿著我的APP去面試,很幸運地拿到了幾個還不錯的Offer,然後挑了一個去上班了。

下面就是我自學iOS開發的一些經驗和心得。

一、準備工作

1. Mac、iOS設備、開發者帳號

這些是做iOS開發必須要有的,而且是一大筆錢,但不要怕花錢,因為這些都是值得的。如果能夠學有所成,一兩個月的工資基本可以回本,就當是自己交的一筆「培訓費」吧。

2. 心態上的準備

如果你和我一樣是零基礎轉行iOS,那麼一定要有破釜沉舟的勇氣和決心,並做好打持久戰的心理準備。如果畏手畏腳、瞻前顧後,我勸你還是想好了再來,免得浪費時間和金錢。

我當初收入很低,拿了3個月的工資買的Macbook,天天擔心丟了、壞了。學習到小有所成時毅然決定裸辭,孤身一人來到陌生的上海,經過2個月的待業狀態才找到工作。這一路走來都承受著巨大的精神壓力和物質壓力。

二、學習路線

1. 對編程的基本認識

如果你是完全的零基礎,我建議先要對編程有個基本的認識。建議從C語言入手,因為C語言比較簡潔易上手,並且和Objective-C很相似。

2. Objective-C語言學習

當對C語言有個大致的了解後,就可以開始學習Objective-C了。

推薦書籍:《Objective-C基礎教程》《Objective-C程序設計》

註:

這兩本內容差不多,但《Objective-C基礎教程》更好、更經典,建議以這本為重點精讀。只是這本比較籠統,難度稍高,所以如果遇到不懂的地方就看看《Objective-C程序設計》,這一本簡單、詳細一些。

需要掌握並熟練運用的地方:

a.面向對象編程的基礎知識。包括:面向對象與面向過程的區別、為什麼要面向對象編程,類、對象、繼承、方法、屬性、接口等概念的理解與使用。b.Foundation框架。主要是NSString類、NSArray類、NSDictionary類、NSNumber類、NSRange類的熟練運用。c.內存管理MRC、ARC的原理,委託delegate、協議protocol、類別category、塊block的理解與使用。

3. iOS SDK/Cocoa Touch學習

有了Objective-C基礎,就可以開始邊看斯坦福公開課邊做APP了(個人覺得沒有OC基礎直接看這個會很吃力)。

第一個iOS應用:

蘋果官方有個做iOS應用的教程——《馬上著手開發iOS應用程式(Start Developing iOS Apps Today)》。

強烈建議以此Demo作為你的第一個iOS應用,因為該教程能讓你對一個iOS應用的搭建有個非常全面、細緻的認識。完成了這個Demo後,就可以結合斯坦福公開課學到的東西創建屬於你自己的APP了。

需要掌握的地方:

a.MVC設計模式。只有理解了iOS的MVC架構,才能把一個應用解剖成一個個單獨的部分,這樣你在開始做一個項目的時候才不會茫無頭緒。b.UIKit的各種控制項。特別是UITableView和UICollectionView一定要掌握,因為大部分的iOS應用都是由這兩種視圖搭建,吃透了它們那可玩的花樣就很多了,其樂無窮。c.導航控制器UINavigationController和選項卡控制器UITabBarController。同上,這兩個控制器也是絕大多數iOS應用UI框架的根基,也是多個MVC協同工作的最典型例子。d.場景切換的實現——Segue。熟練使用Segue很重要,因為一個應用一般都是各個界面輪流出現的,兩個界面之間怎樣實現跳轉、怎樣將一個界面的數據傳遞到下個界面,這都是實際開發中會遇到的問題。e.Storyboard和AutoLayout的使用。這兩者是一個應用的UI界面設計不可或缺的部分。f.其它iOS高級編程。包括:數據存取CoreData/SQLite、多線程GCD、繪圖CoreGraphics、動畫CoreAnimation、網絡編程、手勢Gesture、多媒體AVFoundation等等,這些內容都可以實際用到時再深入學習。g.第三方庫的使用。參考:GitHub 上都有哪些值得關注學習的 iOS 開源項目? - 編程

4. 堅持寫代碼、查文檔、讀技術博客

學習編程,一定要勤於動手,看再多的書、再多的視頻,如果不動手敲代碼都是白搭。哪怕書上和視頻上的代碼你一行都看不懂,也要親手把代碼敲一遍、把Demo親自實現一遍,這很重要。

編程是手敲會的,不是眼睛看會的。

學習iOS開發的過程中,有遇到不懂是正常的,別害怕不懂,Cocoa的內容細節本來就多,每年的WWDC還會發布一些新技術。所以遇到不懂的知識一定要學會查蘋果官方API文檔——iOS Dev Center

做APP時,如果一個地方不會實現,或者遇到解決不了的問題,一定要學會使用Google搜索。一般來說,初學iOS遇到的問題,Stack Overflow上都有類似的提問,基本一搜一個準。

此外,CSDN等一些技術博客上的文章也很有參考價值。推薦一些優秀的iOS技術博客——中文 iOS/Mac 開發博客列表:tangqiaoboy/iOSBlogCN · GitHub

三、最真摯的建議

如果你能按照以上所述做出一個APP上架並找到工作,那也基本算是入門了。但這並不是終點,而是一個起點。

iOS開發,乃至整個IT行業,後面的路還很漫長。蘋果的整個Cocoa框架,可謂是博大精深,裡面可以深挖的東西太多了;而且一個程序、一段代碼可以進行的優化是沒有止境的。

作為開發者,只會一門語言是不夠的,網絡編程、資料庫、算法、設計、交互等等東西都是需要掌握的,而語言只是實現這些的工具,語言其實是最簡單的。

此外,如果你和我一樣是非科班出身,還需要把計算機基礎課程補回來,即:

數據結構、算法、作業系統、資料庫、計算機網絡、編譯原理等。

因為這些知識是你的「內功」,這些基礎直接決定了你在這個領域的天花板所在的位置。

當然,基礎差一點問題也不大,最重要的是你對計算機、網際網路的熱愛和熱情。你需要有很強的自學能力,不斷地去學習新知識,才不會被這個日新月異的行業淘汰;你需要保持一顆好奇心,不斷地嘗試和接受新事物,不斷地創新;守舊的人在這個行業無法生存。

在我找工作的過程中,那些知名的大公司都是直接在簡歷關就將我刷掉了,而那些給我Offer的公司,無一例外都表示,之所以選擇我是因為欣賞的我的熱情、看重我的自學能力。

所以,如果你和我一樣對iOS開發充滿熱情,敢於接受挑戰,那麼就從現在開始努力吧,我在前方的路上等你!

本文來源知乎,由公眾號「IT實訓指南」整理,請勿擅自複製、轉載。如需轉載,可聯繫原作者授權。

部分圖片來源於網絡,如有侵權請聯繫作者刪除。

非科班出身怎樣才能學好編程??零基礎學IT真的能高薪就業?請移步訓哥兒gongzhong號:IT實訓指南(ITSXZN)查看詳細分析。回復「教程」,免費獲取Java、Python、C/C++、Web前端、PHP、大數據等學習資料。

訓哥兒,IT培訓過來人,兩年IT培訓行業從業經驗。因:

看不慣IT培訓行業的亂象;

看不慣某些機構只為賺錢,不為學生的態度;

不想看到單純的學生被忽悠;

不想看到培訓後學生找不到工作;

不想看到IT培訓成為騙子的代名詞。

遂脫離了IT培訓行業,開啟了講真話的徵程,幫助同學們防坑防騙防套路,關於IT培訓,訓哥兒只講真話。

相關焦點

  • 我是如何從動力機械專業轉行到算法工程師,完成薪資翻倍!
    背景2018年研究生畢業,動力機械專業,以仿真為主,吃飯的傢伙是CFX、NUMECA、fluent和MATLAB等一系列與仿真相關的軟體。我學得很好,無論是學習成績還是仿真實驗,都做得很好,拿了很多獎。但是到找工作的時候發現,學得好不如專業好,計院學生的薪酬待遇遠超我們。
  • 那些機械轉行去做銷售和 IT 都怎麼樣了,到底應不應該轉行?
    也有的人兜兜轉轉逛了一圈,網際網路也做過,生意也做過,最終迫於無奈又回到了機械行業。在這樣一個觀念、技術、生產方式都處於巨大變革中的時代,機械行業該不該轉行呢?壹對於機械行業的來說,轉行最多的就是IT和銷售。我一個同學當時在一家機械制行業的公司工作一年多,但一直特別不喜歡機械行業,對網際網路又有著濃厚的興趣,仔細考慮了一下,就萌發了轉行的念頭。
  • 非專業自學編程的人,如何找第一份開發工作?
    那麼在自學編程、轉行找工作的過程中,有哪些值得注意的問題和可以借鑑的經驗?之前我在知乎上有過一個相關的回答,今天在這裡給大家分享一下:非計算機專業,畢業兩三年之後才開始自學編程的人,都是怎麼找到第一份編程工作的?招聘要求中有很多學歷,專業和n年工作經驗的要求,感覺會很難的樣子。從零基礎自學到獲得第一份編程工作又需要大概多久?
  • 傳統工科專業轉行應該考慮哪個方向?資深機械工程師的思路值得學
    傳統工科專業轉行應該考慮哪個方向?資深機械工程師的思路值得學傳統工科專業對於在互聯發展的今天,無論是薪資還是就業熱度都大不如前,以前像採礦、勘探、石油等行業都就職於國企,薪資高,職位穩定,福利待遇好,深受很多考生的青睞,但目前網際網路行業和財經類專業成了熱門專業,報考的人數急劇上漲,一位資深機械工程師給傳統工科生指點的幾個方向很值得學習。
  • 從機械設備工程師轉行軟體測試他月薪1.3萬!
    >基本是0基礎轉行吧,92算大齡了吧,稍微有一點python的基礎。是因為什麼有了轉行的想法?以前從事某一個品類的非標機械設備設計工程師,主要工作就是設計產品出圖紙,配合生產,改進產品結構。轉行的念頭其實很早就有,四年前就有嘗試,當時的原因是工作兩年後覺得工作重複單調工資又低,特別是在上海,但是公司已經算是行業的頭部公司,其實也跳無可跳。
  • 我是如何從中芯國際的數據建模工程師,轉行去做算法工程師的?
    作者|復旦大學信息學院卓越工程師生涯發展工作室編輯|Harper排版|飛魚研究生入學以來,除了修第一,二年的專業課程外,我大部分時間都在做實驗和寫論文,因為我研究的方向是偏實驗方向,要有實驗數據,也要看文獻。
  • 一個機械工程師的轉行經歷:薪水重要還是興趣重要?
    ,關於機械行業轉行是看薪水還是個人興趣,希望閱讀完本篇文章能給大家一點感觸。自我介紹一下,2011年畢業,專業是機械設計製造及其自動化,畢業後在某大型民企做製造工程師。家裡人都是幹機械出身的,算是一個技術崇拜的新兵。在機械行業我還有很長的路要走,只是把這三年的思考經歷整理寫出來,算是對自己的總結並且希望和更多的人分享。
  • 我30歲自學編程,當上高級工程師,幾度精疲力盡想放棄
    騰訊創業 | ID:qqchuangye【騰訊創業編者按】布拉德·克裡斯平(Brad Crispin)原本是客戶服務行業的一名從業人員,在 30 歲之後才開始學習編程,最後成為在線教育平臺 Udacity的高級工程師。他是怎麼做到的?
  • 機械工程師究竟價值幾何?+機械專業的出路
    (康明斯略高,有給到9萬)航空航天公司,中國留學生取得綠卡前進入這個行業不太容易,身邊只有一位已經有綠卡的同學和一位美國的同學拿到了Boeing的Offer,綠卡同學一年7萬刀,美國同學一年8萬刀。諮詢公司,如麥肯錫,貝恩等,看似與機械無關,但偏偏喜歡招收各個領域有經驗的去做相關行業的Analyst,年薪超過18萬甚至更多,根據本人已有的工作經驗而調整。
  • Linux應用開發自學之路
    」那篇博文裡,朋友們應該知道了我不是科班出身,是由機械強行轉行到Linux應用開發方向。下面我就詳細向大家介紹自己這一路上的轉行歷程,希望對大家有所啟發。我是學機械專業的,對於機械專業我還是很感興趣,而且當年這個專業也是我自己選擇的。本科時成績沒排第一,但也排專業前列。碩士時成績一直是專業第一,還拿過國家獎學金。由此可見,我還是挺熱愛機械的,考研時甚至還想去中科院深造(可惜落榜了),想成為一名機械磚家。但轉機在我畢業之後。
  • 過來人支招,如何自學編程轉換跑道加入海外科技公司?(分享非常好的免費自學編程資源)
    我自己從傳統行業切換跑道到科技行業,周圍很多朋友都問我怎麼能夠轉行成功,進入所謂熱門的朝陽行業?我這就把自學編程切換跑道的經驗分享出來。之前一篇講過為什麼科技公司(特別是海外的)marketer需要懂一些技術,簡單來說就是讓你更有競爭力,同時更好地和公司內部程式設計師溝通。
  • 如何零基礎自學編程 | 我的前端工程師之路
    先來說說我的情況:中央財經大學市場營銷專業本科大學畢業後去了媒體市場部,策劃舉辦活動後來加入網際網路健身創業公司,負責內容部分,接觸到新媒體,之後就都在新媒體這塊以上統統都和計算機編程不沾邊2017年9月,我結束了新媒體的工作,去墨爾本玩了十來天,回來後就開始在家半年左右的自由時光,期間寫文章、健身、自學coding,
  • 業餘時間零基礎自學編程,9 個月後我成為一名軟體工程師
    在這篇文章裡,我想分享自己如何在 9 個月內一邊做著全職工作,一邊自學編程,從一名小白成長為年薪六位數軟體工程師。每當閱讀別人的成功故事時,我的第一反應都是查看作者的背景,希望他們的經歷和故事也發生在自己身上。可是我並沒有發現和我背景一樣的作者。所以,很可能我的經歷和故事也不會發生在你的身上。
  • 「我30歲,現在想轉行IT,可行嗎?」
    關於「30歲轉行進入IT行業」這個話題,在各大問答平臺上有多少?一直翻到尾頁,足足有39頁之多,在評論區中不乏各種加油打氣、心靈雞湯。轉行這件事情對大部分職場人來說非常痛苦的,這意味著你即將拋棄過去的專業知識從頭學起,不是喝了兩碗心靈雞湯就可以闖天下了。
  • 16 歲少年自學成為Python工程師,他靠什麼做到這一點?
    不過,一位年僅16歲的少年憑藉著自學,已經成為了iOS工程師、Python講師、Python技術顧問等。  而他,何孟軒僅僅是依靠自學做到了這一點...  起初,是何孟軒的母親讓他在家裡自學,何孟軒本來想往美術方面發展。  當時,何孟軒感興趣的三件事就是:美術、電腦與國際新聞。
  • 轉行IC設計工程師,現在就有最好的機會!
    對電子類的同學而言,集成電路設計既符合薪資高、發展好的要求,同時專業也比較對口。對於材料、物理等其他理工科專業的同學而言,轉行從事集成電路設計也是非常不錯的選擇。後端物理設計,在整個複雜的集成電路設計生產流程中,是連接集成電路前端邏輯設計和生產製造的重要步驟,是晶片設計的一個重要環節。
  • 從編程到編曲 - 程式設計師轉行指南
    可能有人會覺得這個轉行跨度有點大,我來慢慢解釋為什麼其實很相似 首先編程和編曲都帶個編字,開個玩笑有人說,搞音樂需要會一個樂器,編曲需要一個鍵盤類樂器,就像編程也需要用鍵盤輸入一樣。但沒有鍵盤就不能編程了嗎?
  • 高中老師的困惑:30歲轉行自學C語言編程,能找到工作的概率多大
    高中語文老師的困惑:在某高中從教7年,在而立之年,30歲轉行自學C語言編程,能找到工作的概率有多大?W.L自從大學畢業後,一直在某高中從事教學工作,擔任語文科教師。在送走了整整兩屆學生之後,依然在職業的選擇上耿耿於懷,總想找到一個自己擅長的領域發展,讓自己解脫,也不至於耽誤他人子弟。
  • 26自學轉行前端(寫給和1年前一樣迷茫的我的你)
    轉行前端有哪些疑慮?在人生的抉擇處,尋求一些別人的經驗和總結,無可厚非,但是決定了就一定要堅定的走下去,謹慎是為了更好的堅持,而不是放棄的理由。寫在前面:這裡前後端指的是web開發的前後端。1、前端崗位需求如何?前景如何?薪資如何?
  • 放棄培訓班自學編程,9 個月後我成為年薪 6 位數的軟體工程師
    那麼,作為傳統行業的從業者該如何順應潮流,完成自身的轉型之路?本文中,一位化學工藝工程師 Austin Tackaberry,將介紹他是如何在 9 個月一邊做全職工作,一邊通過自學從一位經驗為零的新手成長為斬獲 6 位數年薪的軟體工程師。