零基礎的人應該學習哪種程序語言?

布小白


老僧看到這個題目,趕緊瞄了一眼答案。因為我想看看“PHP是世界上最好的語言”這個世紀大戰是不是又要開始了……


如果你問一個程序員,哪種語言最好,肯定會引起腥風血雨的orz


不過,如果要問適合業餘愛好者學習的編程語言,那就沒什麼太大的爭議了。題主你的期待是零基礎,那老僧比較建議題主學習JavaScript;


原因有很多:


1、相對C語言、Java等,JavaScript學起來要容易很多,適合外行人學習。你只要一個寫代碼的編輯器和瀏覽器就可以了,寫完後可以直接在瀏覽器裡看運行結果;


2、 實用性強: 學會了JavaScript(含HTML、CSS)你可以在網頁版地圖上標註你想標註的東西、數據的處理及可視化展示、定時搶購某些東西(等等;


3、熱門:現在任何一個網頁基本都使用了JavaScript,全球最大的代碼託管平臺GitHub裡託管開源項目中最多的語言就是JavaScript ,且全球編程問答網站StackOverflow裡最熱門的也是JavaScript ;

4、可擴展性強:有了JavaScript功底,你可以輕鬆學習Node.js後端開發、Electron桌面端開發及weex移動端開發等 ;


綜上所述,建議題主選擇JavaScript!如果對編程感興趣,有空不妨多看看一些變成大佬的專欄~


阿里達摩院掃地僧


如果你想學習編程,雖然選擇第一門編程語言與你想用它來做什麼最終達到什麼目的有很大的關係,但是事實上某些編程語言的確比其他語言要好學。選擇一門合適的編程語言作為入門的語言對於培養自己編程的興趣會有很大的幫助。下面為大家總結出的幾種最佳0基礎入門的編程語言候選名單。

1、Java

Java是互聯網歷史最悠久、最堅挺和最具影響力的編程語言之一。你可以在線上線下、各種平臺、操作系統和設備應用的核心部分發現Java的身影。它是一門極具特色的基於類、面向對象的編程語言,被設計為能夠在儘可能多的平臺上移植和運行。

出於這個原因,它也是世界上最流行的編程語言之一, 堅持首選Java作為第一門編程語言的學習者必須注意Java迫使你以程序員的方式思維一邏輯和分析式思考, 並且真正把握計算機是如何處理信息的才行。

學習Java可轉向JavaEE分佈式開發、大數據+人工智能、軟件測試等等。

2、Python

當我們討論第一門編程語言以及哪一門語言更加容易快速上手時,很容易會提到 Python。它是一種面向對象、解釋型計算機程序設計語言。Python語法簡潔而清晰,具有豐富和強大的類庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模塊(尤其是PythonC/C++)很輕鬆地聯結在一起。Python在設計上堅持了清晰劃一的風格, 這使得Python成為一門易讀、 易維護,並且被大量用戶所歡迎的、用途廣泛的語言。

學習Python可轉向Python全棧+人工智能、網絡安全、軟件測試、雲計算+信息安全等等。

3、C/C++

C++是C的自然演化,這兩種語言大約分別起源於19世紀70年代和80年代早期。C語言是大學裡面教的第一門編程語言,是一門使用非常廣泛,通用的編程語言,它深遠地影響了其後的幾乎每一種語言。

關於C和C++的一件重要的事情是:它們都是計算機科學與編程最基礎的語言。如果你學習它們,它們會使你獲益,即使你之後並不去使用這兩種語言,但它們會使你洞察計算機科學和計算機編程的起源和基礎。

如果你不旨在專業的編程,這對你來仍然可以學習一下。 因為學過它們的人都會說學會了C/C++後,在學習其他語言就會變得很輕鬆。

學習C語言可轉向智能物聯網+嵌入式開發等等。

4、JavaScript

JavaScript通常我們會把它和Java相混淆,但是兩者根本沒有一點關係。它是一門腳本語言,是Web的基礎技術之一,但它也存在於瀏覽器之外。 隨著服務器的強壯,雖然程序員更喜歡運行於服務嘴的腳木以保證安全,但JavaScript仍然以其跨平臺、容易上手等優勢大行其道。

JavaScript比較容易學,使用瀏覽器即可運行,雖然它存在已經有一段時間了,但它正在迅速流行起來。學習JavaScript的成就感很高,因為你馬上就可以做一些Web程序了,這是大部分人學習編程的原因。

學習JavaScript可轉向Web開發、HTML5大前端等等。


杭州千鋒


要先看你學習的目的是什麼。機器語言和人類語言的作用是一樣的,你想去英國旅遊,最好學英語,你想去日本旅遊,那就學日語。你想做硬件設備,就學c語言,學人工智能,python等要好一些,你想做網頁,html,jscript等語言。語言只是一門工具,學習軟件的邏輯思維比學好軟件更重要,比如你想做財務軟件,必須對財務專業非常熟悉才行。


maxhw


當然是Python啦

谷歌的AI擊敗了一位圍棋大師,是一種衡量人工智能突然的快速發展的方式,也揭示了這些技術如何發展而來和將來可以如何發展。

人工智能是一種未來性的技術,目前正在致力於研究自己的一套工具。一系列的進展在過去的幾年中發生了:無事故駕駛超過300000英里並在三個州合法行駛迎來了自動駕駛的一個里程碑;IBM Waston擊敗了Jeopardy兩屆冠軍;統計學習技術從對消費者興趣到以萬億記的圖像的複雜數據集進行模式識別。這些發展必然提高了科學家和巨匠們對人工智能的興趣,這也使得開發者們瞭解創建人工智能應用的真實本質。開發這些需要注意的第一件事是:

哪一種編程語言適合人工智能?

你所熟練掌握的每一種編程語言都可以是人工智能的開發語言。

人工智能程序可以使用幾乎所有的編程語言實現,最常見的有:Lisp,Prolog,C/C++,近來又有Java,最近還有Python.

LISP

像LISP這樣的高級語言在人工智能中備受青睞,因為在各高校多年的研究後選擇了快速原型而捨棄了快速執行。垃圾收集,動態類型,數據函數,統一的語法,交互式環境和可擴展性等一些特性使得LIST非常適合人工智能編程。

PROLOG

這種語言有著LISP高層和傳統優勢有效結合,這對AI是非常有用的。它的優勢是解決“基於邏輯的問題”。Prolog提供了針對於邏輯相關問題的解決方案,或者說它的解決方案有著簡潔的邏輯特徵。它的主要缺點(恕我直言)是學起來很難。

C/C++

就像獵豹一樣,C/C++主要用於對執行速度要求很高的時候。它主要用於簡單程序,統計人工智能,如神經網絡就是一個常見的例子。Backpropagation 只用了幾頁的C/C++代碼,但是要求速度,哪怕程序員只能提升一點點速度也是好的。

JAVA

新來者,Java使用了LISP中的幾個理念,最明顯的是垃圾收集。它的可移植性使它可以適用於任何程序,它還有一套內置類型。Java沒有LISP和Prolog高級,又沒有C那樣快,但如果要求可移植性那它是最好的。

PYTHON

Python是一種用LISP和JAVA編譯的語言。按照Norvig文章中對Lips和Python的比較,這兩種語言彼此非常相似,僅有一些細小的差別。還有JPthon,提供了訪問Java圖像用戶界面的途徑。這是PeterNorvig選擇用JPyhton翻譯他人工智能書籍中程序的的原因。JPython可以讓他使用可移植的GUI演示,和可移植的http/ftp/html庫。因此,它非常適合作為人工智能語言的。

在人工智能上使用Python比其他編程語言的好處

  1. 優質的文檔

  2. 平臺無關,可以在現在每一個*nix版本上使用

  3. 和其他面向對象編程語言比學習更加簡單快速

  4. Python有許多圖像加強庫像Python Imaging Libary,VTK和Maya 3D可視化工具包,Numeric Python, Scientific Python和其他很多可用工具可以於數值和科學應用。

  5. Python的設計非常好,快速,堅固,可移植,可擴展。很明顯這些對於人工智能應用來說都是非常重要的因素。

  6. 對於科學用途的廣泛編程任務都很有用,無論從小的shell腳本還是整個網站應用。

  7. 最後,它是開源的。可以得到相同的社區支持。

AI的Python庫

總體的AI庫

  1. AIMA:Python實現了從Russell到Norvigs的“人工智能:一種現代的方法”的算法

  2. pyDatalog:Python中的邏輯編程引擎

  3. SimpleAI:Python實現在“人工智能:一種現代的方法”這本書中描述過的人工智能的算法。它專注於提供一個易於使用,有良好文檔和測試的庫。

  4. EasyAI:一個雙人AI遊戲的python引擎(負極大值,置換表、遊戲解決)

機器學習庫

  1. PyBrain 一個靈活,簡單而有效的針對機器學習任務的算法,它是模塊化的Python機器學習庫。它也提供了多種預定義好的環境來測試和比較你的算法。

  2. PyML 一個用Python寫的雙邊框架,重點研究SVM和其他內核方法。它支持Linux和Mac OS X。

  3. scikit-learn 旨在提供簡單而強大的解決方案,可以在不同的上下文中重用:機器學習作為科學和工程的一個多功能工具。它是python的一個模塊,集成了經典的機器學習的算法,這些算法是和python科學包(numpy,scipy.matplotlib)緊密聯繫在一起的。

  4. MDP-Toolkit 這是一個Python數據處理的框架,可以很容易的進行擴展。它海收集了有監管和沒有監管的學習算飯和其他數據處理單元,可以組合成數據處理序列或者更復雜的前饋網絡結構。新算法的實現是簡單和直觀的。可用的算法是在不斷的穩定增加的,包括信號處理方法(主成分分析、獨立成分分析、慢特徵分析),流型學習方法(局部線性嵌入),集中分類,概率方法(因子分析,RBM),數據預處理方法等等。

自然語言和文本處理庫

  1. NLTK 開源的Python模塊,語言學數據和文檔,用來研究和開發自然語言處理和文本分析。有windows,Mac OSX和Linux版本。

案例

做了一個實驗,一個使用人工智能和物聯網做員工行為分析的軟件。該軟件通過員工情緒和行為的分心提供了一個有用的反饋給員工,從而提高了管理和工作習慣。

使用Python機器學習庫,opencv和haarcascading概念來培訓。建立了樣品POC來檢測通過安置在不同地點的無線攝像頭傳遞回來基礎情感像幸福,生氣,悲傷,厭惡,懷疑,蔑視,譏諷和驚喜。收集到的數據會集中到雲數據庫中,甚至整個辦公室都可以通過在Android設備或桌面點擊一個按鈕來取回。

開發者在深入分析臉部情感上覆雜點和挖掘更多的細節中取得進步。在深入學習算法和機器學習的幫助下,可以幫助分析員工個人績效和適當的員工/團隊反饋。

結論

python因為提供像 scikit-learn的好的框架,在人工智能方面扮演了一個重要的角色:Python中的機器學習,實現了這一領域中大多的需求。D3.js JS中數據驅動文檔時可視化最強大和易於使用的工具之一。處理框架,它的快速原型製造使得它成為一門不可忽視的重要語言。AI需要大量的研究,因此沒有必要要求一個500KB的Java樣板代碼去測試新的假說。python中幾乎每一個想法都可以迅速通過20-30行代碼來實現(JS和LISP也是一樣)。因此,它對於人工智能是一門非常有用的語言。


全棧工程師


Python比較適合零基礎的小夥伴~~

可以看看我之前寫的一篇關於小白學習編程的文章,希望對你的學習有幫助~~


Python進階學習交流


聽說現在教學語法多釆用pyth0n機器學習庫,opencV和haarcascading概念進行學習培訓。若大年紀了,具體事情不甚瞭解。謝謝!


分享到:


相關文章: