為什麼現在有很多人甚至大學授課還在堅持VC6?
現在有些大學C語言授課官方欽定的IDE居然還是VC6,有些老師也還在堅持VC6,百度一搜竟然還有一大把關於VC6的教程、文章。
我實在是難以理解為什麼已經這個時代了,VS2017都出了還會有VC6這種毒瘤一直存在?
這是好事啊,好得很。VC6還不夠,最好用TC,關門放譚浩強,int得是16位的,main函數得是void的,wchar_t是不存在的,什麼C++標準,什麼namespace,都打翻在地批倒批臭,什麼i++++++++i,能教多細就教多細,繞死那幫學生,讓他們毛都學不會,畢業出來面試時只能對著編譯錯誤抓狂,這樣我們這些老鳥才能名正言順要求高工資。
至於那些會自己安裝VS 2017和gcc,自己會學c++14的人,他們就算不是天才,至少也基本註定了是能在業內混下去的人,根本不用任何人擔心。
主要還是考試考什麼,拿什麼考的問題
兩個理解,說錯的話歡迎指出:
1,針對考二級的話,考試環境就是VC6.0,考題很多也是依照那個編譯器的標準來的,而反正也沒指望學一個C++就能有計科系學生的水平,將就用2,對大多數大學老師來說,教學只是任務需要,本身上課的老師也可能就沒怎麼用他教的東西(比如C++)3,感謝浙大翁愷老師的公開課讓我少走了很多彎路前兩天去我校信院的機房觀摩了一下,電腦配置是圖吧味道滿滿的Core 2 Q9500 +8G內存,可選系統有XP,Win7和Ubuntu
Win7下裝了一大堆開發工具,VC6、Dev-Cpp和CodeBlocks都有,然後讓我特別不爽的是電腦上明明裝了VS2012卻沒有C++……
然後Ubuntu除了Chromium沒見到別的第三方軟體,基本上等同於白板,最可氣的是沒有g++,並且因為沒有sudo密碼也沒法用apt-get安裝
規矩是死的
------------------------------
掛羊頭 賣狗肉
我們老師就是這麼乾的
掛名學Linux 實際學的是Android開發
我覺得就挺好的,老師和學生都喜歡 何樂而不為呢
-----------------------------------掩飾分割線----------------------------------
忘了說一個大前提 ,我是職業院校的 ,就是大專 (不會有人說我黑大專吧)
職業院校學理論基本等於白上了因為基本都學不下去, 只能學應用啦,因為我所處的現實是,大部分同學們是只能接受HTML這種"編程語言"和adobe家族系列的
所以連學android應用都是只有寥寥數人能入下門 ,沒辦法 但是老師還是很可愛 希望我們能學到目前(14年學的)算是比較好找工作的吧
---此處捂臉 )
---------------------------------補充------------------------
其實沒學Linux不可惜不可惜 後面又開了一門叫大數據的課 ,學的就是Linux基礎,一看都是命令行 幾乎也沒人認真學了 反正學校是不會輕易掛你科的
學習和實際開發還是不一樣的,從打基礎和基本功訓練角度看,vc6足以。不過,如果是勤勉的老師,他會緊跟時代,起碼應該介紹最新的發展。
對於當時被迫使用Tubor C的我來說,我只能感慨時代的進步!
當然你不能說剛生了個小兒子就說老兒子是毒瘤,你這麼說是不對的,我就簡單反駁一下...
因為在圍繞新技術形成一套成熟的教學體系前,大多數院校並沒有必要放棄原有的教學體系。
使用老套技術所產生的弊端,不及更換教學體系的成本和風險——當管理達到一定大的量級時,系統穩定性的重要性就會被放大。剛上大一我也有和你有同樣的疑問,但是現在回過頭來這問題真沒那麼嚴重。
剛開始教C語言時屏蔽掉一些雜音,不管三七二十一先動手碼上幾行,能立刻看到效果比較關鍵(因為這時要學的是C語言本身)。這點VC6挺好的,摁一下紅色感嘆號就能運行,能讓你關注程序本身。
記得當時大一學C並不是很順利,誰要是還跳出來跟說哪個editor/ide好,運行環境,各版本標準怎麼怎麼不同,只會讓人更加崩潰。隨著學習深入,自己了解,慢慢自然會尋求VC6以外的東西,這個過程也伴隨著你對*nix的熟悉和編程水平的提升。我身邊的同學在大一一年後基本就全面拋棄VC6了,他們中水平高低僅跟勤奮與否有關,並沒有受到VC6什麼荼毒。
在教學時就積極接觸新技術固然好,有的強校能在教學中就接軌新技術是因為他們有這個師資和生源,但大多數學校沒有這個資本。
再說一句,學校的計算機教學永遠都只是拋磚引玉,放著計算機知識本身不學,跑去倒騰開發工具不是本末倒置?有些是教育廳的相關部門規定的必須要上的,例如某學校的老師認為現在還給學生上VB 6.0和VFP 6.0已經與時代嚴重脫節了,想用另外的課程代替,然後一查才知道這個課程不能隨便改,因為教育廳的相關部門在計算機專業的課程安排里有這兩門課,計算機專業的學生除了其他課程成績之外必須要有這兩門課的成績才能拿畢業證,然後。。。就沒有然後了。。。
Update:針對評論中部分朋友提出的疑問,我想說,我答案的原意是指相關部門規定了這兩門課程,例如VB程序設計或VFP資料庫設計,而不是指規定了特定版本的IDE,原答案中VB 6.0 和VFP 6.0 寫法不嚴謹,造成誤會,不好意思!
我個人並不是一線教學的,只是聽他們討論過這個事情,當時他們是想用Java 或者C#、Access或者SQL Server 來分別代替這兩門課程,後來教務處說這個不能改,因為辦畢業證的時候提交的成績里必須要有這兩門課程的成績。
這些東西都不在教學範圍內
我們當初用的是vc6+mingw,因為c語言上機考試用的是oj系統。而且其實代碼稍微注意點,vc6和gcc3之間是可以通用的。
用毒瘤來形容vc6不合適,誰還沒有老的時候
現在還有講16位Dos下的彙編課程呢,給VC6已經算好了
要是學怎麼用編程方式思考應該用更簡單的比如Python這樣的語言
要是學計算機結構應該用linux學C或者C++
要是設計頁面應該學HTML5+CSS
想教數據分析應該學SQL或者VBA……
唯獨VC6屁用沒有。當然你非說考國家證書那當然也行,但是那證書有用嗎?
不過 有時候規矩是死的那沒辦法 那就只能熬過去吧。
感覺大部分人都以為大學課程的唯一目的就是學了這個能直接靠這個找工作,我覺得這是沒有系統性思考這些課程意義的後果。
我用TC學了C語言,本科也學了8086彙編。
現在雖然大部分時候用python和matlab,偶爾用C++,但是說實話,用TC學的C語言給我打了大部分的編程基礎,直到現在我的編程思維和風格也沒有太大改變(不是說語法,是說思維模式)。後面的改變大多是跟具體語言相關,大部分時候都能在stackoverflow上直接搜到howto。而現在我仍然認為,用TC寫C語言對於訓練編程思維,理解計算機,以及實際debug能力,都很足夠(足夠沒有編程基礎的本科生學到很多很多很多了),特別是作為第一門編程課,TC做到了真的友好不嚇人好下手。不信你讓一個從沒編程經驗不知道何為編譯何為可執行文件的本科生自己試著裝好VS2017然後跑出一個hello world - 一半人都會放棄這門課。
8086彙編課程的目的從來就不是讓你真的自己寫出可以有實際應用的底層程序, 而是理解電腦底層的結構,是電路,模電,數電 之後,C語言之前的一個環節。這五個環節基本構成了大多數信息類本科工科生的知識框架。學彙編主要是讓你知道一個最基本的電腦需要些什麼,以及怎麼去用這些。以後你無論是用強大的cluster還是用arduino樹莓派,你都能心裡有數,看specs的時候知道你的應用需要什麼。這個目標定下之後你就應該清楚為什麼了 - 容易理解概念,不會被過多細節煩到失去學習興趣。(好像題主沒有提8086,我怎麼寫到這個上面的)
很多人說是因為老師不會,老師懶,學校電腦爛- 可能是部分原因,但真的不是主要原因。現在的課程足夠讓沒有編程基礎的學生在第一門編程課中學到足夠的基礎知識,如果你認真一點,你用TC寫個有點fancy的小遊戲真的問題不大,而對於95%以上的不吃CS這碗飯的學生,這真的很足夠了。在這種情況下,學校和老師是沒有動機也沒有必要去常常更新硬體軟體更新課程計劃更新作業更新ppt的(你可能不知道這一套換一次多耗時)。
因為大學上機課用的機器慢啊
1.教師不會。
2.機房配置拖不動。
3.教學的目標是引起部分人對程序的愛好,但是主要的是讓大部分的人通過計算機等級考試。
話說,學校比社會在這方面要陳舊應該是常識了吧。
這種問題類似「X語言和Y語言」哪個好?語言都是工具,為啥要糾結開發環境?學TC說白了就是學習個語法,用VC6也一樣!
東方不敗拿根針,你拿把劍,你能打過他嗎?當然了,實際情況可能是老師不會,也可能教材就那樣,或者機房條件有限……那自己呢?自己可以拓展啊,除了老師的內容自學其他的啊!學習彙編還是從16位的8086開始呢!開發工具版本高,功能固然多,但是書上不是寫了嗎?程序的本質是演算法!
我覺得是這樣了!為了寫個冒泡排序裝個60G的IDE
對於絕大部分大學生而言(90%),用vc6還是vs2017,區別只在於裝一個vs2017要201.7分鐘,裝一個vc6要6分鐘。對於剩下的10%,人家還有自己寫編譯器的,你咋不問中國大學為什麼沒有自己的cpp編譯器!還在堅持用別人的編譯器!
推薦閱讀:
※C++里一個帶有返回值的函數在沒有return語句的情況下在GCC里編譯通過是否可看作GCC的bug?
※GCC中-O1 -O2 -O3 優化的原理是什麼?