想學java還不知道這些怎麼行?
互聯網發展瞬息萬變,程序員就是用一行行代碼改變世界,設想你做的app被大家喜愛,你做的網站深受大家親睞的時候,那種成就感自然是不言而喻的。本文達妹就為大家總結在學習IT技術前,程序員不得不掌握的技能,希望對你有幫助:
1
你能吃苦嗎?
為什麼這麼問?很簡單,996大家聽過吧,這是互聯網行業奇葩工作時間。做程序員這行尤其是互聯網企業里,加班是常有的事,遇到趕項目或者大事通宵也不是不可能,華為加班猝死,阿里大樓凌晨還有不少人加班、雙十一通宵,騰訊加班,58的996等等。所以做這行你首先得有個很好的身體,肯吃苦,工資福利好,但是加班也不少。
2
你喜歡互聯網嗎、喜歡技術嗎?
做程序員目前工資待遇最好的在國內無非就是互聯網公司了,很多應屆生都能拿10K以上,年底還雙薪,還可能有股票期權,要是遇到一個好的創業公司可能IPO之後瞬間屌絲登上人生巔峰!
但寫代碼需要一個相對來說比較能耐得住寂寞的人,如果你坐不住一般來說不會是個好的技術從業者。既需要有獨立解決問題的能力,還要有團隊合作的能力,並且大多數碼農都是比較悶的,很少有很open的碼農,這也許是技術從業者的諸多共性吧。
互聯網公司更是發展迅速,這就更需要你去關注行業形勢,關注技術發展,否則的話你很快就被淘汰了。
3
你有較好的數學、英語基礎嗎?
越是頂尖的程序員,對於個人天賦的要求就越高,對,做程序員真的需要一定的天賦,天賦是後天怎麼樣的經驗都積累不來的。一般來說,一個優秀的程序員需要較好的數學天賦,數學能力強的往往具備較好的優勢,一個好的演算法太重要了。如果你從小到大數學都特別好,並且也很喜歡數學那我覺得至少你具備了較好的先天條件。英語為什麼重要?
因為計算機技術本來就是老美髮明的,你需要的文本編輯器、集成開發環境、官方技術文檔以及很多專業書籍都是英文的,甚至即使有翻譯的材料和書籍你會覺得也許英文版會更好,所以隨著學習深入英語必定是個很重要的工具。筆者就是因為中學時代對數學、物理的瘋狂喜愛和還不錯的英語水平選擇的這個專業。
4
現在學還來得及嗎?
程序猿一定程序上是個青春飯,並且學習的最佳時間也最好早一點,本來就是一個耗費腦力的活,儘早學習優勢更大,在國外都提倡孩子從小接觸一些簡單的編程。比爾蓋茨、扎克伯格、傑克多西、亞倫斯沃茲這些人都是從小都學編程的。
但是國內比較特殊,畢竟應試教育壓力很大,所以不太可能從小學,但是如果你說你快三十了才來準備學寫代碼轉行做程序員我一定不會覺得你這樣是認真的,因為真的是有點晚了,因為你不可能有20歲左右的年輕人思維敏捷!當然如果只是作為一個興趣當然沒問題。
5
你願意不斷學習、長足學習嗎?
計算機技術可以說是更新最快的了,互聯網行業更是日新月異。一個互聯網公司可能幾年就估值100億美金,也可能一夜之間關門大吉。
因此你需要不斷學習長足學習,不斷的接觸新的知識和技術,不斷的更新你對行業的了解,並且隨著年長你不可能永遠在一線寫代碼,那麼就可能往上走,那麼你就除了要學必要的技術知識,你還需要學一些管理、合作、溝通的能力,你需要了解很多產品原理,你需要學習更多的業務知識,逐漸成為一個業務理解上的技術專家,而不是只會在一線寫代碼。
因為那種真正把技術做到極致永遠只在一線寫代碼的的大神真的不多,阿里這麼大的公司也只出了一個多隆,純粹做技術還做到副總裁級別的高P大神,但人家是一個人就可以搞定N個牛人的活的那種。
6
到底要學些什麼呢?
那麼接下來就要談一談需要學些什麼了。
首先我覺得你應該具有一定的數學基礎,並且有一定的英語基礎。
第二我覺得可以從一門特定的語言開始,我建議從C語言開始,不建議從C++開始,因為C++學習難度確實有點大,不是一朝一夕的事情。推薦一本書,書比較厚要有恆心!可能的話盡量買紙質書吧,比電子書效果好得多。
推薦用codeblocks寫程序,開源免費跨平台(但如果有條件的話MacBook pro對於一個程序員來說還是很有優勢的,基於Unix你漸漸會懂的),這時候你沒有必要用visual studio這種很強大的但同時也很笨重的IDE,也沒有必要現在就開始學習Emacs、Vim這種門檻比較高的工具。
並且這時候一定要養成良好的代碼習慣,學會做注釋,學會合理的變數命名等等,千萬不要成為一個程序痞子或者代碼流氓!如果不知道怎樣做好代碼規範的,自己去網上搜大公司例如Google、Microsoft的代碼規範!
要強調的是一定要多寫多練多實踐,看完不要看著答案敲習題的代碼,這點非常重要!等你認真看完這本書後你絕對已經打好基礎了,後續的話你可以慢慢看看K&R C這本書,畢竟C語言之父自己寫的不用解釋了吧。
然後你可以學習一門面向對象的編程語言,你可以選擇時下比較火的一些語言。比如C#、Java、Python等都是不錯的選擇,主要是熟悉面向對象編程的思想。Python的中文資料比較少,單數語法非常漂亮,並且很多語言的設計哲學也逐漸在致敬Python,所以我覺得絕對值得一學。Java和C#就不用多說了,市場份額擺在那裡。
比如Java我推薦一本(卷一)就夠了,高級特性別急後面來。然後你會漸漸發現有了C的基礎你學Java會很輕鬆。隨著學習的的進步,和都是很棒的書。
這時候我覺得你有必要選擇一個方向並且為自己的能力加成了。自己去了解以後要走哪個方向哪種語言,比如你想做Android,那你必須要學好Java,學習Android開發的一些基礎知識,當然最好的教程就是個Google的官方文檔。
如果你想做iOS,你可能要學Swift,學objective-C等。如果你想學做遊戲,你可能要學腳本,虛幻你要學C++,unity你要學C#。如果你想做Java Web你可能要學Java ee,要學Java,要學HTML要學CSS等等。然後根據自己的具體愛好選擇相應的語言和技術,而且最終要學的東西比這個多得多,不僅僅是編程語言,你要學類似於框架之類的等等很多東西。
與此同時,我覺得你應該去學一些演算法和數據結構的知識,學習更多的數學知識。高德納大弟子sedgewick的和是兩本本很不錯的書,但千萬不要一上手就去看,因為這本書其實難度還是比較大的。同時數學方面和是很好的書。這些書不要求你非要每一個問題都弄懂,只要多看就會有進步的。
確定方向之後就是實踐了,網上有很多公開課的平台,國外如coursera、edx等,國內如極客學院、麥子學院、慕課網、百度傳課、網易雲課堂等等都是不錯的平台,這裡面有很多免費的課程的。學著去做一些小項目,真正去實踐,比如Web你可能還要去學習各種框架等等。同時自己最好也要多寫一些單元測試,這是一個優秀程序員的必備課。
學會利用工具很重要,不可能不遇到問題,Google你值得擁有,論學術能力和專業能力Google確實比百度強太多,至於怎麼用Google,你百度一下吧,還有就是stack overflow這絕對是個好工具!
※給未來程序員的15個頂級職業建議
※一些泛IT培訓行業的內幕:IT證書只是入門
※猜字母遊戲!會寫會玩才是真本事!
※到了50歲你 還願意做編程工作嗎?
TAG:java學習吧 |
※Figaro趨勢 | 你能從衣服知道她們做什麼嗎?
※iPhoneX到底怎麼樣?看完我的真實使用感受你就知道了
※是吃雞讓你認識了steam的嗎?那Uplay和Origin你知道嗎?
※關於Amazon Go,你還想知道什麼?
※還不知道「Sabori」是啥!懶惰星人看過來
※iPhone 里的照片還能這樣動,竟然才知道!
※學習 Python,不知道這個軟體,是你的損失
※馬雲第一次上網不敢碰電腦,竟然不知道什麼是email
※Macbook在手,卻不知道拿它來幹嘛了,大家都用它來做什麼呢?
※你知道balance嗎?
※終於知道Jasper為什麼那麼暖,應采兒教育方式與眾不同你注意到了嗎?
※看了angelababy精緻的臉,才知道什麼叫做美的沒有靈魂
※你聽過他的歌,遺憾的是你不知道唱它的Denny white
※Gosha的「小兒子品牌」,你肯定不知道是什麼吧?
※Aoife,Siobhan,Ciara……你知道這些愛爾蘭名字都怎麼讀,是啥意思么?
※iPhone黨,這些常識你都知道幾個?
※get√盤點那些你不知道的iPhone小技巧
※關於madness×converse 那些你不知道的小事
※知道這些小技巧,你的IPhone更好用了
※不邁出那一步,你怎麼知道不行?