從事iOS開發4年,我幹倒三家公司,4年開發筆記(總結)送給正在迷茫的你!

前言:前端

本文主要與你們分享我業餘時間如何學習多門技術以及開發業餘項目的一些心得,分爲 初衷、硬技能、軟技能、第一輩子產力、環境、時間幾個部分,程序員

業餘開發項目的初衷面試

整體來講,在個人感受裏,國內的環境對於業餘開發者來講實際上是很是不友好的,不過做爲一個開發者,一味抱怨並不會有大的改觀,能作的就是不忘初心,多作嘗試多作積累。數據庫

包括我以前也和一些朋友深刻聊過相似的話題,例如「在行」上約我聊相關話題的同窗,我實際上是鼓勵你們勇敢的去作自由職業者或者業餘開發者,雖然環境的確不是很友好,可是年輕時多嘗試老是沒錯的,畢竟咱們還有資本去尋找更多可能性,並且我相信每一個開發者其實心裏都是嚮往利用本身的力量改變人們的生活方式的,編程

做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:638302184,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!但願幫助開發者少走彎路。

如下資料須要的能夠加羣領取。app

圖片描述

而咱們一般作的事情卻老是一個大工程中的螺絲釘,時間長了失卻了創新的初衷意味,這時候離一個創造者愈來愈遠,自會以爲心裏恐慌,我最初的熱愛去哪了?雖然這些大工程的確在不斷改變咱們的生活,可是個人初衷倒是可以主導一場改變,即便它可能改變的只是一小羣人的某個小小的生活方式。框架

我一直以爲程序員是一個很神奇的職業,不是說這個職業自己神奇,而是代碼賦予咱們的能力神奇,咱們能夠憑空建立起一個虛擬的世界,能夠制定這個虛擬世界的規則,可讓這個世界按照咱們的想法運做,可是這個世界也會反過來要求你改變你,由於一個正常運做的虛擬世界須要嚴謹的規則,這就須要你有設計產品,設計合理規則,設計運做閉環的能力。ide

這也是咱們重點要強調的業餘開發者的能力模型,你不能只是擁有 coding 的能力,不能只是 create,而是要合理的創造,探索人羣的新的需求,創造真正有用的產品。工具

其實這是今天要探討的重要話題之一:業餘開發者如何作出一個真正的產品?學習

硬技能

1,這件事絕非看起來這樣簡單,首先在技術上,你要掌握足夠的技術來完成這個產品的各個方面,如今假設以個人上一個app睡前故事爲例,完成這個產品須要有哪些方面的技術積累呢?

2,客戶端開發,iOS,Android,固然若是你選擇只支持某個平臺,能夠只掌握其中一種,固然也可使用一些跨平臺的技術,可是除了語言和編程模式,編程框架以外,還遠遠不夠,平臺差別,平臺特性,版本兼容,自適應,還有最麻煩的一環,你的 app 開發成功以後如何發佈到對應的平臺?如何設置內購等?

3,特別是 iOS,發佈一個 app 的成本遠比想象的高。另外與端相關的,還有基礎的數據統計,消息推送,分享集成等,在第一版的時候最好就能將這些工做作好,而這就須要你瞭解這些功能的集成開發。

4,前端開發,故事上傳有一個後臺,固然這個很簡單,而後故事從 app 裏分享出去以後有一個 H5頁面,這個頁面裏能夠直接播放音頻,而後有一些下載 app 的引導。因此前端開發的技能也是必備的。還有就是一些日常要用的宣傳頁之類的。服務端,全部故事都是在後臺存儲的,須要數據庫,還有服務端應用提供數據分發,以及一些數據統計之類。

5,數據記錄與分析,我須要在用戶的使用過程當中,記錄用戶的動做和其餘有用信息到服務端,而後以這些數據分析用戶行爲,以便決定後續哪些故事是最受歡迎的,以及受誰的歡迎,我能夠作定向的推送或者收費服務。

6,設計能力,提及來這也是很是核心的須要,若是沒有基礎的設計能力,很難作出一個讓你們眼前一亮至少看着舒服的 app,特別是如今市面上的主流 app 都擁有比較高的體驗門檻,粗製濫造的 app 很難吸引用戶,在這點上,也須要作一些刻意的培養,雖然咱們可能沒有受過專業的訓練,可是能夠多看多想,從別人的設計風格中借鑑,慢慢培養審美,固然還有最重要的就是 設計工具固然須要熟練掌握。

7,除了技術以外,還須要其餘一些技術以外的能力,這些能力多是區分你與其餘程序員的重要分水嶺,它決定了你能夠創造產品,而不是掌握了哪些具體的技術。

軟技能

咱們簡單談談:

1,需求分析,產品規劃。要作一個什麼產品,不是由於我掌握了什麼技術,可以寫出什麼樣的代碼來,技術只是一個工具,要發揮其價值,必然是須要有原始的需求和基礎產品形態。因此要開始獨立開發一個應用,首先要作的可能並非去掌握不少種技術,而是想清楚,你要作一個什麼產品。

2,例如,我要作睡前故事的 app 的時候,個人確已經掌握了上述的技術,但這些都不是決定性的,若是我沒掌握,我能夠去學習,可是爲何要作這個 app?是由於我有資源(我老婆,講故事講得好,她是老師,身邊有一羣潛在的種子用戶),有受衆(強需求,高粘性),因而我開始思考如何利用這些資源,我想一個聽故事的 app 成本應該是不高,並且容易推廣,粘性足夠高的。雖然市面上已經有不少相似的 app,可是我能夠作個人特點,

例如:我只有一個講故事的老師,並且講的質量很高(市面上大多數故事app都講的很敷衍),有很強的品牌和標籤屬性,另外個人設計能力和開發能力突出,我能夠將個人 app 作的比任何一個 app 都精緻好用。

3,推廣和運營。大多數業餘開發者應該都爲此很是發愁,我好不容易作出的應用,如何曝光給受衆?如何讓更多的人安裝個人應用?如何維持應用的活躍度留存率?這方面的能力,我推薦你們首先多去嘗試挖掘,另外就是在日常公司的工做中多多留意你們的慣用手段,多向相應職位的同事學習,另外在職場中遇到相似問題的時候也多從自身思考,若是讓你來推廣一個 app,你有什麼辦法?具體如何推廣 app,這裏也能夠分享一下。首先,你要保證你的 app 是優秀的,不然你把 app 推給用戶,他不肯意下載,那不管如何推廣都是無效的。

4,而後推廣渠道,能夠找一些免費渠道,一些app推薦的網站、app、公衆號,想辦法聯繫到他們的編輯,而後請他們推薦你的應用,若是你的應用足夠優秀,他們會很樂意幫忙,這種渠道仍是挺多的,例如最美應用、少數派、appso之類。另一個渠道就是一些垂直的論壇和社交網站,甚至是知乎之類。而後所謂的運營,最基礎的,在 app 內要有一些與用戶的互動,可以維持用戶的使用激情,甚至幫你擴散 app 到朋友圈,具體能夠是一些活動的形式(運營管用手段)。

最後再說一點,適當的時候,要捨得花錢,可是要花在點子上,能夠搞一些送禮物的活動,也能夠作一些付費的推廣配合衝一下榜。

創新是第一輩子產力

1,當咱們知道構建一個產品須要些什麼基礎技能以後,那咱們以下真正的下手作一個產品出來呢?我應該作什麼類型的產品?我能想到的產品別人都作過了怎麼辦?我人手不足沒法開展大型工程如何與別人競爭?個人推廣和運營能力有限沒人用怎麼辦?

2,有時候我也會困惑,特別是我作了一個 app 出來,而後千辛萬苦推廣的時候,要麼發現對我的來講推廣一個 app 是極其困難的,要麼就是發現當我把 app 推到用戶面前的時候,用戶並不會很興奮的接受你的產品,這時候我就會開始思考,如何突破?是尋求更多曝光渠道?仍是作一些很花哨很吸引人的運營活動?感受這些事情對我來講都沒有那麼簡單,成本也都很高,越想越頭疼,越想越會以爲本身作個事情出來真的不容易。

3,不過,可能我想着突破的點的方向就是錯的。業餘開發者的核心競爭力是什麼?不是你的資源,不是你花裏胡哨譁衆取寵的玩法,而是你我的意志主導的創新能力!用戶對於創新功能(固然首先要是合理的)的敏感度是很高的,若是你的 app 提供了一種前所未見可是又可以解決問題的使用方式,這纔是你的產品的核心競爭力,在極致狀況下,可能不須要任何主動地推廣、運營,用戶會自發幫你傳播,而且保持很高的活躍度。固然,這種創新,不是特指一項具體的技術實現,也不是指一個花裏胡哨的設計,須要本身去作理解和平衡。

環境

1,知道了如何獨立開發一個產品以後,咱們再談些別的,例如:爲何我說國內的環境對業餘開發者是很不友好的?爲何不多有專職的業餘開發者?

2,從經濟上來講,其實一個業餘開發者要養活本身仍是沒有問題的,可是如今國內的環境是,能養活本身遠遠不夠,首先你要能養活一個家庭,而後你要養房子車子,你要還貸款養銀行,你要交稅養國家,種種因素要求你,要麼有穩定的收入,要麼就有足夠硬的經濟條件。若是你沒有很好地經濟基礎,而又沒有穩定的收入,對於家庭來講是一件很難接受的事情。

3,固然,這是大環境,你徹底能夠跳脫這些束縛,可是大環境對人的影響仍是很是大的,你很難擺脫正常人的生活方式與狀態,這些都在暗示你,從事不穩定收入的自由職業獨立開發不是一個好的選擇。還有其餘一些問題,例如社保,五險一金,戶口,簽證等問題,若是你沒有正式的工做,這些事情都會變得很麻煩。

4,其實我很是嚮往自由職業,因此曾經有一年我沒有工做,在家裏嘗試了一年時間,除了本身的自制力問題以外,我也深知,我無法維持「自由」這個狀態過久(除非我一晚上成功,可是那時候的我,也並不是「自由」了),由於做爲一個正常人,我須要承擔不少這個社會須要我承擔可是我本身可能並不特別樂意的責任。

5,固然還有一點,我須要回到職場觀察學習,如何成爲一個「正常人」,如何創造「大型產品」,雖然可能這並不是個人初衷,可是咱們並不是天才,作任何事情都須要這個世界的輔助,因此咱們須要很好地和這個世界溝通。在這種大環境下,除了鼓勵更多的人蔘與到自由職業和獨立開發的隊伍中來以外,最好的選擇就是作部分妥協,可是勿忘初心,利用工做之餘,拾起你對技術和產品的熱愛,慢慢打磨一個業餘的產品,經過這個打磨的過程,積累經驗(硬技能、軟技能),同時保持創造的活躍度。

時間

1,接下來探討的這個話題能夠涵蓋好幾個問題,例如如何一我的在短期內掌握多項相關的技能?如何維持本身業餘開發的熱情?以爲技術一直沒有長進怎麼辦?

除了 0.1% 的悟性、1%的方法以外,你能作到別人作不到的事情的最大祕訣就是:時間。

2,若是你真的對一個事情感興趣,那就投入 100% 的熱情和精力,例如天天下班後 7 點到晚上 2 點(固然不鼓勵熬夜)的時間,就是 7 個小時,你一天投入到工做學習的時間比別人多了 7 個小時,一個月就是 200 個小時,加上週末的時間,遠比你正式工做的時間還要長,這些時間纔是人和人之間拉開差距的重點。

3,例如學習 iOS 開發,一天學一個知識點(加上實踐),我以爲最多一個月就能夠覆蓋大部分知識點,固然這須要極大地熱情,畢竟不是全部人都捨得將大把的業餘時間投入到學習或者作項目中去。

4,我在作以前的我的論壇和 app 的過程當中,其實狀態都是比較累的,天天大概須要付出大部分業餘時間加熬夜的時間,由於用戶反饋愈來愈多,我須要不斷地優化本身的產品,完善本身的想法,而且將他們實現出來。雖然很累,可是成就感仍是很強的,這些成就感會激勵我持續的投入更多的時間,造成一個自身成長的正循環。

不過作事情總有遇到瓶頸的時候,在遇到瓶頸的時候,我會刻意將節奏放緩,看看別的類型的書,研究下別的類型的技術,或者純粹的放鬆。

5,講了這麼多,不知道對你們會不會有幫助,不論如何,最重要的仍是開始執行,腦海裏總會冒出一些想法吧,不知道是否是合理?那就先嚐試作,慢慢的就會發現什麼是合理的,什麼是不合理的,每一個人都有這樣的一個過程。而後多去觀察生活中出現的大大小小的問題,總有我力所能及能夠用技術去解決的問題,而這可能就是一個很好的 idea。另外但願真正熱愛技術和創造的朋友能夠一直保有本身的那份初心。

做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:638302184,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!但願幫助開發者少走彎路。

相關文章
相關標籤/搜索