如果你想成為 iOS 開發者,你需要注意什麼

如果你想成為 iOS 開發者,你需要注意什麼

從 iOS 的外部來看,開發似乎是一個封閉的俱樂部。為了工作,你肯定需要一台蘋果電腦;生態系統由一家公司嚴格控制。從內部來看,有時你也能聽到矛盾——有人說 Objective-C 語言古老又笨拙,有人說新的 Swift 語言太粗糙。

儘管如此,開發商還是進入了這個領域,一旦進入,他們就會感到滿意。

這次,馬拉特·努爾加利耶夫(Marat Nurgaliev)和鮑里斯·巴甫洛夫(Boris Pavlov)向我們講述了他們的經歷——他們如何學習這個職業,如何通過第一次面試,為什麼遭到拒絕。院長安德烈·安特羅波夫 (Andrey Antropov) 擔任專家 iOS開發學院 在極客大腦。

2016 年,來自阿斯特拉罕地區的 Marat Nurgaliev 來到當地電視公司找到了一份行動開發人員的工作。這是他第一次接受訪問。他剛從部隊回來,沒有實踐和經驗,連理論都忘記了,他已經對理論產生了疑問。 Marat 在行動開發方面的唯一經驗是他關於分析 Android 應用程式資訊洩漏流的論文。在訪談中,馬拉特被問到自己的學習、物件導向程式設計等理論,但馬拉特無法掩飾自己知識上的差距。

不過,他並沒有被拒絕,而是給了他一個實際的任務——在兩週內實現使用API​​顯示新聞清單。適用於 iOS 和 Android。 「如果我在 Android 上有過任何經驗,那麼甚至沒有一個工具可以創建 iOS 版本。 iOS應用程式開發環境僅適用於Mac。但兩週後我回來展示了我可以在 Android 上做什麼。對於 iOS,我必須即時弄清楚。最後他們帶走了我。然後我住在阿斯特拉罕。任何工資在二十以上的 IT 工作都適合我。

iOS 開發者是誰?

行動開發人員為任何便攜式設備開發應用程式。智慧型手機、平板電腦、智慧型手錶以及所有其他支援 Android 或 iOS 的平台。行動開發的基本原理與常規開發沒有什麼不同,但由於特定的工具,它被分成了一個單獨的方向。它使用自己的工具、程式語言和框架。

「要使用 iOS,你需要一台 MacBook,因為只有它才有必要的 Xcode 開發環境。它是免費的,並透過 AppStore 分發。要安裝,您需要有您的 Apple ID,僅此而已。在 Xcode 中,您可以為任何東西開發應用程式 - 手機、平板電腦、手錶。 GeekBrains iOS 開發部主任 Andrey Antropov 表示:“一切都有一個內建的模擬器和編輯器。”

「但如果你使用 Hackintosh,開發環境可以安裝在 Windows 上。這是一個有效但迂迴的選擇——沒有一個認真的開發人員會這樣做。初學者買一台舊MacBook。經驗豐富的人通常買得起最新型號。

語言 - Swift 或 Objective-C

幾乎所有 iOS 開發都是使用 Swift 程式語言完成的。它出現於五年前,現在逐漸取代舊的 Objective-C 語言,Apple 已在其所有應用程式中使用該語言 30 多年。

「Objective-C 已經累積了龐大的程式碼庫,因此仍然需要兩種語言的開發人員,具體取決於公司、其任務和應用程式。許多年前編寫的應用程式都是基於 Objective-C 的。所有新專案都預設使用 Swift 開發。現在,Apple 正在做很多事情,以盡可能方便地同時開發手機、平板電腦、手錶和 MacBook。相同的程式碼可以在任何地方編譯和運行。這以前沒有發生過。對於 iOS,我們使用 Swift 進行開發,對於 MacOS,我們使用 Objective-C。

Andrey 表示,Swift 是一種非常簡單的語言,對於初學者來說很友善。它是嚴格類型化的,這使您可以在專案編譯階段捕獲許多錯誤,並且錯誤的程式碼根本無法運作。

「Objective-C 是一門相當古老的語言—與 C++ 語言同齡。在開發的時候,對語言的要求是完全不同的。當 Swift 出現時,它有很多 bug,功能有限,語法也很粗糙。人們忙於研究 Objective-C。它已經改進了很多年,所有錯誤都已修正。但現在我認為 Swift 和 Objective-C 一樣好。儘管蘋果仍然在其項目中使用這兩種方法。這些語言在很大程度上可以互換並且相互補充。一種語言的結構和物件可以轉換為另一種語言的物件和結構。了解這兩個選項固然很好,但對於初學者來說,Objective-C 常常顯得令人生畏和困惑。

訓練

「在我的第一份工作中,我的老闆對我進行了培訓,幫助我實施和建立項目,」Marat 說,「但同時在 Android 和 iOS 上工作很困難。重建、從一個專案切換到另一個專案、從一種語言切換到另一種語言都需要時間。最後我決定,我需要選擇一個方向並學習它。我被 Xcode 的介面和 Swift 的簡單語法所吸引。

Marat 進入 GeekBrains 的 iOS 開發部門。起初很容易,因為他從工作經驗中知道了很多事情。年度課程分為四個季度。根據Andrey 的說法,第一個只給出了非常基礎的知識:「Swift 語言的基礎知識、基本框架、網路、資料儲存、應用程式生命週期、控制器、基本架構、每個人都使用的主要庫、多執行緒和並行性的知識。

第二季新增了 Objective-C。課程是關於架構和基本程式設計模式的。在第三季度,他們教授正確的程式碼編寫風格。它解釋了什麼是工廠,如何正確編寫測試,創建項目,什麼是 Git-Flow,透過快速通道進行持續整合。第四個也是最後一個季度致力於團隊合作、實務作業和實習。

「第一季很簡單,」Marat 說,「但後來我開始學習 Objective-C 編程,研究設計模式、Solid 原理、Git-Flow、專案架構、應用程式的單元和 UI 測試、設定自訂動畫——然後我的學習就變得有趣了。

「我在 GeekBrains 的起步並不順利,」鮑里斯·巴甫洛夫 (Boris Pavlov) 說道,而且他的 iOS 開發之路總體來說並不是最直接的。這個男孩是由他的祖母撫養長大的。她是建築師、數學家和設計師,向鮑里斯灌輸了對設計的熱愛,教他手繪和繪畫。他的叔叔是一名系統管理員,他的侄子對電腦很感興趣。

鮑里斯是一名優秀的學生,但九年級後失去了學習興趣並離開了學校。大學畢業後,他開始騎腳踏車,電腦逐漸淡出人們的視野。但有一天鮑里斯脊椎受傷,這使他無法繼續他的運動生涯。

他開始跟隨伊爾庫茨克日地物理研究所的一位老師學習 C++。然後我對遊戲開發產生了興趣並嘗試轉向C#。最後,像 Marat 一樣,他被 Swift 語言迷住了。

「我決定參加 GeekBrains 的免費入門課程。說實話,他很無聊、遲鈍、難以理解,」鮑里斯回憶道,「老師只講了語言的特點,但從一個話題到另一個話題,卻沒有透露本質。當課程結束時,我還是什麼都不懂。

因此,在入門課程結束後,鮑里斯沒有參加為期一年的培訓,而是參加了為期三個月的短期課程,教授該職業的基礎知識。 “我在那裡找到了非常好的老師,他們把一切都解釋得非常清楚。”

「我們經常受到批評,據稱我們的訓練手冊並不完全是最新的,存在不準確之處。但課程不斷更新,老師也總是講創新。在我領導的團隊中,許多人在第一季後找到了工作。當然,通常這些人都是有程式設計經驗的人,」Andrey 說,「另一方面,不可能在一門課程中傳達所有知識。生活中的網路客戶互動不可能用十個兩小時的講座來概括。而如果你只去上課而不做其他事情,那麼你的知識就不夠。如果你全年每天都在學習,那麼以這個速度,只有懶惰的人才找不到工作。因為這個行業的需求量非常大。

如果你想成為 iOS 開發者,你需要注意什麼

你能看到最多的 最新職缺 適用於 iOS 開發人員並訂閱新的。

Работа

但馬拉和鮑里斯都沒有那麼容易找到工作。

「一些大公司長期使用 Objective-C 開發 iOS 應用程序,並繼續維護舊的程式碼庫。不幸的是,我沒有令人信服的論點來強迫他們只使用 Swift。尤其是那些使用「不要碰有效的東西」規則的人,Marat 說,「Geekbrains 很少關注 Objective-C 的方向。它更多的是一種資訊性質。但我面試過的每家公司都問過 Objective-C。由於我的研究重點是 Swift,就像我之前的工作一樣,我在面試中遭到了拒絕。

「學習之後,我自己只了解了最膚淺的基礎知識,在這些基礎知識的幫助下,我可以創建最簡單的應用程序,」鮑里斯說,「對於工作來說,這當然是不夠的,但我對此感到很高興。在伊爾庫茨克很難找到工作。更準確地說——完全不是。我決定去其他城市看看。就職位空缺數量而言,克拉斯諾達爾、莫斯科和聖彼得堡最為相關。我決定去聖彼得堡——離歐洲更近。

但事實證明一切並不那麼美好。即使是小輩,他不知道的事也會被原諒。我還沒找到工作。我正在為「謝謝」而工作,累積經驗。我知道這不是我想要的,但我很感興趣,這激勵著我。我想獲得知識。

安德烈認為,新移民應該找實習而不是工作。如果你的知識很少,那麼實習沒有報酬也是很正常的。安德烈建議向已經建立工作流程的大公司申請初級職缺。

「當您了解軟體開發流程的工作原理時,根據您的願望導航和找到進一步的工作將變得更加容易。有些人開始獨立開發,為自己製作遊戲,上傳到商店,然後自己獲利。有些人在一家有嚴格規則的大公司工作。有些人在製作客製化軟體的小型工作室中賺錢,在那裡他們可以觀看整個過程 - 從從頭開始創建項目到將其交付到商店。

薪資

iOS 開發人員的薪水與其他開發者一樣,取決於「莫斯科還是俄羅斯」這個問題。但由於該行業的特殊性——大量遠距工作、調諧機會以及不在區域市場工作——這些數字越來越接近。

如果你想成為 iOS 開發者,你需要注意什麼

根據我的圈子薪資計算器,iOS開發者的平均薪資略低 140 000盧布.

「處於非常低水平的初級人員通常是免費工作或像徵性地工作——20至30萬盧布。如果有目的地任命一個後輩來擔任他的職務,他將獲得五萬到八萬的報酬。中年人收到的金額從 50 到 80 不等,有時甚至高達 100。我認為他們的薪水在150-200左右。相應地,對於團隊負責人來說,這個數字超過了 200。

如果你想成為 iOS 開發者,你需要注意什麼

訪談

「第一次面試是在 Skype 上進行的。令我驚訝的是,是谷歌,」鮑里斯回憶道,「當時我剛搬到聖彼得堡,開始找工作。我收到了一份 iOS 開發人員職位的申請。不是初級、中級、高級——只是一名開發人員。我很高興並開始與經理通信。我被要求完成一項技術任務:我必須編寫一個關於查克·諾里斯的笑話的應用程式。我寫的。他們告訴我一切都很好並安排了線上面試。

我們互相打電話。一個漂亮的女孩跟我說話。但他們並沒有問任何關於語言能力的問題——只是各種邏輯問題,例如「時間是15點15分,時針和分針之間有多少度?」或「一根柱子長10米,一根柱子長3米”。蝸牛白天爬1米,晚上爬XNUMX米。”她需要多少天才能爬到山頂?

然後還有一些非常奇怪的問題——我為什麼喜歡蘋果以及我對提姆·庫克的感覺如何。我說整個公司對他來說是正面的,而不是負面的,因為對他來說重要的是錢,而不是產品。

當有關 Swift 的問題開始出現時,我的知識只夠程式模式和 OOP 基礎知識。我們告別了,一週後他們回電給我說我不適合。事實上,我從中獲得了豐富的經驗:你需要知識,你需要大量的知識——理論和實踐。

Andrey 說,「面試時每個人被問到的第一件事就是控制器的生命週期。他們真的很喜歡要求一些簡單的程式模式。他們肯定會詢問你使用流行圖書館的經驗。肯定會有一個關於 Swift 值類型與引用類型的差異、關於自動引用計數和記憶體管理的問題。他們可能會問他們如何在應用程式中實現資料存儲,以及是否實現了網路請求。他們會詢問 REST 和 JSON 的基礎知識。初級者不會被要求提供具體的事情和微妙之處。至少我不會問。

鮑里斯則有不同的經歷:「即使當我要求實習、完成技術任務並說薪水對我來說並不重要,只要夠租一間公寓時,我仍然被拒絕。我閱讀文章,試著了解招募人員對新人的需求。但他們大多在理論上失敗了。出於某種原因,他們向大聯盟提出了與新人無關的問題。

馬拉比較幸運。現在他在一家運輸公司工作,獨自負責iOS部門,同時繼續在學院學習。 “由於我是 iOS 的唯一負責人,因此我的工作評估僅取決於我執行分配給我的任務的能力,而不是我的理論知識。”

社區

安德烈住在下諾夫哥羅德,他說即使在那裡也已經形成了一個偉大的社區。曾幾何時,他是Python後端開發人員,但他的朋友把他拉進了行動開發領域——現在他自己也鼓勵大家這麼做。

「國際社會通常透過 Twitter 進行交流。人們撰寫自己的部落格、在 YouTube 上錄製影片、互相邀請觀看播客。有一天,我對 HQTrivia 團隊領導的演講有疑問。這是一款美國問答遊戲,有數百萬人同時玩。我在推特上給他寫信,他回覆了我,我們交談了,我感謝他。社區非常友好,這很棒。

推薦文獻清單初學者級:

平均:

先進的水平:

來源: www.habr.com

添加評論