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

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

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

學習編程的小灰

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

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

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

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

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

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

編程中的理科部分

1.基本邏輯

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

2.演算法

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

編程中的文科部分

1.知識

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

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

2.經驗總結

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

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

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

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

如何學好這門文科?

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

生死攸關,你的投票決定我的去留

各大互聯網公司的開工紅包 最後一個不忍直視!



熱門推薦

本文由 yidianzixun 提供 原文連結

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