設計師應該學編程嗎?設計師學編程的經歷和感受是怎樣的?
最近看到一篇不錯的文章,http://wangyazhou.com/2012/04/11/designers-learn-coding.html,不知你怎麼看
我是一個設計師,此時此刻,我正在Debug。。。
魔獸世界中有暗影牧師,他們「左握光明,右執黑暗,在自我救贖的長路上,僅與影同行。」
IT界中有Desigrammer,他們通常很偏執,苦惱於一個未能對齊的像素,糾結於一個長短不適的變數名。他們在尋常設計師眼中一副鬍渣子的科學怪人嘴臉,在泛泛程序員間一身各種范兒的文藝氣息,他們在軟體工業化的夾縫中孤芳自賞,他們如暗影牧師般孤獨,不同的是,你不能洗點了。
事實上編程作為一門技藝,被很多的人誤讀。寫程序這活兒並不沉悶,一個優秀的程序員,對待自己寫的程序有如藝術品一般,如詩人寫詩,樂人作曲,講究的是程序的優雅。各種繁雜的變數,邏輯,事務,在你的掌控下整整有條地運作起來,其中的控制欲,那種運籌帷幄的快感,妙不可言。
如果你還長於設計,那這種快感會來得更加濃烈。因為你可以獨立地開發一個產品,程序的注入為設計帶來了生命,重要的是,設計讓程序有了軀殼,有了可交互的表現形式,讓它更近乎於藝術品。
不要帶著學寫代碼的心去學編程,正如你不會帶著學畫畫的心的去學設計。如果設計是對美的追求,那麼編程便是對邏輯的迷戀。
為了可以獨立地開發產品,學習Flash ActionScript,或者HTML5+JS,或者時下熱門的iOS(Objective-C),Android(Java)開發是必須的,這些程式都可以很方便地與設計結合,讓你心目中的軟體產品成為現實。
人生漫長,哪有那麼多的該不該學習?人生苦短,早學習早享受。
------------------------------------------ 現實的分割線 -------------------------------------------------
雖然暗影牧師solo練級有很多樂趣,但要下副本打BOSS,就必須要洗點成為一位專職奶媽。
Desigrammer如是,個人開發產品有很多樂趣,不過基於人力資源不足,只能做些小型的產品自我滿足一下。要追求效率,做大型一點的項目,還是需要團隊合作。如果加入大型的互聯網公司,你可能會面臨一種尷尬。工業化的軟體生產並不需要Desigrammer,比起專職的軟體工程師,你對各種編程知識、開發工具、項目管理方法還了解得不夠深;作為設計師,你的視覺作品或許還不足夠有說服力,HR認為你是個怪胎而不是個奇才。
如果你嚮往成為一個Desigrammer的浪漫,找個小團隊,創業去吧!
如果你享受孤獨,Desigrammer會是你生命中一段十分美好的經歷。介紹一下個人solo的絕筆:http://gefostudio.com/dc
我是一個視覺設計師。在做設計之前,我大學的主專業是信息工程。後來還修了另外的專業——廣告設計。
跟許多開發工程師一樣,我大學學習了C,C++,JAVA,都是從VC6.0,線程調度,環境保存和MFC過來的。畢業作品之一是運用android編程,工作之後又自學了HTML、CSS和JS。我在學校中,還算是編程過得去的,特別是對演算法的推算。但IT技術發展得如此之快,我現在這點開發伎倆,可能在設計師里可以顯擺一下,但在專業的開發工程師里,簡直不值一談。
我最近也發現有很多類似的問題,說產品經理是不是應該學PS,程序員是不是應該學設計,現在是設計師應該學編程嗎?
自己認為是這類問題並沒有問到關鍵點上。因為首先解決的問題前提是——產品經理為什麼要學PS,程序員為什麼要學設計,而設計師為什麼要學編程?是為了在和相應職位的同事PK時更加有底氣?
「諾,按照我編程經驗,你這個編程是有問題的啊。」「啊,你說實現不了?用這個XXX函數就可以實現啊!」那你相信我,任何一位大神既然決定忽悠你,那麼你學再多的PS和JAVA,在他面前都是班門弄斧。你面對的是信任和溝通問題,並不是設計和開發的問題。
是為了更好理解對方的意圖?
那麼就回到更關鍵的點子上了,產品是不是應該懂設計,設計師是不是應該懂編程?答案是肯定的。但方法是多樣的。要懂編程,不一定得去看開發教程去學JSP。懂設計,不代表得去學PS,AI,FL。說到底,JSP也好,PS也罷,都是工具而已。我個人是挺不喜歡產品和我討論關於PS的操作細節的。我相信,開發大神們應該也不會樂意和一個設計師聊動態規劃吧。兩人根本不在一個水平上,聊得越多,更顯得其中一方懂得越少。
懂設計和懂編程,不意味著我們就得去學PS和JAVA(這種方法性價比太低了)。希望懂設計,多看設計一類的書,看看設計展,畫畫都是有效的。編程,則困難些。但我覺得恭恭敬敬請開發吃個飯,問問他一些開發原理,他會很高興地告訴你的。
這才是王道。不然就像之前提的問題一般,並沒有說到根本之處,而是在說皮毛之處:如何在四小時內學會用 Ai 做 UI?
不知道設計師看了,有什麼感覺?一個會點AI的產品經理在教另外一群產品經理AI,然後一起歡呼,AI真是簡單,UI SO EASY!我很擔心,認同了自己「會」AI的產品下次直接拿著自己畫的UI,叫交互設計師直接出圖時,交互是覺得溝通輕鬆多了,還是滿臉黑線?這是什麼感覺呢?就好象一個客戶學了寫字,然後拿著自己不是很好看的字,叫書法家按這種感覺寫。書法家還得費勁,發揮巨大的想像力來猜測這究竟是什麼?
明明是自己溝通能力上的不足,就不要想著學點對方的專業知識來解決問題。兩碼事。開發工程師不會因為設計師懂什麼for循環或會敲hello world就多尊重設計師。這可是他們初中就會的啊。
其實設計師也一樣。我同樣不喜歡開發工程師費了九牛二虎之力學設計。術業有專攻,就讓專業的人來做專業的事情吧。
工程師不需要自己仔細去看像素之間是不是有問題,而是在我們圖標下加了1像素白色投影時,他們可以意識到這不是BUG,也不會找我們,叫我們去掉這投影。我之前便想通了,所以不再打算學習編程語言,而是多和開發GG吃吃飯,請教他們關於實現原理的事。畢竟,我每天已經坐在電腦前10多個小時了,沒必要還再窩上2小時學編程吧。我圖什麼呢?正在北美某大學交互設計專業大二學習中。我們專業要求要學編程。設計專業中communication design和我們interaction design都要,我所在的ixd要求更高一點。 具體的課表見此回答:「界面設計」「視覺設計」「交互設計」之間的關係是什麼?如何理解?
我們老師的理論:現在是互聯網時代,設計師的工作中遇到web相關的問題越來越多,純粹的視覺已經滿足不了客戶需求。
我認為未來程序員和設計師的關係應該是這樣:
因為設計師對用戶需求的了解,溝通的能力,美感等方面比較強。應該由設計師來直接面對客戶這一方。程序員的工作應該是指向設計師的。程序員應該是開發讓有編程基礎的設計師容易使用的工具,方便設計師設計網站。。etc。比如現在在國外的話,很多freelance的工作是做wordpress blog之類,叫程序員來做大材小用而且大多數碼農對視覺方面也沒有什麼feel。。。但是像有編程基礎的設計師做這個基本上易如反掌。
大家都從技術或者職業方面討論了許多,我想從另外一個角度回答一下這個問題。我個人一直認為最偉大的創造者應該是有品位的工程師。千百年來工匠們都用自己的雙手把自己大腦裡面的構想實現出來並為人所用。現代的分工讓設計師和製造者變成了兩個人,但每次我看見手工藝人和木工的作品我仍然深深的被他們的創造能力折服。他們構思精巧,品位出眾還能以自身的能力和技術克服生產中的問題最後把腦海中所思所想創造出來,讓我們可以觸摸到,使用到。雖然現代的工業化生產讓許多好的設計可以惠及更多使用者,我相信每個優秀的設計師心裡肯定會痒痒的,希望自己能親手做出自己的設計。我認為這才是完整的過程,一個創造的過程。當然這裡更多的是側重說產品設計方面,平面設計師自己本身就能運用各種材質和技巧實現自己的構思。這裡說的不是職業,不是專業,而是人本能的渴望用自己雙手創造出美的東西的一種情感。親手觸摸到材料,親手搭建架構,這種對觸覺的渴望仍然在我的骨子裡。所以我的觀點是,如果僅僅把自己定位成一個狹義上的設計師,那了解編程是為了更好的工作;但如果你認為自己是一個創造者,那麼製作的技能與工藝則是本身就必須具備的素質。最後,這個問題時常讓我想起喬布斯一直強調想做好軟體的人應該要做自己的硬體,其實我覺得道理一樣,就是要把東西極致好的做出來,如同木工一樣畫好圖紙,拿起刨子。
我個人覺得是一個自然人都應該學一點編程,你可以從另一個角度看待這個世界的運轉。
之前學過一點編程,Flash和CFM(其實這兩個也不能算是正經的編程吧),過程相當痛苦,十來年前沒什麼資料,全是靠看國外網站一點點扣,寫了一點在線調試,至今還記憶憂新。還有一些不實用的參考書,走了很多彎路。
我建議想學編程的設計師好好去找一本較好的開發書來看,像Ben Forta、Robert Panner這種算是寫的好的了,這其中有很多UCD、可用性的問題,因為是開發人員來寫書,免不了以開發者的思路來寫。歐美現在有很多「每個人都要學點編程」的呼籲,互聯網行業的設計師那更是不用說的了。但我覺得那個「點」字實在不能忽略。instagram創始人肯定不是個一般腦子好的人,一般人不可能做到他那樣。
我大學專業「數字媒體與技術」(理科專業),可謂藝術與技術兼得為目標的瞄準信息時代人才的專業。但因為那個「與技術」三字,所以我大學是偏重計算機多,課程里c、c++、vc、圖形學、遊戲開發、資料庫、操作系統都有。
我自己,從小喜歡電子設備,初中過參加信息技術競賽(實際上就是pascal編程……),大學時(雖然中國大學生平均水平確實比較水、考試難度比較水 )編程類課我是全專業里最好的之一了,因為中學時就有用過一段時間linux所以我選修還報了linux相關的。英語我也是全專業最好的之一,看編程文檔沒啥問題。
在美術方面,我插畫/GUI/攝影/平面都靠自學達到了准專業的水平。我一般學一樣東西就是以這樣的水平為目標的。但唯獨編程……大學期間沒寫出過什麼覺得拿得出手的程序。坑太深……判定不可能調度如此多的精力……所以我後來就再也不去深究編程了,說直接點就是放棄啦。我同學那更是別說了,根本不成生產力。畢業搞計算機相關工作的人屈指可數……而且兩三年下來後有些最後還是干其他的了。
浙大也有這個專業,(因為同是杭州的所以稍微了解點)我發現浙大的學生,和我同學比起來就是,編程上要生產力高不少,但上不了檯面,至少和純計算機專業的差的略遠。設計和畫畫方面,好了那麼一點,但也是找起工作來沒啥競爭力的水平(至少遠遠達不到我眼中的「還行」的水準,和中國一般的混學歷的藝術生比起來或許還算得上差強人意)。浙大那邊學生對專業的反應似乎和我同學差不多,計算機學的不怎麼好,設計也自知不太行……最後畢業了找工作都不知道到底幹嘛。其他藝術院校的話有類似的「數字媒體與藝術」專業,但整體情況差不多。雖然那個時候這個專業出來不久,雖然我確實要求比較苛刻,但上面這一堆我是想說,設計/藝術和編程要都達到掌握的程度是多難。一般來說全才是不用指望的……我挺贊同@蘇芸 的答案。其他瑣碎的觀點的話:- 多學點從來不會是壞處,但編程從學習到能實際產出寫有用的東西其實是有很長的路的。何況IT方面技術更新略快,很多專職編程的都要不斷學習新技術才能保持競爭力。
- 設計師學編程比程序員學設計要難多了。至少從門檻/成果上來說是這樣。設計是個比較虛的東西,人人都可以做出一點,只有好壞差別。程序是很實的,水平不夠壓根就是直接出不來成果,別提比較成果了。
另外,我在日本讀設計後,好幾次被導師說理科出身所以思維上不行……和完全學設計的人有差距……「発想力」不夠。真是打擊人啊。
我也確實覺得程序員的一些過分機構化系統化的思維對設計師是負面的。何況中國人本身想像力就差了不止一個層次。感覺說下去有地圖炮的危險就不繼續了……所以,除非你在設計上已經頗有水平了,或者實際工作需要,一般我不建議設計師去花很多精力去學編程。簡單入門,體會下樂趣就可以了。非常同意某人的說法,「如果你享受孤獨,Desigrammer會是你生命中一段十分美好的經歷。」我稱這類的人叫做Desiengineer. 我是一名設計師,最近也在學習編程,也許稱不上編程,只是學習寫一些腳本。但是沉迷與一種和做設計相同的狀態:drift。Bruce Mao 在《Incomplete Manifesto For Growth》(應該叫設計師成長不完全宣言吧?)裡面有一條:Drift:allow yourself to wander aimlessly. Explore adjacencies.Lack judgment.Postpone criticism.也就是所說的發獃或是漫無目的的神遊更加玄乎些:靈魂出竅。以前,我只有在完全沉浸在做設計的時候和一個人長跑的時候才會有這種狀態。自己彷彿處於一種永恆的動態,與身外的世界脫離。可以漫無目的的不想,也可以漫無目的的想很多事情。在學習編程的時候,也出現過同樣的狀態。看似僅僅享受鍵盤敲擊的韻律,實則輸出的卻是正確的代碼。
內心的那副畫面是:靜坐在那副達利的時間的作品中,時鐘的指針飛速旋轉,一切都在融化。只有我,站在畫外,靜靜的欣賞畫中一動不動的自己,嘴角路出詭異的笑容。
但說白了,這種狀態就是孤獨,自戀所致,只有在設計,跑步,和編程中。我才能接觸到那個我自己構築的「個人共和國」。我才能孤芳自賞自己的設計,自己的影子和run出來沒有bug的程序。僅僅將自己的感受白描了出來。不知道有沒有同樣感受的人?個人的理解是:
編程是一種技能。既然是一種技能,就完全可以學,並且可以學好。這不是說一定要對自己今後的發展有什麼幫助,哪怕是一種愛好,都是可以鼓勵的。
只是並非人人都有這種時間和精力,去另外再學一門技能。
就像很多音樂家沒時間再學美術,很多美術家也沒精力去學音樂,類似的道理。如果有時間安排和精力富裕,是非常願意再學編程的,無論我原先學的什麼專業。
學一種全新的技能,其實是件很有趣的事情。
其實接下來最重要的是,如果能把一種技能熟練、完美地掌握,並與自己的專業結合運用,必然會使這門技能發揮成為藝術。有幾點好處:1、可以自己做原型,快速測試;2、更有效的和RD或FE溝通;3、更好的了解軟體架構與開發流程;4、提高邏輯思維能力,對於複雜系統的設計很有幫助,等等……所以還是有必要的,
由於我是計算機系的,現在做交互,雖然編程學的不那麼好吧,感覺還是有一定優勢的……初學的話,可以先從自己工作相關的領域學起,以後再慢慢擴展,最好的方法就是看教程,自己動手~這樣雖然精通有難度,但是作為設計師也足夠了,需要時可以不停的補充~
"不管你是交互設計、平面設計、用戶研究員,又或者你自詡為一名產品經理,請花些時間學習一下編程吧。放棄那些所謂的恐懼、自尊和無休止的抱怨,今天就開 始!如果你能掌握顏色理論,如果你能理解視覺層次,如果你可以從用戶的行為中總結出有價值的信息,那麼你沒有理由學不會編程。"
我認同這種觀點。對於web開發相關的設計師來說,懂編程會有很大的幫助。懂編程,就相當於掌握了很多種工具,設計師在設計的初期、中期以及全程都知道如何運用各種工具去做各種實現。不了解工具,無法確定所做的設計是否合理,需要別人的配合和確認才做得到,但那樣就涉及到溝通與協作的問題,比心知肚明地閃電思維多了很多不確定因素,同時效率也沒法兒比。(其實,我真的不明白,不了解工具,怎麼去設計?憑什麼去設計?)
我不是設計師,但我是自學編程的,除了學些java基礎之外,甚至沒有確定的老師。3年左右的時間,我一個人就可以開發web系統。從頁面的CSS、JS到前端處理的jsp,到後端處理的struts、javaBean,到存儲用的資料庫,到伺服器搭建與維護。我不覺得編程有任何難度,只要你的邏輯思維夠好、能夠分析並找到解決問題的辦法,再加上勤奮。別人看兩遍懂了,我看個五六七八遍總可以吧。而且跨專業的知識結構與經驗對編程同樣是有幫助的。
當然,編程是有層級之分的,要達到開發全方位發展沒有必要,知道自己的目標,夠用就好。多了就是浪費。綜合的能力才是競爭優勢。個人認為,作為一名設計師,多少要懂一門編程語言,這樣對設計無疑能有一定的幫助,特別是在理解上。剛開始學可能會有點枯燥和糾結,但一旦進入狀態,也就沒什麼特別難的了,對邏輯思維有一定的要求,不過下功夫是不能少的,學編程需要多動手寫。不過還要看個人情況了,如果有時間的話可以考慮試著學學看。
高中喜歡編程,大學陰差陽錯,進了設計專業,於是對移動領域的交互設計(用戶體驗)感興趣,畢業後供職於一家蠻大的公司,做了10個月設計師,對其中受到的束縛——尤其是開發部門的「實現困難」的託辭非常不滿,遂離職,到一個創業公司做前後端開發(php+jQuery)。三個多月後的如今基本上可以獨立寫小站了。
現在對設計和編程的理解也發生了很大變化。程序員和設計師的思維方式天然不一樣,這是由屁股決定腦袋的。設計師想的是如何使用,是一個物體和人類世界的接觸面,而程序員想的是如何實現,是物體內部的脈絡。我就發現在兩個狀態之間遊刃有餘的轉換不是一件輕鬆的事情。 @蘇紹文 的回答很能表達我的心情:「左握光明,右執黑暗」。這兩種思維方式很多時候是矛盾的。當我的大腦進入寫代碼狀態時,如行雲流水般寫出一個控制項,覺得實現很優雅,可是第二天早上一看,發現交互就是一砣…,那麼修改。最終代碼加長一倍,加若干if語句,總算解決問題。
我跑題了:問題是設計師應該學編程嗎。我的答案是否。我說設計師不應該學編程,不是因為編程沒有價值,而是學點皮毛的編程不如不學(所謂的皮毛就是學完if class等關鍵字,寫個留言板),因為皮毛的編程並不能給你帶來視角上的改變,你看問題的方式還是原來的(即:人們將如何使用(或者看待)我的產品,而看不到這個產品是如何運作的),所花費的精力並不值得(尤其是有些設計師的邏輯思維實在是和程序員不在同一個次元)。當然,如果你能夠深入學下去,並且不覺得是件苦差事,我自然不反對。
相反的,我認為程序員應該學點設計,因為這是立竿見影的,將會對你的世界觀產生一個震撼。並且,讓你更能理解設計師們,設計是權衡,不能讓所有人滿意。比如:1. 程序員、和設計師都屬於一個特殊的群體,你們認為好用的,用戶未必認為好用。(你和你的用戶未必很像)2. 用戶並不總是做最優選擇,他們愛點擊他們注意到的第一個元素。3. 「設計就是讓網站看上去更好看」這句話是錯的,比如,過多的使用圖標會降低可用性。……設計師學編程是為了更好的表達,而不是為了學而學,一切都以自己最為好的作品為努力標準~
我不是設計師,我是編程的
在我看來,設計師沒有必要去深入地學習那些細節的東西
但是,我想作為設計師,應該了解,自己的設計方案,哪些是可以實現的,容易實現的哪些是不能實現的,無法實現的不要到時候出現你設計好的方案,程序員告訴你無法實現,那就白忙活了
反過來,程序員是不是也該學學設計呢?那是當然的。
只有各有所長,但是都了解對方,能夠理解對方的設計或者實現,才能夠將兩者的優勢都發揮出來,達到1+1&>2的最佳效果非常有幫助,推薦去多理解架構層面的知識。
在外企基本上不懂前端技術的設計師都沒的混的,特別是google、微軟。架構層面的知識多的是思想,少的是細節,了解思想讓你可以站在巨人的肩膀上。很多人說會束縛思想,其實純粹是扯淡。中國設計師的兩大缺點,一個是眼界狹窄,沒見過啥世面;二是鑽不下去,不能掌握工匠的匠藝。一堆高談闊論談戰略和市場格局的設計師p用沒有。學工業設計出身,大三學習交互設計,一直用flash搞演示。大四寫靜態頁面加少量jquery。
畢業後除了做視覺設計外,還做了不少前端工作,尤其是學習使用WPF(win7、office2007所使用的前端技術。)技術讓我獲益匪淺。在項目中將微軟WPF體系下的控制項樣式全部覆蓋一遍,設計自定義控制項滿足業務需求,改良用戶體驗。這讓我的設計思考,在純感性認知中注入了結構化思考的感悟。理性和感性的碰撞後,做設計會更可控。後來趁工作之餘,將所學所感整理了一個系列教程(有點枯燥羅嗦):http://portfolio.designbarder.com/category/tutorial/ 這個教程據我所知在國內各大UED團隊都有不少人閱讀過。我想如果設計師覺得沒用,搞UED的人也就不用去了解這個了。另外,關係型資料庫和UML搞設計的可以好好了解下,這個和信息架構密不可分。最後做數據規劃,就又更有意思了,那又需要很良好的信息架構知識儲備沒人提Processing?專門為設計師設計的作圖語言!《愛上Processing》
推薦一個TED演講,Golan Levin: Software (as) art
當然不是必須學,不過學了會有很大的幫助建築師應該學搬磚和泥嗎?比如安東尼奧高迪工業設計師需要學工藝嗎?比如喬納森伊夫
我理解設計師得精通平面設計、web頁面設計,最好能手寫html和css,js也懂一點為佳;交互設計由於是邏輯思維驅動,pm可以兼任。
嗯,本人是一個最懂設計的程序猿,同時也是最會寫代碼的產品狗,還是一名最懂業務和需求的設計獅。so,本人做的東西深受用戶喜愛,都說簡單又好用。嗯。。。就是這樣
推薦閱讀:
※如何評價中國特供RX470D定位,比1050ti良心嗎?
※如何導入mkv文件至premiere cc?
※只是為了好玩兒,如何學編程?
※那些64k的3D動畫怎麼實現這麼大的壓縮率的?
※為什麼九宮格順或逆時針任選 6 個數字都能被 37 整除?