關於計算機專業的人如何學好程式設計

2021-06-03 23:10:15 字數 1915 閱讀 6427

這篇文章是寫給低年級的人的,已經工作的就不用來看我廢話浪費時間了。

最近總是有人問如何確定自己方向的問題,說是看到有的人在搞手機,有的人在搞網頁,有的人在搞遊戲,還有其他的什麼的,然後說自己只懂得這麼一點東西不知道該怎麼辦之類的事情。我一直在一些做軟體開發的群裡面混,裡面有很多學生,也有很多從業者。那些人對於人們在基礎不夠紮實的情況下就「做各種各樣具體的專案」有兩種說法,一種說是浮躁,另一種說是這樣開闊眼界是好的。

大學就四年。學校通常安排前兩年學數學英語,然後大一學語言大二學資料結構。到了大三有很多比較具體而且複雜的課程,然後就要找實習,大四其實就是在找工作,課也沒有,衛生也不檢查了,等於在租學校的宿舍住。

於是我想,就照著那些傳統的路子先搞定一門語言(《c++primer》),然後學資料結構(《演算法導論》),再去學點庫(《stl源**分析》《深入淺出mfc》),之後弄點設計模式(《設計模式》),最後寫個某某管理系統(笑)什麼的,也是無聊了點。竟然要學了那麼多東西,才能弄出乙個看得見摸得著的程式,也太考驗人的意志力了吧。幾乎是個人都是從拖控制項開始的。那些一開始就摸著黑白螢幕**演算法的人,要麼是noi出身,要麼是acm出身,然後對著幾道演算法題樂此不疲。但是最後有所成就的,很少。我在學校認識了那麼多個acm出身的,最後也就乙個去了google。感覺風險還是有點大啊。

於是怎麼看兩條路都是很有危險的,這就是為了什麼到了大四的時候,能學成的人總是不多的緣故。太容易陷進去了。這是什麼意思呢?人總是只對自己做得好的事情感興趣。對自己還沒做的事情感興趣那種是好奇,需要嚴肅對待。當人終於做好了一件事情之後,就會一直不斷的鑽研下去,這當然是好事。但是,從此只見樹木不見森林,以為全天下的程式設計就那一件事情,那當然是要吃虧的。

於是在玩過了之後呢,要及時收手,就專門做一件事情好了。因為這個時候自己已經大概知道自己看見的東西差不多就是那個樣子,想做自己也做得出來,看著別人寫那些花邊的程式也就不會給自己施加太多壓力了。專門做一件事情的意思就是,選定乙個方向,然後找書,找人,看**,寫程式。譬如說可以去弄圖形做遊戲,也可以去弄指令碼引擎做做編譯器,還可以跟著老師去搞什麼資料探勘啊嵌入式什麼的。對乙個領域的深入研究最大的用處是可以讓自己接觸複雜的問題

當然,當研究得深入了之後,程式就越寫越大了,這個時候就會出現很多各種各樣的問題了。譬如說效率太低啦,程式一出錯就要全盤推倒重來啦(這個還是比較可悲的),**太多很難組織函式啊類什麼的啦,或者說名字給你用光啦等等。這個時候就需要各種各樣的理論知識了,譬如說資料結構與演算法,還有設計模式什麼的。當然講來講去也就這幾樣,因為「這世界上沒有銀彈」,所以那些通用的東西必然不多,剩下的還是要靠在同各領域裡面其他人的積累或者自己的研究才能最終解決的。

上面所說的可以做的各種各樣的事情還是偏向於理論化一點,其實有乙個學術上的領域還是不夠的,因為最終乙個程式在跟計算機打交道的時候靠的是輸入輸出,也就是俗稱io的東西了。這究竟是什麼呢?也就是說,知道那個地方放著你要的資料,你要把它拿過來。你自己算出了什麼,知道要往**放,你要會放。這裡面包含的東西很多,譬如說典型的,鍵盤和螢幕上的輸入輸出,網路要用的socket啦web service啦,那些看得見的視窗啦控制項啦,讀寫硬碟啦,還有其他什麼的。這種在某一平台上的專用的api都是至少要熟悉一種的。不然你光學會這個演算法那個演算法有什麼用啊,譬如說你想對乙個進行壓縮,專門學了那個知識,但是乙個bmp放在硬碟上你卻讀不進來,那豈不沒意義了麼。

於是說了這麼多,無非就是剛開始的時候要去見識世面,然後挑乙個來慢慢研究,最後研究著研究著程式搞大了,就自然會碰到很多高階的問題了。這個時候去解決了,其實本科需要你具備的水平其實也差不多達到了。

話也差不多說完了,雖然我自己也覺得這篇文章比較虛,因為這也是「通用的東西」。具體自己該怎麼辦自己得好好想想。我就把這篇東西獻給現在大一大二那些還在迷宮裡轉的弟弟妹妹了,要是有什麼特殊的疑難雜症的話,就私底下聯絡我吧。

總之,無論什麼時候,手頭上都要留有乙個可以研究的問題才好。

計算機專業的人工智慧

作為一名計算機專業的學生,下面是一些關於人工智慧方面的感悟。人工智慧已經經歷了兩次大起大落的經歷,現在正是第三次的潮起中,這個時代除了深度學習還有乙個就是人工智慧可能占有發展前景很大的勢頭。其實在大學生本科現階段,我們學習的儘管看來像是很多基礎課程,其實我們的學習體系是有結構的,大一階段上的高等數學...

大專生 如何學好計算機

首先,在看文章的人大部分可能都是和我一樣的人,在高中或者其他時間因為各種原因導致最後成績不太好,進入了一座不那麼好的學校,其中看到很多人都渾渾噩噩度過,覺得不甘心,不想這樣度過三年,但是也有一少部分想學習的人,我的文章應該適合這部分人,不甘於環境,想改變自己.我先介紹我的情況吧,我連高中都沒有上過,...

計算機如何程式設計,

北京看jkl那就看你你加兩件事就加急 裡的try catch只有try裡面丟擲異常才能被catch捕獲到 姑且猜測一下 websoket連線失敗內部處理 內部寫到console裡了 了,沒丟擲來,所以沒被catch捕獲到 再猜測一下 你是不希望console有太多的連線失敗資訊影響了其他資訊的讀取 ...