iOS 開發——五年開發個人筆記(個人開發者的困境與突破)值得收藏
前言:
本文主要與大家分享我業餘時間如何學習多門技術以及開發業餘專案的一些心得,分為 初衷、硬技能、軟技能、第一生產力、環境、時間幾個部分,閱讀大概需要 10 分鐘。
作為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個我的iOS交流群:638302184,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 大家一起交流學習成長!
業餘開發專案的初衷
總體來說,在我的感覺裡,國內的環境對於業餘開發者來說其實是非常不友好的,不過作為一個開發者,一味抱怨並不會有大的改觀,能做的就是不忘初心,多做嘗試多做積累。包括我之前也和一些朋友深入聊過類似的話題,例如“在行”上約我聊相關話題的同學,我其實是鼓勵大家勇敢的去做自由職業者或者業餘開發者,
雖然環境的確不是很友好,但是年輕時多嘗試總是沒錯的,畢竟我們還有資本去尋找更多可能性,而且我相信每個開發者其實內心都是嚮往利用自己的力量改變人們的生活方式的,而我們通常做的事情卻總是一個大工程中的螺絲釘,時間長了失卻了創新的初衷意味,這時候離一個創造者越來越遠,自會覺得內心恐慌,我最初的熱愛去哪了?雖然這些大工程的確在不斷改變我們的生活,但是我的初衷卻是能夠主導一場改變,即使它可能改變的只是一小群人的某個小小的生活方式。
我一直覺得程式員是一個很神奇的職業,不是說這個職業本身神奇,而是程式碼賦予我們的能力神奇,我們可以憑空建立起一個虛擬的世界,可以制定這個虛擬世界的規則,可以讓這個世界按照我們的想法運作,但是這個世界也會反過來要求你改變你,因為一個正常運作的虛擬世界需要嚴謹的規則,這就需要你有設計產品,設計合理規則,設計運作閉環的能力。
這也是我們重點要強調的業餘開發者的能力模型,你不能只是擁有 coding 的能力,不能只是 create,而是要合理的創造,探索人群的新的需求,創造真正有用的產品。
其實這是今天要探討的重要話題之一:業餘開發者如何做出一個真正的產品?
硬技能
這件事絕非看起來這樣簡單,首先在技術上,你要掌握足夠的技術來完成這個產品的各個方面,現在假設以我的上一個app睡前故事為例,完成這個產品需要有哪些方面的技術積累呢?
1,客戶端開發 ,iOS,Android,當然如果你選擇只支援某個平臺,可以只掌握其中一種,當然也可以使用一些跨平臺的技術,但是除了語言和程式設計模式,程式設計框架之外,還遠遠不夠,平臺差異,平臺特性,版本相容,自適應,還有最麻煩的一環,你的 app 開發成功之後如何釋出到對應的平臺?如何設定內購等?特別是 iOS,釋出一個 app 的成本遠比想象的高。另外與端相關的,還有基礎的資料統計,訊息推送,分享整合等,在初版的時候最好就能將這些工作做好,而這就需要你瞭解這些功能的整合開發。
2,前端開發 ,故事上傳有一個後臺,當然這個很簡單,然後故事從 app 裡分享出去之後有一個 H5頁面,這個頁面裡可以直接播放音訊,然後有一些下載 app 的引導。所以前端開發的技能也是必備的。還有就是一些平常要用的宣傳頁之類的。
3,服務端 ,所有故事都是在後臺儲存的,需要資料庫,還有服務端應用提供資料分發,以及一些資料統計之類。
4,資料記錄與分析 ,我需要在使用者的使用過程中,記錄使用者的動作和其他有用資訊到服務端,然後以這些資料分析使用者行為,以便決定後續哪些故事是最受歡迎的,以及受誰的歡迎,我可以做定向的推送或者收費服務。
5,設計能力 ,說起來這也是非常核心的需要,如果沒有基礎的設計能力,很難做出一個讓大家眼前一亮至少看著舒服的 app,特別是現在市面上的主流 app 都擁有比較高的體驗門檻,粗製濫造的 app 很難吸引使用者,在這點上,也需要做一些刻意的培養,雖然我們可能沒有受過專業的訓練,但是可以多看多想,從別人的設計風格中借鑑,慢慢培養審美,當然還有最重要的就是 設計工具當然需要熟練掌握。
除了技術之外,還需要其他一些技術之外的能力,這些能力可能是區分你與其他程式設計師的重要分水嶺,它決定了你可以創造產品,而不是掌握了哪些具體的技術。
軟技能
我們簡單談談:
1,需求分析 ,產品規劃。要做一個什麼產品,不是因為我掌握了什麼技術,能夠寫出什麼樣的程式碼來,技術只是一個工具,要發揮其價值,必然是需要有原始的需求和基礎產品形態。所以要開始獨立開發一個應用,首先要做的可能並不是去掌握很多種技術,而是想清楚,你要做一個什麼產品。例如,我要做睡前故事的 app 的時候,我的確已經掌握了上述的技術,但這些都不是決定性的,如果我沒掌握,我可以去學習,但是為什麼要做這個 app?是因為我有資源(我老婆,講故事講得好,她是老師,身邊有一群潛在的種子使用者),有受眾(強需求,高粘性),於是我開始思考如何利用這些資源,我想一個聽故事的 app 成本應該是不高,而且容易推廣,粘性足夠高的。雖然市面上已經有很多類似的 app,但是我可以做我的特色,
例如:我只有一個講故事的老師,而且講的質量很高(市面上大多數故事app都講的很敷衍),有很強的品牌和標籤屬性,另外我的設計能力和開發能力突出,我可以將我的 app 做的比任何一個 app 都精緻好用。
創新是第一生產力
當我們知道構建一個產品需要些什麼基礎技能之後,那我們如下真正的下手做一個產品出來呢?我應該做什麼型別的產品?我能想到的產品別人都做過了怎麼辦?我人手不足無法開展大型工程如何與別人競爭?我的推廣和運營能力有限沒人用怎麼辦?
有時候我也會困惑,特別是我做了一個 app 出來,然後千辛萬苦推廣的時候,要麼發現對個人來說推廣一個 app 是極其困難的,要麼就是發現當我把 app 推到使用者面前的時候,使用者並不會很興奮的接受你的產品,這時候我就會開始思考,如何突破?是尋求更多曝光渠道?還是做一些很花哨很吸引人的運營活動?感覺這些事情對我來說都沒有那麼簡單,成本也都很高,越想越頭疼,越想越會覺得自己做個事情出來真的不容易。
不過,可能我想著突破的點的方向就是錯的。業餘開發者的核心競爭力是什麼?不是你的資源,不是你花裡胡哨譁眾取寵的玩法,而是你個人意志主導的創新能力!使用者對於創新功能(當然首先要是合理的)的敏感度是很高的,如果你的 app 提供了一種前所未見但是又能夠解決問題的使用方式,這才是你的產品的核心競爭力,在極致情況下,可能不需要任何主動地推廣、運營,使用者會自發幫你傳播,並且保持很高的活躍度。當然,這種創新,不是特指一項具體的技術實現,也不是指一個花裡胡哨的設計,需要自己去做理解和平衡。
在這種大環境下,除了鼓勵更多的人蔘與到自由職業和獨立開發的隊伍中來之外,最好的選擇就是做部分妥協,但是勿忘初心,利用工作之餘,拾起你對技術和產品的熱愛,慢慢打磨一個業餘的產品,通過這個打磨的過程,積累經驗(硬技能、軟技能),同時保持創造的活躍度。
時間
接下來探討的這個話題可以涵蓋好幾個問題,例如如何一個人在短時間內掌握多項相關的技能?如何維持自己業餘開發的熱情?覺得技術一直沒有長進怎麼辦?
除了 0.1% 的悟性、1%的方法之外,你能做到別人做不到的事情的最大祕訣就是:時間。
如果你真的對一個事情感興趣,那就投入 100% 的熱情和精力,例如每天下班後 7 點到晚上 2 點(當然不鼓勵熬夜)的時間,就是 7 個小時,你一天投入到工作學習的時間比別人多了 7 個小時,一個月就是 200 個小時,加上週末的時間,遠比你正式工作的時間還要長,這些時間才是人和人之間拉開差距的重點。
例如學習 iOS 開發,一天學一個知識點(加上實踐),我覺得最多一個月就可以覆蓋大部分知識點,當然這需要極大地熱情,畢竟不是所有人都捨得將大把的業餘時間投入到學習或者做專案中去。
我在做之前的個人論壇和 app 的過程中,其實狀態都是比較累的,每天大概需要付出大部分業餘時間加熬夜的時間,因為使用者反饋越來越多,我需要不斷地優化自己的產品,完善自己的想法,並且將他們實現出來。雖然很累,但是成就感還是很強的,這些成就感會激勵我持續的投入更多的時間,形成一個自身成長的正迴圈。
不過做事情總有遇到瓶頸的時候,在遇到瓶頸的時候,我會刻意將節奏放緩,看看別的型別的書,研究下別的型別的技術,或者純粹的放鬆。
講了這麼多,不知道對大家會不會有幫助,不論如何,最重要的還是開始執行,腦海裡總會冒出一些想法吧,不知道是不是合理?那就先嚐試做,慢慢的就會發現什麼是合理的,什麼是不合理的,每個人都有這樣的一個過程。然後多去觀察生活中出現的大大小小的問題,總有我力所能及可以用技術去解決的問題,而這可能就是一個很好的 idea。另外希望真正熱愛技術和創造的朋友可以一直保有自己的那份初心。
作為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個我的iOS交流群:638302184,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術,以下資料在群檔案自行下載, 大家一起交流學習成長!

部分資料截圖
文章來源於網路,如有侵權,請聯絡小編刪除。