技術是一條湍急的江流,咱們或乘着本身的小船,或搭着公司的大帆,在激流中迴轉翻滾,舊的路途必定會過去的,但新的路途須要你的經驗渡過。css
咱們來談一談,技術是變得‘簡單’了,仍是變得更‘難’。html
做爲一個野生程序員,從電腦小白,到前端er。記得第一次接觸編程,更準確來講是「搬程」,是在2014年。那年壯志特別壯,搞定一些簡單的html+css+js插件以後就找了一家公司工做,期間很是崇拜那些可以用javaScript寫出輪播圖、幻燈片、tab切換的「大神」,直到我真正接觸到編程。。。前端
在領略了面向對象的魅力以後,逐漸的,好像全部的問題都變得更簡單,不管是網頁動態效果,數據加載仍是比較炫酷的幻燈片、圖表,它們所有都被激活了。這段時間我以爲技術是愈來愈「簡單」的,可不是,自從理解面向對象或者各類設計模式以後,一切的問題均可以找到對應的方法,而且極可能有一個更加簡單的庫提供支持。vue
我以爲是解決問題的流程發生了變化,大多數處理問題的流程是,java
發現問題-》思考-》百度代碼-》功能分析-》完善,react
而如今變成了jquery
設計思考-》功能分析-》百度代碼-》完成-》發現問題-》完善;webpack
能夠看到的是,碰見問題解決問題的效率是低下的,抽象的思考事後解決問題的效率纔會變得更高。程序員
技術的快速發展勢必引出層出不窮的框架,而框架的發展必然是趨向高度抽象的。抽象給使用的人帶來了簡單,而對理解的人帶來的倒是更加的複雜。例如angular的出現,整個前端隨即進入了抽象時代,AppModule、注入器等,再到vue,須要認可的是vue的學習曲線是相似框架中最友好的,編碼方式也是最溫馨的,可是vue的抽象層可不是那麼簡單,es6
還有react,你相信有某我的告訴你react全家桶很簡單嗎?曾經有一些後臺歐巴告訴我,這東西很簡單,和xxx很像,給他幾分鐘就ok了,真的ok?
如何理解抽象
抽象是經過分析與綜合的途徑,運用概念在人腦中再現對象的質和本質的方法,分爲質的抽象和本質的抽象。分析造成質的抽象,綜合造成本質的抽象(也叫具體的抽象——摘自百度百科。抽象是對現實事物的分析,再進行綜合,抽象事物的本質,把事物複雜的一面轉化成一個相對簡單抽象。
抽象不表明簡單
不少時候,技術看起來並非愈來愈‘簡單’,但也不太像愈來愈‘難’,事實上它正在變得愈來愈‘抽象’。抽象並不表明簡單,但是理解了以後又不是太難。我認爲它是介於之間的,不一樣的東西。就像從微觀到宏觀的轉變,細胞到人,外表是簡單的,內在是愈來愈複雜的。
就像是一支鉛筆,你知道它是一隻筆,它能夠寫字。你能夠不知道他內部的筆芯是怎麼造成的。可是你不能說新的圓珠筆比鉛筆更簡單,在使用層面確實是的,可是它是一個假象,由於使用它的人根本不會關心這支筆的內在。——可是咱們不同,咱們是開發者。咱們須要瞭解這隻鉛筆內部和那隻圓珠筆究竟有什麼不一樣,而圓珠筆每每比鉛筆要複雜得多,它們都有一隻筆芯,可是圓珠筆的筆頭表明着工藝,鉛筆則可能只表明了筆的基礎。
不要認爲新的技術更簡單!
新的技術每每是對舊的技術的封裝抽象,提出了更多的概念,更多的解決方法。可是它的內在並無發生多少變化,react、vue、angular要依賴webpack等工具,它們的本質仍是es6,是es6更復雜的功能抽象集合,那些實用的、簡單的API對工做的幫助不可謂不小,但對你瞭解本質的幫助愈來愈無力,你並不能在vue語法中學到多少js知識是嗎。jquery的api囊括了大部分dom操做,它使你更缺乏動力深刻那些基礎了。
基礎和抽象思惟
我認爲,深刻基礎,鍛鍊抽象思惟,纔是學習新框架的最佳途徑,僅僅上手一個mvc框架可不能幫助你的技術提高多少。人類發現微觀世界,使科技面目一新,技術也須要探究「微觀」,計算機原理更新的速度和框架更新的速度,已經不言而喻。
技術並非愈來愈簡單的,框架是你的羈絆
-------------
可能表述有問題,引發了一些誤解,框架的意義我以爲就跟名字同樣,架子,用框架開發能夠不須要知道原理的,房子會住就好了。
重要的是原理,原理被抽象了,框架有時候遮擋了它們。
例如你能夠不知道react的setState是怎麼工做的,內部用了哪些API,事實上它表面上足夠簡單,實現功能的時候不須要懂它的原理。
轉載請在開頭註明出處