在移動互聯網「氾濫」的今天,愈來愈多非專業(這裏的非專業指的是非計算機專業畢業的程序員)程序員加入到了IT行業中來了,多是由於移動互聯網的火爆致使程序員容易就業並且工資很高,可能實體行業不景氣,可能這確實是互聯網+的時代,愈來愈多的人加入到程序員的行列當中來,使這個行業魚龍混雜。如今這個程序員行業廣泛的問題就是:人數多,底子薄,基礎差,人均技術水平就是有問題,找百度,順手Ctrl+C和Ctrl+V就把代碼來寫。管它什麼算法,什麼性能呢。如何從非專業走向專業程序員呢?android
一、紮實基礎,不斷學習程序員
基礎的重要性其實不言而喻,基礎是你擴展的資本,不瞭解基礎,不紮實基礎,你想進一步學習,瞭解高精尖是不可能呢,那得多吃力啊,這個基礎對於不論是科班出身的仍是非科班出身的程序員都很重要,畢竟興趣纔是本身最大的動力,跟科班不科班不要緊。可能科班學的比較全面和系統,因此基礎上有可能略勝一籌,但是有興趣的人比科班可能更可怕,說不定懂得更多。算法
咱們生活在一個頗有趣的時代,互聯網的存在幾乎使咱們到了免費學習的時代,技術分享遍及網絡,想學習並不是之前那麼困難了。在百度上谷歌一下,相關資料滿屏都是,隨着移動互聯網的火爆,愈來愈多的人躋身這個行列當中,若是你不學習,你就會落伍,停滯不前,直到有一天,這份工做再也不須要你,或者外包給一些更廉價的勞動力,甚至被淘汰,因此咱們須要不斷的努力學習新技術,以保持有力的競爭力。咱們要擺正心態,對本身最好的負責就是不斷學習。微信
學習的地方有不少,好比:網絡
閱讀相關的雜誌,技術博客,書籍和網站,看那些技術大牛的分享,確定會讓你受益很多。好比:非著名程序員公衆號裏的內容就不錯嘛!哈哈……架構
深刻了解源碼,閱讀源碼可讓你真正的感覺到那些大牛對待代碼的嚴謹與思惟的縝密,看看人家是如何運用架構模式的。性能
參加一些技術分享的沙龍,和高手面對面的交流學習。學習
想學習,方法多得是,就看本身努不努力。測試
二、要有強烈的責任心優化
專業程序員的一個最重要的特色,也是核心,就是有責任心。專業程序員會爲他們的職業生涯、預算、日程安排承諾、錯誤、技能技巧負責。一個專業的程序員不會將責任推卸給別人。實事求是地說,如今的程序員都對工做很是消極,沒有人督促就慢慢悠悠的作,代碼也是寫的亂糟糟的,沒有任何優化,別人看你寫的代碼看的頭都大了。一個好的程序員是對本身的代碼有追求的,不只能完成功能,還能寫的一手好代碼,跟寫的一手好字似的。優美的代碼才能讓人賞心悅目,負責的態度才能提升本身的責任感。
有了責任感才能讓本身更好的成長。
三、關心和反覆檢查代碼
一個好的程序員是對本身的代碼有追求的,漂亮的代碼就是你的臉面,代碼優化的好,你的臉就比較乾淨,像個白面書生,若是代碼雜亂無章,效率低下,感受這個程序員的臉就像長滿了青春痘,不忍直視
。
關心本身的代碼,那是負責任的表現,若是一個程序員代碼寫完了,以後就無論了,那是不負責任的表現,關心本身的代碼,多讀讀,多看看,比較一下和別人的差異,化繁爲簡,逐步優化,這樣不只讓你的代碼嬌小可人,亭亭玉立,更重要的是還能提升本身的能力。把代碼當作本身的女友,纔是正確的作法。不要總是想着coder,coder,由於coder那麼多有毛用,代碼依舊難看,本身依舊仍是沒有女友。好程序員最起碼仍是有本身的女友的,是吧,代碼。
反覆檢查本身的代碼,就猶如讀書百遍其義自見。不要總是在別人說你代碼有問題的時候,你就信誓旦旦的說:不可能。就猶如測試對着程序員說,這裏有bug同樣,第一反應確定是不可能,在我這裏沒這個問題啊,最後還不是老麼實的本身去改bug。責怪本身的環境有問題,責怪編譯器有問題,就是不責怪本身寫的代碼爛,這絕對不是一個專業程序員應該作的。在你責怪別人以前,先檢查本身的代碼,這纔是正解。
四、不害怕別人的爛代碼
專業的程序員確定遇到過不少人寫的爛代碼。非專業的程序員確定會害怕別的代碼,感受看完他寫的代碼,再去修改,會不會牽一髮而動全身呢?補一個bug,冒出一個bug,還不如本身從新寫的快呢。相信有這樣想法的程序員確定佔大多數。
好比:系統很糟糕,而且改變這邊老是會破壞另外一邊不相關的功能。每次添加模塊,程序員只能想着儘量少地改變代碼,每次發佈都膽戰心驚。這座軟件的摩天大樓隨時有坍塌的可能。之因此改動代碼會如此傷腦筋是由於系統太糟糕了。可是即便你知道系統出了問題,卻又由於投鼠忌器,而不得不聽之任之。任何一個外科醫生都懂得,傷口要想癒合就必須得切除腐肉。雖然手術會帶來痛苦,但絕對比任傷口發炎潰爛要好。
不要懼怕,沒有人會在意當你搗鼓代碼的時候有沒有暫時破壞了什麼東西。只要你作的改變不會讓項目從新回到開始狀態,就不會使人崩潰。投入時間重構,能讓你受益於項目整個生命週期。這樣作還有一個額外的好處是,因爲你有過這種處理病危系統的經驗,因此你對它應該如何工做很是內行。要善於應用這些知識,千萬不要反感這些寶貴的財富。從新定義內部接口,重構模塊,重構複製粘貼代碼,並經過減小依賴來簡化設計。
五、學習和總結的能力
程序員是很容易被淘汰的職業,因此要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員不管學了多少語言,代碼寫起來多熟練,只能說他是一名熟練的代碼民工(碼農),他永遠都不會有質的提升
。一個善於學習的程序員會常常總結本身的技術水平,對本身的技術層面要有良好的定位,這樣纔能有目的地提升本身。這樣才能逐步提升,從程序員升級爲軟件設計師、系統分析員。
著名的移動互聯網專家,自媒體人,運營的公衆號「非著名程序員」,天天一篇原創技術分享和移動互聯網知識分享,微信公衆號:smart_android ,頭條號和百度百家帳號都是「非著名程序員」。