楊中科與如鵬網網友的對話—闡述了C、C++、Java之學習與程序化的思惟

【如鵬網網友】:請問老師,C要學到什麼程度才能去學JAVA之類的面向對象的語言呢?
【楊中科】:能寫有必定難度的程序。好比寫一個俄羅斯方塊、聊天軟件什麼的。面向對象的核心仍是面向過程,面向過程都沒學好呢,理解面向對象純屬越學越糊塗
【如鵬網網友】:對,當初就是C都沒學好,因此學C++也是越學越累
【楊中科】:我反感大學這一點。上學期學C、下學期學C++。徹底違背學習規律。應該在學完C後安排一個學期的實戰開發課。像我們如鵬網的課那樣。積累的足夠的開發經驗,明白了「一切語言、面向對象都是紙老虎」之後再學其餘的。
【如鵬網網友】:我也好反感,但是沒辦法,還好遇到了楊哥,哈哈,貴人吶
【楊中科】:如今大學裏徹底把編程當成高數、機率教。。。一切語言的本質都是if else、while、for。輸出、處理、輸出
【如鵬網網友】:嗯,如今我從頭學C,理解比之前深入,對這點頗有體會
=========================================================
【如鵬網網友】:能精通C語言就能很快得熟練C++嗎?這兩個不是不一樣得嗎
【楊中科】:C++的面向過程部分仍是C語言。C是C++的基礎。C++只是加了面向對象特性的C。C++之前就被叫作「帶類的C」
【如鵬網網友】:可是在編程的時候不是思路不是不同得嗎?
【楊中科】:同樣。總體上是面向對象,可是具體每一個函數仍是面向過程。就像美國風格的建築和中國風格的建築在總體佈局上有區別,可是到具體的時候仍是鋼筋、水泥搞起來的。只有掌握了微觀纔有宏觀的角度。
【如鵬網網友】:即便我如今只懂C,只要很精通C就能夠很快掌握C++了?
【楊中科】:
面向對象和麪向過程不是敵對關係而是相輔相成的。編程最難的不是面向什麼什麼。。。而是程序化的思惟方式。也就是給你問題,你能不能站在計算機的角度來思考怎麼解決這個問題。具體用什麼語言、什麼函數庫都是次要的。我有時候面試人的時候甚至要他們畫流程圖就行,我只看他有沒有程序的思惟,不關係具體細節
【如鵬網網友】:只要熟練得掌握一種語言去編寫不少得程序就能夠了嗎?你那個半天學會PHP的故事我看了,我有點難以想象。
【楊中科】:沒什麼難以想象的。讓一個開了一生寶馬的司機去開大奔,他決對不用再去學半年
【如鵬網網友】:那我學好了C能一天就學會JAVA嗎?
【楊中科】:Java仍是有面向對象的。因此還須要必定的學習時間來熟悉面向對象的概念。
【如鵬網網友】:那我不是還不懂面向對象???
【楊中科】:你先要學面向過程呀。不然就走火入魔了
【如鵬網網友】:我真得以爲我有點像你文章說得那種人:什麼都學,什麼都不懂
【楊中科】:
面向對象是跑,面向過程是走。走都不會,就別想着跑。別急。踏實下來學好C。半年以後你就發現不少事情都明白了。不少人都不踏實,老是想這想那。
【如鵬網網友】:是啊 。你當年學那個是面向對象仍是面向過程啊?
【楊中科】:面向過程。面向對象我是畢業之後工做時才慢慢學的
【如鵬網網友】:爲何咱們得老師都不跟咱們說這些的呢
【楊中科】:編程的本質是面向過程,面向對象只是添頭。我甚至反對在大學裏教面向對象的課程。由於面向過程都沒學好就想學面向對象。就像學土木工程的連一塊混凝土的力學分析都沒弄懂的人就去學蓋樓,最後只能是蓋成危樓。別心急,把C語言搞精通了,學面向對象會很是快,若是說學C語言須要N天的話,學面向對象只須要N/50天,面向對象只不過是數據、函數的一個不一樣的組織方式而已,思惟方式仍是面向過程的。我調查過,那些所謂學過VC的學生,也號稱是用面向對象的程序寫東西,其實什麼是面向對象都沒真正弄明白。寫出來的代碼也一團糟,這就是C的基礎沒學好的必而後果。
【如鵬網網友】:那我如今應該靜下心看C得書籍了?我該看哪方面得啊?
【楊中科】:別老是看,要練。先把C的書複習一遍。而後看如鵬網的《C語言也能幹大事》的視頻講座,本身寫一些有必定難度的Windows程序出來。要用C寫程序,別總盯着書。
【如鵬網網友】:
我今年大四了,我都沒什麼程序得做品,連個很小很小得系統都作不了,悲哀死了。我能用三個月得時間來熟悉你說的這些基礎嗎,並且能開發系統,能夠嗎?
【楊中科】:就抓住C語言吧。三個月熟悉C語言絕對沒問題,而後作一個拿的出手的做品
【如鵬網網友】:咱們畢業要作系統還要作網站
【楊中科 】:作系統仍是作網站都是畢業之後的事情。如今的主要任務是把本身賣出去,賣個好價錢。至於畢業之後作什麼,別操心
【如鵬網網友】:主要是我不知道該往哪學。我也一直在學C
【楊中科】:不要「學」,要「作」,要「寫」,要Coding。寫出東西來
【如鵬網網友】:我最近看那MFC得視頻,就像聽天書同樣
【楊中科】:
別看那些東西了,別在浪費時間在「學新東西」上,大學生的通病是「學學學」、「學新東西」,歷來不實踐。你最熟悉的是C語言,就學C語言,深刻研究C語言,而後用C語言作出有用的東西來。你要是學MFC,又要學C++。大量的時間浪費在「學」上,而不是「作」上。
我面試的不少人又會Java、又會C++,但是我讓他寫一個簡單的程序他都不會寫,連流程圖都不會畫,只懂一些零散的Java、C++的語法,根本沒有程序化的思惟方式。這就是「學」的後果。
要寫!coding!coding!coding!
剩下的幾個月別學新東西了。要勤動手。用現有的C的知識來寫東西,什麼Java、C++、MFC之類的一邊去。一切語言都是紙老虎,惟有程序化的思惟才最重要。面試

相關文章
相關標籤/搜索