在未來,編程會不會成為一項基本的生活技能?

在未來,變成是否會成為一種基本的生活技能,每個人都應該會. 如果這樣,軟體行業會有怎樣的影響和發展?


什麼叫「基本技能」呢?就是那種會了你沒有多牛逼,但是不會你會非常非常慘的東西。

比如說,駕駛。我身邊很多不會開車的人,他們沒有非常非常慘。

比如說,英語。我身邊很多不會英語的人,他們沒有非常非常慘。

比如說,投資能力。我身邊很多不會投資的人,他們沒有非常非常慘。

如果你即會英語,又會投資,你會非常牛逼。但是不會的人不會非常非常慘。

另一方面,識字,不會的話你會非常非常慘。

基本的法律常識,不會的話你會非常非常慘。

只有到了不會編程就非常非常慘的時候,編程才是一門「基本技能」。


編程就像識字、數學、外語、化學、地理一樣,你會,你的知識外延就更廣、機會更多、生活可能會更好,你不會,也不影響你吃飯睡覺生存。我認為將來也還是會這樣。


不會。紐約市長前幾天在twitter上說,他打算用Codecademy來學習code。

然後Jeff同學寫了這樣一篇文章: Please don"t learn to code http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html

其中有這樣一段話

To those who argue programming is an essential skill we should be teaching our children, right up there with reading, writing, and arithmetic: can you explain to me how Michael Bloomberg would be better at his day to day job of leading the largest city in the USA if he woke up one morning as a crack Java coder? It is obvious to me how being a skilled reader, a skilled writer, and at least high school level math are fundamental to performing the job of a politician. Or at any job, for that matter. But understanding variables and functions, pointers and recursion? I can"t see it.

簡單翻譯了一下:

有些人把編程看作生活的必備技能,甚至覺得應當把編程像閱讀、寫作和算數一樣教給小孩子。那麼我問你,如果Michael Bloomberg(紐約市長)若有朝一日變成一個糟糕的Java程序員,他就能把紐約,這座美國最大的城市管理的更好么?就能把他原來的工作做的更好么?(明顯不能嘛~)

另外一個角度來看,使用計算機必然成為將來人類生活、工作中非常重要的一個部分。的確現在有很多非專業的程序員需要編程,他們甚至能用excel做出類似桌面應用程序的效果,把excel的表格當作資料庫來操作。但長遠來看呢?二十幾年前操作系統還沒有圖形界面的時候,可以說每一個電腦的使用者都是coder,否則根本無法操作這個笨重的機器。那麼多程序員努力這麼多年就是為了讓你即使不懂編程也能操作這台機器,讓它做任何你想做的事情。現在的階段是處於:常見的需求已經有現成的程序可以通過簡單的交互完成任務,然而面對複雜、個性化的任務,則往往離不開coding。可以想像,若是時間再往後幾十年,恐怕隨便哪一個人都可以隨時創造一個自己需要的程序,而不需要你寫一行代碼。

所以說,非專業程序員(或研究人員),把coding當作一項基本生活技能是不必要的。如Jeff所說,你花那麼多時間去學編程,還不把時間放在去學習如何檢索信息、去淺層次地理解計算機是如何工作、又或去學習如何更好的和他人交流。


我對這個問題的理解:

可以成為,也可以不成為。

我很早就認為,計算機不過是一種工具,就像語言一樣:不會使用工具死不了人,但會讓人死得很慘。

如同@馮東 提到的,但又不完全同意:

會使用計算機就像會用一門語言(包括母語)一樣,而非必須會一種外語:不會說話,會很慘很慘,但還死不了人;不會說英文,無所謂:因為有翻譯人員,或者已經有人把你想知道的東西翻譯過來了。

首先,有必要說明一下關於本問題我對「未來」的定義,那就是:「可以數得過來年份的將來某一天」,可以是50年、100年、1k年。

其次,假設0:我在下文提到的所依賴的工具都已經「實現」。

  1. 自然語言編譯器 已經實現(假設1)大部分人類不需要從事自然語言的編譯器開發(將自然語言編譯為計算機語言),想做什麼,都用自然語言進行描述就行了。而由那個時代的一個或一些個「程序員」(人或計算機)負責實現並維護自然語言編譯器。——從這個角度而言,編程其實和說話一樣——算是一種生活技能,但實際上等同於說話——是一項基本的生活技能。
  2. 因為各國人民的自然語言不同(假設2:巴別塔還在),而自然語言編譯器 支持多語言(假設3),那麼人們還是不需要掌握其他語言,就能控制「計算機」。——如果不支持多語言,則還需要開發一種翻譯機(把多國語言翻譯為自然語言編譯器能懂的統一語言),或者為自然語言編譯器製作語言包 (lang. lib, multi-lang xml)。
  3. 「計算機」(或那個時代的機器人)還沒有高級到學會「讀心術」(假設4),即:仍然只能由人類主動告訴他們:由誰或誰們(Who)、 什麼時候(When)、在哪兒(Where) 、做什麼(What)、如何做(How)、做多少次(For, while, times)、做到什麼程度(Iteration time, bias error)、什麼時候才根據之前要求的條件做(Event)…… 這就需要那時的「程序員」開發出一種那時的「腳本語言」,支持:將以上這些限定語(自然語言形式)翻譯為自然語言編譯器所支持的語法。
  4. 假設5:上述 腳本語言 還沒有完全「自然語言化」。——從這個意義上說,如果人類不想死得很慘,就得學會這個「生活技能」;但它也不是必須的,因為有「人」會「腳本語言」,而我只要知道這個「人」的存在就行了。——當然,如果這個假設不成立(即已經完成了腳本語言的「自然語言化」),編程語言仍然不會成為一項基本生活技能。


想起了 那些年我們追過的女孩 裡面的台詞

十年之後 我連logN是什麼意思都不記得,但是我還是會活得好好的。


有朝一日編程會變得像吃菜一樣容易,自然人人都會了。我相信這一天會到來。


不會,絕對不會。

舉一個不太恰當的例子:就像絕大部分人都識字,大部分人寫過作文,可是作家依然很多一樣。

或者這麼說,現在會開車的人多吧?可是司機這個職業沒有消失吧?

社會的分工會隨著生產力的發展越來越細化的。


其實編程語言最早被發明出來就是給其他學科的科學家用的。你很難想像哪個程序員能理解的了這些專業的東西,所以這些科學家必須學會自己去寫程序。

還有HTML,很多人都覺得這是給程序員用的,可是我覺得HTML本身就是設計被普通人用的。

我覺得程序員是用來解決一些大家都需要的程序,比如如果很多人需要計算個人所得稅,那麼程序員寫一個,並且各種情況都考慮的很完美,然後大家一起來。還有一些底層,比如操作系統,需要程序員來寫。而你自己需要的,比如你每天早上開機希望電腦做的事情,或者公司內自用的一些小的功能程序,是應該自己去寫的,請人來寫太麻煩又費錢。


個人認為這種情況是不會發生的,在未來,計算機網路和軟體的概念會越來越弱,網路會完全融入到人們的生活當中,就像水電一樣,軟體則會越來越多且使用方式越來越簡單直觀,因此很多人根本就不會有編程這個需求。

再來說說,除程序員外有哪些人可能會有編程的需求。這類人需要更深入地理解計算機才能在信息化高速發展的時代更好地獲取信息或者是打造適合自己的工具以提高效率,很明顯這類人必定是少數,這類人有可能是科學家、興趣愛好者或是一些高端人士。

最後舉個不是很恰當的例子,沒有人會說我為了更好的看電視而去學電視的組成原理吧,同樣普通人也不會為了更好地使用計算機而去學習計算機的原理,現在人們已經很少去管計算機如何組裝了(最早期使用個人電腦的人不光要組裝,可能還需要焊接),總之用戶接觸到的計算機概念越來越少,軟體的使用也是一樣,早期的用戶只能對著漆黑的控制台(如果情況一直是這樣,且人人都需要使用電腦的話,那編程可能真的會成為必備技能),然而現在操作系統不斷進化,使用軟體的方式也正在經歷著一場革新,它們的共同點是其都朝著更簡單、更易用、更強大的方向發展。

未來普通用戶不需要學習編程,但是編程為人類而服務,那麼對軟體行業的意義就在於,這需要更多優秀的軟體匠人,創造出更多優秀的工具來服務於社會,使更多的人享受到編程為人類社會帶來的美與智慧。


隨著軟體開發技術的革新,我認為有朝一日編程(或者說,自定義功能程序開發,包括但不限於僅僅編碼)會成為一項人們日常生活必不可缺的技能。山頂洞人無法想像書信往來,中世紀人無法想像電子郵件,20世紀人無法想像社交網路,現代人可能也很難想像未來程序設計是多麼簡單的一件事。

當然那時編程很可能也也不是現在編程的概念了。


不會,我相信科技會使大多數的人越來越懶,只知道按個按鈕就能輕易地解決問題了,至於為什麼會這樣,怎麼實現的,誰又在乎呢


如果在兩百年前,有人說:機械製造和維修會不會成為未來的基本技能? 是不是很可笑


我相信會是。雖然現在在沒接觸過編程的人看來編程似乎一樣很厲害的技能,實際非也。隨著計算機的發展,計算機將滲透都生活的每個角落。而編程過程也就是跟計算機下命令的過程。所以。。。。


技術改造人,人又改變技術,人會不斷適應和改變.不要擔心


不會,電工還會是電工,不會人人都會電工的技能,程序員也一樣,即使再普便。


編程是一種手藝


應該不會,特別是開發端的編程,以後所謂的「編程」應該變得更大眾化和智能化,甚至可能共享化。比如我有一個機器人,我要他會智能洗碗功能,那麼我只需要給它一個指令,它會自動在雲端找到相應的代碼載入,然後執行你想要的功能。


不會,未來有可能如果不需要會編程,就可能通過工具實現自己想要的東西。最近蘋果好像就申請了一項專利,不需要掌握編程就可以開發iphone和ipad應用。可能在未來還會有相似的東西出現。


什麼叫「基本技能」呢?就是那種會了你沒有多牛逼,但是不會你會非常非常慘的東西。

比如說,駕駛。我身邊很多不會開車的人,他們沒有非常非常慘。

比如說,英語。我身邊很多不會英語的人,他們沒有非常非常慘。

比如說,投資能力。我身邊很多不會投資的人,他們沒有非常非常慘。

如果你即會英語,又會投資,你會非常牛逼。但是不會的人不會非常非常慘。

另一方面,識字,不會的話你會非常非常慘。

基本的法律常識,不會的話你會非常非常慘。

只有到了不會編程就非常非常慘的時候,編程才是一門「基本技能」。


我不認為所有人都需要編程。

現在能想到的程序都有現成的,花費很少的代價就能得到,更不用說還有無數程序員,變著法的製作新程序。

每個人都寫一樣的程序嗎?都不一樣的話,需要多少個創意啊?


推薦閱讀:

你的職業技能在生活中有哪些用途?
你所在的行業里高、中、低收入者是怎樣的一種狀態存在?
如果LOL英雄技能能夠對友軍也有效的話,哪個英雄會最讓人頭疼?
經管出身的你都有哪些技能?
你有哪些技能、學習活動是透過網路或在線學習而學會的?

TAG:生活 | 軟體 | 程序員 | 工具 | 編程 | 技能 |