很多學(xué)習(xí)過C語言的朋友在回過頭看C語言的時候一定會有這樣的疑問,為啥C語言都在黑窗口下運行?不是計算三角形面積就是打印水仙花數(shù)這樣的程序? 當(dāng)初說好的編程怎么怎么厲害,那些酷炫的軟件怎么還是不會做,到頭來都是一些小兒科!為什么呢?
有以下幾個原因一一給大家道來:
第一,C語言的發(fā)明定位
從C語言的發(fā)明人丹尼斯里奇的發(fā)明之初定位,我們知道它就是要做系統(tǒng)的,本身就不是做圖形化軟件的,應(yīng)該是包括開發(fā)驅(qū)動、做系統(tǒng)內(nèi)核、文件管理、內(nèi)管管理、網(wǎng)絡(luò)通信等等一系列核心的,因此單純學(xué)習(xí)C語言的語法,還要學(xué)習(xí)操作系統(tǒng)原理、通信協(xié)議、編譯器原理、數(shù)據(jù)結(jié)構(gòu)等其他學(xué)科才可以完成前面的需求的,這個時候你看到全英文的主板說明書的時候,才知道應(yīng)該讀取哪個接口、通信協(xié)議是如何規(guī)定的,應(yīng)該讀幾個字節(jié)...等等,才可以寫驅(qū)動才可以寫內(nèi)核才可以做通信,到這個程度,即便社會上企業(yè)人才需求比較少,但也根本不存在找不到工作問題,而是你挑工作甚至帶工資挑,因為不光你可以做這些,許多關(guān)聯(lián)的工作,比如驅(qū)動開發(fā)、DNS解析、反病毒、通信安全、虛擬化技術(shù)、內(nèi)核剪裁都可以勝任了,甚至可以自己開發(fā)新的操作系統(tǒng),解決我國國產(chǎn)操作系統(tǒng)問題,這才是學(xué)習(xí)C語言的出處,這個時候圖形化的東西對你來說已經(jīng)屬于小兒科了,花哨的東西早就看不上了。
第二、國內(nèi)普遍的教學(xué)定位
話說回來,我們目前的大環(huán)境,C語言絕大多數(shù)大學(xué)的教學(xué)定位,僅部分院校除了C語言課程外,還應(yīng)該開設(shè)數(shù)據(jù)結(jié)構(gòu)、計算機(jī)體系結(jié)構(gòu)、編譯器原理、操作系統(tǒng)原理等課程,而這些課程中有些學(xué)校僅保留數(shù)據(jù)結(jié)構(gòu),甚至數(shù)據(jù)結(jié)構(gòu)也不開設(shè)了,因此把C語言僅僅定位為編程啟蒙,熟悉面向過程思想、熟悉C語言語法即可,學(xué)校更希望的是通過C語言學(xué)習(xí)后進(jìn)而學(xué)習(xí)C++或者java或者其他高級語言進(jìn)而可以更實用的做出東西來從而好找工作,再急于求成一些的話,干脆C語言也不學(xué)了,零基礎(chǔ)直接學(xué)java或者C++其他高級語言。這其實也是專業(yè)的科班到培訓(xùn)機(jī)構(gòu)的區(qū)別,沒有白學(xué)的知識,到底有沒有用大家多想想。
所以從目前整體大環(huán)境看,你如果在重點院校,計算機(jī)/軟件的科班專業(yè),那么你應(yīng)該好好搞這些真材實料的東西,不要浪費國家的教學(xué)資源,因為你承擔(dān)了國家未來IT軟件行業(yè)的未來;如果你想從事軟件研發(fā)/開發(fā),那么你至少也要學(xué)習(xí)好數(shù)據(jù)結(jié)構(gòu),因為你要創(chuàng)造要創(chuàng)作,而不是復(fù)制黏貼代碼的搬運工。如果你僅僅想混口飯吃,直接學(xué)個能出成果的技術(shù)就行了。
最后在看看普遍同學(xué)學(xué)C語言的目的,專升本、考研、二級C語言,以需求為導(dǎo)向的教程、大多是理論題、刷題、考試為主,因此項目類偏難的C語言資源就少很多,自然很少看到圖形化的東西。當(dāng)然,Dotcpp作為C語言的堅定支持者,今后也會加強(qiáng)這里的編程資源,從而給大家提供足夠的資源支持。
第三、C語言完全可以做,但很少直接用C語言做
我們學(xué)習(xí)C語言的時候因為是選擇控制臺程序,所以你的程序都是在黑窗口下運行,如果寫windows應(yīng)用程序則沒有這個黑窗口了,依舊是C語言的語法,大家可以了解
如果是純C語言的圖形化開發(fā),按大家的所處的階段,可以考慮用TurBoC編譯器支持的graphics圖形接口函數(shù)或者VC6安裝easyX庫來實現(xiàn)圖形化的開發(fā),可以完成一些游戲的開發(fā),比如五子棋、俄羅斯方塊、彈珠游戲、貪吃蛇等等,都是圖形化可交互的,在高級一些,考慮到圖片刷新,專業(yè)性的提升,則可以考慮用MFC,MFC或者QT,他們主要都是用C++封裝好一套界面庫,windows上的絕大部分軟件都是MFC開發(fā)的,而QT是跨平臺,windows和linux都可以用,如果說前面介紹的都是學(xué)習(xí)娛樂的話,那么MFC和QT開發(fā)出來的軟件就達(dá)到商業(yè)軟件的水平了。這都是大家學(xué)完C語言之后下一步的學(xué)習(xí)方向
粗略淺談一二三,希望對大家有啟發(fā),歡迎大家指正
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程