一直以來 LeetCode 刷題就是我的弱項,於是今年下定決心要把 LeetCode 刷題作為主力項目去推進,本來只是專注於刷題,但剛好有緣遇到一群一起學寫 App 的夥伴,實在是忍不住想寫一個 App 啊!畢竟實作 Project 成就感還是比較高。
小孩子才做選擇,我全都要!這句突然浮現在我腦海裡,為什麼需要犧牲呢?剛好我可以趁著這次機會,一次學到 LeetCode 刷題觀念跟 App 開發技巧,且我在刷題的時候經常發現,好用的 App 居然屈指可數,幾乎是沒有,如果我製作了一個方便閱讀 LeetCode 演算法知識的 App,那麼學習刷題就變成是隨處可學,不管你在通勤路上,還是在咖啡廳,都不用帶著厚重筆電學習,雖然打程式碼還是筆電方便,但是有一種面試是「白板」寫程式碼,所以也可以是拿著紙筆去練習,正好搭配手機閱讀學習,也是一種方式。
這個系列我想做成能輕鬆上手開發的系列教學文,主要受眾會著重在已有程式語言基礎,想要實作一個完整專案,且能夠在實作的過程中獲得 LeetCode 刷題知識的人。如果你發現自己實力還不足消化這篇文章,可以先去讀 《The Swift Programming Language》正體中文版鞏固基礎語法知識。
會有這樣的技術選擇主要是想跳脫舒適圈,我想選一個我上班不會接觸的技能,剛好也有一群熱愛開發 iOS 的夥伴們組成的讀書會,一起學習不孤單。我是整個歸零重頭學習關於 App 的 IDE 環境設定、開發 App 知識,一起享受這個未知的旅途。
圖片來自:Apple SwiftUI 官網
開發主力技術選擇 SwiftUI,它是 Apple 推出的一個現代的、用於建構 iOS、macOS、watchOS 和 tvOS 應用程式的框架。 其實不只 iOS 推出這樣的宣告式 UI,Android 平台也有 Jetpack Compose 、Flutter 跨平台等等,也都是使用宣告示 UI,主打更簡潔的程式碼,而 iOS 手機一直以來都是提供一個十分流暢的體驗,跟酷炫的動畫效果,選擇這個平台主要是因為想更熟悉這個平台的生態圈。
圖片來自:LeetCode 官網
LeetCode 裡面涵蓋了各個大公司的面試程式考題,很多工程師為了獲得這些大公司的錄取資格,會在裡面認真寫程式邏輯題,很多觀念是在念資訊工程時,資料結構跟演算法所帶到的知識,這也是非本科生一個比較難踏入的門檻,雖然這麼說,不少本科生其實初學時,沒有很透測了解這些知識,藉由此次系列文章,會用更好懂的方式帶一次這些基礎觀念。
這個 30 天的挑戰將要求投入時間和精力,但我相信,它將為職業生涯帶來巨大的價值。無論是一名資深工程師還是一名新手,期待一起探索演算法和 SwiftUI 界面設計的奧秘,並一起打造一個優秀的 LeetCode 演算法教學 App。
準備好了嗎?讓我們一同迎接這個挑戰,一同前進。