-
1 # 一隻拱白菜的豬
-
2 # 補白58242941
不是我故意黑,現在大學的老師有幾個正經上課的?大綱落後,教授忙著做專案,沒人管你本科學什麼。所以,醒醒吧同學,老師只是完成他的教學任務,至於教的好與壞,跟你半毛錢關係沒有。
你說C語言適合作為基礎也好,python適合入門也罷,請自己主動的去學,不要拿譚的C程式設計學就行,記住,那不是標準c,你工作即便用C也不能那麼寫。亞馬遜可以找到很多現代c入門書,,教學影片更是數不勝數。最高效的方法是看系列教程貼,一般都會帶例子。
真心看不慣本科的教學大綱,計算機科學發展那麼快,你拿八九十年代的東西來教,不廢才怪
-
3 # 格局真的很重要
第一門語言應該學python.實用,語法簡潔,現代。c語言可以作為選修內容放在作業系統裡講。python的確更容易被運用,也更容易讓初學者領會程式設計之美。從程式設計思想上,更具有靈活性,可以向下引出c語言,也可向上引出函式式,作為程式設計起點特別合適。
-
4 # 不鬧騰的小白龍
關於這問題我想說一下自己的看法,我覺得如果先用Python之類的語言進行入門,使學生對即將學習的計算機程式設計課程有一個大概的認識,在用C語言等課程進行本質學習的話效果將會好的多,之所以存在當前現象應該說有著很多的原因,最本質的原因個人以為應當是由於課時限制,畢竟大學四年,出去節假日及大四一年的時間,真正用來上課的時間是極短的,在極短的時間內當然只能去選擇最為本質理論化最強的方式進行授課。
-
5 # 貼吧油條
我沒學過Python,學過C和C++,也學過JAVA,也用過c#和資料庫知識編過管理系統,也用過MFC編過一個三子棋遊戲。感到自豪嗎?當然,感覺自己也能開發個小軟體,做個小專案,但我要告訴你,然並卵。你所學的C,完全只不過是皮毛,他只是為了讓你瞭解計算機的語法,瞭解面向物件的思想(然而很多語言都能讓人瞭解這些)。真正C語言的精髓,在一本叫 Windows核心程式設計上。你弄懂這本書 你就會發現C語言的牛逼之處和無法替代之處了。最後告訴你一個事,Linux系統還是核心就是用c編寫的,而為什麼他不是用JAVA或Python編寫的,(實際上大部分作業系統都是用C語言編寫的)。最後吹了那麼多C語言的好處,我回答你的問題吧。如果是為了簡單,讓人入門,那連Python都不用了,直接上易語言,更簡單。用C語言作為入門課就是兩點,C語言可以說是任何語言的鼻祖。C語言上到開發軟體,下到底層彙編,核心,它都能適用。如果你真正弄懂C語言,你轉行任何語言都是浮雲。
-
6 # xiaoji56788
不知道題主有多蠢才會提這種問題,大學讀完了少說也有16年,16年你都沒搞懂你接受的教育到底是什麼樣的,也沒搞懂接受完教育要幹嘛,至少在我國,教育沒有興趣這一說,想得到知識文憑,就好好學習考好成績,還有,大學是專業培養,專業相關就得懂,入門教python,你知道程式是怎麼執行的嗎,你知道英文符號咋變成0101的嗎,啥都不知道當啥程式設計師,教小朋友玩樂高吧。
-
7 # AnonymousK
C語言作為Linux的基礎語言當然是首先需要學習的東西,因為CS世界基本就是一個以Linux等UNIX家族系統為主的世界,它們基本都預設擁有gcc編譯環境,很多系統也都是機遇C或者C類語言寫出來的(Linux用的C,mac用的OC,都是C家族的語言),不需要有複雜的環境安裝就能夠輕鬆入門。Python反過來卻只是一個普通的跨平臺的指令碼語言,雖然容易學習但至少要有IDE環境並且對系統要有一定的瞭解,所以並不適合沒有任何CS基礎的人作為入門語言。
-
8 # 18x2
目前的計算機體系,大家還都是C為基礎的,這貨可以說是最接近硬體的高階語言了。更接近的就是彙編了。更高階的需要,指令碼語言或者面向物件,更在意的是工程方法,以後再學來得及,c更在乎的還是指令本身。其實c並不是唯一的,之前大學的基礎語言還有pascal和basic,再之前還有fortran
-
9 # JarvisGG
沒難道真的只有大學生混日子嗎?老師也是在混日子好嗎?本人一本計算機學科,老師從來不拓展新視野,天天拿著指標出腦筋急轉彎,好不容易熬到大三,老師竟然頭天晚上看翁凱的java教程,第二天給我們現學現賣。我能說這是誤人子弟嗎?
-
10 # 電子芯吧客
這是我寫的旋風式的程式語言簡介—我本來為亞馬遜開發者雜誌本月的期刊寫的,但是發現我寫的東西沒法…見人。
首先,我偶爾一不小心口出髒話,或者對上帝不恭的話,所以對很官方很正式的亞馬遜上發表是不合適的; 所以我就把它塞到我的部落格裡了,我的部落格反正沒人看的。除了你以外。是的,只有你會看,你好啊。
其次,這是一項進行中的工程,現在只是東打一耙西搞一下,還沒有精加工過的。又一個把它寫到部落格裡的很大的理由。不需要很好,或很完整。就是我今天想說的一些話。請隨便!
我的旋風式簡介會講C,C++,Lisp,Java,Perl,(我們在亞馬遜用到的所有語言),Ruby (我就是喜歡),和Python,把Python加進來是因為—好吧,你看了就知道了,現在我可不說。
C語言你必須懂C。為哈? 因為出於所有現實的理由,這個世界上你過去,現在,將來會用到的每一臺計算機都是一臺馮·諾曼機器,而C是一種輕量級的,很有表達力的語法,能很好的展現馮·諾曼機器的能力。
馮·諾曼架構就是你每天都用的計算機的架構的標準:一個CPU,記憶體,硬碟,一條匯流排。多核計算機並沒有帶來本質上的變化。馮·諾曼機是一個很方便,很便宜,上世紀五十年代的實現圖靈機的技術,圖靈機是執行計算的最知名的抽象模型。
世上還有其他的計算的機器。比如,Lisp機器,是上世紀50年代對Lisp計算模型的實現。Lisp模型是基於lambda代數的一種計算語言表示法,後者是與圖靈機同構的一種模型。不像圖靈機,lambda代數能被人類讀和寫。但是這二者是同等能力的。它們同樣精確的表示了計算機能幹什麼。
所以你必須知道C。
還有一個你必須知道C的原因是,Unix是用C寫的。巧的是,Windows也是。基本上所有的其他作業系統都是用C寫的。因為這些作業系統都是馮·諾曼機的作業系統,你還能用別的嗎? 任何跟C很不一樣的東西都會跟硬體的實際能力相差太遠而導致無法滿足效能上的需要,至少對一個作業系統來說是這樣—至少在上個世紀是這樣,碰巧這些系統都是上個世紀的。
你還應該知道Lisp。你不必用它來幹實際工作,雖然它在很多GNU的軟體裡都會很用得著。尤其是,你應該學會Scheme,Lisp的一種小巧化的,純潔的方言。GNU的版本叫Guile。
他們在麻省理工和加州伯克利教新學生一到兩個學期的Scheme,這些學生都對他們為哈要學這麼奇怪的語言抓破腦袋。實話實說,作為第一門學習的語言,這是一個很爛的選擇,第二門也是很爛。你應該學會它,最終,但不是作為第一門或第二門語言。
這是很難的哦。這是很大的一步。學會怎麼用Lisp寫出像C語言的程式是不夠的,那沒有意義。C和Lisp一個就像紅外線,一個就像紫外線,它們分佈在光譜的最兩端。它倆一個牛逼的地方剛好是另一個傻逼了的地方。
如果說,C是最靠近計算機是如何工作的語言模型,Lisp就是最能反映計算(注意,這裡沒有了“機”字,計算機和計算是很不同的!譯者注)是如何工作的模型。你不需要懂很多Lisp,真的。緊咬Scheme就哦了,因為它是最簡單最乾淨的。其他的Lisp已經發展成了很大,很複雜(很好很強大? 譯者:-)的程式設計環境,就像C++和Java,要有很多庫啊,工具啊等等之類。那些,你不需要知道。但是你應該能用Scheme寫程式。如果你能夠做出The Little Schemer和The Seasoned Schemer這兩本書裡的所有習題,你懂得就夠多了,我認為。
但是對於你天天要做的程式設計工作,你應該基於以下條款選擇你的語言:庫,文件,工具支援,作業系統整合,資源,和一堆其他的東西。這些條款跟計算機如何工作關係很小,但是跟人類如何工作關係甚大。
人們還在用很直白的C語言寫東西。很多東西。你應該懂C!
C++C++是地球上最蠢的語言,即使是從蠢這個字的真正意義上出發。C++很無厘頭。它不知道自己是什麼東西。它沒有內視(面向物件裡的一個概念,譯者注)。C也沒有,但是C不是“面向物件”的,而面向物件很大程度上是關於要讓你的程式知道它自己。物件就像演員。所以面嚮物件語言應該有執行時的自省機制,知道自己是個什麼類的物件。C++不是這樣的,真的,你不會那樣用它。
關於C:寫一個C的編譯器是那麼的簡單,以至於你可以用C寫一個關於C的工具,用起來就像是有內省機制。而C++呢,基本上是不可解析的,所以如果你想寫一個很牛逼的工具用來—比如,告訴你你的虛擬函式的原型,或者幫你重構你的程式碼,你將不得不依賴別人的工具集,因為你自己在除非腦子進屎的情況下是根本不會去寫一個C++的解析器的。而市面上所有的C++的解析器都很傻逼。
C++很蠢,你不能用蠢語言創造一個好系統。語言決定世界,蠢語言決定蠢世界。
所有的計算都基於抽象。你用低階的東西創造出高階的東西。但是你不能用分子創造出一個城市。嘗試使用太低級別的抽象只會給你帶來麻煩。
我們就惹上麻煩了 (是指亞馬遜的員工,還是所有C++的程式設計師? 我也不知道,譯者注)。
理智的情況下,你用C寫的最大的東東就是一個作業系統。而作業系統其實不是很大的,真的。它們看起來很大,但那是因為它們有很多應用軟體,作業系統本身的核心是蠻小的。
你用C++能寫的最大的東東是…也是作業系統。好吧,或許稍微再大點兒。讓我們說,再大三倍吧。或者10倍吧。但是作業系統核心最多也就,那啥,一百萬行程式碼? 所以我說你能用C++寫的最大的系統大概也就是一千萬行程式碼吧,再大的話就開始不行了,這玩意兒你沒法控制了,就像恐怖片裡的…
我說的一千萬行是指如果你那時候還能讓你的系統編譯透過的話。
我們(在亞馬遜,譯者注)有五千萬行C++程式碼。不,現在還要更多了。我已經不知道有多少行了。上個聖誕節是五千萬行,那是九個月前,而它以每季度八百萬行的規模增長。增長率本身也增長,媽呀。
我們想這個系統裡乾點啥好像要一萬年。一個亞馬遜工程師有一次這樣描述我們的程式碼庫:“一座很大的屎山,你見過的最大的山,每次你想修正一個bug,你的工作就是爬到屎山的正中心去。”
夥計們,那哥們可是在四年前說的這話。他現在已經到更環保綠色的牧場上去了。真是太可惜了,他可是個實實在在的高手啊。
這都是C++的錯。別跟我爭論。就是的。我們用的是世上最蠢的語言。這簡直有點老闆級的蠢,你說呢? (譯者注,meta在計算機術語裡通常表示更高一個層次,比如,meta-language,比普通的language高一個層次,意思是關於語言的語言。哲學裡應該會經常用到這個詞。我不懂哲學,但是我覺得老闆們總是比我們高一級,所以meta-dump我就翻譯成老闆級的蠢嘍。
:-)說了以上這些難聽的話,話得說回來了。用C++寫出漂亮的程式碼顯然是可以的,我的意思是說,這樣的程式碼應該大部分還是C,偶爾很有品味的,很有節制的用一點C++。但是這種程式碼幾乎從來不會被寫出來。C++是個很好玩的遊樂場,而如果你把它玩兒得門兒清的話你會覺得自己特牛,所以你總是被誘惑把你知道的所有的東西都用上。但是那是很難做好的,因為從一開始這個語言就太狗屎了,最終,你會弄得一塌糊塗,即使你很能幹。
我知道,我說的都是異端邪說,該被釘到十字架上的。隨便吧。我在大學裡的時候老喜歡C++了,因為我那時候就只知道這一門語言。當我聽到我的語言教授,Craig Chambers,絕對的厭憎C++,我想:“為啥呢? 我覺得它挺好的啊”。而當我聽到STL(標準模板庫)的發明者被採訪時說他恨OOP(面向物件程式設計)時,我更是認為他肯定是磕藥了。怎麼會有人恨OOP呢,而這個人竟然還是STL的發明者?
親不敬,熟生厭(語出聖經,譯者注)。說的是在大多數情況下,跟一件事物熟悉了之後你就失去對它的膜拜尊敬了; 在計算機語言裡情況不是這樣的。光對一門語言熟悉不會導致你看輕這門語言。你必須成為另一門更優秀的語言的專家(才能讓你明白原來那門語言有多麼多的問題)。
所以如果你不喜歡我針對C++大放厥詞,請你去學另一門語言併成為一個專家(我推薦Lisp),只有那時你才有足夠的武器與我爭論。然而,那時你將不會跟我爭了。你上了我的當了。你也會跟我一樣變得不喜歡C++了,你或許會覺得我這個人很噁心,把你騙得不喜歡自己曾經的最愛了。所以或許你應該把我說的一切都忘了。C++挺好的其實,真的。它就是很棒棒(譯者注,作者在這裡用了ducky,這是一個女性喜歡用的誇某物好的詞,近來也為玻璃們喜愛)。忘了我說的話。C++不錯的。
-
11 # 周魏
因為c是抽象層次最低的高階語言,透過c語言的學習可以更好的理解微機原理,這對於計算機專業的學生是必要的,而對於軟體工程專業的學生就不那麼重要了。有些學校的軟體工程專業已經把Java作為本科生的首先學習的程式語言了,使用Java可以更好的關注業務層面的問題,做業務系統開發有大量的庫可以使用。但是如果用來解釋計算機的執行原理,Java還是太遠了。Python就更不用說了,作為指令碼語言更多的是處理使用者任務。
也許有人要抬槓說彙編,呵呵。
-
12 # 抗日劇美女主角
c語言是緊貼硬體和作業系統的高階語言。python語言是高度數理邏輯抽象的高高階語言。一個就像在學人體解剖學,一個就像在學人體經絡學。學習目的不同,不能替代。你肯定的個三本的計算機專業學生,才會這樣問。
-
13 # 滿舟de背影
你這種想法是非常危險的,程式設計是十分嚴謹的行為。我入門學的qb,後來學了一個學期vb,做了許多小軟體。。可是做不出來稍大的軟體,規模稍大些就錯誤頻發,怎麼都補不住,於是想學c試試,學了2年,,楞是入不了門了。。到現在也只會一些簡單的c控制檯輸入輸出,稍大的也做不出來。。這都是貪圖快速開發走了捷徑,,程式設計生命也走了捷徑,,止步於此了。
-
14 # Albert丶牧堯
python雖然簡便,但其本身是基於c來的,並且執行效率比java還要低,但是特殊之處就在於在python中你可以把你認為緩慢的地方用c或java重寫,你不會c怎麼是用不好Python的。
-
15 # 老誰家得那小誰
越簡單的語言越不值錢,明白了嗎?至少就業的時候學C一系列的工資高。越簡單代表語法糖越多,底層的執行機理對你來說就是黑盒,這樣的語言怎麼能值錢,大神有幾個學簡單語言變成大神的?有幾個人吹指標容易且無大用的,你真的瞭解指標?我問深一些的問題你就傻眼。
-
16 # 我和太陽肩並肩啊
國內學習理論和語言基礎特別枯燥,這可能跟祖國的教育機制有關,你看斯坦福的公開課發現很生動,每一個理論都對應一個問題的解決方案。
我覺得你說的沒錯,適合自己的就是最好的,c語言用好二字實在太難了。
但是像做科研或者其他一些尖端專案,你用c或c++更合適,真正的程式設計往往對數學,甚至於其他學科都要求很高。
-
17 # wxq91597761
C語言使用非常廣泛,醫療電子 航空航天 汽車電子 工控 家用電器 包括以後的物聯網 基本上所有跟控制相關的都需要C語言去開發,像java paython 跟c語言不屬於一個層面的東西,他們主要是做應用層開發,跟以前的VC VB這些是一樣的。
-
18 # 哈哈呵呵嘻嘻衣衣
C語言是面向過程的語言,C++和java是面向物件的語言。什麼叫面向過程?什麼叫面向物件?這個問題很難解釋清楚。只有學完C語言和C++以後才可能體會得到。但是C++和java以及C#都是在C語言的基礎上發展而來的。學完C語言以後學其他的高階語言就快得多了。C語言C++和java還有C#都是高階語言,但是越是高階語言計算機執行的速度就越慢,我們寫下來的計算機語言最終會透過編譯器生成0和1組成的機器語言,交給計算機來執行,但是人是不可能讀懂和學會機器語言的。組合語言是低階語言人可以讀懂也可以學會,而且計算機執行組合語言的速度明顯高於高階語言,但是組合語言難學難懂也難寫…除了彙編意外,可以說C語言是效率最高的了。很多的底層程式碼,驅動,作業系統還有嵌入式都是用C語言寫的。我專業電子資訊工程,畢業後搞嵌入式開發,搞微控制器開發全都是用C語言來寫。C語言是C++還有java和C#的鼻祖。總至,你學完C語言再學其他高階語言,明顯快的多。所以我認為C語言同樣也是其他語言無法取代的…
-
19 # 桎梏人
我覺得純屬扯淡,大學教的是思想,是根基,和你用神馬開發屁關係沒有,現在大學教的x
Office什麼版本?這和中國的教育水平有關係,課本用了那麼多年了,一換會牽扯很多問題。別以為
大學教的都是最新的知識。
-
20 # Excel高效辦公
C是很多程式語言的老爹,老爹沒學好怎麼學兒子?而且c語言注重系統軟體的開發,作為計算機專業來說紮實的系統軟體開發基本功是百利無一害的!
明明學python更能激起大家的學習興趣,語法簡潔,不用花大量時間浪費在語法上,可以專注於流程和演算法。我覺得c入門就有問題,c算語言中難度排行前幾名的了,而且大家不瞭解c就覺得這玩意好難啊,什麼多重指標啊,地址啊,而且學一個學期,發現還是在控制檯輸出輸入,也沒人教QT,MFC這些,就是作。你要是學c#呢,學個幾天winform,就覺得臥槽,我真流弊,我做出軟體了!學php也行啊,臥槽,我竟然會做網站了,這麼簡單,這對入門的人來說,自然而然增加興趣,以後他一旦有了興趣,也會去學c++那些比較難的東西,但是入門都沒興趣,他就會覺得程式設計都這麼難,臥槽,我不學了,其他很多簡單的比如python,他根本就不知道。。。
回覆列表
每個程式設計師在他們的程式設計生涯中都應該學習C語言,因為它有太多難以忽視的好處了。除了它會給你提供更多的工作機會之外,C語言還會教給你更多的關於計算機的知識。它能給我們提供的裨益,,簡單列舉如下:
1.相比較其他的程式語言(像C++,JAVA),C語言是個低階語言。從總體上來說,低階的程式語言可以讓你更好的瞭解計算機。
2.裝置驅動程式和作業系統只能用C語言來編寫。現在,你可能還從來沒有編寫過一個裝置驅動程式或者一個作業系統,但是如果你需要去修改他們的時候,怎麼辦?
3.如果你想要得到一份編寫微控制器程式的工作的時候,該怎麼辦?他們都是用C語言編寫的。就因為不想學習一門新的語言,你就準備限制你能得到工作的機會嗎?
4.C的程式比其他用別的語言寫的程式,實現相同的功能,它用的程式碼行數更少,而它帶來的執行效率卻更快。有時候,你的程式所需要的速度,只有C語言能做到。
5.如果你學習過C語言,你就能學習現在任何的高階程式語言。因為所有的高階語言都是以C語言為基礎的(像JAVA,C++,C#等等)。
6.因為C語言已經存在很多年了,它有廣泛的使用團體並且有大量的現成程式碼可以利用。這就使你能在過去程式的基礎上,快速和高效的編寫新的演算法和函式。
7.C語言是一個開源組織的語言。一個開源組織的產物--LINUX,就是用C語言寫的。如果你會C語言,你就能參加這個組織並且還能向眾多的開源組織投稿,比如參加Source Forge並且給他們投稿。
8.C語言是唯一一個向你闡述指標的本質的語言。而C#和Java乾脆跳過了指標這個題目。可是指標確實使C語言變得更加強大。
9.找程式設計開發方面的工作時,C語言仍然是最普遍需要的語言。所以它值得你花時間去學會它。
10.任何裡面有微處理器的裝置都支援C語言。從微波爐到手機,都是由C語言技術來推動的。