零基礎如何成為編程高手?

本人女,重點大學大一計算機專業,因為一開始是被調劑的,對計算機完全沒有任何基礎,包括做個ppt,寫個文檔什麼的,什麼也沒有接觸過,所以覺得學習過程中常常受挫,很多人說女生學計算機也幹不了什麼,還很迷茫,不過漸漸的我覺得計算機是個不錯的行業,又想在這個領域呆下去,但是我覺得現在自己沒什麼基礎,又不知道從何學起,大一上半期快要完了,感覺自己也還是只能寫簡單的幾行代碼,看著周圍那麼多大神,覺得不知道自己現在該怎麼辦…但是我是決定學計算機的……

補充……

謝謝大家來回答我的問題。

題主我的大學是一所很普通的985,我完全沒有什麼覺得自己學校很優秀的想法,沒有什麼優越感,希望大家不要探討題主的大學,這也偏離了問題本身,對吧…

對於以前高中一直是學渣的我來說,能夠考上一本,是在高三付出了很多很多努力而來的…所以現在我很珍惜這些來之不易的東西。

大家給我的建議我都有很認真看,其中一些好的建議,比如說一些書啊,學習方法我都有記下,我會根據自身情況來選擇的。我現在一點也不迷茫,現在我最需要做的的估計就是靜下心來給自己充電了…

Ps:

現在題主正在看c primer plus ,我發現自己真的愛上了編程^_^^_^

謝謝知乎這個平台,也謝謝大家……沒來這裡估計自己還是鬱悶的過著日子!每天告訴自己女生不適合編程,太累,太苦,智商不行…^_^^_^^_^

我會堅持把這條路走下去的!

ps:

深夜敲代碼結束上知乎水一水,再來看自己當初提的問題,快半年了,==,題主已經深深入坑了,每天都會堅持敲代碼(沒有大神輔導,題主都是自己看書自學,嘿嘿),自己編程能力有了很大的提高,謝謝各位知友們當初給我的建議,thx


編程是一種創造。如果你對創造有興趣,那麼就很容易,反之則很難。

編織,手工,寫詩,作曲。這些和編程一樣,當產物出來的時候,會有一種特殊的快感。

如果你感受不到這種快感,那麼趁早還是換一條路走吧。


我大學學的是機械。

自學計算機主要是照著MIT,CMU,Princeton,Stardford這些名校網站上的課程,挑符合自己口味的來學。

這裡推薦幾門基礎課:

1. MIT6.01 Spring 2011, 導論性質的課程。適合大一學生。用的編程語言是 Python。老師課講得很好。目標是掌握良好的系統思維方法,所謂的PCAP(Primitive, Combination, Abstraction, Pattern)

2. Coursera 上面的 Programming Language 這門課,來自華盛頓大學。系統地學習編程語言和相關理論。課程上用了ML, Racket和Ruby。相關的閱讀,可以看Dan Friedman的little 小人書系列,essential of programming language之類。之後便可自稱polyglot了。目標是理解編程語言的本質,將來學習新的語法就輕鬆多了。再NB一些,可以自己創造新的語法了。

3. Coursera 上的Algorithm 這個系列的課,來自Princeton。我覺得是教的最好的演算法課,比MIT的6.006 好多了,MIT的老師喜歡在大黑板上狂寫,雖然很有激情,但對於演算法教學來說,有點low了。初級演算法課程還是用動畫和圖表來得直觀一些。

4. MIT6.828 操作系統。課程講的XV6,一個很簡單的操作系統,類unix。實驗用JOS,也是一個很簡單的操作系統,但是設計思想和XV6 不一樣。在自己實現這個操作系統的過程中,可以學到很多東西。

5. Coursera上面的Computer Architecture,同樣來自Princeton。講的是處理器的架構和設計。

對於一個初學者來說,把以上的基礎課程刷下來,就上升一個level了。

很多應用的東西,比如Web開發,資料庫什麼的,就找具體的項目來練手了。

路漫漫其修遠兮~~


不要看國內的教材(教育人士出的書)。國內從業人士出的書和網上的教程都可以看。


非計算機專業如何轉行到程序開發?
非計算機專業怎樣學習編程開發?
沒有項目經驗如何準備面試?

在我們的用戶中,很大一部分都是非計算機專業的。這其中包括在校大學生,也還有一些剛剛初入職場的社會人士。總體來看,大家對於跨專業學習IT領域的技能存在很多疑慮和疑問。

這裡梳理了網易資深開發工程師彭陽一些針對初學者(尤其是非科班出身的同學)的建議,希望能對大家有用。

1. 培養自己的好奇心

興趣是最好的老師。大家都知道,堅持不懈地學習任何東西都需要興趣去支撐;如果沒有興趣,則很難長久。

對於想跨專業轉行的同學,可以先問問自己是不是真的對這個行業感興趣,如果答案是肯定的,那這種嘗試是沒有問題的。畢竟這個行業正在以前所未有的速度飛速發展,並且至少在未來二十年是值得期許的。

其實對於大多數人來說,找到真正自己感興趣的東西去做確實很難,這種事情可遇不可求。在沒有太好的目標選擇的情況下,如果有決心進入這個行業也未嘗不可。但還是需要強調:在進入這個行業之後,大家需要保持一顆好奇心。因為只有這種好奇心才會驅使你堅持不斷的去學習,去進步。

2. 快速學習,多閱讀,多實踐

IT行業與其它行業相比,它的技術變更更加快速,可能每天都會有新的技術出現,你每天也都會接受到新的名詞、新的技術、新的架構體系。身處在這個變化如此之快的行業,快速學習的能力變得非常重要。比如一個新技術出來,你的老闆可能需要你用一個月的時間用這個新技術完成一個項目,一般這種情況下,你最多只有一周時間完成對這個技術基本入門,後面就是一邊用一邊學。

說到學習能力,需要特彆強調一點的是英文的閱讀能力。其實作為程序猿,英語能力是不可或缺的。畢竟計算機這整套體系都是老外創造出來的,所以我們在學習新技術的時候面對的大部分都是英文文檔。這個時候,就特別需要我們有一個良好的英語閱讀的能力,這樣我們才能更好的快速掌握相關的技術信息。

學習新技能的時候,除了閱讀文檔,另外我們需要做的就是多動手實踐,多寫代碼。很多學員在交流的時候都會反應一個問題,就是說跟著老師的視頻會寫代碼,但是自己寫就寫不出來。其實寫代碼也是一個熟能生巧的事情,代碼敲的多了自然而然的就會寫了,如果寫不出來說明代碼還寫得不夠多。反覆練習,積累達到一定的量就會有一些寫代碼的靈感,進而就會產生一種質變。總而言之就是,紙上得來終覺淺,絕知此事要躬行。

3. 注重基礎,抓住核心

前面提到IT領域技術更新很快,我們需要有一個快速學習的能力。對於一個初學者來說,面對紛繁複雜的各種技術,很多人都會一時手足無措,不知道從哪裡下手,很多跨專業的同學都會遇到這個問題。這邊需要說的是:雖然這個領域技術繁多,新的技術也都層出不窮,但是有一句古話,萬變不離其宗,這句話就是強調我們需要去抓住所謂的那個宗,也就是我們所指的技術的基礎與核心。

作為非計算機專業的同學,不建議大家一開始就去學習Java或者C語言,還有所謂的各種框架。很多非計算機專業的同學可能會通過自學或者社會上的一些所謂的快速培訓機構學習編程,在短暫的學習後就能夠自己做出一兩個簡單的項目,甚至能夠勝任普通工作中的一般任務。但是由於沒有對計算機專業知識進行系統性的學習,對計算機基礎知識缺乏了解,所以在遇到一些涉及到計算機底層的一些東西的時候就會不知所措。比如計算機網路通信、資料庫的設計規範、數據結構的優化、多進程多線程編程等等,這些都是非計算機專業的同學欠缺的知識。就好像蓋房子,在沒有打牢固地基的情況下就開始添磚加瓦,最後轟然倒塌是必然的。

作為跨專業的同學,建議大家先學習一些計算機相關的知識,這裡推薦一些書單。如果大家能把這幾本書都能夠完整的自學一遍,我想也就可以算是計算機入門了。

《計算機體系機構》了解最基礎的計算機硬體知識
《計算機操作系統》了解整個操作系統的實現和編程環境
《編譯原理》《計算機網路》了解編程語言的原理和網路原理
《數據結構與演算法》了解編程中常用的數據結構與經典演算法

這裡打個比喻,如果大家先將計算機專業的知識體系建立起來了,就好像先練就了一身九陽神功,後面再學任務其它武功就是易如反掌,這樣才有可能做到我之前提到的快速學習。

4. 勤寫技術博客,與牛人多交流

寫技術博客是一種可以快速提高的方法,我們可以分享自己總結的一些經驗,也可以分享自己的體會。一樣東西在你大腦里,並不代表你已經掌握了,如果你能說給別人聽,或者用文字表達出來,那才算真正掌握了。

大家在剛剛寫技術博客的時候不要擔心自己分享的東西太low,只要你認為是有價值,都可以寫出來,這不僅可以給別人提供知識,同時也能夠整理自己的思路,有時候還可以得到網上朋友的意見和反饋,跟大家一起交流。

在IT這個領域,你會發現周圍有很多技術牛人,他們都身懷絕殺武功,通常他們都很低調,低調到你都很難發現。如果你發現周圍或者網上有這樣的同事或者朋友,就可以多跟他做一些技術交流和討論,在這個交流和討論的過程中你會學習到他思考問題的思路和方法,同時也會加深對知識的理解,這樣也是一種快速提高很好的方法。

以上。


熟練工而已,沒什麼難的。最多就是迅速和緩慢的區別。


找個技術強的男朋友


推薦給你一本書,我就是被這本書引誘進編程這個深坑的:

最重要的是,

它讀起來是一本易讀的小說,而不是一本難懂的教材。

而用起來卻是一本實用的教材,而不是一本空洞的小說。


我大一進計算機也是調劑的。進大學前對電腦的認知應該就是熟練的開QQ,玩war3的真三遊戲,以及嫻熟的找小電影技能。對於編程也是屬於零基礎。所以我覺得學編程最難的就是上手,所以我推薦是直接做ACM上手。

我上c++編程第一課的時候,不知道for循環怎麼寫,不知道i++什麼意思,不知道cout是輸出。不過很感謝當時的老師,他第一節課就是編程不講基礎知識。等上手了再開始補基礎知識。我推薦直接解ACM的原因也是一樣,先上手體會編程的樂趣再來補知識。因為當你AC一道題目那種快感完全可以媲美高潮那一下啊。

再說ACM又不只有難題,我會告訴你《A+B》這種直接輸出兩數之和的題目我寫了不下5次才AC么。到一晚上用2個半小時AC倒楊輝三角,然後抬起頭看著熟睡的室友,摳摳腳深藏功與名。所以我覺得上手體驗了編程樂趣之後再來認認真真得系統的學會輕鬆很多,至少我是這樣過來的。


大學裡,女同學無論成績多好,思維多麼敏捷,開發一般都不太行。我覺得原因在於很少女性會執著的去探求一個理科問題的答案。我們學演算法時,有想不通的問題,會一直琢磨,直到想通了為止。而女生大都選擇去問老師。她們不喜歡長時間的苦思冥想。編程的思維能力像一把刀,你不去天天打磨,它不可能鋒利。

計算機專業其實未必都要當碼農,維護是很大一塊,網路也是很大一塊,建議正視自己的心理特質,揚長避短比較好。


寫可以完成的,有挑戰性的代碼,持續下去。。。


先培養興趣再說。做一些感興趣的事情。不感興趣的先放一放。

等你覺得興趣所需的知識欠缺的時候,自然就想方設法學會了。


題主你問的是編程高手還是計算機高手呢?這兩種人好像不太一樣。

……我認識的學生裡面,能稱得上編程高手的,有兩種人:

1. 參加ACM競賽並拿到名次的,亞洲或世界級。

2. 做過很多項目的,包括Web開發、嵌入式開發(機器人、電腦鼠、智能車)、手機應用開發等等。

這兩種人的共同特點是:寫過很多很多的代碼

所以題主,找項目寫代碼吧,寫起來你就知道自己該學什麼了,Good Luck.


推薦一位IT精英的博客,博客地址:

  • zhuweisky - 博客園

不為繁華易匠心

做技術是需要匠心的。什麼是匠心?我們原本是有匠心的,我們如今還有匠心嗎?我們為什麼沒有匠心了?為什麼我們要重拾匠心?如何重拾匠心?

一. 做技術是需要匠心的

中國古時的玉匠,切磋琢磨,用繩與砂漿,費數十載心力,終將渾然璞玉製成傳世珍品,千年遺音在,猶見當年寂寞心。

日本傳統的刀匠,將千錘百鍊之鋼反覆鍛鑿、淬火、打造、磨製,每一處技至精微,每一處心入幽明——刀中有魂!

歐洲中世紀的石匠,在哥特式教堂的飛檐上雕刻出了靈獸狀噴水嘴,雖不為世人所見,仍一絲不苟——每一鑿中都有天堂!

米蓋朗基羅花四年雕刻出了震驚世人的《大衛》,曹雪芹批閱十載創作出了藝術巔峰的《紅樓》——任何偉大的作品背後都有一顆匠心。

二. 什麼是匠心?

匠心是對於作品而言的。

匠心是傾注於作品之中的精神、情感、乃至魂魄。

匠心發自於愛,是對作品視如己出的拳拳之心,是恆久忍耐又有恩慈。

匠心是出於這份愛的對於完美的追求,是追求中不避艱苦,是追求中自得其樂。

匠心是涵泳在作品之中的自我實現,是我與作品的相互完成,彼此造就。

在匠心看來,作品是我的至親之物,棲居著我的精神,安放著我的靈魂。

匠心即是愛心 + 恆心 + 一片苦心 + 七竅玲瓏心 + 出離心 + 寂寞心 + 金剛心 + 歡喜心 + 其人雖已歿,千載有餘情。

三.我們原本是有匠心的

我們原本是有匠心的。

當年Ken Thompson 和 Dennis M.Ritchie 一起在貝爾實驗室里苦心孤詣。

如今,沒有人不知道Unix意味著什麼,C意味著什麼。

他們的匠心也彰顯在Unix和C中令無數人為之驚嘆、感懷。

四.我們如今還有匠心嗎?

如今,我們再也難得見到「作品」問世。

甚至於「產品」也是少見。見得最多的則是「商品」。

對於我們而言,做什麼東西並不重要,重要的是做這個掙不掙錢。於是我們沖著掙錢做了各種項目,C/S、B/S、前端、後端、資料庫、Java、.Net、安卓——彷彿無所不知,無所不曉,十年之後回首,覺得自己已然是全才。

我們從事了大量的勞動,寫了幾十萬行代碼。我們的工資越來越高,並為此沾沾自喜。

可是,這樣的成就,無非是一個熟練工人的成就。

我們何曾擁有匠心?

五.我們為什麼沒有匠心了?

隨著大生產時代的到來,那種田園詩般的男耕女織、帶月荷鋤歸的工作方式,早已一去不復返。社會分工越來越細碎化,我們面對的是一個又一個的局部。在這之中需要的是規格化、標準化、量化和同質化。換言之,你所做的工作必須是合乎統一規範的,具有統一規格的單元,如此才能拼接到整體的工作中。因此,任何的創造性,任何私人性質的感情和精神的注入,歸根到底,只是錯誤的根源。 ——我們於何處安放匠心?

如今,商品成為了一切物所具有的普遍的形式。沒有什麼不是商品。商品是以交換為目的的。我們生產任何勞務、產品、或服務,都是為了交換,為了換取一般等價物,即貨幣,即金錢。因此,錢成為了衡量一切的準繩。如今不乏偉大的商品誕生,可是偉大的作品卻乏善可陳。商品需要的是批量生產,需要對消費者投其所好,當然商品也需要創意,可是那不是匠心!在一個由商品拜物教統治的時代,我們於何處安放匠心?

世界如此繁華,匠心未免太奢侈了!我們在喧嘩與騷動中度日,有太多的追求,太多的比較,太多的你追我趕,太多的惶惶終日。每天有看不完的新聞,刷不完的微博,做不完的手頭工作。我們為無盡的事情發愁,疲於奔命。匠心未免太奢侈了!早在我們出生的那一刻,我們就開始照著大家來活,大家都在讀書,大家都在考學,大家都在找工作,大家都在結婚,大家都在買房,大家都在炒股,當我們跟著大家忙忙碌碌的時候,匠心自始就已沉淪!

六.為什麼我們要重拾匠心?

假使我們沒有匠心,我們將不會在工作中獲得真正的快樂。因為我們不能自覺自由地工作,我們的工作是boss定義的,而不是自己定義的。如此一來,我們就與我們的勞動之間切斷了血肉聯繫。我們的勞動成為了壓迫我們、奴役我們的異己力量。我們淪為被迫勞動。我們真正的生活在下班之後開始。我們不停地抱怨:要不是為了幾個臭錢,我才不要干這些。如何才能回歸到那種田園詩般的勞作之中——我們必須重拾匠心!

唯有在擁有匠心之後,我們才能走向真正的自我實現。馬斯洛將人的最高層次的需求定義為自我實現。一個自我實現的人,一個將自己的才能發揮到最大限度的人,才是那個獲得最大心理滿足的人。現實生活中唯有少數精英才能夠成為自我實現人。但是這並不妨礙我們追求自我實現。一個有著庸碌之心的人,是不可能走向自我實現的。唯有重拾匠心,我們才能佔有工作的全部意義,才能不避艱苦、精益求精,與自己的作品相互完成,彼此造就。

七.如何重拾匠心?

對於如何重拾匠心的問題,恐怕要留給每一個人來思考。而且是一個需要始終思考的問題。

在這裡我並不想給出答案。

只希望能在這篇文章中能夠看見你,看見我,看見大家。

能見眾生便是如來,不易匠心方得始終。

參考閱讀:

程序員的出路之一

——————————————————————————————————


你已經成功一半了,真心覺得學計算機的女生就業率真心是羨慕嫉妒恨啊。我班就四個女生,大學踏實學一年就業率100%,踏實學兩年,恭喜你,已經拿到BAT的門票了。。。PS:也是普通985


以Python作為入門很不錯。但是還是需要學C或者C++。其實也不是語言的事情。一般來說你需要從機器層面理解C語言,理解指針,最好是在學習了計算機組成之後學習下彙編語言。這樣你對計算姬本質就會很了解。然後基礎數據結構和演算法要會,比如圖,樹,排序。高級演算法看著辦吧,我覺得學會比較好,比如分治法,動態規劃思想,回溯思想,紅黑樹/旋轉樹等。 另一方面,如果編譯原理學好了更好,特別是要理解閉包這些高級語言特性。從本質了解什麼是語法,什麼是語法糖。感覺這些學好了之後,哪個語言已經不是問題。你會發現語言其實都很相似。


喂!喂!喂!

別人是認真的提問,麻煩各位認真回答下好嗎?先佔個坑,這幾天複習,有時間了細說

————————————————————

吃了飯噠,我來回噠。

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

首先針對問題的第一句:不管男女,不管是不是被調劑的。既然你想成為編程高手,哪怕只有一丁點想那都是你學習下去的原動力。你就不要放棄好伐。

然後,你說的你不會PPT?不會寫文檔?這些都沒關係,CS學生不會那個東西問題不是很大,基本的會用就可以了,但也不要一丁點都不會。然後呢,看到你說別人怎麼怎麼樣,吶,不要讓別人的說法來左右了你的想法!!!聽多數人的意見,和少數人商量,但是重要的還是自己做決定!!如果你想在這個領域待下去那就只管去做!!just do it,就是干!!基於以上想法,請向下看。

----------------認真答題-----------------------

要編程,首先你得會開關電腦或者能夠識別出電腦是否是出於運行狀態。(不許笑!!難道這個不重要嗎?)現在假設你知道如何開關機以及知道電腦是否處於運行狀態。

好吧,,,你在學Python?很好啊!看樣子你也不是學得很好,這樣吧,你用Python去做個東西怎麼樣?這樣一來有成就感,二來知識得到了檢驗以及實踐。具體做什麼嘛,(僅作參考)你可以考慮下用Python做個(甚至都算不上是)網站(提示:搜索Django),當然這就牽涉到比較多且雜的東西了。當然你也可以用Python做其他東西,簡單的就是去各大OJ刷題,檢驗你的Python語法知識和邏輯推理能力,也不錯。另:Python可以做很多東西,這裡就不一一列舉了,多用Google好處多多。搞完這個的話,比如我說的網站,必須的一個寒假就沒有了!!而且還得加班加點的。但是收穫應該不少,肯定的!!

至少信心是有了吧。

好了,繼續。要想進入大神高手這個隊列,只學Python怎麼行呢?你至少得學個C語言吧,對吧?

好了,給你本書《C語言程序設計 現代方法》,我看過的比較不錯的。

有了Python語法的基礎,相信你學C語言很快的,我是說語法那些東西(哈哈,貌似很多人說有了C語言基礎學習Python會快些)。當你學習了C語言,嘿嘿,就可以做的東西就多了。隨便說一個,UNIX網路編程。(當然這裡有個坑,你得至少安裝個Linux系統,其實也不是壞事,大一嘛,多接觸也不是壞事,我當年大一就在電腦上安裝使用Linux了),

一句話,學一個語言,你得用它來做個東西(說的高大上就叫項目)。檢驗以及實踐你所學習的,不至於空洞。

以後。。。再補充吧。就醬


作為計算機大三本科生,大學之前也是零基礎,我只是說一下自己的大學前兩年,讓你有一個對於大學四年的過程有一個了解,當然,每個人的生活都不同,我的歷程也不是標準的,但大體過程應該差不多。

首先 是大一上學期,作為一個剛入學的本科生,肯定零基礎了,剛開始學java,我有一個月愣是沒聽懂,總感覺有一種虛虛的感覺,上linux也在顛覆我的思維模式,當然大一上學期唯一屬於計算機專業特色的就是java了,這個學期,我的主要任務就是做java的課後題(在電腦上自己實現),對於什麼jvm,jdk這些概念由於以前的思維,這個學期完全沒搞懂。

經歷了大一上學期的迷茫,大一下學期開始做java課設,寫了一個類似qq的通訊軟體(在這個過程中,我第一次感到計算機學習過程,上網查資料,調bug,動手寫一些小的程序來驗證自己的所思所想),他第一次讓我明白伺服器不再遙不可及,我也可以寫一個,(當然很爛),也讓我明白協議不再抽象,因為你寫伺服器與客戶端就使用協議。

但是大一下學期我還有一個比較蠢得決定,就是沒有加入一個本科生自己組織的實驗室,可能當時對於信息不敏感的原因

到了大二這一年隨著計算機專業基礎課的開設可以說是對計算機的感覺有了極大地顛覆

先是上學期,學習數據結構,就是各種存儲數據的數據結構,以及他們的操作演算法,在這個過程中,我強烈建議自己動手實現大部分結構,(我不知道先看課本,在實現好,還是在了解了基本概念以後自己馬上實現,然後對照課本找不足,我當時是後者,並且當看到自己實現的與課本差不多時,有點小小的成就感),然後數字邏輯,這個算是我解開計算機系統面紗的第一步,就是像寄存器這些部件有了具體的認識。

下學期迎來我認為前兩年最累,最有收穫的半年,這半年,就是上課,做實驗,尤其是做實驗,比如計算機組成課設是實現一個部分功能的cpu,這讓我對計算機底層的認識有了顛覆的改變,還有就是操作系統,編譯原理等等,這些課的實驗極其重要,我認為在這個過程中,想法多,疑問最多,時刻在改變自己的想法,所以要不斷練習,不斷驗證。

也就是從這個學期結束開始,我感覺自己像是一個計算機的學生了。

還有就談談比賽把,我在大二上學期之前幾乎沒參加過什麼活動,心裡總感覺自己好像不行,也不敢去嘗試,但是就在大二下學期,同學拉著我參加了個比賽,發現自己還不錯,於是慢慢的就多了,其實參加比賽不在多,多了就有點應付和拿發展分的趨勢,所以找個正式的比賽,找個靠譜的隊友,努努力,感受那種為他付出的感覺。

最後總結幾個關鍵詞(前面其實提到過):

顛覆,我認為對於像我這種零基礎的本科生,學計算機就是一個顛覆的感覺,不斷有新的認識。

對周圍信息敏感:我認為這很重要,經常關注學術,比賽信息。

好了,大體,以上就是我前兩年的歷程了,希望對你有幫助


你需要一個

長的比你漂亮,家裡比你有錢,晚上自習回的比你晚,實驗室待的比你長,一大群男生追

的室友


遇上這樣的老師和學校,你有兩個選擇:

1. 找一個編程牛逼的男生當你的男朋友,然後讓他一對一指導

2. 完全靠自己努力自學

哥當年找不到編程牛逼的女生做女朋友,都是靠自己一點點自學出來的


樓上幾位的觀點我比較認同,C語言是必須要學習的。因為學習C語言能夠更透徹的洞悉一些本質的問題,例如計算機運行的原理,代碼運行效率,內存管理等等,這些在將來的生產環境中式很有幫助的。

但是,我認為初學者尤其是沒有基礎的人,不適合直接從C語言上手。C語言在高級語言中相對比較「低級」,因此學起來比較枯燥,不容易出成果;(這裡的成果指的是寫一些自娛自樂的小程序,能夠滿足自己的成就感,同時提高學習的興趣)並且C語言在許多操作上比較繁瑣(例如文件拷貝,文件查找,顯示圖形等),非常容易磨滅初學者的興趣。

從這麼方面上來說,python是很好的入門語言。所以我建議可以不必急著學習C語言


推薦閱讀:

小霸王學習機有哪些學習(編程)的功能?
如何評價港科大 CSE PhD 首次入選 POPL 的這篇論文?
為什麼這麼多人黑譚浩強的c語言教材?
有沒有必要學C++?
把編程語言娘化,做成氪金手游,可以怎麼做?

TAG:編程語言 | 編程 | 計算機 | 計算機科學 | 計算機專業 |