大學裡 C++ 課程聽不懂,但是想當程序員,還有希望么?
還有很多別的語言,我大學裡c++聽不懂…可能是沒認真學…那以後學別的語言是不是會很困難?想做一個碼農必須要精通的語言是哪些啊… @vczh 發了這個問題之後一直沒有看。突然用網頁版發現竟然有這麼多好心人幫我指點迷津。我明白了知乎就是一個友愛的大家庭。謝謝各位大大,我知道該怎麼做了(原諒我不能一一@)
難道你對一門課程的學習僅限於"聽課"么?你怎麼上的大學
老師說指針太難了,就不講了,期末不考
程序人生的寂靜歡喜
標題起得太大咯,是在故作老成么?
「程序人生的寂靜歡喜」——怎麼看都感覺像是某位已故計算機大師的墓志銘,可卻偏偏被一個菜得摳腳的毛頭小子拿來當做人生寄語——也是日了狗了!
人都沒生過,談什麼人生!?
莫怪我,我偏要「奢談」一下!
一.記敘一開始我是拒絕的!因為我根本就不喜歡寫程序。
打高中數理化就不好,什麼排列組合、圓錐曲線、電磁場中一帶電粒子、水溶液中的水解電離,困擾我有如夢魘。
高考時,祖墳上冒出一縷青煙,數學創歷史新高考了88,理綜破有史記錄考了200,數據不僅太美太感人,而且大吉大利、元亨利貞!終於,我以總分522分考上了一所夢寐以求的2本就讀於計算機科學與技術1202班——命中犯2!
可是對於編程其實我是拒絕的——大一花了一年的時間來研究心理學,大二花了一年的時間來研究哲學,大三花了一年的時間來研究中醫——結果,《離散數學》掛了,《數字邏輯》掛了,《數據結構》掛了,《編譯原理》掛了——恨不得自掛東南枝!
人在做天在看,出來混總是要還的!曾堅信「天生我才必有用」,「我輩豈是蓬蒿人」;曾篤定「心所願力畢至」,「有志者事竟成」;曾夙願「天授其賦必賜其福」,「好風憑藉力,送我上青雲」。可是,一個冷峻若紫電青霜的問題劈面而來:不寫程序又能幹嘛呢?
然而我根本就不會寫程序!試想,一個打字只能用到右手食指、左手食指和左手無名指的人,敲代碼時是多麼捉急!試想,一個高數補考考了19分,滿腦子宏大敘事的理科弱智,寫程序時是多麼腦洞大開!
後來去公司實習,遇到的第一個項目就是要使用ESFramework通信框架,當我第一眼看到了開發手冊上的如下句子時,我就知道,春天不會再來了!
客戶端通過調用ESPlus.Application.Basic.Passive.IBasicOutter介面對應的方法以及預定其相關的事件,就可以完成基礎功能或得到相關狀態改變通知。我們可以從 ESPlus.Rapid.IRapidPassiveEngine暴露的BasicOutter屬性來獲取IBasicOutter引用。
介面、預定、事件、暴露、屬性、引用,你們一個一個來,我還大概能明白,你們群起而攻之,我便委地如泥了!
重載的Query方法(帶有CallbackHandler參數的)在發送請求信息後,不會阻塞而繼續向下執行,而框架在收到對應的回複信息時,會回調CallbackHandler委託指向的方法。由於調用線程與回復回調的線程不是同一個線程,所以稱這種機製為回復非同步調用。
再當我看到「重載」、看到「阻塞」時,我徹底憤怒了!而緊接著映入眼帘的「委託」、「回調」更使我出離憤怒!最後「線程」、「非同步」更令我萬念俱滅,心如死灰!
從此,我便以一種菜得摳腳的姿態狼狽不堪地行走在險象環生的程序世界裡。莫非是寒更雨歇,葬花天氣,獵獵北風襲單衣;荒原寂寂,遠聽猿啼,近看寒鴉起;鬼影幢幢,步步驚心,不知今夕何夕。
好多次我都想,別瞎費勁了,你不是寫程序的料!真正適合寫程序的人根本就不可能是這個樣子!
於是乎放棄。可是不寫程序又能幹嘛呢?好歹讀了四年大學,何況拉弓沒有回頭箭。還是要頂風逆水雄心在,不負人民養育情!
終於,苦水的浸泡痛徹了肌膚,磨練了身心,同時也澆灌出了涅槃之花!
某天我突然發現,那些原本看來佶屈聱牙的技術文檔如今看來卻直白如話,那些原本晦澀難懂的語法如今卻能夠熟練運用,那些原本看都看不懂的源碼如今也能夠在自己指下流淌,實習之前我連循環語句都寫不對,如今卻也能用ESFramework和OMCS等框架開發出像樣的網路通信應用。
二.議論更重要的是,從當初的不喜歡、不擅長、不自信,到而今能夠懷揣著一顆歡喜之心來寫程序,能夠以樂在其中的心緒來開啟自己的程序人生,這不僅是我收穫到的莫大財富,更是我把握住的莫大幸福!
胡適先生的名言:「怕什麼真理無窮,進一寸有一寸的歡喜。」真理無窮並不可怕,因為我們在每一寸的前進中始終獲得歡喜。編程之路並非坦途,我們也並非天賦異稟,然而那個最幸福的人,並非是玩轉代碼的編程高手,也並非是億萬家資的IT精英,而是那個在流年中始終以歡喜之心書寫代碼,又通過書寫代碼恆久再獲歡喜之人!
常言道:「男怕入錯行,女怕嫁錯郎」。嫁郎要嫁有情郎——有情飲水飽,無情龍肉都無味!入行也是一樣。入了所愛之行,舉手投足皆得歡喜;入了所憎之行,坐卧立行儘是苦悲!嫁郎的幸福不在於嫁郎所獲得的富貴榮華,其根本在於郎本身。那些通過嫁郎以獲取外在利益的女子,她們充其量只是獲得了生意上的成功,而根本沒有獲得婚姻本身的幸福,而這何嘗不是一種買櫝還珠?同樣,那些以工作作為純粹手段的人,他們也從來沒有獲得過工作本身的幸福快樂。
由此看來,我想恐怕對於絕大多數的程序員而言——你不是真正的快樂!
所有程序員恐怕可以粗略的劃分為這五種狀態:
1.不愛,但是迫於生計
2.無感,反正亦步亦趨
3.熱愛,但卻身心俱疲
4.狂熱,打了雞血一般
5.歡喜,畢竟樂在其中
你是屬於哪一種呢?
如果要我來選,我一定會選5,因為唯其如此才能獲得程序人生的個中真昧,才能擁有彼此交融的內在完滿。而其他的幾種狀態在不同程度上都是殘缺的。
也許我們寫程序總是不可避免的為了各種外在的目的,但是寫程序時的那份小確幸的歡喜,卻始終是我們精神飛鳥的棲息地。 正如孔子贊顏回——子曰∶「賢哉回也,一簞食,一瓢飲,在陋巷,人不堪其憂,回也不改其樂 。賢哉回也!」
罷筆時風煙俱凈,但願自己剛剛開啟的程序人生能夠無關風月,寂靜歡喜。
某大學的c++的PPT的示例代碼就是錯誤百出,還用多說什麼么?現在大學老師很多都是這樣,有一部分是想好好教書育人的,可惜學校窮,自身技術也一般,學校設備什麼都沒有,只能幹嘆氣,並推薦學生自己去學什麼什麼的,考研的考個好學校離開這個破學校之類的;還有一部分就是要搞科研,哪有心思講課,一個項目多少經費你造么?給你講課就是PPT照著念,balabalabala的,你煩,其實他更煩呢!還有一種就是不會講課的,但是技術還是有的,上課直接寫代碼現場教學,PPT幾乎一個源碼沒有全手擼,想到哪裡就講到哪裡,跳躍性很大,PPT就是擺設一帶而過,重點在教你演算法上,這種老師難能可貴,教你經驗呢。還有就是很水的老師,而且自己很多東西搞不明白還要上課上網現找,浪費時間。這種課一般困了就睡覺吧,沒用。
聽不懂就去干web吧
那你就要努力了,聽不懂就自學,不一定非要學C++,也可以去學其他的語言,甚至是其他的技術。
但你也要做好心理準備,有的人真的就是不適合吃這碗飯的。而且現在程序員都是碼農,不是早幾年,聽說程序員都肅然起敬的。不過,只要你真心熱愛,管這些幹嘛呢?都已經上大學了,還需要等著老師來教你?
教材太晦澀吧?我現在教人寫代碼(我不是老師),都會盡量讓對方明白我在說什麼,方法說簡單也簡單,就是先了解對方除了編程,還有那些愛好,用他興趣愛好上舉例的方式,對方會很容易接受並且還能舉一反三。但是也有弊端,這樣教,以我的精力,只能教一個人,如果我是全職老師的話,估計最多教三五個。
可以用已經學到的東西做一些小程序,比如做個猜數遊戲啊什麼的,先把興趣培養起來就不難了。
已經有了很多精彩答案了,然而一看到C++這個關鍵字,我還是有個分享一下自己經歷的衝動。
當年大學裡,VC++這門課(2002年的事),我得了96分。到現在也沒想明白那4分到底是哪道題錯了……
我能得到這個分數,我覺得60%要歸功於我的老師,38%歸功於我自己對編程的熱愛,2%歸功於身邊同學的懶惰。
說60%歸功於老師,不是因為我的老師講課講得多麼好,能把那些晦澀的概念講明白,而是因為他剛上課就先給我布置了3個大作業——
做一個圖形化的鏈表演示(因為是VC++,所以要求圖形化),要求能夠自由創建、修改、刪除節點,還要能拖拽排布節點。當然,節點之間的鏈接關係要有直線箭頭表達出來。做一個圖形化的文本編輯器,基本就跟記事本一樣就行。自開腦洞隨便做一個,難度不能小於前兩個。聽課的時候,我就帶著要完成這幾個作業的目標去聽課,聽不懂了就課後去問,聽完課就回去研究怎麼做作業。
而且,由於教材過於……我都不知道怎麼形容好了,我對當年的教材一點印象都沒有了,因為我基本沒看。所以,我自己在網上找了《深入淺出MFC》看……對當年的我來說,雖然宛如天書,但我硬是靠著這本書把第一個作業完成了。現在印象里已經不記得還有沒有其他什麼列印一個三角之類的無聊作業了,總之當時全副精力都投入到了那個圖形化鏈表上了。然後,我這人還犯賤,作業完成了,非要自己加點要求之外的功能。最後做了一個圖形化雙向鏈表。在做的過程中,不僅理解了面向對象之類老師講過的內容,還學到了檢查和解決內存泄露之類課上沒有深入講過的知識。然後,第二個作業因為發現了現成的控制項,我們都偷了個懶。(後來跟老師交流,才知道他忘了加上不許用現成控制項的要求。)
最後一個作業,自己做了一個聯網對戰的小遊戲。打飛機遊戲[網路版] - 下載頻道 - CSDN.NET
不知道這個鏈接還能不能下載了,也不知道現在的操作系統上能不能正常運行了。38%要歸功於我的熱情,是因為身邊很多同學都放棄了,當然最終也沒有學得很好。然而,我卻能靠著自己的熱情在別人打牌玩樂的時候,自己在一邊默默地啃書調程序。
2%要歸功於同學的懶惰,是因為前兩個作業,每個都做了4份。為了能讓寢室的其他兄弟也不至於因為沒交作業直接被掛。
而且,作為一個負責任的幫忙者,每份作業都在一些細節上用了稍有不同的實現方式。是實現方式,不是僅僅改個變數名,因為我知道老師是個聰明人。所以,如果你現在學不好,不妨試試完成一下我的老師當年給我的作業。帶著完成作業的信念去聽課,去獲取必須的知識。最後你會發現,當你把這些作業都完成了的時候,基本的考點一個都沒漏,反而很多考試不會考的東西,你都學到身上了。我不知道有啥聽不懂的。一個程序員,他可以大學之前不接觸編程,但如果以他高中時期的理解力來看,肯定能學會編程。
一群人告訴一個問怎麼學C++當程序員的題主快去學python吧!真是不負責!你聽不懂課我認為有兩種可能:①老師講課飆術語,他裝逼很爽,你覺得好強大然後你的內心OS是,這特喵說的什麼啊?②老師講的很好,你也聽課了,書有點爛,但是題主你並沒有學了就用,而是用考試的眼光審視這麼課程,認為知道知識點就行了,下課並沒有寫。①的話,你有可能需要C++ Primer Plus,然後自學②的話,你需要寫代碼
題主,你不要灰心,就算你c++只考了67分,你還可以像下面這位知乎Live首富,我國通識教育家羅文益老師一樣,不要再讀晦澀的教材了,通過讀少兒讀物,灌雞湯,開知乎Live掙錢呢。
自己考67分,賴教材太爛,賴老師教得不好,羅老師您真是讓我另眼相待了。很有可能是老師講的太爛。。。網上找視頻看看
大學時看書學了三遍都是越看越難放棄了,後來大二下學期學了Delphi,5分鐘迅速入門,於是Delphi從2003用到2013年。後面工作需要,重新拾起C++,這次也沒上來就看啥書,直接打開VC2012從零開始編需要的項目,雖然剛開始各種搞不清楚,但意外的是也沒費啥勁就基本「學會」了C++。於是C++一直用到現在。
於是我得出的結論是:
1.如果覺得C++難以學習,可以先熟練掌握一門比較好學習的語言。注意,至少是語法里有指針的語言,沒指針的對學習C++幫助不大。2.要有目的性,一開始就以實現實際的或是自己虛擬的某需求為目的,直接開始邊摸索邊編碼。3.書要看,但是書的作用是你編碼不知道該怎樣弄或出問題時查手冊之用的。不要一上來就埋在大部頭的經典C++教程里迷失了自己。我看的書是essential c++,這本書刀刀到肉,但是不會往深里講,短小精悍,非常適合初學者。對於選書,個人意見:編程書里講武俠的,講人生哲理的,東拉西扯的,都是垃圾書。老道的大牛作者,很能分清主次,能夠控制自己不寫太多個人主觀的東西,不會浪費時間和油墨在沒用的內容上。
至於C++是會的第一門語言,且工作里一直用的同學,我是真心萬分佩服。我最初還在讀大學時完全無法理解C++里很多抽象概念。。。
大學階段,除非演算法達人,不要先花太多時間在演算法上,因為在沒有實際工作經驗之前,很難體會各種演算法的原因目的真諦。應該先切實的掌握一門語言,從實際編碼中體會編程思想,進而再提升層次,根據業務需求或自己的執著來鑽研演算法。學東西首先要有興趣,想一下你為什麼要做程序員,學習計算機語言是最好玩的了,從C 學起,寫些小程序,小遊戲
大學的c++我也聽不懂,我主要靠自學。因為那個老師根本就是混工資來的。
聽不懂,上ACM刷題去
初學編程就學C++ 學的懂才有鬼了
大學課程太坑爹,學不會也無可厚非,自己去找別的教學資源唄。
最近我領著一個跟你一樣是大一的妹子,用我們內測中的下一版課程學Cpp,她之前也是被學校的課程虐出心理陰影了,然後在我這邊就學得非常順利…順帶一提,我本科的時候上的C用的譚浩強,課程內容確實酸爽無比,不過我期末考試考了85分…推薦閱讀:
※兩個for循環能處理哪些問題?
※作為程序員的你(或者即將成為程序員)何時意識到數學的重要性?
※Rust中常量為什麼用let不用const,變數用let mut不用var?
※c++現在有哪些GUI庫可以用?
※計算機系學生的你,有哪些課程覺得自己沒有學明白?