搜尋
首頁後端開發php教程關於電腦專業的人如何學好編程

這篇文章是寫給低年級的人的,已經工作的就不用來看我廢話浪費時間了。
最近總是有人問如何確定自己方向的問題,說是看到有的人在搞手機,有的人在搞網頁,有的人在搞遊戲,還有其他的什麼的,然後說自己只懂得這麼一點東西不知道該怎麼辦之類的事情。我一直在一些做軟體開發的群組裡混,裡面有很多學生,也有很多從業者。那些人對於人們在基礎不夠紮實的情況下就「做各種各樣具體的項目」有兩種說法,一種說是浮躁,另一種說是這樣開闊眼界是好的。
大學就四年。學校通常安排前兩年學數學英語,然後大一學語言大二學資料結構。到了大三有很多比較具體而且複雜的課程,然後就要找實習,大四其實就是在找工作,課也沒有,衛生也不檢查了,等於在租學校的宿舍住。
於是在這短短的三年裡面想在電腦那麼多領域裡面找到自己喜歡的,然後鑽研下去,最後還有所成就的話,還是比較難的。因此很多人常常會看到自己周圍突然有兩三個人就乾了點什麼很有成就感的事情了,一問,以前學過的。這種人我也接觸了幾個。我有一個同學說是高中的時候被稱為代碼狂人,給emule寫了點代碼,然後還自己做了個即時通訊工具賣了出去。到了大學就一直在重寫這個東西,最後實習就到騰訊去了。前幾天還遇到個人,說是小學就在折騰flash裡面的action script了,後來投靠perl,說是一直到了大一才寫了一個超過2000行的程式。我也沒去求證,只是覺得比較不可思議。
於是我想,就照著那些傳統的路子先搞定一門語言(《C Primer》),然後學資料結構(《演算法導論》),再去學點庫(《STL原始碼分析》《深入淺出MFC》),之後弄點設計模式(《設計模式》),最後寫個某某管理系統(笑)什麼的,也是無聊了點。竟然要學了那麼多東西,才能弄出一個看得見摸得著的程序,也太考驗人的意志力了吧。幾乎是個人都是從拖曳控制開始的。那些一開始就摸著黑白螢幕狂搞演算法的人,要嘛是NOI出身,要嘛是ACM出身,然後對著幾道演算法題樂此不疲。但是最後有所成就的,很少。我在學校認識了那麼多ACM出身的,最後也就一個去了google。感覺風險還是有點大。
但是反過來也是有問題的。要是一開始就從介面開始弄,人也是很容易浮躁的。很多人因此就陷入了對花花世界的追求了(根據對群體裡面的人的統計),譬如說特別關心怎麼在ListView前面畫棵樹什麼的。這種人裡面,其中一些有追求的,最後都會沿著Windows SDK,再走到DDK,最後寫驅動,一腳踏進泥坑,從此不能自拔,當然這些人也是少數。每當有少數人人對著剩下的多數人說跟「我今天實現了讓Word不能打開某某文件」差不多的這些事情的時候,他們兩眼大放異彩,然後就開始跪求源碼,狂問用了什麼API,最後當程式碼終於到手的時候,就放進之前精心準備好的一個資料夾裡面,封存萬世,從此再也不去看了。當然也有其他的版本,譬如說老是下載書,而且還是rar,然後從來不解壓一樣。曾經有這麼一個人就在群組上炫耀說自己有多少多少G的電子書。我讓他上截圖,結果全是rar。根本沒看嘛,他自己也承認了。
於是怎麼看兩條路都是很有危險的,這就是為了什麼到了大四的時候,能學成的人總是不多的緣故。 太容易陷進去了 。這是什麼意思呢?人總是只對自己做得好的事情感興趣。對自己還沒做的事情感興趣那種是好奇,需要嚴肅看待。當人終於做好了一件事情之後,就會一直不斷的鑽研下去,這當然是好事。但是,從此只見樹木不見森林,以為全天下的編程就那一件事情,那當然是要吃虧的。
所以首先要開拓眼界,知道世界上原來還有這麼多的東西可以做。 在差不多知道程式設計是什麼東西的時候,需要這個玩一玩,那個玩一玩 。不然就會看到旁邊的同學這個用java在手機上跑一個能告訴你1 1=2的東西,那個人用PHP MYSQL弄了個留言版,看得唾液直流,心裡發慌,說自己對著C的黑白螢幕弄了這麼久居然連那點小玩意都做不出來,自尊心很容易受到打擊的。
於是在玩過了之後呢,要及時收手,就專門做一件事情好了 。因為這時候自己已經大概知道自己看見的東西差不多就是那個樣子,想做自己也做得出來,看著別人寫那些花邊的程序也就不會給自己施加太多壓力了。專門做一件事情的意思就是,選定一個方向,然後找書,找人,看程式碼,寫程式。 譬如說可以去弄圖形做遊戲,也可以去弄腳本引擎做做編譯器,還可以跟著老師去搞什麼資料探勘啊嵌入式什麼的 。對一個領域的深入研究最大的用處是可以讓自己接觸 複雜的問題 。
當然,當研究得深入了之後,程序就越寫越大了,這個時候就會出現很多各種各樣的問題了。譬如說效率太低啦,程式一出錯就要全盤推倒重來啦(這個還是比較可悲的),程式碼太多很難組織函數啊類什麼的啦,或者說名字給你用光啦等等。這時候就需要各種各樣的理論知識了,譬如說資料結構與演算法,還有設計模式什麼的。當然講來講去也就這幾樣,因為“這世界上沒有銀彈”,所以那些通用的東西必然不多,剩下的還是要靠在同各領域裡面其他人的積累或者自己的研究才能最終解決的。
上面所說的可以做的各種各樣的事情還是偏向於理論化一點,其實有一個學術上的領域還是不夠的,因為最終一個程序在跟計算機打交道的時候靠的是輸入輸出,也就是俗稱IO的東西了。這究竟是什麼呢?也就是說,知道那個地方放著你要的數據,你要把它拿過來。你自己算出了什麼,知道要往哪裡放,你要放。這裡麵包含的東西很多,譬如說典型的,鍵盤和螢幕上的輸入輸出,網路要用的Socket啦Web Service啦,那些看得見的視窗啦控制啦,讀寫硬碟啦,還有其他什麼的。這種 在某一平台上的專用的API 都是至少要熟悉一種的。不然你光學會這個演算法那個演算法有什麼用啊,譬如說你想對一個圖片進行壓縮,專門學了那個知識,但是一個bmp放在硬碟上你卻讀不進來,那豈不沒意義了麼。
於是說了這麼多,無非就是剛開始的時候要去見識世面,然後挑一個來慢慢研究,最後研究著研究著程序搞大了,就自然會碰到很多高級的問題了。這時候去解決了,其實本科需要你具備的程度其實也差不多達到了。
所以很多人都洗心革面,終於開始努力研究一個領域的問題了。領域總是複雜的,這時候會遇到很多程式設計上的問題,譬如說演算法太複雜表達不出來啦,文件讀著就掛啦,一不小心越界了之後造成了很多奇怪的問題啦( C )等等。這種關於調試的問題,一般只能夠靠自己錯得多錯得離譜了,最後就成才了。當然前人也總結出了經驗,寫了本叫《 Why Programs Fail 》的書,想看的話可以自己去下載。其次, 具體的庫總是有很多書和文檔的,沒事也要多看點 ,譬如說用Visual Studio的人都得把MSDN給裝了。
話也差不多說完了,雖然我自己也覺得這篇文章比較虛,因為這也是「通用的東西」。具體自己該怎麼辦自己得好好想想。我就把這篇東西獻給現在大一大二那些還在迷宮裡轉的弟弟妹妹了,要是有什麼特殊的疑難雜症的話,就私底下聯絡我吧。
總之,無論什麼時候,手頭上都要留有一個可以研究的問題才好。
免費領取LAMP兄弟連原創php教學光碟/《細說PHP》精要版,詳情諮詢官網客服:http://www.lampbrother.net
PHPCMS二次開發 http://yun.itxdl.cn/online/phpcms/index.php?u=5
微信開發            http://yun.itxdl.cn/online/weixin/index.php?u=5
🎜>行動互聯網伺服器端開發
   http://yun.itxdl.cn/online/server/index.php?u=5Javascript
課程   http://yun.itxdl.cn/online/js/index.php?u=5
CTO訓練營              5


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
超越炒作:評估當今PHP的角色超越炒作:評估當今PHP的角色Apr 12, 2025 am 12:17 AM

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

PHP中的弱參考是什麼?什麼時候有用?PHP中的弱參考是什麼?什麼時候有用?Apr 12, 2025 am 12:13 AM

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

解釋PHP中的__ Invoke Magic方法。解釋PHP中的__ Invoke Magic方法。Apr 12, 2025 am 12:07 AM

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

解釋PHP 8.1中的纖維以進行並發。解釋PHP 8.1中的纖維以進行並發。Apr 12, 2025 am 12:05 AM

Fibers在PHP8.1中引入,提升了並發處理能力。 1)Fibers是一種輕量級的並發模型,類似於協程。 2)它們允許開發者手動控制任務的執行流,適合處理I/O密集型任務。 3)使用Fibers可以編寫更高效、響應性更強的代碼。

PHP社區:資源,支持和發展PHP社區:資源,支持和發展Apr 12, 2025 am 12:04 AM

PHP社區提供了豐富的資源和支持,幫助開發者成長。 1)資源包括官方文檔、教程、博客和開源項目如Laravel和Symfony。 2)支持可以通過StackOverflow、Reddit和Slack頻道獲得。 3)開發動態可以通過關注RFC了解。 4)融入社區可以通過積極參與、貢獻代碼和學習分享來實現。

PHP與Python:了解差異PHP與Python:了解差異Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

php:死亡還是簡單地適應?php:死亡還是簡單地適應?Apr 11, 2025 am 12:13 AM

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來:改編和創新PHP的未來:改編和創新Apr 11, 2025 am 12:01 AM

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器