search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

編程究竟是文科還是理科?

熱文導讀 | 點擊標題閱讀

講真,計算機專業可能快「一統天下」了!

如果找不到好工作,你一定不是計算機專業

老師,我建議你多掛點人

玻璃貓 微信號 dreamsee321 已經獲得授權

編程究竟是文科還是理科?

還用問?編程當然是理科嘍!或許很多人會不屑地回答。

然而,情況真的如此嗎?

讓我們先來看看一個程序員故事,或許裡面有著你我的影子。

多年以前,工科出身的小灰打算學習編程

學習編程的頭一個月,小灰如魚得水

學習編程三個月,小灰略有疑惑

求職和初入職場,海量的知識撲面而來

工作若干年,小灰又將面臨新的挑戰

工作之餘,小灰回想起自己編程道路上的得與失,不禁感慨道:

文科還是理科?

若要評判編程是文科還是理科,我們需要首先明確一下文科與理科的各自特徵。

文科:以知識和經驗總結為主,例如歷史學、法學

理科:以計算和邏輯推理為主,例如數學

當然,絕大多數學科都不是純粹的文科和理科,而是兩者均有涉及。其中有些學科更偏重文科,但也具有少量理科成分,例如地理學。

也有部分學科更偏重理科,但具有少量文科成分,例如化學、生物學。

對於這些「混合型」學科,我們往往依照其側重點,來劃分文理科。因而毫無疑問,地理學屬於文科,生物學屬於理科。

那麼,對於「編程」這樣一門學科,究竟是文科成分佔主導,還是理科成分佔主導呢?讓我們來做一些具體分析。

編程中的理科部分:

1.基本邏輯

這裡的基本邏輯,指的是編程中所涉及的各種基本邏輯元素,比如程序中的循環控制、條件控制邏輯,比如資料庫中的SQL查詢邏輯,比如多線程的同步非同步邏輯。

誠然,邏輯是學習編程的基石,但邏輯絕不會成為一個程序員從初級走向高級的門檻。因為這些邏輯的學習成本真的不高,只要方法得當,一個十二三歲的普通孩子也可以輕鬆掌握。

2.演算法

如果說基本邏輯僅僅是入門的基礎,那麼演算法就是理科編程的真正難點。可是,對於絕大多數人程序員來說,如果不是專門從事演算法研究,不是ACM競賽的參賽者,那麼演算法對他來說僅僅是一個大致原理的理解,僅僅是一個API的調用。演算法很重要,但是相對於其他能力,演算法又顯得不那麼關鍵。

編程中的文科部分:

1.知識

知識是一個廣義的概念。在編程這個領域,知識可以是某種語言規則,比如Java中final類不能被繼承;知識也可以是某個底層原理,比如Mysql中Myisam引擎的索引數據文件分離;知識也可以是某種設計原則,比如面向對象的開放封閉原則,比如系統設計的CAP原則。

或許有人會說,編程當中的知識不需要像文科那樣死記硬背,最重要的是「理解」。可是,理解與記憶原本就是密不可分的,不去記憶,談何理解?歷史事件需要理解,法律法規也需要理解,但歷史學與法學,並未因此而脫離「文科」這一屬性。

2.經驗總結

如果說編程知識是一條一條清晰的文字,那麼編程經驗則顯得抽象而模糊,很難直接用語言表達。

深厚的編程經驗可以讓你寫出可擴展性更強的代碼,可以讓你快速定位出線上的bug,也可以讓你設計出高可用的系統。知識由書本得來,經驗則是在一次次的采坑中逐漸總結和積累獲得。可以說,經驗的作用還在知識之上。

總結起來,在邏輯、演算法、知識、經驗四個方面,絕大多數程序員花費幾個月的時間掌握了編程的基本邏輯,卻需要花費五年甚至更長的時間來學習大量編程知識,總結編程經驗。演算法雖然學習成本很高,但因為過於「專業化」,而居於次要地位。

由此可見,編程雖然有著一定的理科元素,但更多的特徵仍舊偏向文科,足以把整體定位成文科。

如何學好這門文科?

無論編程的真面目是文是理,作為一個程序員,我們都需要熱愛自己的職業。演算法和設計思想是天馬行空的藝術,項目研發則是腳下泥濘坎坷的道路。做好程序員,最重要的是踏實和耐心,希望各位親們都能一步一個腳印,走出屬於自己的路。

—————END—————



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦