大多數(shù)程序員、初學者都以為自己正在學習編程,其實并不是,而是在走彎路。
你可能正在學習一門編程語言,而不是編程本身
計算機科學不是學習計算機,很震驚吧。相反,它是關于借助計算機來自動解決問題的一門學問。解決問題才是計算機科學,而不是寫代碼。這就是許多計算機科學專業(yè)的學生,似乎不理解他們?yōu)槭裁磳W習算法和數(shù)學的原因。
如果你以前上過計算機科學的課,那么你不會對此感到驚訝。因為你會注意到編程與編程語言幾乎沒有關系。思考一下,為什么偽代碼在這些課程中如此常見。
但大多數(shù)程序員總是會落入陷阱。我們學了十幾年編程語言,才意識到自己真正需要學的是編程,而我本身就是受害者。
我花了十多年的時間來學習各種編程語言。我學的編程語言越多,構建簡單的東西就越困難,我感覺找不到正確的工具。但問題是,當我不知道如何下手時,我忘記了應該去探索要做什么,而不是尋找正確的工具。
編程語言的奇怪之處在于它們總是在變化。編程語言幾乎每天都在變化,跟進非常困難。而且大多數(shù)優(yōu)秀的程序僅用到了編程語言的一小部分。
優(yōu)先學習編程語言的問題就像在學習木工之前學習如何使用木工鋸、錘子和各種切割機。木工需要注意:想法、可行性分析、度量、測試、用戶使用習慣,老木匠更關注這些。而不是錘子和釘子這些東西。
在對工作進行科學研究期間,他還將花時間檢查釘子、著色劑、木材等的質(zhì)量。
學習編程和學習編程語言有什么區(qū)別?
“編程” 通過給出一條指令來使系統(tǒng)自動運行。我們每天都這樣做,我們教我們的孩子、士兵、客戶。我們發(fā)出或收到指令,要求自由或獨立地按照規(guī)定的方式進行。你的父母不需要一直跟著你,并指導你生活中的每一步,他們已經(jīng)在之前生活中的許多方面對你給予過指導(指令)。
大多數(shù)學校和教育網(wǎng)站都會教授編程語言的語法。他們還會添加一些設計模式(而你可能恰好忽略了設計模式是什么)、一些數(shù)學計算、如何聲明變量以及如何使用它們,數(shù)據(jù)類型以及如何聲明和創(chuàng)建它們。
上面說的那些編程語言的知識不會教你編程。當你發(fā)現(xiàn)時,你會覺得學習編程實在浪費時間,大把的時間。
我們用編程來解決問題,而編程語言是幫助我們解決問題的工具。
它們就像工具箱,我們稱之為框架。它們可以讓你的想法更有條理。
如果你正在學習編程,但仍無法設計和編寫一個實際的應用程序,這意味著你要花