計(jì)算機(jī)學(xué)院的學(xué)生該怎樣提高自己的編程能力?
共 7529字,需瀏覽 16分鐘
·
2024-05-01 10:05
重磅干貨,第一時(shí)間送達(dá)

重磅干貨,第一時(shí)間送達(dá)
鏈接:https://www.zhihu.com/question/423764018
編輯:深度學(xué)習(xí)與計(jì)算機(jī)視覺(jué)
https://www.zhihu.com/question/423764018/answer/1514275200
2. 絕大數(shù)企業(yè),沒(méi)有耐心,也沒(méi)有財(cái)力去從頭培養(yǎng)一個(gè)“眼高手低”的畢業(yè)生。從一開(kāi)始,他們需要的就是一個(gè)“開(kāi)箱即用”的求職者。
3. 計(jì)算機(jī)畢業(yè)生,直接能進(jìn)入大廠的是少數(shù),絕大多數(shù)人都得從中小廠家干起。
所以,對(duì)絕大多數(shù)計(jì)算機(jī)畢業(yè)生來(lái)說(shuō),如果想逃離“畢業(yè)即失業(yè)”的命運(yùn),在大學(xué)的時(shí)候就一定要千方百計(jì)的提高自己的動(dòng)手(編程)能力,眼高手低是個(gè)致命的缺陷。
同時(shí),還要清醒的認(rèn)識(shí)一個(gè)現(xiàn)實(shí),我們現(xiàn)在很多大學(xué)的計(jì)算機(jī)課程設(shè)計(jì)就是偏理論、偏基礎(chǔ)。在學(xué)校,按部就班的學(xué)習(xí),無(wú)論你的紙面成績(jī)?nèi)绾?,都不能直接證明你的動(dòng)手能力。
大學(xué)的老師,因?yàn)槁殬I(yè)定位的不同,科研能力可能很出色,但軟件工程能力就不一定了。
因此,學(xué)生想要提高自己的編程能力,自學(xué)是最主要的途徑。
編程本身并不難,難在內(nèi)容太龐雜,無(wú)論是市面的課程,還是圖書(shū),其中都混雜了太多“無(wú)用”的東西。因此,自學(xué)編程的成敗就在于在有限的時(shí)間里,學(xué)到真正有用的東西。而關(guān)于什么是有用的東西,長(zhǎng)期沉浸在一線的開(kāi)發(fā)人員是最有發(fā)言權(quán)的。
所以,對(duì)計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生來(lái)說(shuō),在自學(xué)編程技巧之前,首先要有獲得一個(gè)明確的學(xué)習(xí)綱要,從而把有限的時(shí)間用在最關(guān)鍵的事情上。
如果是學(xué)習(xí)Java,可以參考我的一些回答:
如何快速打好Java基礎(chǔ)?https://www.zhihu.com/question/50904128/answer/521519858
目前 Java 后端有哪些不是很有必要去學(xué)的?https://www.zhihu.com/question/305924723/answer/557800752
學(xué)習(xí) Java ,知識(shí)點(diǎn)太多記不住怎么辦?https://www.zhihu.com/question/270722275/answer/1488832343
1.基礎(chǔ)知識(shí)學(xué)習(xí)
2.學(xué)習(xí)筆記 & Demo
3.實(shí)踐
“虛擬”項(xiàng)目有兩種,一種是自己想出來(lái)的,例如“學(xué)生管理系統(tǒng)”、“圖書(shū)管理系統(tǒng)”等各種管理系統(tǒng)。這種項(xiàng)目的特點(diǎn)是規(guī)整全面,范圍可控,缺點(diǎn)是需求和設(shè)計(jì)都是自己想出來(lái)的,不那么實(shí)際。
另一種是參照市面上已有的應(yīng)用,“照葫蘆畫(huà)瓢”模仿一個(gè)。這種項(xiàng)目的優(yōu)點(diǎn)是非常接地氣,缺點(diǎn)是一個(gè)真正的商業(yè)項(xiàng)目,往往非常復(fù)雜,因此非??佳袑W(xué)生的時(shí)間和心性。
但無(wú)論如何,以我的經(jīng)驗(yàn),上面的做法確實(shí)可以解決編程實(shí)踐的問(wèn)題。
其實(shí),上面的三點(diǎn),不僅是對(duì)一個(gè)學(xué)生有用,作為一名職業(yè)程序員,一個(gè)需要終身學(xué)習(xí)的職業(yè),上面的三點(diǎn)一直陪伴我從學(xué)生時(shí)代直到今天。
最后,我想說(shuō)的是,編程并不難,也存在明確的學(xué)習(xí)路徑,堅(jiān)持一定能成功,真所謂:心有所執(zhí),必有所成。
https://www.zhihu.com/question/423764018/answer/1518288891
當(dāng)前隨著產(chǎn)業(yè)領(lǐng)域?qū)τ趹?yīng)用型人才的要求,越來(lái)越重視動(dòng)手實(shí)踐能力,所以大量普通本科高校正在不斷提升實(shí)踐課程的授課比例,這也是一個(gè)大的發(fā)展趨勢(shì),所以未來(lái)普通大學(xué)的本科生會(huì)有更多的實(shí)踐課程,計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的同學(xué),也會(huì)有更多的機(jī)會(huì)來(lái)提升編程能力。
對(duì)于計(jì)算機(jī)專(zhuān)業(yè)的本科生來(lái)說(shuō),如果想提升自己的編程能力,可以重點(diǎn)考慮以下幾種方式:
第一:積極參加專(zhuān)業(yè)比賽。以賽促學(xué)是比較好的學(xué)習(xí)方式,計(jì)算機(jī)專(zhuān)業(yè)的本科生可以重點(diǎn)關(guān)注一些程序設(shè)計(jì)類(lèi)比賽,包括其他需要編程的專(zhuān)業(yè)類(lèi)比賽,包括大數(shù)據(jù)比賽、機(jī)器人比賽等等,通過(guò)參加這些比賽都會(huì)促進(jìn)自身編程能力的提升。
第二:參加老師的課題組。參加老師的課題組也是一個(gè)提升編程能力的好方式,而且在課題組當(dāng)中還有更多機(jī)會(huì)與研究生學(xué)長(zhǎng)交流學(xué)習(xí),從而提升自身的編程實(shí)踐能力。當(dāng)前不少大學(xué)的計(jì)算機(jī)專(zhuān)業(yè)都會(huì)設(shè)立很多專(zhuān)業(yè)的實(shí)驗(yàn)室,這些實(shí)驗(yàn)室往往也有很多大型互聯(lián)網(wǎng)(科技)公司的支持,參加這些實(shí)驗(yàn)室也是不錯(cuò)的選擇。
第三:制定自主學(xué)習(xí)計(jì)劃。提升編程能力除了可以參加專(zhuān)業(yè)比賽和課題組之外,還可以通過(guò)自主學(xué)習(xí)來(lái)提升,比如可以借助于互聯(lián)網(wǎng)參與到一些科研實(shí)踐活動(dòng)中,或者是參與到一些開(kāi)源項(xiàng)目中。
https://www.zhihu.com/question/423764018/answer/1518198537
而給你的工資高低,取決于稀缺程度,即這個(gè)崗位是否能招到足夠的人,以及公司對(duì)其的需求程度。
這兩年什么最熱,毫不猶豫地說(shuō)就是人工智能,前一段時(shí)間基于人工智能的智能客戶推送技術(shù),已經(jīng)上了國(guó)家進(jìn)出口限制目錄。
那你有什么理由不選擇,不學(xué)習(xí)這個(gè)領(lǐng)域呢。
那好,我建議你從人工智能領(lǐng)域突破,你還可以選擇三個(gè)熱門(mén)方向:
相對(duì)來(lái)說(shuō),前面兩項(xiàng)較為難學(xué),但是競(jìng)爭(zhēng)對(duì)手少,基于智能推送的人工智能算法目前是大熱門(mén),很多公司用得上,但也意味著它們會(huì)很快飽和。
所以我還是建議你學(xué)習(xí)基于圖像的深度學(xué)習(xí)。
如果你還找不到方向,建議你去阿里,或者全球最大的人工智能競(jìng)賽網(wǎng)站找?guī)讉€(gè)課題,搜集一些樣本。
然后你就可以開(kāi)車(chē)了!
https://www.zhihu.com/question/423764018/answer/1516636587
“編程是門(mén)手藝活”。什么意思?得練。代碼的世界很純粹:你行就行,不行就不行。不像其他一些職業(yè),說(shuō)你行你就行不行也行,說(shuō)不行就不行行也不行。要想爬的高,整日里就得琢磨怎么“混”,是沒(méi)有什么效果的。這一行,就不怎么需要看簡(jiǎn)歷,“行家一出手,就知有沒(méi)有”,三言兩語(yǔ),就把你底子給摸清楚了。
開(kāi)始學(xué)編程,選一個(gè)能夠迅速給予你“正反饋”的語(yǔ)言,先把環(huán)境搭起來(lái),“Hello World”打出來(lái),這就是第一步。這極其簡(jiǎn)單的第一步,對(duì)于很多同學(xué)可能都覺(jué)得非常難,但是沒(méi)有辦法,你只有一步一個(gè)腳印地做出一個(gè)小網(wǎng)頁(yè)小游戲,哪怕你還看不懂代碼,都是一個(gè)字一個(gè)字照著書(shū)上敲的都可以,這樣才能使實(shí)際操作中不知不覺(jué)地掌握編程能力。也許你還會(huì)在某一天突然發(fā)現(xiàn)自己的編程能力原來(lái)有了這么大的提升。
作者:青云若水
https://www.zhihu.com/question/423764018/answer/1509150977
當(dāng)然,計(jì)算機(jī)科學(xué)家只是千里挑一,老老實(shí)實(shí)當(dāng)碼農(nóng)賺錢(qián)才是我們大部分人的目標(biāo)。所很多時(shí)候怎么學(xué)習(xí)怎么提升還是看你自己怎么想的,如果是想做出東西的話,一開(kāi)始的話我建議你多動(dòng)腦,嘗試下能不能對(duì)現(xiàn)實(shí)世界建個(gè)模,比如看到查字典的時(shí)候自然就會(huì)想到二分搜索,看到紅綠燈就想到線程鎖啊等等。
接下來(lái)讀一些產(chǎn)品方面的書(shū),要學(xué)會(huì)換位思考,尤其要能通過(guò)問(wèn)題想清目標(biāo)用戶,能夠把技術(shù)和商業(yè)結(jié)合。接下來(lái)就是研究一下現(xiàn)實(shí)世界里面哪里有缺陷,就可以自己做一個(gè)產(chǎn)品出來(lái)了,也許機(jī)會(huì)合適就可以走上人生巔峰。
不過(guò)這條路和去大廠當(dāng)螺絲釘是有區(qū)別的,如果目標(biāo)是去bat拿高薪的話最好還是做一個(gè)典型的學(xué)生,就是刷爆acm和算法,然后網(wǎng)上用spring抄一個(gè)電商app,不需要idea只需要實(shí)現(xiàn)即可。
https://www.zhihu.com/question/423764018/answer/1509410433
想提升實(shí)戰(zhàn)編程能力,如果你自學(xué)能力較強(qiáng),可以找自己喜歡或與將來(lái)就業(yè)方向相關(guān)的主題,設(shè)計(jì)一個(gè)應(yīng)用,然后不遺余力實(shí)現(xiàn)它;如果自學(xué)能力一般,可以找本書(shū),書(shū)名例如《xxx軟件實(shí)戰(zhàn)》、《30天實(shí)現(xiàn)xxx》,基本上相當(dāng)于跟著教程走,開(kāi)發(fā)一個(gè)完整軟件,也會(huì)有很大幫助。
建議專(zhuān)業(yè)課還是好好學(xué),有些知識(shí)現(xiàn)在覺(jué)得沒(méi)實(shí)戰(zhàn)有趣,將來(lái)反而會(huì)在找工作時(shí)助力,比如算法數(shù)據(jù)結(jié)構(gòu),大公司筆試基本都要過(guò)這一關(guān)。
逢人便推《深入理解計(jì)算機(jī)系統(tǒng)》,名字有些誤導(dǎo),其實(shí)并不“深入”的難哈哈,英文是“Computer Systems: A Programmer's Perspective”,至今覺(jué)得它是我碼農(nóng)路上最珍視的書(shū)。
https://www.zhihu.com/question/423764018/answer/1519048689
你首先要清楚一點(diǎn),你提高水平為了什么?考研然后做科研?還是找工作?
現(xiàn)在卷那么嚴(yán)重,說(shuō)真的,框架api就是弟弟。
定好方向,先學(xué)好語(yǔ)法,其實(shí)這些東西,花一兩個(gè)月,看視頻或者看書(shū),學(xué)學(xué)調(diào)api培養(yǎng)一下興趣可以的。
之后呢?這個(gè)語(yǔ)言的語(yǔ)法,數(shù)據(jù)結(jié)構(gòu),編譯過(guò)程,看下去,然后相應(yīng)語(yǔ)言的匯編,去學(xué),x86的,還是AT&T的,深下去,弄懂這個(gè)語(yǔ)言,這個(gè)編譯器,這塊內(nèi)存,其實(shí)弄到這里計(jì)算機(jī)組成,操作系統(tǒng),還有編譯原理,你就可以融匯了。
再去刷算法,不管什么面向?qū)ο?,面相協(xié)議,還是函數(shù)式,去用你學(xué)會(huì)的語(yǔ)言做好,知道套路,學(xué)會(huì)那些啥動(dòng)態(tài)規(guī)劃,啥二分法。
然后補(bǔ)上計(jì)網(wǎng),一樣,深下去,弄清楚他的過(guò)程和原理。
https://www.zhihu.com/question/423764018/answer/1514371340
多動(dòng)手。
2.看基礎(chǔ)教程的時(shí)候一般都會(huì)有示例代碼,不能只限于看,看完后你把書(shū)合上,自己在ide里面看看能不能把它敲出來(lái)并且運(yùn)行通過(guò),平常多和人交流溝通。剛開(kāi)始的時(shí)候可能會(huì)花一點(diǎn)時(shí)間,但時(shí)間久了你的編程熟練度會(huì)提升許多,再往后你可能就只敲核心的示例代碼而不是全部代碼了。
3.敲代碼過(guò)程中難免會(huì)涉及到部分經(jīng)典算法,這時(shí)候就要細(xì)品了,許多算法都是對(duì)經(jīng)典算法的改造和完善。
4.待完成基礎(chǔ)學(xué)習(xí)后,可以看看網(wǎng)上的開(kāi)源代碼,要看完整的工程代碼,學(xué)習(xí)他們代碼中的設(shè)計(jì)技巧等并且檢測(cè)一下自己還有哪些方面有所欠缺。
5.自己動(dòng)手做一個(gè)小項(xiàng)目,從0開(kāi)始最能鍛煉人,也很考驗(yàn)人。
https://www.zhihu.com/question/423764018/answer/1513235121
你可以按照“支乎”的菜單和功能,自己做個(gè)網(wǎng)頁(yè)版、app版。
要求考慮頁(yè)面交互體驗(yàn)設(shè)計(jì)、數(shù)據(jù)庫(kù)、并發(fā)、緩存、隊(duì)列、集群與負(fù)載均衡、彈性伸縮、微服務(wù)、容錯(cuò)等問(wèn)題,多給自己安排一些難題。遇到某個(gè)問(wèn)題時(shí),去圖書(shū)館查書(shū)或上網(wǎng)自行解決。
“研究并解決問(wèn)題”是自學(xué)編程的捷徑。實(shí)際工作中,客戶負(fù)責(zé)提出模糊的需求、緊張的工期,剩下都要你的team按時(shí)、保質(zhì)保量的解決問(wèn)題、完成項(xiàng)目。
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。
下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車(chē)道線檢測(cè)、車(chē)輛計(jì)數(shù)、添加眼線、車(chē)牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。
下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱(chēng)+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~
