大概是因為這個網站叫編程入門網的緣故,網站信箱經常收到編程學習方面的問題。感覺總這樣回信也不是辦法,所以才有了這篇文章。文章置頂到首頁後每個人都能看到,這大概是一個一勞永逸的方法。
說明一下:本人不是專家,手也不高,以下所說的只是我對網友常見問題的個人看法,僅供參考。如果能為別人提供一點點幫助,那麼我會感到榮幸之至。
一、編程好學嗎?多長時間才能學會編程?
這個因人而宜。通常情況下,從實現第一個“Hello World”,到比較熟練的編寫代碼,這個過程可能比學習其它的計算機技術要長一些。比如學習Photoshop,很多人有三兩個月就可以勝任影樓處理照片這樣的工作。而同樣的時間,誰能保證你能成為一個熟練的程序員呢?
二、學習編程需要什麼基礎?
理論上來說,學習編程需要比較好的數學基礎和邏輯思維能力,英語好一點就更棒了。
數學基礎和英語方面,我覺得初學者有高中水平就可以了。這三點之中,我覺得最重要的就是邏輯思維能力的培養。學習編程的過程,其實就是培養邏輯思維能力的過程,就是掌握編程思想的過程。
編程入門之後,如果想要提高自己的編程水平,你可能還要掌握更多的知識:數據結構、算法、計算機原理、編譯原理和操作系統原理等計算機科學的理論基礎,以及代數系統、圖論和離散數學等數學理論基礎知識。
三、歲數大了能學編程嗎?
能,當然能,為什麼不能呢?所謂“活到老,學到老”,四、五十歲了還在學習編程的比比皆是,但是年輕人在記憶力等方面的優勢還是非常明顯的。如果想學習一門編程語言,並且以後作為自己的職業,那麼你應該知道,各個公司招人的時候,都是有年齡限制的。
四、學習哪種編程語言好?
許多朋友喜歡看武俠小說,這裡我打這樣一個比方:.Net和Java就相當於武林中的少林派和武當派,這兩個門派影響力巨大,門人眾多,如果你投入他們的門下,是很自然的事情;而Delphi、PHP等語言相當於華山、青城等門派,同樣也是名門正派,如果你投入他們的門下,藝成之後同樣可以笑傲江湖。
我們來回想一下自己的學生時代:許多同學在同一間教室裡學習著相同的課程,有很多疑難問題不用麻煩老師,請教同學就可以解決了。學習編程也一樣,如果你身邊有朋友精通某一門語言,而你也在學習這門語言,想想看,你是不是會得到許多幫助?
假設我剛剛中學畢業,小小年紀便早早的去工廠做工人、做學徒工了,我學習編程只是為了多掌握一門技術,這樣以後可能會有好的發展。這個場景中的我,可能會學習Java、C#、C++和PHP等比較流行的語言,學習流行語言的好處是工作機會多;移動開發現在炙手可熱,貌似錢景不錯,Android等也可以在考慮之列了。
假設我對自己的工作很滿意,屬於各方面都非常穩定的那種人。此時的我在學編程時,就沒有必要去趕時髦、追流行,我會學習一些與自己工作相關、對工作有幫助的語言。比如:我在辦公室工作,專門的財務軟件過於龐大,無法滿足自己工作的個性需求。那麼我可以學習VFP或者Powerbuilder這些專注於數據處理的語言,根據自己的需求,編寫程序把原來分散在各個Excel文檔中的數據統一管理起來,這樣既方便了工作,又可以獲得好的評價,甚至變身成為同事眼中的“高手”;再比如,如果我在一家網絡公司工作,每天以敬佩的目光仰望著公司裡的程序員和技術人員。這個場景中的我如果學編程,大概會學一些與公司業務相關的WEB編程語言。
假設我身邊有許多朋友學過編程並且中途放棄了,因而導致我自信心不足。那麼,我需要先為自己培養興趣和信心,我可能會從VB、VFP等比較容易入門的語言開始學習,這些語言很容易就能做出一些示例,給人一種成就感。直到有一天我把Visual Studio安裝到電腦上,並且開始編寫第一個ASP.NET程序,這時我才發現:這不是和VB差不多嗎,拖拽上一些控件,然後為各個事件編寫代碼……
假設我學習編程純粹是為了滿足求知欲,沒有任何其它的因素在裡面。許多人覺得編程難學,其實都是指針惹的禍。好吧,我一定要學C/C++,一定要馴服指針。直到若干年後,豁然回首……
假設我是一個優柔寡斷的人,思考了許多天仍然沒有做決定。每天上網閒逛時,我發現怎麼有這麼多招網頁編程人員的呢?是的,ASP.NET+MSSQL和PHP+MYSQL這兩個組合,只要我精通了其中的一個,在任何城市都可以找到工作。
總之,選擇編程語言時要選擇最適合你的,沒有最好的編程語言,只有最適合你的編程語言。
五、編程賺錢嗎?
軟件行業的工資比一般行業應該要高一些,但開發者需要承受比較高的工作壓力,熬夜加班是家常便飯,這都是需要考慮的。
一般來說,正規公司和大公司給的薪水和待遇會高一些。這裡面有地區差異,還要看個人能力。比如主程,使用同一種語言並且從事類似的工作,在一線城市的大公司可能月薪過萬,而在小地方,卻可能只有三、兩千的樣子。
同時還要看所處的行業和選用的編程語言。例如,Java和PHP非常流行,但Java程序員和PHP程序員的薪水不一定最高,反而是一些使用比較冷門編程語言的開發者能夠得到較高的薪水。
六、怎樣頁編程?
頁編程,一般需要了解前端的HTML/CSS,還要掌握一門數據庫技術。學習任何一門編程語言差不多都會涉及到數據庫,數據庫技術與編程是密不可分的。
以我學習ASP.NET的過程為例,ASP.NET和C#本身沒有讓我感覺到什麼,反倒是讓CSS困擾了很長時間,最後當然是抽時間惡補CSS了。因此我認為,在學習任何一門網頁編程語言之前,最好是先打好HTML/CSS的基礎。
七、學習編程時要注意什麼?
多動腦,多實踐,打好基礎,養成良好的編碼習慣。除此之外,還要有毅力,不能“三天打魚,兩天曬網”的。