C和Python我該先學什麼?

剛剛結束了二級考試,我考的是vb,從小學開始我就很羨慕黑客什麼的,長大了後雖然羨慕他們,但是很討厭計算機。只喜歡用計算機打遊戲什麼的,但是開學後為了二級考試,我就啃vb的書,後來自己設計了幾個程序,計算機,還有其他的一些小玩意,感覺挺好玩的,那種程序能順利運行的快感快比上擼管了,雖然快感的時間比射出短。

我最近逛知乎,發現入門的話就這倆個語言不錯了,我還在猶豫到底先學誰。還有現在信息分享這麼發的,我都不知道從何學起,是書籍為主嗎,還是學mooc上的985名校的視頻。

有人給我建議一下嗎,先學誰以及怎麼學,有什麼好的視頻或者文章或者書籍讓我學習嗎?

還有我經常看見什麼選擇方向,前端後端以及其他的,這些方向我都沒有了解,請問該怎麼選擇。


說說我的觀點吧。

對於非計算機專業的,畢業又不打算干程序員的學生,學習要以興趣驅動,Python比C好玩多了。學C,想得到學習的正反饋,周期太長,沒多少人能堅持下來。

所以先學Python,編個遊戲,爬個網頁啥的,覺得有意思,真想干編程這行了,再去學C,同時啃啃計算機專業課程,才是順其自然,水到渠成。

還看到有人說Java,Java還是適合於想當專業程序員的人學,其他人士請繞開它吧,這語言編起程來比較無趣,一點也不好玩。


入門語言,我推薦學習你感興趣的語法:

  • 注意,是你感興趣的語法

要知道:興趣乃最好的老師、興趣乃學習之根本

要了解自己對哪個語法感興趣,可按如下步驟執行:

  • 借/買上一本 C 語言基礎書籍、一本 Python 語言基礎書籍:
  • 然後像讀小說一樣,第一天翻閱 C 語言基礎書籍,第二天翻閱 Python 語言基礎書籍;
  • 翻閱後,一般是可以初步分析並了解自己對哪個語言的興趣更濃厚;
  • 如果還是無法決策,則根據基礎書籍搭建語言的開發環境,分別運行出一個「Hello World」小程序;
  • 如果兩個都覺得索然無味,請繼續學習 VB。

我不推薦你「通過別人學習經歷 or 工作經歷得出的經驗」來「判斷你的入門方向」,因為:

世界上沒有兩片相同的葉子一樣,我們每一個人都是不同的

每個人對事物喜好是不一樣的:

  • 有人喜歡寫 C 語言的黑框運行代碼,有人不喜歡;
  • 有人喜歡寫網站頁面,有人不喜歡;
  • 有人喜歡寫邏輯代碼,有人不喜歡;
  • 有人喜歡寫演算法代碼,有人不喜歡;
  • ……

你不是他們,他們也不是你,你是陪伴你自己十幾年的人,他們只是花幾分鐘閱讀你描述的人。沒有人比你更了解自己,也沒有人能在你不做任何嘗試情況下分析得出你的喜好

然後:入門語言 != 未來工作語言,很有可能你未來工作語言是需要重新投入時間學習的。

入門語言只是幫助你入門,通過入門語言學習:

  • 了解程序是怎麼運轉機制起來的,
  • 代碼是怎麼寫的,學習並掌握基本的 if else、where、for、switch 思想邏輯;
  • 怎麼寫出好代碼,學習並掌握重構代碼、封裝方法、基本設計模式思想;
  • 怎麼協作開發,學習並掌握 SVN、Git 代碼管理工具;
  • ……

當以上都學會後,接下來你要提升的能力是:

  • 學習能力,能夠通過閱讀語言技術書籍、官方技術文檔,再加上入門語言習得的思想,快速掌握一門新的技術語言,越會舉一反三的人,其學會新語言的速度會越快;
  • 容錯思維能力,讓你代碼更加安全健壯,各種突發情況都不會讓你代碼死機不運轉;
  • 產品思維能力,讓你寫出的程序更人性化,方便用戶使用;
  • ……

接下來,我針對你的疑問給一些解決方案,希望能給你帶來一些幫助。

Q 1:

還有現在信息分享這麼發的,我都不知道從何學起,是書籍為主嗎,還是學mooc上的985名校的視頻

A:

回答問題前,想給你一個小小的建議:

  • 提高自身語言能力,學會認真對待事情。最起碼不要出現錯別字。

書籍還是視頻學習,取決於你自身兩大基礎能力,即閱讀理解能力、動手能力。

  • 兩個能力強,建議選擇書籍。兩個能力弱,建議選擇視頻。

如果搞不清楚自己兩個能力強弱,可以通過如下步驟判斷:

  • 閱讀書籍後,能不能理解到書籍講的,能不能跟著書籍敲代碼並運行起來,能不能完成書籍的課後習題。如果能,通過書籍學習是節約時間的學習方式。如果不能,視頻則是你備選方案;
  • 如果通過視頻也不能習得知識並寫代碼,建議找專業人士專門指導你。

Q 2:

先學誰以及怎麼學

A 2:

這個判斷在前面講過了。你可以再仔細閱讀下。

所有的技術學習步驟都是類似的:

  1. 找一本技術基礎書籍閱讀,看書敲代碼、寫課後習題,推薦 Head First 系列;
  2. 確定開發項目及功能,通過代碼實現它們;
  3. 確定技術提升書籍目的,花時間閱讀它們;
  4. 重複 2、3 步驟,直至你不想從事開發行業。

Q 3:

有什麼好的視頻或者文章或者書籍讓我學習嗎?

A 3:

既然想從事開發行業。第一要掌握的能力,便是搜索能力

  • 善用知乎搜索、Google 搜索、Wiki 搜索、Github 搜索;

當以上搜索都無法解決你的問題時,再尋求專業人士幫助:

  • 尋求幫助前,閱讀下《提問的智慧》這篇文章,學會尊重他人時間,有時候該付費就得付費。

Q 4:

還有我經常看見什麼選擇方向,前端後端以及其他的,這些方向我都沒有了解,請問該怎麼選擇。

A 4:

解決步驟如下:

  1. 通過招聘網站,了解 IT 行業開發工作有哪些方向;
  2. 通過招聘網站的職位描述,了解職位所需要的能力;
  3. 通過職位所需要的能力,了解需要閱讀哪些書籍;
  4. 通過閱讀書籍,了解自己興趣所在。

既然想從事 IT 開發行業了,還需要學會提升:

  • 分析問題、解決問題的能力。

最後,感謝邀請。希望我的回答能為你或更多有相關困惑的人帶來幫助。


C和Python代表編程語言界的兩個高地。

能學會C就學C,學到指針結構體等基礎語法都熟悉之後再轉python,思考為什麼python可以這樣而C不行。

學不會就反著來吧,牆都是一樣高的,區別在於你是先爬還是後爬。

當然如果你只是拿計算機糊口,那python也就足夠了,但我覺得你還不如去學Java和PHP。。

順便一提,你年輕的時候體力比較強,然而腦力也是年輕的時候更強。


如果是在校學生,建議先學習c語言。

如果是著急就業,建議學習Python 或Golang、php,Java 等。


看樣子題主不是往專業軟體開發方向發展的,那也就不必以一位專業程序員的標準來要求自己了。反過來說,如果是專業,我就推薦先C後Python。

Python要上手很容易,而且藉助龐大的社區及各種各樣的第三方庫,你可以在較短時間內完成自己的任務,效果體現明顯。當然,任何一門開發語言要深入都不容易。

而且,隨著Python掌握的程度越來越好,也許你的想法就會多了起來,比如Python是C開發的,你就有可能萌生了解C的念頭,這樣,自然就形成了你的學習順序。而一開始,沒必要太糾結這個順序,先用起來就成,後面順其自然就好,船到橋頭自然直。


先學c

再學Python

一定要記住這個順序別搞反了


了解計算機原理用c,幹活用Python


瀉藥

雖然我承認python更簡單,但相信我,先學C,c告訴你的東西,是別的任何編程語言所不能教的。先學C沒什麼好說的。學完C別的語言,再去選擇。絕大部分經典教材的默認語言都是C。不會C連教材都看不懂。而且C一定是描述數據結構最適合且準確的語言。不會C,我估計你連鏈表都雲里霧裡的。不會python的程序員很多,不會C的程序員(我說的是會,不是精通,省得有人評論去噴我),沒見過。

我補充一下,學會C,轉別的語言都不難。想轉很快,但要是學的Python,你給我轉個Java試試,搞的你找不著北。Python容易出成果所以學Python,那R更容易出成果,SAS甚至直接上手變數據分析師。這有意思嗎?難怪機器學習現在大部分人都只會調參,因為原理公式自己都搞不清。一樣的道理。

互聯網這兩年火,很多各行各業湧入不少人,這是好事。可惜這些人大部分都急功近利,別說數學了,很多連數據結構都不學,就開始寫代碼,拿工資,頂著程序員的名頭每天寫著重複的代碼,然後自己身體變差了,被裁員。就在網路上寫下"35歲被裁員的程序員之血淚史" 控訴互聯網剝削,程序員青春飯。。。嘖嘖嘖,我劇本都幫你寫好了。所以要不要學C你自己決定。

沒別的意思,只是希望在大家都重視實踐的大背景下,呼籲CSer 千萬不要忽視理論基礎。


考vb?沒嚇死我。。。。。。

首先,想學這兩門的任意一門都要先上Linux,因為windows下都是定製版

先環境變數,再是命令提示符,挨個搞你太噁心 ……

要我推薦:先學c,基礎c不是c艹,然後擼python

學完c就可以享受c的速度和python的編程效率了

你讓我一個ruby程序猿推薦你寫這兩個?

首先你想學這兩個的意義在哪?

跟風?

這兩個都有或多或少的缺點比如C語言太老,有些新的知識你接觸不到,python太亂,python2 和 3分裂

你要是聽我的,我推薦你先學java8,首先什麼都有,而且簡單,還新,找工作好找。

還想學一門的話再學學Clojure開闊眼界,畢竟jvm的程序能互相調用,學完java差不多不會犯懵

硬是沒時間直接上kotlin……語法簡潔,開發快速,函數式,安卓,網路一網打盡

ide的話 intellij idea


學啥語言主要看你要幹啥,大部分的非專業碼農很難用到一些底層特性,更別說大部分非專業碼農連二叉樹都不會寫。所以學c純粹浪費時間

python入門簡單,大部分事情都有庫,拿著玩玩絕對夠用。適合題主這樣想玩玩就夠的心態。


題中有【前端後端以及其他的,這些方向我都沒有了解,請問該怎麼選擇】

題主比較想寫個網站? 那顯然是PHP更好吧,畢竟最好的後端編程語言,又好上手。


你毅力夠就直接學c,如果覺得自己需要做出一些小東西激勵自己才能寫下去,還是學python吧。你如果要吃這口飯單一個python確實有點不夠


我認為你應該先學 Python。編程語言和人類語言在一定程度上是類似的,主要靠的是練習和實踐,你就是學成語言學專家,對日常溝通交流也沒有太大意義。比如說做網站,C既不能幫你做網站,對了解Web的運行原理也沒有多大實質性幫助。

我不否認C的意義,它確實有助於了解操作系統的底層運行機制,但是對於大多數常規應用來說,它的作用是被誇大了。再說,Python也並不妨礙你去了解底層的東西。以網路應用來說,它既有很高的Web層介面,也有很低的Socket層介面,應用範圍比C廣泛得多。精通C是個很漫長的過程,你現在不明白哪裡會是重點,學習效率是很低的,有一定基礎以後重點補課效果會好得多。就算你以後需要回頭來補習C,我覺得也完全沒問題。

如果你時間很充裕的話,同時學習兩種語言也是可以考慮的,就像中英文可以同時學習一樣。

至於文章或書籍,已經有很多問題說過了,請善用搜索功能。


C和Python都學過的,說下,如果想把IT作為職業,長遠發展,成為架構師,那麼學C,具體可以看我的文章,有C的教學視頻,學完C以後,雖然你知道了程序的運行過程和原理,但是你仍然不懂如何靈活的進行調度,內存管理,文件系統,網路編程,所以建議學習Linux系統編程,學完Linux系統編程,再學習Python,或者Java其他語言,會感覺比較容易,我不認為面向對象難,難的不是面向對象語言的語法規則,而是設計模式難。


謝邀 @左右手

雖然很多人會推薦說先學C,但我看了下題主的實際,完全推薦先學python,因為,python更接近人的自然語言習慣,這樣的話,更容易上手,更容易結合實際作出一些小成果,更容易讓你有成就感。

編程語言,就是實現人與計算機的溝通。任何一種編程語言,若他離計算機近,那麼他就更像計算機的「語言」,更接近計算機的本質,執行的效率就更高,但卻越抽象越難以掌握。python,離計算機遠,卻離人更近,更像人類的「語言」,更好掌握和入門,這對初學者來說無疑是個好消息。比如,它自帶了很多高級數據類型,如列表、元祖、字典、集合、隊列等,無需進一步編程就可以使用;他提供了非常多的現成的庫,並且存在大量的開發文檔,都使得實現具體的實際問題變得更加簡單。

當然,如果你還是想在計算機編程這條路上走得更遠,那c肯定還是要學的,因為他才更接近本質。等掌握了python以後,對一些關於計算機的本質的東西有了大致理解以後,學習C才更容易。


推薦先學C,再學python。

原因:

0. C語言本身縱然有很多拙劣的設計(個人認為),但它依然保證貼近硬體和足夠的抽象。

1. 很多人覺得C難學,其實我覺得還好。仔細看書,多上網查資料,多實踐,寫出工業級別的代碼還是比較容易的。

2. 也能做出一些比較有趣的東西(因人而異),提高學習熱情。

目標:

掌握基本語法,熟練使用該語言完成大部分實際任務。

方法:

0. 一本比較純講C語法的書,大概看一遍有個概念。

1. 網上買個51單片機開發板,大概幾十塊吧,外設盡量齊全。

2. 準備好開發環境。

3. 一本講C51開發的書,開擼代碼。

4. 等單片機系統上各個功能玩一遍後,試著把他們組合起來,例如,使用按鍵控制一台直流電機,並將轉速顯示到LCD顯示屏上。

5. 差不多了,學python吧。

資料:

· C Primer Plus

· C51一般店家都會給資料

· 嚴蔚敏的數據結構+高一凡的配套C代碼

· python隨便看看語法就行了,當然也得了解一下各個庫能幹什麼

c++程序員,水平屬於湊合混級別,這是我的學習經歷,我想每個人都有自己的學習方法,相信你也會找到適合自己的。


不管先學哪一種語言

學的思路大概就是

認真看點書學習語法-&>寫點小程序-&>寫點小的project-&>去GitHub看看大佬寫的代碼並學習

期間不懂的上網查或者翻書

切忌一味地看書學習語法


《c語言從研發到脫髮》

《C++從入門到放棄》

《Java從跨平台到跨行業》

《Ios開發從入門到下架》

《Android開發大全——從開始到轉行》

《PHP由初學至搬磚》

《黑客攻防:從入門到入獄》

《Mysql從刪庫到跑路》

《伺服器運維管理從網路異常到硬碟全紅》

《伺服器運維管理從網維到網管》

《Office三件套從入門到手寫》

《Debug455個經典案例,讓電腦開機藍屏》

《零基礎學c語言,學完負基礎》

《Css從繪製框架到改行畫畫》


我來說一個我自己和身邊的朋友的。就稱他為A吧。

16年底我們一起自學編程語言,在不同的地方。我學c,A學python。如今快一年了,他用python能寫出許多有趣的小玩意。說真的很羨慕,因為我學c現在都還只是停留在對話框里。

我剛開始時是用win7下vs,不知道為什麼,一看見那個界面就提不起興趣寫代碼,直到今年8月底裝了虛擬機,然後就上了ubuntu,不會命令,運行全靠百度……。好了有點扯遠。

前些天在知乎上看到很多人問學什麼編程語言入門好。我就來隨便說一說,說得不對的地方希望理解。

首先確定方向,你是打算應付考試或者只是想玩一下還是確定想在編程的世界裡遨遊。

玩一下的話就python見效快,學習反饋周期短,即學即用。

長遠的話就c,但是學習周期長,見效慢,沒有充足的時間和強大的毅力的話很難適應那些枯燥的練習。但是你要是學會了你會發現你的思維模式和編程思想會比那些直接python的要好很多,這決定你以後的高度。注意是學會不是要精通。

了解程序到底是如何運行的必你知道這樣做就可以運行的要好很多。

別學到最後連調試都覺得很難就搞笑了……。

語言組織能力不好,希望各位知乎大神別笑,僅僅是一個小菜鳥短淺的目光。


python更加容易做出作品,讓自己有成就感。


推薦閱讀:

Linus Torvalds 開過哪些著名的嘴炮?
c語言printf("xyz-123"+2)為什麼結果是z-123?
什麼時候用C而不用C++?
C 語言中,a+=1 和 a=a+1、a++ 有區別嗎?
郝斌的 C 語言教程怎麼樣?

TAG:Python | C編程語言 | 計算機科學 |