有一種對軟件開發者的偏見是:他們都是無趣的極客,是學校裏的數學天才,天天都要在計算機屏幕前花費多個小時去寫代碼。前端
沒錯,開發者確實會在計算機屏幕前花費多個小時去寫代碼。可是,天天的工做中還有不少比寫代碼更重要的事情。就我我的而言,開發者意味着有機會本身作出很酷的東西。編程
想要搞開發?開發可不像你想得那樣簡單。服務器
從我寫下第一行代碼到如今已通過去大約七年了。通過這許多小時的練習,曾一度想過放棄,也曾經歷過中斷,如今我想跟大家分享一些個人經驗。微信
首先,也是最重要的一點:若是你真的想把寫代碼當成事業,那這毫無疑問是正確的。我徹底贊成,人們不會把時間花在本身不喜歡的東西上。編程語言
可是,做爲業餘愛好來寫代碼——也就是說,只是寫代碼而沒有任何目標或計劃——不太可能帶你走向你但願的職業編程道路。編輯器
此外,在遇到障礙和困難時,你會有足夠的耐心來保持編碼的興趣嗎?仍是說可能會放棄,或者在中途停下腳步?佈局
所以,你必需要專一於本身的熱情。我很確定全部開發者都會編碼和對技術有着極大的熱忱。學習
可是,沒有實際的執行,熱情就毫無用處。制定具體的目標,再加上合適的計劃,才能給編程之路設置里程碑。在某個時間範圍內設定一個宏偉的目標,設定每一個階段要學習的技術和技能。這樣,學習編程才能成爲你生活中的重要部分。編碼
一旦開始認真寫代碼,下一步就是要對本身誠實。你想成爲哪一種開發者?設計
首先從本身最感興趣的部分開始。你想要作用戶界面,控制產品與用戶交互的方式?那麼你應該着重於前端技術。或者你天生不適合作設計,而更喜歡服務器上的工做?那麼應該專一於後臺技術。
要根據本身的興趣肯定本身想學什麼,這一點很是關鍵。若是不能肯定,能夠在Google上搜索,並簡單嘗試一下。咱們都有本身的偏好和技能,那些就是咱們最擅長的東西。因此,這個問題其實沒你想象的那麼難。
剛開始時,你可能會對每一個任務都感到困惑,不管任務有多難或多簡單。即便是給項目選一個合適的文本編輯器,並設置好環境,都會給你帶來許多意料以外的問題。
所以,若是你徹底是個新手,想嘗試第一種語言,我強烈推薦從最簡單的開始。能夠選擇那些提供交互式編程環境的平臺入手,如Codecademy。
我也是用這種方式開始的。這些平臺能幫你專一於熟悉編程語言自己,而不用考慮環境設置等。固然稍後你會學習這些東西,但我一直認爲,開始寫代碼不只能讓人興奮,還能夠避免讓你過於疲勞。
成爲軟件開發者有多種途徑。能夠先修一個計算機科學的學位,參加編程訓練營,甚至能夠自學。不論哪一種方式,你都須要不斷更新學習資料。因爲我選擇了最後一種途徑,我能夠分享些我找到的學習資源。
從交互式編程環境開始
做爲第一步,能夠從最容易理解、最容易學習的平臺入手,如Codecademy。這些平臺提供的環境可讓你閱讀學習資料,而後利用網頁上自帶的編輯器直接練習所學的知識。結果也會在屏幕上當即顯示。只須要免費註冊,選擇你想要學習的技術,輸入學習計劃,就能夠開始學習了。
另外一個對新手十分有用的資源就是freeCodeCamp。它不像Codecademy那樣必須爲高級課程付費(儘管這些付費課程很是有用),freeCodeCamp提供徹底免費的課程和學習計劃。他們甚至會在完成每一個主要課程後給你發證書。
他們的教程也包括詳細的學習指南、內置的文本編輯器和清晰的解釋。此外,還有些項目可讓你使用學到的知識解決各類問題。
這個過程其實很困難,並非由於可信的、詳盡的資源太少。實際上,好的入門資源太多,極可能會讓你目不暇接。選擇方向很困難,由於你不太可能在每條路上都花一段時間。所以,很差的教程不只會讓你浪費時間,並且會讓你喪失繼續前進的熱情。
關於「我該學什麼」這個問題,在詢問別人或者詢問Google以前,必定要先問本身!爲何?由於網上有各類各樣的教程——視頻、電子書、教科書,還有在線或面對面的訓練營。只有你本身才能判斷出哪一種資源能更有效地幫你學習。
就我我的而言,我喜歡看視頻教程,一邊看一邊跟着寫代碼。所以我選擇了視頻教程做爲主要的學習方式。但也許你更喜歡閱讀,以便本身控制學習速度。那樣你最好選擇比較著名的書。
不幸的是,你也許須要結合不一樣的學習方法。可是,不論哪一種方法你都會在Medium上花費不少時間,在這裏你會發現許多最適合你的資源。
這樣,就像你肯定學習哪一種技術同樣,後退一步,仔細考慮,選擇最適合本身的學習資源。一旦找到合適的資源,就能夠開始學習了!
如上所述,不論你選擇哪一種資源,你極可能都要依賴medium上的博客。這就是成爲開發者的最有趣的地方。進入技術圈,就能夠「在放鬆中學習」。
想象一下……
清晨起來你開始學習在線教程。大約一個小時的認真學習以後你決定休息一下。看一集Netflix?不。你發現你不想在看電視上花費一個小時,所以你打開了YouTube,決定花30分鐘看一場關於編程技術的演講。
你觀看的視頻有幾十萬的點擊量。演講的人正在就Grid佈局討論CSS的將來發展。太有意思了!「記住或翻查Bootstrip網格類文檔進行佈局的時代結束了」,你喃喃自語。看看這個究竟怎麼用!
你Google了CSS Grid,而後閱讀了freeCodeCamp上的一篇博文。感謝這篇博文,你學習了一些要點,而後火燒眉毛地打開VSCode想要嘗試一下。太好用了!咦,這裏不太對。而後你在StackOverflow上搜索了一些問題,又在CSSTricks上看了更多的教程。而後代碼終於能夠正確工做了。
午餐時間,你打開播客,收聽freeCodeCamp上的最新更新,是關於一個自學成才的開發者找到第一份技術工做的故事。午餐以後,你決定繼續Udemy上的React教程。你忽然發現一個不太明白的問題,而Q&A部分的內容並不能解答。
卡了半個小時以後你以爲累了,因而你決定暫時放棄,但願能之後再解決。而後你去瀏覽Codeburst上的開發者社區,看看那些技術大拿們分享的技巧和技術趨勢。這個社區裏的人們都在分享本身的知識並與其餘人討論。
你開始思考:「也許我應該寫一點東西,不管是我本身的觀察也好,仍是我學到的東西也好……而後與這些人分享。」因而你打開Google doc,寫下了下面的文字:「你想成爲開發者嗎……」?
這個故事是否對你有一點打動?若是是的話,那你還等什麼?趕快跳進技術圈,進入這個全部人都在開發技術應用,讓世界變得更美好吧。
好,如今你大概知道從哪裏開始了,那麼最好是如今就開始。可是,熟悉一項技術須要不少時間。想要精通,則須要大量的工做。不付出汗水和淚水,就不可能填補新手和有經驗的開發者之間的空白。
換句話說,要想熟練掌握一門編程語言,就要付出許多個小時甚至多年的練習。那麼該怎樣作呢?
跟着教程作東西,途中遇到的bug要積極地在Google上或StackOverflow上查找;
天天有一段專門的時間寫代碼。
若是你感到累了,就休息下處處轉轉,看看論壇和各個平臺上的技術領袖們和經驗豐富的開發者們分享的技術新聞。基本上要讓本身身處技術圈中。
記住,這是朝着成功階梯邁出的重要的一步。你付出的努力越多,你的自信和熱情就會越高。只須要記住,這件事沒有結晶。沒有任何語言或庫可以幫你一晚上成功。不斷嘗試,從失敗中學習,積極努力,遵循計劃,相信本身。
也許好夢成真的時刻就在前面!
微信公衆號:C語言編程學習基地,其實作爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這裏我推薦一個C語言C++交流QQ羣951726787,無論你是小白仍是轉行人士歡迎入駐,你們一塊兒交流成長。