游戲之旅--編程感悟,編程應該自學還是報班?
作為一名平時需要寫代碼以及指導學生做機器學習相關內容的比賽的教師,加之目前也在做兒童科學教育方向,因此我自認為能夠提出一些自己的認識和看法,供大家參考,也歡迎留言討論。
由于您的問題描述很模糊,我無法判斷到底是多大年紀的人來學習編程,因此本文中我只談少兒編程方面的事情。若是中年人轉行學編程的情況,由于我不了解,不能妄言。下面是我的觀點:
自學還是報班取決于父母有多少時間和精力陪孩子學習編程這是我經過觀察、論證和總結之后形成的一個結論,也是我認為你在做這個選擇的時候,最主要的考量因素。原因如下:
少兒編程的學習,尤其是在學前和小學早期階段,并不是要培養(yǎng)孩子寫代碼的能力,而是強調編程思維的培養(yǎng)!即計算機是如何解決一個問題的,也就是要讓孩子熟悉計算機的運行方式、計算機思考和計算的方式。我們舉個很簡單的例子,我們都知道數學家高斯的故事,他在剛上小學的時候,就用自己的方法非常快的計算出了從1加到100這道題的答案,而其他同學卻沒有,為什么?區(qū)別就是,高斯采用的人的思維方式——找規(guī)律,而其他同學,采用的就是所謂的“笨辦法”(老老實實的從紙上算1+2+3+4+……)也就是如計算機最常用的方式——累加法!而你學習編程,就是要重新適應計算機的這種笨辦法,用它的行事風格來編寫程序,這也就是所謂的“編程思維”的培養(yǎng)。這種能力或者說思考方式的培養(yǎng),其實和你會不會寫代碼,是不是懂某一門語言關系不太大。所以,有很多的形式可以幫助我們的孩子來熟悉這種“編程思維”,比如日常生活中做一些游戲,讀介紹計算機的繪本或者玩一些手機上的編程啟蒙游戲,都能夠達到這個目的,我曾經舉辦了一個小范圍的以“憤怒小鳥”為主題的編程啟蒙游戲,就受到了孩子們的喜愛,和家長一起參與進來,明白了指令和動作之間的關系,以及如何編排指令來設計動作完成任務(如圖)因此,這類游戲或者活動,其實對于5歲左右的兒童來說,是一種非常好的啟蒙方式,而組織形式和難度,其實都是比較低的,只要家長愿意與孩子一起來完成,完全能夠收到不錯的效果。但是,即便你沒時間,我也不建議這個年齡的孩子去報輔導班學編程,因為目前我所知道的課程,在這個年齡段的設計,幾乎都是不太合理的,主要體現在沒有考慮到孩子的認知發(fā)展程度,只是盲目的把高年級的課程下放了。
當孩子上了小學,家長可以考慮選擇輔導班,但是仍然要注意呵護興趣與好奇心!這個年齡的孩子們已經具備了抽象思維的能力并在快速發(fā)展中,此時如果你有時間和精力,那么你也要考慮相對系統(tǒng)化的給孩子開展編程教育;而如果你沒時間,可以選擇一家機構去讓孩子系統(tǒng)的接觸編程。在這個年齡段孩子普遍使用的還是圖形化編程工具,國內所有圖形化編程工具幾乎都是脫胎于MIT開發(fā)Scratch軟件,也就是用動畫的形式來教給孩子們編程序完成任務,這個時候,你要循序漸進的培養(yǎng)孩子解決問題的能力,這就需要你有一個相對系統(tǒng)的參考,若是您自己指導孩子的話,建議關注國外的一個叫做
code.org
的網站,提供了豐富的編程教育內容,記得應該是微軟、臉書之類扶持的一個機構,缺點就是全英文,當然也歡迎您關注我的公眾號(文末給出),編程啟蒙是我們認為非常有意義的一個發(fā)力方向,因此我們會陸續(xù)有免費和收費內容推出的!如果您沒有這個精力,那么報一個班也是可以的,注意選擇那些相對成熟的大機構,如果是新興的小機構,你要看他們的課程體系是否合理,建議以玩為主,別讓孩子產生逆反,畢竟在這個年級,呵護他們對大千世界的好奇心是最重要的!最后,祝你能從我的回答中找到你想要的。如果喜歡,請關注并分享我的答案!您的支持是我前進的動力!
最后的最后,我的公眾號您可以微信搜索“彩虹階梯科學課堂”獲得,也可以微信掃描下圖二維碼。我們專注為5~12歲中國兒童提供優(yōu)質科學教育內容!
在公司里真的能提升寫代碼的水平嗎?
作為一名IT行業(yè)的從業(yè)者,同時也是一名計算機專業(yè)的教育工作者,我來回答一下這個問題。
首先,答案是肯定的,程序員在工作崗位中是能夠提升編碼水平的。
程序員的提升方式通常有兩種,一種是通過工作任務,另一種是通過主動學習(參與開源項目等),而且對于大部分程序員來說,完成工作任務是提升編碼能力的主要方式,大部分程序員都是通過不斷提升工作崗位從而來提升編碼能力的。
程序員在不同階段需要突破相應的編碼瓶頸,對于初級程序員來說,瓶頸在于如何建立自己的編程思想;對于主力程序員來說,瓶頸在于如何提升程序的各種性能;對于架構師來說,瓶頸在于如何提升對于框架模式的理解。可以說,不同階段的程序員面臨不同的問題,通常也需要不同的方式來突破各個階段的發(fā)展瓶頸。
對于初級程序員來說,要想建立自己的編程思想就需要多寫代碼,多做總結,而崗位開發(fā)任務恰好能夠提供這樣的機會,所以在工作的前幾年,初級程序員的成長速度是比較快的。而對于主力程序員來說,要想突破自身的發(fā)展瓶頸通常需要具備相應的知識結構,知識結構不足往往是影響主力程序員發(fā)展的關鍵因素,所以不少程序員會通過讀研的方式來完成瓶頸突破。
而對于架構師來說,要想完成瓶頸突破,往往需要研發(fā)資源的配合,比如項目類型、項目規(guī)模、開發(fā)團隊配置等等,當然也需要架構師有較強的學習能力和研發(fā)能力,通常來說,大型科技公司的架構師往往會得到更多的資源。
總的來說,在公司從事程序開發(fā)是能夠獲得提升的,但是需要程序員不斷突破崗位本身所賦予的發(fā)展瓶頸。
我從事互聯(lián)網行業(yè)多年,目前也在帶計算機專業(yè)的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續(xù)寫一些關于互聯(lián)網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
如果有互聯(lián)網方面的問題,或者考研方面的問題,都可以咨詢我,謝謝!
為什么編程需要數學好才行?
前言:歡迎你進入軟件行業(yè)從事相關工作。請堅信:編程是一件很好玩兒、很有成就感的事情!
文科和理科底層的差別首先,我們聊聊我文理分科的本質區(qū)別。
文科涉及的所有內容都是柔性的,而理科的都是剛性的。例如:用一篇散文表達兒子對父親的懷念之情可以從很多過去的瑣碎往事不斷釋放的情感來使整篇文章逐漸升溫。而理性的思維下,對就是對錯就是錯,黑就是黑白就是白,既然對父親懷念,不必先做大量的預熱。
從學習的角度來講,具有文科天賦能夠將文科知識運用的比較好的往往是那些具有語言天賦,對語感有較強掌控力的人,能不能夠沉下心來去閱讀、去背誦、去品味。理科則完全走的是另外一個學習路徑,我們可以看到很多理科尖子生通常都對以公式為核心的學習內容更能夠快速掌握,通過推敲、判斷來尋求問題的解決辦法。
數學的意義數學,作為一門基礎學科,在很大程度上要歸屬于理科的范疇。像題主所提到的那樣,概率、線性代數、統(tǒng)計學、離散數學、微積分都是它的常見課程。這些課程統(tǒng)統(tǒng)都有一套理論基礎,并在這些理論基礎下衍生出眾多固定的模型、公式和嚴密的演算關系。
早些年,總有一句半玩笑的話,說某某數學家對于學術一絲不茍,連結果中小數部分的某一個末位數的計算都要再三、反復的計算,保證數據的精確性。它充分的例證了數學的意義在于能夠嚴密的通過一系列推導、演算行為,只要固定輸入就一定會有固定輸出結果。
數學與編程軟件行業(yè)借鑒了很多其他行業(yè)的知識。例如:在軟件工程方面借鑒了建筑行業(yè)的工程結構化思想,在軟件需求方面又參考了商業(yè)模型分析的相關知識。
對于編程這個軟件的細分領域之一,它需要保證能夠按照客戶的業(yè)務需求,將客戶對市場分析的結果轉化為一套需求分析體系文檔、軟件設計文檔,然后依據文檔,請架構師、軟件工程師、測試工程師在項目經理、產品經理的通力合作下,一比一的實現出來,如果假定客戶的需求絕對合理且實現方式完全可行的情況下,那么最終實現的軟件產品和與產品本身配套的運營、維護服務都將完美按照客戶預期的那樣展開。
軟件編程,不一定非要學好數學,關鍵是理性思維數學是理科的頭牌,數學是軟件編程的重要基礎。掌握數學實際上是持有了一把理性思維的鑰匙,去打開軟件編程世界的大門。但真正要遨游在編程之旅的還是要具備一些理性的思維。
以上就是關于游戲之旅--編程感悟和編程應該自學還是報班的相關問題解答,希望對你有所幫助。