最近網絡上非常流行編程學習,關於少兒編程、上班族編程等的廣告或者是媒體發表的文章;仔細看過介紹後,發現誇大言論讓我背脊直接冒汗發涼,這樣又會誤導多少人正確的學習編程呢?商人做生意賺錢是無可厚非的事,但真不可以因為賺錢而把"教育"當成是菜市場賣菜一樣的吆喝,身為一位老程式員我說出我的看法,請尊重一下程式員這份職業與專業。
零基礎可以學編程嗎?
答案是當然可以學習編程,但是沒有其他基礎知識的輔助,在學習上要花上更大的精力;比如說對物理知識不熟悉的人,要對於房屋結構的強度用編程的方式去做分析,這似乎不是學個編程就可以做到的;編程只是一個工具,藉由代碼將想要完成的目標或者是需要重複做的事,經過編程完後讓程式自動執行以減少人力的浪費,但卻不是學習好編程就可以幫你解決一切的事。螺絲起子是工具,你善用他就方便的協助你拆卸螺絲;但是螺絲起子絕對不會幫你自動拆卸螺絲,幫你賺錢,這個道理大家都懂的。
2.編程可以訓練邏輯思考能力嗎?
答案是肯定可以的,但是訓練邏輯能力可以用其他更多的方法,而不是只有編程這一個方式可以訓練學習邏輯思考。學中文不可以訓練嗎?"天上下雨,地上溼滑",而地上溼滑就表示天上下雨嗎?想必大家就會決得不一定;然而這就是一種邏輯思考,這就是一種邏輯判斷,所以學中文一樣可以學習邏輯判斷。數學中A>B、B>C,那A肯定就大於C,這也是一種邏輯思考與判斷,也是一個很好的訓練邏輯思考判斷的方式。如過剛才的數學式用編程的方式寫好一個程序,在輸入A、B、C三個數字後,會自動的告訴你輸入的數字對還是不對,否則就要重新輸入,輸入正確就告訴你所輸入的三個數符合數學式的要求;記得剛所說的嗎?是先有數學式,然後再編程;所以事先見利好邏輯判斷式後才去寫代碼編程,而不是寫代碼編程去交你那組數學公式中的邏輯判斷式。可是現今太多的少兒編程學習的廣告,把編程學習說的太神奇了,這點反而會誤導很多的孩子接受正確的學習;比如說孩子作文能力不好,就送去作文補習班去學習,教條式的教學,結過上完補習課的學生寫的文章就如同公文般的格式千遍一律;你去看那些孩子的文章,三十個孩子在你看完第三個孩子的作文你就會發現其他文章也都差不多是一樣的內容,這樣真的參加考試會得高分嗎?如果是電腦閱卷,由電腦去對作文評分,這樣的學習可是正確的,但是作文是由人工閱卷,文章要充滿論述與感情,然而要提高作文論述與感情,唯一的辦法就是多閱讀文章學習,引經譬喻的提高自己的作文能力。
3.學習哪種程式語言比較好?
這樣的比喻根本就是外行人的說法,不足為道。要知道電腦只識得"0"與"1",而不管你是用什麼程式語言去編寫程式,最後經過編譯也都產生一串的"0"與"1"讓CPU去執行,所以學習電腦編程根本不存在哪種程式語言好,哪種程式語言不好的說法或是想法,這些都是商業語言,教育機構所杜撰出來的廣告詞。原本編程就是工具,而你選用任何一款程式語言編程其實就是你會拿什麼工具去拆一個直徑3mm的十字螺絲式一樣的道理,拿支老虎鉗拆,如果不論方便性或不管花識多長,肯定是可以拆下,但是並不合適。如果你是從事嵌入式方面的編程,可能選用C語言比較方便,而用Python來開發,那就只能是自討苦吃;但如果要開發網絡爬蟲軟體,那Python所提供的類庫將會讓你的開發相對簡單;如要開發windows作業系統上的執行的軟體,我會選用C#,因為他是微軟提供最多類庫,針對WINDOES作業系統功能的程式語言。萬法歸宗,不管哪種程式語言,最後編譯完成就是電腦可以認得的"0"與"1",而作為開發者來說,選用哪一種程式語言完全就是為了方便性與開發的簡易性為考量,根本不存在哪一種程式語言好或不好的問題,真正存在的問題是你會不會用的問題,就像你在拆螺絲時,一定會選用合適的工具將螺絲輕鬆地卸下,所以在猶豫學哪一種語言真的是杞人憂天,沒有意義的事。
4.電腦不是萬能的
大家可能以為電腦是萬能的,似乎什麼都可以做到,在大家讚嘆電腦高科技的神奇時,我可能會潑大家一盆冷水,其實電腦是最笨的,他什麼都做不了,什麼都不行。如果一臺電腦上沒有任何軟體,他有能做什麼呢 ? 而電腦之所以可以作為智能化的載體,完全是因為上面有編程人員添磚加瓦的寫了非常多的代碼讓電腦依照編程的邏輯去執行,所以電腦目前只能夠依靠程序所設定的邏輯去執行,而不會自己去產生代碼增加思考能力。所以什麼事情適合電腦去做?什麼事情不適合電腦去做?這才是我們必須考慮的重點;比如會計做帳,人員輸入正確數字後電腦會自動加總分析產生報表,這種重複資料量大的工作,就適合開發一套軟體來操作以減少計算的工作量;人的記憶力有限,文字紙張的記錄佔地又不方便查找,這類的工作就是和電腦資料庫來保存。
5.編程工作不是高薪的保證
電腦編程就如同蓋樓房一樣,萬丈高樓平地起,基礎科學知識的穩固才能作好編程工作;編程是一個綜合科技知識完全應用的一種工作,而不只是學習程式語言哪些關鍵字語語法而已,幾百個的關鍵字 "if.....else "這些又需要多久的時間去背會學習使用呢 ?各種語法或是類庫的編輯與使用都有一定的規定和使用規則,但不會比任何一本法律書籍的規定還多,照著那些規則去引用、編寫,熟能生巧,但那充其量與使用OFFICE軟體的文員又有何差別呢 ?程式員絕對不只是一個文員容易擔任,簡單的輸入關鍵字就可以當程式員;也沒有任何一個人可以當萬能的程式員,因為工作與知識領域的不同,而有很多不同專精領域的程式員。比如說火箭發射控制的程式員,那對於太空坐標,物理拋物線與地球引力知識等等,如果都不懂,這又如何開發出控制程序呢?
還是那句老話,編程學習只是一個工具,程式是幫助你解決重複性的工作;而編程學習是好事,我也期待大家都會一些編程,不管是用什麼程式語言都可以;但是編程絕對不會是高薪的保證,會編程不等同於一定有高薪,如果有什麼培訓機構這樣說,你可以與他打上長期高薪保證的合同,我想應該沒有誰會傻到這樣做的。多學習技術是非常好的事情,但現在只識爆炸的時代,會越多的技術才是真正高薪的保證。
—— 分享新聞,還能獲得積分兌換好禮哦 ——