-
1 # HTT8888
-
2 # IT人劉俊明
在學習程式設計的過程中,早期需要記的內容會比較多,越往後學習越要注重實驗,也就是說需要多敲程式碼。
學習程式設計可以按照以下步驟進行:
第一:首先建立一個基本的程式設計思想。程式設計思想的建立需要一個系統的過程,首先要從概念的理解開始,然後再一步一步深入,這個過程首先就是要多看和多記。所以,對於初次學習程式設計的人來說,首先要做的事情就是把程式語言的基本概念記住,進而理解程式語言處理問題的基本思路。在這個過程中,也要輔助一定的實驗,這樣可以加深對於概念的理解。
第二:實驗加總結。當對程式語言的基本概念有了一定的認知之後,接下來要做的事情就是透過大量的實驗來加深對於概念的理解,並逐漸建立相應的程式設計思想。實驗應該循序漸進,同時要注重對於實驗的總結,總結的過程對於理解程式語言是非常重要的。做實驗最好制定一個階段性的目標,透過不斷完成階段性目標來增強自己的學習信心。
第三:選擇一個主攻方向。不少程式語言都有較多的應用方向,比如Java語言可以從事Web開發、大資料開發、Android開發和後端服務開發等,而Python語言可以從事Web開發、大資料開發、人工智慧開發、嵌入式開發和後端開發等。不同的開發方向需要具備不同的知識結構,所以學習程式語言一定要選擇一個主攻方向。有了主攻方向就可以制定系統的學習計劃,同時也可以在某個領域進行深耕,從而提升自己的就業競爭力。
最後,學習程式設計一定要多交流,交流的過程本身也是學習的過程,目前不少程式語言都有較為活躍的開發社群,透過開發社群能夠獲得大量的程式設計經驗,同時也會提升自身的眼界。
-
3 # 會點程式碼的大叔
有人認為,學習程式碼一定要多敲程式碼,這當然是沒錯的,但是我認為【多記】也很重要,下面請聽我的詳細分析。
學習程式碼是一個不斷迴圈的過程不管你是一個新手,還是一個有著多年經驗的老鳥,在學習程式碼/新技術的時候,都要經歷這樣的過程:
學習理論知識,對你要學的內容一定要有個基礎的概念。
照著別人的程式碼敲,特別是新手在入門的時候,甚至可以“抄襲”別人的程式碼,一行一行地敲到電腦裡面(不是大段程式碼的複製貼上),並除錯透過,加深對理論的理解。
等熟練了以後,才是可以根據自己的理解,把程式碼敲出來。
當遇到問題的時候,再反覆地做1、2、3步,不斷加深理解,迭代完善自己的程式碼。
【多記】,到底是記什麼有人認為【多記】,就是背別人的程式碼,這個觀點是錯誤的,除非你能做到過目不忘、腦容量無限,不過就算這樣,需求稍加變化,你就可能就“歇菜”了。那麼【多記】到底要記哪些內容呢?
上面提到的理論知識,這個一定要記憶。比如一項技術的概念、優缺點、適用場景,這些需要記憶。
不要記具體的程式碼,可以記住方法的知識點、虛擬碼的步驟。例如你要記憶單例模式的寫法,那麼就要記住:單例模式有幾種寫法;每種寫法各自有什麼弊端;比較推薦使用哪種寫法,例如餓漢式的寫法,建構函式不暴露、提供一個方法讓客戶端可以獲得、定義一個靜態變數來儲存建立好的類例項(直接建立,因為建構函式不暴露,所以只會建立一次);但是缺點也顯而易見:沒有懶載入的效果,從而降低記憶體的使用率。
【多記】不是【只記】,最後依然是在反覆敲程式碼的過程中,加深記憶。
為什麼要多敲程式碼學習程式碼和唱歌、做飯一樣,只聽歌、背歌詞不一定能唱好;只會吃、背菜譜不一定會做飯,道理都是一樣的;理論重要,實踐更為重要。
那麼【敲程式碼】就是學習程式碼的最佳手段麼?
看書、聽音訊、看影片、聽講座這些都是被動學習,通常來說被動學習的知識,最終留在記憶中的會比較少,大部分都被遺忘掉了;
敲程式碼屬於主動學習,效果會比以上的途徑好很多;
比敲程式碼更優的途徑是什麼?寫書、錄音頻、錄影片、做講座,這些看起來是知識輸出,但實際上都是主動學習,這些途徑和被動學習相比,效果會好很多,另外一方面,當你的技術能力達到了可以做“輸出”的水平時,說明你對其細節已經瞭解地非常透徹了;或者說,你為了能做知識輸出,“逼不得已”讓自己更深入的學習。
-
4 # 一個存在感小透明
在學習初期,毫無疑問應該多記,在有了一定的基礎之後,就應該多敲了。
這其實已經跳出了程式碼學習的侷限性,進而體現了一種學習理念。
在學習初期,我們要透過多吸收資訊來鞏固自己的基礎知識體系,同時伴隨著練習來輔助理解,也就是要保證足夠的輸入。到了學習中後期,我們就要學會利用已有知識開始自我發揮,也就是我們常說的可以開始輸出了。
落實在程式碼學習上,我們來舉例幫助大家理解。
比如你要學習Java程式設計。
首先,一定要做的是學習Java的基礎知識,這個過程可以透過讀書,也可以透過上影片課的方式來進行,此時也不著急立刻敲程式碼。但是,僅僅看過一次書或者影片是不夠的,無數經驗表明,只看不反覆咀嚼是無法真正掌握知識的。這個時候就需要你在尋找一些練習,從最初的開卷測試,到閉卷測試。現在一些教程式語言的網站,通常都會提供這種隨堂quiz,比如w3cschool,菜鳥教程一類的,它們在講完一章節之後,會有針對性的練習供你去自我測試是否真的掌握了這些知識。
當你對Java有了一定的瞭解後,你就要開始編寫屬於你的public static void main(String[] args)函數了,這就是輸出的第一步。第一次,你也許僅僅用了System.out.println(1+9*3+Math.sqrt(4)),但是當程式正確執行之後,也是對你的學習的一種肯定。
在學習初期,你需要大量的吸收各種Java的api,比如StringUtil.isBlank(), List.add,
Map.put
,Calendar.getInstance等等。在這個時候,想要走每一步可能都需要查閱資料,才能找到正確的前進姿勢。但是前進的過程,就是記錄姿勢的過程。在你記住了各種api,各種走路姿勢之後,就可以自由的行走,自由的實現你想要做到的功能了。這個時候,就應該拋棄多記,轉而開始多敲程式碼,從而鍛鍊自己的邏輯能力。這是凌駕於程式碼能力之上的另一種能力。
-
5 # 大學生程式設計指南
作為一個寫了十幾年程式的老碼農,寫程式碼靠的是邏輯思維,加上穩固的程式語言基礎。程式設計其實和學習英語有一定的相同之處,但又有不同之處,英語的學習可能夾雜著記憶成分,程式設計百分90以上靠的是邏輯思維加上強大的實踐動手能力,很多人覺得先把理論掌握透徹了再去學習程式設計會快很多,有過幾年程式設計經驗的人可能對自己剛入行的時候多少都會有點記憶,真正讓自己徹底能開始寫程式碼絕對不是從一次次理論得來的,主要還是經歷一次專案實戰而且開始都有一種無形的壓力,隨著時間的推移發現特別是專案進行到一半的時候,發現程式設計沒有想象的那麼難,還是完全可以搞定的,甚至對於自己來講也是能負擔一部分的自信,這就是實戰的威力,很多人基礎很差但是經歷了一次這種專案的磨練,成長的也會快速很多。
程式設計玩的就是邏輯思維,很多人說學習程式設計數學好的會佔據點優勢,這句話本身是有道理的,因為數學邏輯強直接切入到程式設計學習中具有天然的優勢,這都不是主要的,程式設計入門學習的過程其實是培養程式設計語感的過程,一旦有了感覺寫程式碼或者設計模組就會變得快很多了,程式設計能力的提升只靠多記是不可能有多大進步,在軟體企業裡面會有這樣一種現象,培訓出來的學生遇到在機構裡面學過的就會做的非常快,有新的模組出來就容易變得手足無措,自學出來的會好很多,畢竟自學的過程就是一種自我尋找程式設計語感的過程,培訓大部分屬於灌輸性質的,甚至很多極端的企業直接對參加培訓的學生排除在外。
程式碼的學習在沒有專案的情況下,要找一些練手題目,練手的時候不要在紙上謝謝而已,還要在電腦上形成真正的程式碼實現,不能僅僅是做一些模擬程式碼,要強迫自己拿出最好的學習狀態,才能真正突破,只是學習理論只會在水上漂著永遠學不到真正的程式設計能力,很多理論學的很棒的學生在考試的時候成績很高,一旦上機就抓瞎,因為在真正實現程式碼的感覺和直接理論的學習是完全兩碼事,曾經有個同事寫程式碼特別費勁,後來覺得自己真的不適合寫程式碼就去複習考研去了,結果真考上計算機系的碩士成績還特別好,寫程式碼就是不停在機器上實踐操作。
還真見過背誦常見的程式碼的大學生,後來發現稍微一變通就不行了,最後選擇了放棄程式碼從來不是背誦出來的,程式設計程式碼的變化機率太高了,沒有邏輯變通系統很難掌握的全面,但不能因此走極端放棄理論的學習,直接上機亂搞一通,這也不是學習程式碼的好習慣,首先有理論基礎然後構建自己的理論體系,然後帶著自己的想法去用程式碼實現,越是有經驗的程式設計師在花寫程式碼的時間長越短,主要在前期的設計上以及後期除錯,最後是不斷的程式碼的最佳化重構。
反而是一些剛入行的程式設計師就是擔心自己不能實現功能,花費大量時間研究如何實現程式碼,一般過了幾年的時間之後基本功上來之後,就會迴歸到設計和除錯上來,到了這個層面更加和以及沒有什麼關係了,優秀的程式設計師就是在不斷的提升程式設計基本功,修煉自己的程式設計思想和實際解決問題的能力,每個人都會經歷這個過程。
-
6 # 武狂
學軟體開發?那可不是鬧著玩的。不從事這一行的永遠不知道這行的艱辛,還咋巴著小眼睛問程式設計好不好學?
不知道LZ看沒看過聖鬥士星矢這部動漫,首先你得問問自己,想學程式設計,你有沒有像星矢一樣持之以恆百折不撓一步一個腳印忍受常人無法想象的困難和痛苦的品質,沒有?你說我開玩笑逗你,那好,下面的不用看了,因為你確實不適合學。
如果你只想著掙大錢,勸你別碰這行,一句話,別來找虐。為什麼?你看到的手機APP,各種應用,要想開發出來,不知道需要多少種技術。拿最常見的網站開發,需要後臺資料庫mysql,資料格式json,xml,各種網路協議,還有網站開發語言PHP, JSP,ASP.NET,等等不下十幾種技術。而每一種技術都是一本厚厚的五六百頁的書,需要最少一年多時間掌握一門技術。最要命的,每種技術互不交叉還跨度很大,每種技術都有自己的設計理念和很多很多“天坑”在等著你攻克,你問問你自己,你有這個恆心和意志力天天捧著本大部頭的書天天看,天天上機操作學嗎?你說有,那好,你看電視上那些富二代天天瀟灑地到處遊玩泡妞基本於你無緣了,因為你根本就沒時間,談個戀愛都困難,還想打網遊玩王者?那算了,你還是別碰這行了,別耽誤你玩遊戲享受生活了。
程式設計師加班很恐怖,工作制通常是996,即早9晚9週六還要上班,晚9下班還是早的,一般到晚上十點。你想那時夜深人靜了人家都休息抱著老婆孩子睡覺了,你還在工作中,是不是很崩潰?
第2,程式設計師耗腦太嚴重。工作中需要十幾個小時大腦不停地運轉。需要設計算法,不斷地把程式碼改來改去來適應客戶一天幾變的需求。很多功能沒有現成的解決方案,還經常遇到一些天書一樣的疑難問題,bug,實際工作中突發狀況千奇百怪,你可能見都沒見過的bug,崩潰,需要一點一點查幾萬行的log日誌。而且也需要百度,google,英文論壇尋求幫助,理解錯誤資訊是什麼意思。所以英文不好的沒耐心的還是算了吧,不適合這行。
第3. 程式開發首先是非常難學的,任何一門程式語言都有自己獨到的思想,概念設計,很多情況下一門語言與另一門語言沒有多大關係,知識經驗無法串用。而且工作中你還不得不用到這些技術你不得不去學。而且程式技術日新月異,新類庫新SDK每天都會推出,你需要日復一日不斷地學習新技術。如最新影片解碼技術,遊戲引擎等等,而這些新技術可是國內沒有書和任何資料的,需要你到英文官方網站去找例項看文件去學,更要命的,新的技術和老的還沒太大關聯,你得重頭去學。而且老闆急趕專案不會給你什麼時間,一般三天就是極限了,你需要這麼短的時間快速掌握一項新技術...
綜上,你明白程式設計師為什麼總要加班了吧,也知道這行不是人乾的吧。為什麼說程式設計師幹到三十干不動。很簡單,以這種消磨人生所有時間狀態,你生命中只有加班加班工作工作學習學習,你將不能顧家不能跟朋友聚會不能再有自己一點點休閒時間,更別說談女朋友戀愛了,以這種狀態你能堅持到三十歲?我想那簡直是個奇蹟了
-
7 # 貝爾科教集團
其實這個問題就是在問:學習程式設計是要多學多記知識點,還是多練習多運用。在我看來這兩個環節都必不可少。我們只有在理解和消化理論的基礎上,才能加入自己想法更好地去應用。
以少兒程式設計學習為例,如何讓孩子理解看似複雜的程式設計邏輯,本來就是一件非常有挑戰的事情,這對教學也提出了更高的要求。貝爾科教遵循美國CSTA K12階段計算機科學標準,並基於流暢感理論和PBL問題導向式學習,設定了循序漸進的課程,將課程進行本土IP化改造,將中國經典——西遊記的人物形象融入教學中,加入引人入勝的故事情境,並用PK、打怪等遊戲化闖關的課程模式,激發並保持孩子的學習興趣。
趣味程式設計不僅能確保孩子享受到世界前沿的程式設計教育,還能激發孩子主動思考,在不斷試錯中學習並運用程式設計逐步解決定位問題、拆解問題、抽象問題,運用程式設計逐步解決問題,提高自主學習能力。
透過遊戲化的課程學習,孩子們不僅理解吸收知識更快,同時豐富有趣的課程,讓孩子們真正感受到了學習的快樂,激發了孩子們持續學習的動力。
貝爾科教在培養孩子們上述能力的過程中,並不是生硬傳授,而是拆分成若干通俗易懂的課題和細節,滲透在每個教學環節中,讓孩子們在動手實踐中,一點點理解與感知。
從教學成效上來說,引導式教學讓孩子們享受探尋真理的過程,而不是簡單得到一個答案。在自由討論環節孩子們會帶著問題和創意各抒己見,思想碰撞的過程既能產生新的想法,又能激發孩子們的表達慾望,從而提升溝通力。臨近課程尾聲的作品展示環節,極大增強了孩子們的自信心和成就感。當孩子們的興趣和成就獲得雙重滿足的時候,他們自然而然就會更有學習熱情,從而促進學習力的提升。
學習程式碼是要多記還是要多敲?在玩中學習,在應用中鞏固知識點記憶才會讓學習變得更高效。
-
8 # 與自然做鬥爭
記性不好多敲,首先先看一遍的書籍,就是隨便瀏覽5次左右,然後實戰練習!
只要你瀏覽5次後必然突然就會了,如何瀏覽才是關鍵!第一我們要知道計算機永遠只會123456789,它不會ABCD !語法可以不記,但方程與代數必須要記,特別是開方,勾股定理,制定假設方程,這才是主要任務!
記住它是計算機,竟然是計算機肯定是用於計算!我就多廢話一次!懂得了代數,方程運算,列假設,用勾股定理去省城圖形,假設邊長為a =1,這個不難吧!後面要看運算子和語言,先理解運算子的作用,在理解語言,語言是英文,翻譯就行了!
第二個重點什麼是整數,什麼是變數,什麼常量,浮點,百分之80的程式設計學者都是死在這裡,整數是什麼鬼?還搞出一個,a 為整數[捂臉],一到這裡矇蔽了,那a 的整數又指誰?又矇蔽了,如果a 指的是圖形,那麼要控制這個圖形移動後到達那個位置停止?整數意思是沒有小數點的數字,123456789屬於整數,不能是1.1,2.1沒有小數點!那麼知道a 為整數,那麼它的間隔移動只會是1步一步的走!
我這麼一說不就是數學代數嗎,答案沒有錯!代數,語言是列句用的,語言英文不會就翻譯!一翻譯出來不就是我們小學初中時候一樣,假設小明什麼鬼,幹嘛!一樣的,那麼思維邏輯就有了!剩下的只要去找每個符號的作用,一一用起來
-
9 # 周緒龍
學習程式設計不是靠背,我們首先要有思路。
有了思路以後就想辦法多做一些專案,在邊做邊用的過程中就可以把一些API用熟。
我們要清楚的就是,很多東西一定是孰能生巧的結果。
回覆列表
要多敲程式碼,不能重複的敲。
透過書籍,網路學習到了新知識,新框架,新想法要多實踐,時間久了,信手拈來。