對於學生黨什麼編程語言比較適合?

現在大一多的就是時間,不想浪費

經過幾個朋友的推薦

大概了解了一下

1.C/C++

2.JAVA

3.Python

目前在freebuf看招聘覺得這三個學好了的確挺吃香。

但是也有人說萬物基於C,想學習JAVA先把C學明白了。

求各位碼農大神給指一條明路。

應該先學習什麼,怎麼學。自學還是報班(個人比較傾向報班)

--------------------------------------------------------------------------------------------------

看到各位的建議了,先謝謝大家。

Q 做程序猿真的有那麼好么 學個表達自己問題處理步驟的工具都要報個班?

A 可能是沒有了解我的意思,我只是想豐富一下自己的水平,總比天天在大學混強吧,不想浪費時間打遊戲,學編程並不代表我想做程序猿 你也說了 這是個表達自己問題處理的工具。全因興趣愛好。

Q 數學影響編程的學習嗎? 因為我經常看到一些函數字眼

A 求回答,謝謝


既然是學生,趁還有精力,認真學一些學校不教,以後工作也未必會用的語言,比如Scheme,Haskell,Prolog。。

以後就未必有動力搞這些了。要是一輩子都只會寫C++/Java/Python,還會有比這更可怕的事情么。

======

問題更新了,稍微補充兩句吧。

1. 關於報班。我一直以來推薦的學習方式是MOOC,如果英語不差,首選Coursera和edX,英語實在不行,網易/學堂在線也不錯。外邊的培訓班是量產磚工用,對應到題主並不以就業導向學編程,那就完全沒必要。

2. 關於數學。個人認為數學能力是程序員能力中最重要的維度。如果題主是理工科學生,請務必上好數學基礎課,如果為了學編程做項目,影響了數學的學習,長遠來看是得不償失的。


首先說,學什麼都合適。這個真不用糾結,沒人限制一個人只能學一門編程語言,況且學好一門之後再學其它語言效率指數階上升。

個人認為,如果不想當純搬磚碼農,應該從C/C++開始,因為它們會涉及更加貼近計算機基礎的東西(特別是C)。從java或者python入手會更加輕鬆沒錯,但是很難接觸到諸如指針、內存申請和釋放的底層機制、各種變數類型的存儲機制、鏈接庫入口等問題。對計算機了解越深刻,以後的學習才會越順暢。況且學完C轉C++認識到模版與對象,再到java/python的OO機制,本來就是個漸進的過程。

當然,如果說只是想學了就能派上用場,賺錢養家活口,套模塊做產品能用就行,java和python以及php什麼的都非常不錯,投入少見效快,在主流互聯網行業中地位暫且堅挺,目測再戰十年絕對沒問題這樣…

數學肯定影響編程能力,但主要是邏輯、離散數學、計算幾何和具體數學。對搬磚碼農影響不會太大,畢竟大把的模塊源碼放在那兒可以直接用,能用好也是很不錯的。


HN上看到這個 What f#king programming language should I use?


目的是搬磚那就學 Java / C++

目的是學編程那就學 Lisp(包括但不限於 Common lisp / Racket / Scheme / newLisp / Clojure / Arc)


大一把C語言學好就算不錯了。

還是當個野生程序猿吧。

打遊戲怎麼了,打遊戲就不能當碼農?

編程的函數和數學中的函數基本是兩馬事。

一般編程的話,數學知識學好高等數學基本夠用,不夠用了把線性代數補上。


程序猿都是野生的,還沒見過哪個吃飼料長大的家禽長好了。


新手,特別是業餘的,強烈推薦python。

學起來簡單;

應用多;

c/c++太複雜;java太龐大;


兩個選擇。

1.Python簡單易學,語法特別貼近人類語言,適合要求上手特別快的要求的人,並且本身也十分強大,應用廣泛。

2.C語言,語言簡潔,聯繫緊密,沒有亢長的語法和關鍵字,有效理解計算機內部實現。缺點就是見效慢可能學了一年了發現自己啥都做不了除了黑框框(實際上這是最實用最神奇的領域)

========================================

補充回答:

3.數學只有在你深入計算機科學的研究後才會顯現出無比巨大的作用,計算機工程師(Computer Engineer)方向,也就是樓主說的只是興趣不想研究著重實用性的話我覺得在成為專家或者高級程序員之前的效果並不明顯

4.樓主不要試著嘗試C++,如果你對自己的記憶力以及智力非常有信心的話倒是可以學編程之初就學C++


你看這答的這麼亂七八糟的。可見程序員的世界,相互之間層次的差別有多大。這根本還是一個未開化的世界=如果把計算機科學和生物學相比,應該還是進化論發展的初期,圖譜還沒畫全。因此可見,計算機科學未來真是大有可為。請跟我念,CS=人類未來。另外,100年後肯定只有一種編程語言了。

另外,對於萬物基於C的說法,萬物還基於machine code , 萬物還基於彙編,linker 呢。萬物最後基於的是操作系統,嵌入式,Linux . Rom,邏輯電路,物理。你怎麼不改行學物理呢?看你對C那猶豫不決的熱情,快來學物理加入我們找不到工作的偉大行列吧!


當然是學C++ ,而且多用STL ,用的溜了後,在去學 c, 或者 一門 腳本


本想寫一大堆,結果看到了你得這句話:

"學編程並不代表我想做程序猿 你也說了 這是個表達自己問題處理的工具。全因興趣愛好。"

----不要問了,學Python!


如果要成為程序猿但是學個表達自己問題處理步驟的工具都要報個班的話。那可能要認真考慮一下做猿是不適合自己了。(為什麼那麼多人要做程序猿,有 那麼 好嗎?

---------

編程其實真的沒有那麼難。網上有好多how to 的課程和書可以選擇。既然你是小試牛刀的話,三門語言隨便挑一樣試下感覺吧。或深入或轉另外的興趣點。人生有那麼多可以追求,施主何必要糾結於一個呢.

數學 我覺得更多指的是邏輯能力吧。我的邏輯能力也不太好啊。稍微複雜一點的演算法我就腦子不夠用了。不過我覺得不用太擔心。有些內容是需要時間來消化的。可能幾個月後你就突然懂了...並且這也絲毫不影響我拿著cs畢業的旗號在就業季招搖撞騙啊 捂臉。 想趙溫輪一樣存在畢竟是少數。

所謂的函數什麼的話 其實是計算機比較笨不能處理自然語言。一定要任性的要求你用它能理解的方式告訴他。或者在軟體工程上的意義來講是為了提高代碼重用性 可讀性@¥%¥吧啦吧啦

我就是的代碼渣,軟體屆騙子 還是摺疊我吧,以免誤人子弟...


編程語言是相通的。沒有最合適的,只有你想先學什麼語言。我建議先學c/c++/java打基礎,很多人說其他語言怎麼怎麼好,但是其他語言能做的事情,c全能做。當然,我推薦先學這三個不是說這三個最有用,而是這三個最經典。c是面向過程的經典代表,java是面向對象的經典代表。學好面向過程和面向對象,就差不多各種編程語言都入門了。之後的事情就是其他編程語言都可以二十分鐘上手。但是要記住,這時候並不代表會寫其他語言代碼了,這時候只不過用其他語言寫了java風格的代碼。所以上手之後,就要學習其他編程語言最靈魂的東西,即其他語言的編程風格。


學編程建議你可以從C語言開始,因為比較基礎比較面向底層,與彙編語言比較近更容易理解計算機運行的機理,我是從Pascal開始學的,但是C博大精深,要想完全掌握很難,學完C的語法以後,你就可以找一門面向對象的語言進行學習,可以學習C++或者Java,pthyon,php,Objective-c,swift,就看你興趣如何,如果做網站就學java或者php,軟體可以學C++或者java,移動端可以學android用的java,IOS用的objective-c或者swift。說了那麼久估計你也明白了,java好像最有用,跨平台性好,但是java速度慢,而且龐大。其實你往後學會發現語言並不重要,演算法思想和設計模式架構這些才覺得你做東西的好壞。再來說說數學對程序的影響,其實優秀的程學員本身是數學家,數學不好的就只能叫碼農了,數學對於編程思維確實幫助很大。。。


c


基於某日在某招聘網站爬下來的數據,PHP,JAVA,Android需求量最旺盛,Python,Java薪資最有競爭力。


如果只是作為表達自己思想的一門工具的話,贊同樓上某位的答案,學python!python有著簡潔的語法和強大的庫,你可以利用python輕易開發出很多工具來解決你生活中、工作中遇到的困難,極大的提升你的效率。


我聽過一軟體架構師跟我說不要局限於編程語言,那只是一種末端技術,重要的是計算機基礎要好,有了基礎,這些都觸類旁通,不大需要學,所以才有了幾個星期之學好一門編程語言的例子。。。(他們都看不起學了各種語言什麼都會卻還是給他們當碼字員的人)

非專業的人,可以從c開始。我開始c語言學得好,後來接觸好多其他高級編程語言的時候都發現原來都差不多的,所以都很容易理解。

另外學c不需要環境配置,下一個軟體就可以用,學Java還需要配置Java環境,下載軟體,學其他的還需要瀏覽器。。。麻煩了點。

另外,數學的影響是潛移默化的,就是你不會也能編的了,學了可能會比別人編的好,但也不一定。


大一糾結這個是偽命題.因為可能連程序設計的思維都沒有.起手應該學的東西是演算法.具體怎麼實現看你的喜好


和那兩個比起來python是最省心的語言。

換言之,學python的好處就是省心,乾淨,簡單易懂。壞處就是學了之後你看其他任何語言都覺得麻煩。

以及萬物基於C...萬物基於32位彙編,題主加油。


推薦閱讀:

如何評價"Null reference - my billion-dollar mistake"?
位運算有什麼奇技淫巧?
非同步可重入函數與線程安全函數等價嗎?
大括弧不換行的壞處有什麼?為什麼有人不換行?
C語言內存中是否存在一個區域,存儲著變數的符號,變數的類型和變數的首地址?

TAG:Python | 編程 | Java | C編程語言 | C |