新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼

智雲程式設計發表於2019-02-19


新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼

通常新手程式設計師會以不同的方式來表達這個疑問,比如:

“我通過線上課程學習了前端,但是我還是不知道怎麼用它來程式設計。”

“我知道這個理論,可是怎麼把它運用到我的程式碼裡啊?”

“我知道前端框架,但我就是不知道何時何地使用它們。”

現在在我們來客觀的談一談這個問題。

首先要說的是,如果你覺得自己基礎都掌握了,但是就是不能在沒有他人指導的情況下寫出一個程式,那麼我只能說你並沒有真正掌握這些基礎知識。

我能理解你面對這一情況內心的沮喪,但是你要知道這是成為一名優秀程式設計師必經的一個階段,所以即使你有千百個不願意也不得不面對這個現實。


新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼

一、造成這一問題的原因

1.“人造”的程式設計環境

造成這個問題的一大因素是線上編碼課程為學生提供了一個“人造”的程式設計環境,在這個“人造”的程式設計環境中學生們通常都會在一個已經包含了指令和提示的網頁上練習程式碼。

然而這並不是程式設計真正的開啟方式。所以課程結束後,當沒有人再為學生提供這樣一個“虛假”“舒適”的程式設計環境時,面對真正的程式設計環境,學生們就開始不知所措,失去了目標和方向。

當然,線上課程提供這種“人造”的程式設計環境並不是全然不好的。因為建立一個真正的程式設計環境通常是很複雜並且在真正的程式設計環境裡進行程式設計會讓初學者感到沮喪。而線上課程提供的這種“人造”的程式設計環境允許你不用建立起自己的程式設計環境就可以獲得許多程式設計經驗。

然而,這種“舒適的”程式設計環境雖然在一定程度上減輕了你在初學程式設計階段的挫折苦痛,但是它也只是將學習程式設計的挫折苦痛攔截到課程結束後,等課程一結束,它們就會出現在你面前。


新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼

2.過度的指導

當你結束了一個線上課程,或是學習完一本書,或是在現實程式設計中接受他人建議時,你都能從中得到很多的提示和指導。在這種情況下,你甚至可以在剛拿到一個程式時就能知道你要輸入什麼甚至知道這個程式的最終結果。

然而當你試圖自己建立一個專案的時候,你只能看到一片空白的輸入框:沒有指令、沒有提示、更沒有人告訴你下一行要輸入什麼。像這樣從一個簡單的環境跳到一個困難的環境,你自然會感到驚慌失措甚至自我懷疑。

接受過度指導的另一個後果是:學習了語法但沒有學習到程式設計的概念。

語法就是你輸入的特定程式語言的文字。但是每種語言的語法都是不盡相同的,而你在學習程式設計時,不只是要學習程式語言的語法,更重要的是要學習他們的概念。

瞭解概念能讓你理解程式碼實際上能做成什麼,以及程式碼如何用不同的語言實現。

但是,我並沒有說接受指導是不好的。因為當你剛開始學習的時候,你肯定需要有人來指點迷津。如果完完全全自學沒有接收到任何建議指導的話,你可能會像一隻無頭蒼蠅一樣在程式設計世界裡盲目飛行。

而在你的程式設計生涯的每個階段,你也都需要有人來指導你,但是一定不要接受過多的指導。因為作為初學者,如果接受了過多的指導就會給你一個錯覺:程式設計很簡單。這就會造成當你不能成功地獨自寫出程式時,對自己的程式設計人生感到懷疑。


新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼

二、如何解決這個問題

1.建立一個真正的程式設計環境

每種程式語言需要的程式設計環境都是不同的。

想要建立一個真正的程式設計環境,首先,你需要一個文字編輯器或一個IDE(整合開發環境)。然後你需要找出對你正在學習的語言來說最適合的編輯器並安裝它。

其次,你需要知道如何建立並執行一個包含程式碼的檔案。

如果你是使用一個IDEr來作為你的文字編輯器,那麼這個功能就會被構建到Bluefish Editor中。你就需要了解如何建立一個新專案以及需要點選什麼按鈕來執行程式碼。

但是如果你沒有使用IDE,那麼你可能就需要學習如何利用命令列來執行程式碼。你可以找一些入門指導或者看免費教學視訊來學習使用命令列。

最後,一旦你可以編寫程式碼,並且能夠正常執行程式,那麼基本上你就開始正式步入專業程式設計師的道路了。


新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼

2.從小專案做起

嘗試去做一些稍微超過自身水平的專案並不是一件壞事,因為你可能會發現它很有趣並且它能激勵你學習更多的東西;但是從另外的角度來看,如果浪費了不少時間專案卻毫無進展,也會讓你感到灰心、沮喪。

一千個人就有一千個哈姆雷特,適合別人的方法不一定就適合你。所以當激勵法對你起反作用的時候,也許你就該考慮從基礎的小專案做起了,畢竟所有東西都是從零開始的。

剛開始的時候,你可以編寫一些基於文字的程式,因為編寫這種程式比編寫其他程式相對來說更容易一些,它只需要掌握:如何在螢幕上顯示字串;以及如何獲取使用者輸入的字串。

我的建議是:先製作一段時間的網頁。比如做一些像“輪播圖”、“表格框架”等進行基礎鞏固;又或者,做一些JS的網頁版簡單小遊戲,通過這些小專案來深入學習你所選擇的程式語言的所有特性。


新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼

4. 練習白板寫程式碼

你必須不需要任何指令地從零開始編寫自己的程式碼。也就是說你要從一個空白文件(白板、白紙等)開始,然後在不聽從任何指示的情況下自己敲出每行程式碼。

從這一步開始意味著你已經準備好迎接腥風血雨了。因為後面你將花費大量的時間進行除錯,並要嘗試理解每個bug。但是在每次檢測和修復bug的時候,你的程式設計技能都能得到相應提高,並且你也能獲得真正的程式設計經驗。這就是作為程式設計師學習和成長的方式。

當然你也可以通過檢視別人的程式碼來獲取經驗,但是你不能直接複製黏貼,因為如果你直接複製黏貼的話,這樣的學習將毫無意義。你要做到的是:認真分析別人的程式碼;得出它是如何正常執行的結論;然後再運用獲取的經驗來進行獨立程式設計。

5.不懂就問:懂得如何尋求幫助

在學習程式設計的過程中,你肯定會遇到一些你自己無法解決的問題和一些你無法靠自己修復的錯誤。雖然這只是你學習程式設計的一部分,但如果你已經花了2h+來嘗試解決你的問題未果時,為了提高工作效率,就應該轉向尋求專業幫助了。

然而有些學生在學習程式設計時會在沒有嘗試過自己解決問題的情況下立刻尋求別人的幫助,這不管是在IT領域還是其他領域,都是不被贊成的。因為不管出現了什麼難題,都要自己先去盡力解決才有學習的意義。不然最終還是回到了“靠著別人的指導過活最終自己什麼也沒學到”這個問題上。

那麼我們應該如何尋求幫助呢?

基本的問題你可以先google一下,網路世界那麼大,單靠這個你就能解決不少問題。

如果你遇到一些靠個人之力無法解決的問題,要注意的是即使他人幫助你解決問題,也不要直接把別人的答案複製黏貼到你的問題上。你要做的是分析答案並瞭解錯誤背後的原因,只有這樣當你下次再遇到相同的錯誤的時候,才能靠自己修復錯誤。

另外,如果你經常遇到一些靠個人之力無法解決的問題,最有可能的原因是你做的專案太大了以至於遠遠超過了你的自身水平,這裡就要重申一下上一條建議:從小專案做起,一步一步提升自己的水平。


新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼

6.正確的提出問題並尋求幫助

也經常會有初學者羞於提問或拒絕提問,很大一部分原因是他們認為程式設計社群裡面的那些大神有些不友好甚至態度有些令人生畏,所以他們不想跟這些人打交道,這對於初學者來說是非常可怕的事情。

其實,雖然有些專業的程式設計師會在回答時有些“直言不諱”,但是如果你以正確的方式提出你的問題,你會發現社群裡的很多大神是非常友好的,並且他們往往能夠一針見血的點出你的問題所在,同時能給出解決方案。

如果你根據下面的指導提出問題,肯定可以吸引很多友好的程式設計師幫助你解決問題。可能還能防止一些雖然脾氣有些暴躁但是很善良的程式設計師一邊幫你解決問題一邊對你發脾氣。

釋出出確切的錯誤點。這是最重要的一個部分,因為如果回答問題的人沒看到確切的錯誤資訊,就意味著他們要浪費自己的時間來找出你的程式的錯誤所在再給予解決方案。

如果你也不知道確切的錯誤資訊,那麼請說明你推測的會發生錯誤的部分,和實際發生的情況。

貼上出你的所有程式碼。一般情況下,看不到完整的程式碼來除錯問題是很困難的。如果程式碼不是太多,最好的提問方式就是將程式碼完整貼上到Github Gist中,然後把相關連結放在問題裡。

複製出來的程式碼格式要正確,而不是簡單的複製黏貼。你要學會如何對你的程式碼進行排版,使它看起來更便於閱讀。

指出你已嘗試過的方法。這證明你已經盡力了,而不是有問題沒有進行思考就直接扔出來讓大家幫忙。

使用正確的程式設計術語。雖然你還只是一個初學者,並不能將所有的專業術語都使用正確。但是你最好還是儘自己所能使用正確的專業術語。因為努力學習常用專業術語並正確使用它們對你以後的發展也是很有幫助的。


新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼

三、總結

最後總結一下這篇文章所提到的建議

給自己建立一個真正的程式設計環境,使用IDE或者空白文字編輯器(白板)來編寫程式。

一定要從頭到尾自己編寫所有的程式碼,不要在沒有理解的情況下直接複製黏貼他人的程式碼來欺騙自己。

從小專案開始做起,編寫一些基於文字的程式來練習你正在學習的程式語言,然後再慢慢的進行一些更大更復雜的專案。

瘋狂的練習,編寫大量的程式碼。在學習理論知識的時候就要不斷地嘗試把理論應用到自己的程式碼當中。學習、實踐;學習、實踐;學習、實踐······

要先學會自己解決問題,當自己解決無果,陷入困境時,要懂得如何尋求幫助。

不要羞於提問或拒絕提問,要懂得運用正確的方式尋求他人的幫助。

毋庸置疑,學習程式設計並不容易。特別是當你剛剛上完程式設計課程,開始走上自己的獨立程式設計之路時,這種感覺就會更加的強烈。但是請你不要就此質疑自己的程式設計能力,除了一小部分天才之外,誰不是一步一步從小菜鳥走上大神之路的呢。

最後,在這裡也祝願大家都能在程式設計之路上愉快的越走越遠。

自己是從事了五年的前端工程師,不少人私下問我,2019年前端該怎麼學,方法有沒有?

沒錯,年初我花了一個多月的時間整理出來的學習資料,希望能幫助那些想學習前端,卻又不知道怎麼開始學習的朋友。

如果你依然在程式設計的世界裡迷茫,不知道自己的未來規劃,可以加入web前端學習交流群:731771211 裡面可以與大神一起交流並走出迷茫。新手可進群免費領取學習資料,看看前輩們是如何在程式設計的世界裡傲然前行!群裡不停更新最新的教程和學習方法(進群送web前端系統學習路線,詳細的前端專案實戰教學視訊),有想學習web前端的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入

點選: 加入


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901074/viewspace-2636367/,如需轉載,請註明出處,否則將追究法律責任。

相關文章