後端零起步:學哪一種比較好?

來源:互聯網
上載者:User
我後端基礎為零,怎麼學好Node.js呢?有很多朋友說,PHP已經是上個世界的了,真的假的哈?作為初入移動互連網界的小弟級中小弟級,求大神指導。就我所知道的後端,好似還有Python、Ruby、Scala等等。好糾結哈、好糾結,學哪個好呢?話說是不是應該把這個同時也貼到知乎上面去呢?我想我是一定會做這件事情的,同時。求大牛+大神+碼神,以前瞻性的眼光指點迷津一下下。

——我會同時自己不斷回答我的問題,因為見證著自己的成長,成為牛掰程式員,改變世界,是夢想!更要是不多年數後的,那真真實實的生活狀態。

——新浪微博:@夏力維

回複內容:

我後端基礎為零,怎麼學好Node.js呢?有很多朋友說,PHP已經是上個世界的了,真的假的哈?作為初入移動互連網界的小弟級中小弟級,求大神指導。就我所知道的後端,好似還有Python、Ruby、Scala等等。好糾結哈、好糾結,學哪個好呢?話說是不是應該把這個同時也貼到知乎上面去呢?我想我是一定會做這件事情的,同時。求大牛+大神+碼神,以前瞻性的眼光指點迷津一下下。

——我會同時自己不斷回答我的問題,因為見證著自己的成長,成為牛掰程式員,改變世界,是夢想!更要是不多年數後的,那真真實實的生活狀態。

——新浪微博:@夏力維

對於,學過,java,php,python,nodejs 的人來簡單說說怎麼選擇。

java首先,你一定不要用myeclipse進行java web的學習,這樣,會讓你永遠不明白什麼java web裡面的jsr 規範。作為一個有志向的程式猿,深入到規範的標準時必須的。其次,就是至少掌握一門包管理工具(maven,ivy,gradle),這樣會讓你學習開源項目的時候得心應手。

優點:可靠的大型解決方案多,速度快(告訴你一個事實,java作為後端語言的效能在各種評測裡面都是名列前茅的,不過對於新手而言的感觀的慢這點要改過了確實不容易)。缺點:概念多,包管理工具不易上手。

php簡單,好用開源成熟的東西多,至於你朋友說php是上一個世紀的東西,我告訴你,現在流行的技術都是上一個世紀的(java,python,javascript)

優點:上手快,學習資料多。缺點:php5和php6 不相容,速度慢(這個問題,在你還沒有精通php之前,請暫時不要考慮),一般只能用來開發web。

python優雅,簡潔,好看,前後端通殺。由於我只是兩年前有個開源項目用到了python,然後,那個項目結束以後也沒怎麼接觸python了,所以,這裡的評價可能不太正確。

優點:能用的開源項目多,學習門檻不高。缺點:py3和py2不支援。對win 不友好,縮排的編程,可能會由於檔案編碼導致項目崩潰。

nodejs單線程,事件非同步驅動模型,通殺網路層,傳輸層,還可以進行嵌入式的開發(對於跑v8 的js 而言,效能杠杠的,已經有不少人用nodejs + 樹莓派開發出各種好玩的東西)

優點:活躍的國外社區,為人民服務的作者眾多,強力的github支援(這裡不是說nodejs本身,而是nodejs整個模組的生態,一般模組的作者都會回複你的issue,這點心有體會,沒有什麼東西比把問題交給別人解決最好的了。。。),缺點:很多模組並不成熟,中文資料不多,過時。國內社區不活躍,噴子很多(主要噴node的效能比php還差我補充一下,大部分(注意是大部分,不是全部,噴的時候不要瞎噴)的評測都毫秒殺php(http://www.techempower.com/benchmarks/),還有就是js作為程式設計語言的不成熟,關於這點,你去好好翻一下 es5標準(v8的實現的就是es5標準)再來開噴。),所以,要學node,你的英語起碼要有初中生的水平,用於方便閱讀英語資料和與老外交流。還有就是,不是很人類的callback 編程風格。不過我很喜歡。。

按我的建議,學什麼語言不重要,重要的是你學語言想幹什嗎?比如做網站?開發安卓app,等等。明確一個自己感興趣的目標之後,在選擇語言,以興趣引導語言,學習才有動力。比如做網站,那可能就是php,nodejs,做個簡單的blog,在實踐中慢慢瞭解語言,在學習中慢慢成長。

如果你學會了其中的一個,然後在去瞭解其它的,可以說,入門會很快,因為裡邊有很多相同的東西。

夢想無用論者表示,最重要的事情是,馬上挑一門語言開始學,多實踐,自然會找到接近best practise的路。不要期望一門語言能解決所有問題,尤其是“後端技術”這麼寬泛的概念。你現在需要的只是一個能解決手頭問題的語言,鑒於你現在是零基礎,那麼你提到的任何一個語言,必然都能解決你現在的問題。

我會在這裡記錄下我的學習進度,也便於後來者,同時更主要的是讓前輩們看到,因為萬一我走歪了,還要靠大家把我給扭轉回來哩!

1)Node.js
這是我2013年裡從朋友們那裡聽到最多的建議,雖然在GDG Shanghai的活動中,聽@青山老妖_黃冠 講過一堂(類似七周七語言那種的),但是我可是完全不懂哈,好尷尬!不過這個不重要,重要的是等到學會了,一切都會好的。
現在用書是:《Node.js開發指南》
相關介紹地址:http://book.douban.com/subject/10789820/

2)PHP
我能找到的相關書籍最多的一門語言,這裡完全是因為有資料供給的優勢在,雖然很多朋友說,“其實不要管那個了”,“不要強求那個”。。。至於為什麼,我也不是很清楚。

不要為了學習而學習, 要為了滿足需求而學。

先給自己找個小項目, 然後分析一下完成這個項目需要的技術, 找幾本書看一下, 然後就動手做, 碰到問題就再回過頭去看書。

這樣做, 一方面保證有的放矢, 另一方面事實證明, learn by doing 才是最佳的學習方法。

具體到技術, 我推薦 Ruby on Rails. 後端零起步, 最重要的是快速地做出東西以及知道什麼是好的代碼和壞得代碼。

立即上手,然後你就會了

找一個 IDE 支援比較好的語言

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.