<a>基本信息</a>
姓名:<a>姚朝文</a>??????? 畢業時間:<a>2010</a>
??性別:<a>男</a>??????????工作年限:<a>5年</a>
??年齡:<a>28</a>??????????手機號碼:<a>15994671505</a>
??學歷:<a>大專</a>?????????個人郵箱:<a>312433699@qq.com</a>
??專業:<a>軟件技術</a>
個人榮譽:<a>榮獲2010年“國信藍點杯”全國軟件專業人才設計與開發大賽總決賽JAVA軟件開發高職高專組一等獎</a>
<a>專業技能</a>
能熟練使用objective-c語言進行開發;
熟悉常用的設計模式,如單例設計模式、生產者模式、觀察者模式、外觀械、責任鏈模式裝飾模式等;
熟悉App Store上架流程,有過一款以上的App上架經驗(從申請證書->App上架);
熟悉即時通訊的工作原理,能獨立實施即時通訊的解決方案(非XMPP實現);曾因項目需要,進行過即時通訊解決方案的驗證,并最終在項目中應用,iOS客戶端以及IM服務器的實現都由自己獨立完成;
精通Socket編程,能熟練使用AsyncSocket進行Socket編程,曾使用AsyncSocket完成即時通訊相關功能;
熟悉多線程,能使用GCD完成多線程任務;
熟悉藍牙技術,能使用CoreBluetooth進行藍牙編程,曾做小程序驗證過相關技術;
能熟練使用CoreData操作sqlite數據庫;
能熟練使用iOS的布局技術,絕對布局與相對布局(AutoLayout);
能熟練使用xcode提供的可視化控件,并且在項目開發過程中優先使用可視化布局;
能快速集成一些常用的第三方服務,如百度地圖、百度/極光推送、友盟分享等;
能熟練使用一些常用的第三方庫,如GPUImage、AFNetworking、CocoaAsyncSocket、Masonry、FDTemplateLayoutCell、FMDB、MJExtension、MJRefresh、等;
理解MVC設計原則,并在開發過程中,通過實體代碼隔離、業務邏輯隔離、更深層次的抽象等手段來遵循該原則;
能熟練地使用各種編程輔助手段或工具來提高工作效率,如使用CocoaPods管理項目類庫;使用各種xocde插件;使用JSON Edit、jumpcut、RulerSwift、sip等輔助工具;
有多個項目架構搭建經驗,包括項目目錄組織、代碼規范、CocoaPods配置、模塊劃分等。
<a>WEB后端開發</a>
掌握java語言基礎,能熟練使用java語言開發;
熟悉面向對象的基本概念和開發方法,并將其體現在真正的開發過程中,運用面向對象的思維來思考問題、解決問題;
熟悉常用的設計模式,如單例設計模式、生產者模式、觀察者模式、外觀械、責任鏈模式裝飾模式等;
能熟練使用基于SpringMVC+mybatis+mysql架構的開發技術,能熟練地使用SpringMVC提供基于REST的服務;
熟悉JSP、servlet、structs、hibernate、spring等web技術,在工作中使用過相關的編程技術進行開發;
熟悉基于JUnit4+mockito單元測試的編寫;
熟練使用Maven進行項目管理,曾使用過Nexus搭建Maven私服;
熟悉java web的開發流程,能在實際工作過程中快速使用各種技術;
熟悉mina框架,曾基于mina實現過IM服務器的功能;能使用Jenkins+Maven+VisualSVN+Tomcat搭建項目開發環境,實現項目的持續集成與自動化構建;
在項目開發中接觸過基于nginx的集群技術,可以使用它實施簡單的集群功能;
熟悉視頻直播概念和原理,曾進行過基于“RTMP+ffmpeg+LFLiveKit+kxmovie”的視頻直播技術驗證,提供過切實的視頻直播解決方案。
<a>WEB前端開發</a>
熟悉css+div+html布局技術,可以進行相關技術功能代碼的維護,可以完成一般難度的開發任務;
熟悉javascript腳本語言,能維護相關功能代碼,可以完成一般難度的開發任務,在工作中使用過相關技術進行開發;
熟悉基于angular+bootstrap+require的開發流程,可以進行相關技術功能代碼的維護,可以完成一般難度的開發任務;能快速搭建基于yeoman+grunt+bower的自動化構建環境。
<a>數據庫技術</a>
熟悉主流數據庫的基本原理和概念;
mysql:能能熟練使用SQL語句操作數據庫;
mongodb:使用過mongodb作為文件服務器;能使用MongoTemplate進行數據庫的基本操作;能將mongodb快速集成到SpringMVC中;
redis:在項目中使用過redis來作為緩存服務器;能使用RedisTemplate進行數據庫的基本操作;能將redis快速集成到SpringMVC中;
sqlite:用作iOS開發中的本地數據庫,能使用FMDB和CoreData進行基本的數據庫操作。
<a>項目管理</a>
熟悉敏捷開發流程,能根據項目和團隊的需要,適當地使用敏捷開發提供的實踐方法進行項目和團隊的管理;
曾經擔任過項目經理,有過多個項目管理經驗,全程參與項目立項、前期準備、需求分析、詳細設計、組建團隊、構建項目、測試、項目部署、項目交付等過程;有過20人以上的團隊開發和管理經驗;
曾擔任過iOS部門主管,參與過項目談判、項目跟蹤、團隊建設、技術驗證等相關工作。
<a>其他</a>
<a>svn:</a>熟悉svn的基本概念和使用場景,能在實際開發中搭建svn服務器、初始化代碼倉庫、分配用戶和權限、打標簽/分支等;
<a>linux:</a>熟悉linux系統,可以在linux系統下安裝/卸載程序、開啟/關閉服務、部署項目等;可以使用一些linux常用的命令;
網絡技術:熟悉網絡的工作原理和基本概念,如網絡類型、IP地址、網絡協議、路由技術、防火墻技術、加密與解決、證書簽名、C/S和B/S架構等,可以更好地配合開發工作;<a>編程語言:</a>曾在大學期間學習過匯編、C、Delphi、C#、asp.net,正是由于這些基礎,所以現在切換到任意的編程語言,都能快速上手;
<a>輔助工具:</a>能使用大量的輔助工具來配合開發,如Axure、SimpleMind、WinSCP、putty、Evernote、notepad++、tortoiseSVN、CornerStone、Navicat Data Modeler、sketch、PaintCode等。
<a>工作經歷</a>
<a>2014年6月-2016年11月:在“深圳市浩翰星河科技有限公司”擔任iOS部門經理,期間參與的項目有:</a>
<a>浣熊家(客戶端):</a>
??這是一款互聯網家裝的App,針對的是廣大客戶,該App的主要功能有即時通訊、裝修套餐展示、用戶下單、施工進度查看、施工內容查看、施工過程協調、后期維修訂單管理等。
??在該App中,擔任項目經理的職位,主要參與需求分析、詳細設計、開發環境配置、項目跟蹤和管理等工作,沒有參與實際功能的開發。
??該項目的開發團隊在15人以上,開發周期為9個月(不包括后期維護),該App目前已經上架。<a>浣熊師傅(工人端):</a>
??這是一款互聯家裝的App,針對的是參與裝修的工作人員,該App設置有多種角色(如項目經理、業務經理、項目監理、工長、工人等),App所展示的內容根據不同角色而不同;
??該App的主要功能有即時通訊、日程管理、移動簽到、每日任務、搶單中心、項目管理、工作匯報等。
??在該App中,擔任項目經理的職位,除了參與需求分析、詳細設計、開發環境配置、項目跟蹤和管理等工作之外,也參與了實際功能的開發,如即時通訊、日程管理、移動簽到、每日任務、工作匯報等。
??該項目的開發團隊在15人以上,開發周期為9個月(不包括后期維護),該App目前已上架。<a>微訊移動辦公:</a>
??這是一款移動辦公產品,針對公司內部員工使用,該產品的主要功能有即時通訊、通訊錄、移動簽到、組織架構、移動CRM、工作請示、日程管理、工作報告等。
??在該App中,參與了即時通訊、通訊錄、移動簽到、工作請求、日程管理等模塊的需求分析、詳細設計與實際開發。
??該項目的開發團隊在10人以上,開發周期為12個月(不包括后期維護),該App目前還沒有上架。<a>微訊制造:</a>
???這是一款用于工廠生產流程輔助應用,用于跟蹤訂單生產過程中的各個環節。該應用主要功能有即時通訊、通訊錄、流程模板、流程管理、訂單管理、客戶管理、產品管理、權限管理等。
??在該App中,參與了即時通訊、通訊錄、流程模板、流程管理、訂單管理等功能開發。
??該項目的開發團隊為7人,開發周期為5個月,該App目前還沒有上架。<a>習酒配送:</a>
???這是一款為習酒經銷商訂單配送員使用的輔助工具,方便總公司跟蹤商品的流向,該應用主要功能是訂單管理和掃碼交貨,該項目由自己獨立完成,歷時5天;<a>砼車通:</a>
???該項目是關于建筑物料用車的調度系統,用于解決目前車輛管理紊亂,車輛使用低效的困境。系統初步要實現的功能主要是車輛信息管理、司機信息管理、派遣車輛位置共享、車輛出勤情況等;在該項目中,參與前期的項目洽談、需求調研、項目實施方案等工作;
<a>重要收獲:</a>
從java開發順利轉入iOS開發的經歷讓我明白,自己可以突破語言和工具的界限,從而能關注更重要的東西——業務,語言和工具最終都要為業務服務。
另一方面,除了在iOS技術上的提升外,參與并管理團隊,也讓之前積累的一些,關于管理的想法和方法能得到驗證,盡管過程沒有那么理想,但經驗卻是豐富的,也讓我更加堅信自己可以勝任這類工作。
還有,團隊開發的經歷,讓我重要認識,在軟件開發中真正影響項目成敗的風險因素——人。
<a>辭職原因:</a>
對于充滿激情的人來說,無處發揮其才能,是件很尷尬的事情。在做完兩個項目之后,公司有關App方面業務就很少了,在經歷了3個多月的空檔期之后,覺得需要改變了。沒能為公司持續地創造價值,就像寄生蟲一樣,使我感覺很慚愧;另外,對于自身來說,沒有實實在在的工作,心里感到很不踏實,成長也受到了限制;再加上,最近互聯網技術公司持續低迷,該公司也是其中一員,經營壓力很大;最終,經過與上級領導的友好溝通,離開了該公司。
<a>2012年9月-2014年5月在“中軟國際”擔任java程序員,主要參與華為外包業務,期間參與的項目有:</a>
- <a>單板管理系統:</a>
??這是一款針對華為硬件生產部門的單板管理系統,主要的功能是管理生產過程中的相關文檔(如需求文檔、設計文檔、說明書等),以及跟蹤生產過程中的變更、缺陷、測試等。
??該系統是在jira的基礎上做二次開發,因此,在實際開發過程中,參與的大多數工作都是了解jira的工作原理和核心配置。在jira的基礎上,我參與開發的模塊有項目管理、需求管理、缺陷管理等。
??在這期間,由于開發任務沒有太多的壓力,這也讓我有機會去了解更多關于管理上的知識,其中最重要的是關于敏捷開發的一些編程思想和實踐方法,比如例會的開展、代碼審查、結對編程、知識分享、持續集成、自動化構建、測試驅動開發等,正是基于這些,讓我在工作后半段能順利組長的工作。
??該項目的開發團隊在6人以上,開發周期在18個月左右。
<a>重要收獲:</a>
在此期間,編程技術上的細節沒有太多深入,更大的提升是在編程思想上,比如MVC模式、熱撥插式開發、測試驅動開發、持續集成、自動化開發等,這深深影響著之后的職業生涯,讓我更加側重于高層設計,逃離編程細節,真正學以致用,讓業務選擇解決方案,而非讓業務適應解決方案。
??另一方面,影響比較深的是華為的一些管理實踐,比如如何更好的規避風險、如果更好的提高團隊的溝通效率、從哪些方面提高代碼的質量、如何協調多部門開發等,
<a>辭職原因:</a>
在該公司的后期工作中,逐漸認識到當前的工作,已經沒有挑戰性了,也失去了激情,感覺遇到了瓶頸,覺得是時候要去突破了。雖然,在考慮辭職之前,針對突破瓶頸做了不少嘗試,但行不通;最終,我認識到,沒有什么比找一份更有挑戰性的工作更直接。
<a>2011年4月-2012年8月在“南寧巨鹿軟件科技有限公司”擔任java程序員,期間參與的項目有:</a>
<a>南寧成人教育門戶網站:</a>
??該網站的主要功能有查詢成人教育學校信息(學校基本概況、招生情況等)、在線報名、在線咨詢、后臺信息管理等。
??該項目的開發工作由自己獨立完成,美工方面則由別一位成員負責。該項目的開發周期為10個月;由于經營原因,該網站目前已下線。
??在此期間,使用到的開發技術主要是struts、JSP、css+div+html、javascript等;另外,出于項目需求,也接觸到了SEO優化、市場營銷等一些知識。<a>其他工作:</a>
在此期間,參與過多個項目談判、需求分析等工作,如”南寧市武鳴縣生力軍生態農莊“園內管理系統的項目洽談;”南寧市同城小鳥“前期需求討論;這些也是一筆寶貴的經驗,影響著日后的工作傾向。
<a>重要收獲:</a>
一年多的工作經歷,讓我深深認識到,要把項目做好,僅僅關注技術層面的東西是遠遠不夠的,隨著技術越來越先進,在商業軟件中,技術因素已經不是制約項目成敗的最主要因素,因此要學會突破技術的限制,真正關注影響項目成敗的主要因素。隨著技術越來越成熟,只要了解編程原理,從一門技術切換到另一門技術也是非常簡單的事情。
<a>辭職原因:</a>
對于剛畢業的新人,需要找一個經驗豐富的團隊,那樣才更利于的成長,也才更有挑戰性;另外考慮到自身水平不足,公司團隊的技術水平不高,經驗不多,最后經過再三考慮,決定友好地離開。
<a>業余項目</a>
<a>旗魚(即時通訊解決方案驗證):</a>
??公司的項目中經常需要使用到即時通訊技術,而之前的即時通訊解決方案基于XMPP,由于XMPP可定制性比較差,缺乏靈活性,而且對群組的支持異常困難,更別說要在即時通訊里集成項目的業務邏輯。因此,要針對即時通訊提供一個完善的解決方案,并進行驗證,然后在項目中引入。該項目除了前期的解決方案討論,后續實現都有自己獨立完成,包括iOS端和服務器端代碼,歷時1個月;
??服務器:nginx(用作集群)、mina(主要用于管理socket中的session)、SpringMVC+mybitas(數據接口服務)等;
??客戶端(iOS):CoreData、AFNetworking、AsynSocket等;
??數據庫:mysql(存在基本信息)、redis(存在緩存信息)、mongodb(存在文件)。<a>Scribble(即興):</a>
這是一個畫板應用,主要是為了學習CoreGraphis框架。該應用擁有基礎的功能,如新建畫板、保存作品、打開作品、調用畫筆大小和顏色、撤銷和反撤銷功能、畫布(未實現)等;主要使用的技術的CoreGraphis。<a>HHXHLiveOfLife(視頻直播技術驗證):</a>
??這是為了應對客戶的需求而作的技術驗證,用于在項目接洽時候作演示。最終通過基于RTMP+ffmpeg+LFLiveKit+kxmovie等技術,提供了一個視頻直播的解決方案,能通過自己的服務器,在多臺手機(不同系統)間實現一方直播,多方收看。服務器與iOS客戶端環境的搭建與代碼的編寫都由自己獨立完成。我知道,這只是最基礎的實現,要真正達到商業標準,要深入的細節會相當多。
<a>自學經歷</a>
<a>iOS:</a>從“中軟件國際”辭職后,自己花了2個月的時間來研究iOS技術,之后順利轉入了iOS開發。
<a>即時通訊:</a>在“深圳市浩翰星河科技有限公司”期間,出于項目需要,自行研究了即時通訊的整體解決方案,并將其應該到項目中去。
<a>swift:</a>鑒于該技術還比較新,更新比較頻繁,因此,只對其語法及一些特性進行學習,還沒有達到能在項目中使用的程度。
<a>Angular+Bootstrap+Require:</a>在研究即時通訊的過程中,為了完成IM服務器管理后臺的功能(如用戶管理、群組管理等基本功能),利用工作之余,完成了它們的入門學習,并且使用它們完成了管理后臺功能的開發。
<a>平時閱讀的一些非技術書籍:</a>《代碼大全》、《程序員修煉三部曲》、《高效程序員的45個習慣》、《程序的員思維修煉》、《管理的實踐》、《管理:任務、責任、實踐》、《用戶體驗設計》等;學以致用,是我讀書的宗旨,多看、多聽、多思考、多實踐、多總結。
<a>職業規劃</a>
<a>主線(技術):</a>
<a>當前位置:</a>中-高級軟件工程師;
??能熟練地使用某些領域內的開發技術,可以完成該領域內的絕大部分業務工作,能做一些高難度的技術攻關,能作為團隊的帶頭人,提供可靠的技術支持和經驗分享;<a>未來幾年:</a>中級軟件架構師;
??能完成中-大型項目(如工作量在1W人天以上)的架構設計,對性能、安全性、擴展性、可靠性等有充分的考慮,并能在項目中實施,能達到真正的商業級標準;
<a>支線(管理):</a>
<a>當前位置:</a>初級項目管理者;
??能帶領中小團隊(如20人以下)做項目,能妥善地處理團隊人際關系中產生的問題,如人員流動、團隊沖突、個人工作態度等;能針對某些問題提出合適的解決方法,如工作效率低下、開發混亂、產品質量不達標、進度落后等;能夠針對項目作出合理的計劃,包括開發計劃、人員-任務分配、進度跟蹤、測試計劃、變更計劃、風險規避等;<a>未來幾年:</a>高級項目管理者;
??將合適的人放在合適的位置,充分必揮每個人的潛能;能通過各種方式去激發團隊的凝聚力、創造力、積極性。
<a>個人評價</a>
<a>優勢:</a>
<a>關于技術:</a>不讓技術限制思想,要讓技術為我所用;學以致用,才能夠能體現出技術存在的根本價值;對于未接觸過的技術能快速上手,并能快速應用到工作中去;
<a>關于管理:</a>關注情景,勇于創新,付諸實踐,積累經驗;管理是一種實踐,要不斷地將理論付諸行動;同時,管理需要靈活變通,需要對不同的情景加以區別對待;最后,管理需要總結,總結才是進步的關鍵;
<a>關于團隊:</a>專業的工作態度,富有責任心,良好的職業素養;態度決定一切,只有每個人對項目、工作、事業都有一個專業的態度時,團隊才會強大;
<a>關于性格:</a>精力旺盛,對挑戰充滿激情;只有激情才能激發人的無限潛能,只有激情才能持續不斷地突破挑戰;也只有激情能引導自己走向“瘋狂”;
<a>關于創新:</a>無時無刻不改變,唯有變化是永恒;時刻關注變化,時刻準備創新。
<a>關于學習:</a>持續的學習是一種習慣,好奇心與激情將是它的動力。
<a>劣勢:</a>
捕獲各種知識的“網”撤得太大,往往會導致很難收回(缺乏深度);
愛走“捷徑”,雖然很多時候都能帶來工作效率的提升,但有時也免不了出現做事馬虎的情況;
追求“完美”,然后沒有什么是完美,因此,有時候會讓自己在某些非關鍵性問題上花費過多精力。