這一期內容來和大家分享下很多小夥伴在初學前端會擔心的幾個問題還有一些自己的學習體會
空降時間點:
0'26 數學不好能學好前端麼?
1'46 英語不好能學好前端麼?
4'46 是否會影響本職工作?
7'12 自己學習前端的幾點經驗和體會
Hi 我是三木!
這是《設計師想知道的100個前端問題》系列內容的第四期了。
這期內容我們來聊聊設計師以及一些完全沒有任何編程基礎的小夥伴對前端學習的一些常見的問題和困惑,以及我自己在學習踩坑過程中的一些學習體會。
一
數學不好能學好前端麼?
在我自己沒接觸前端之前,其實我自己內心對於這個神秘莫測編程領域是抱著嚴重的偏見的,總感覺學習這些編程類技能的人就算不是數學很厲害,也起碼是數學成績不錯,像我自己這種數學成績常年在及格線徘徊的人,應該這輩子是不太可能學得會的。
但是當我硬著頭皮學了之後,我發現,其實學習前端並不是我自己想像的那個樣子,它更像是一個工具,像我們平常學習的軟體,我們要學的是怎麼使用它,了解它的規則和功能,並且利用這些功能做出我們想要的效果。只是說這個功能的使用方式是用一行行的代碼,而不是用我們習慣的滑鼠進行操作。
而我之前最擔心的數學問題,壓根就是杞人憂天!
根據我自己親身體驗,我能非常確定地告訴你,只要你小學已經順利畢業了,會基本的加減乘除,那麼入門前端,能寫一些網頁實現很多功能效果都是完全沒有問題的。除非你要學習什麼高級的算法,或者一些深入的圖形學的知識,那麼可能會需要你有稍微多一些的數學知識,但是絕大部分的情況下,對我們這些並不想成為前端大牛的人來說,小學的數學水平就已經夠用了。
二
英語不好能學好前端麼?
我相信這個也是不少人在想學習前端之前很關心的問題,說實話,我自己英語也不好,學渣級的英語。
作為我自己的切身體會來說,英語不好,能學好前端,但是如果你英語好,那麼會對你學習前端非常有利,而且這個優勢會隨著學習不斷深入越發明顯。
其實各種計算機語言,包括前端的這幾門語言,設計的時候用的都是英語,那我們在用的時候寫的時候其實也是在跟各種英語單詞、或者單詞簡寫打交道,比如說html中的各種標籤,像div 就是divsion這個單詞的開頭幾個字母,分配,分割的意思,也可以理解成一個塊,像css的各種屬性,那就更是明晃晃的英語單詞了,像我們常用的background-color 這單詞組合的字面意思就是背景顏色,像JS,你一開始學習的時候,會學到一個聲明變量的關鍵字 叫 var ,其實就是variable 這個單詞的頭幾個字母,就是變量,可變的意思。
如果你的英語越好,那麼你一開始的認知負擔就會越少,你起碼看一眼就知道很多東西是什麼意思,大概能知道是幹什麼用的了,這樣就能減少很多英語不是很好的小夥伴需要去強行記憶的內容。
而且,很多好的學習資源和文檔資料都是英語的,尤其是一些比較深入的和高級的知識,如果你的英文夠好,是有非常大的優勢的。
說到這,我真的後悔上學的時候沒好好學英語啊!
不過,就算你英語不好,你也不用擔心,只要你能認全26個英文字母,能隨口拼出apple,orange,banana這幾種常見的水果單詞,這樣的英語水平是足夠你入門和掌握前端技能了,因為大部分在代碼中的單詞都是非常簡單的,你只要看多了就都認識了。
當然,如果你想要學習得更深入,那你可能就不得不惡補下自己的英語,提高自己的單詞量,提升自己閱讀英文資料的能力,方便自己閱讀和查找一些比較新和比較深入的英文的資料,像我,其實這幾年也都是在慢慢補以前沒好好學習英語欠下的債。
三
作為一個設計師,學習前端會不會影響到本職工作,甚至擠佔自己很多工作之餘的時間?
這個問題,我可以明確地肯定地大聲地告訴你!會!
但是,對於這個問題,我有幾點自己的看法:
首先,如果是設計師,尤其是網際網路設計師,我比較建議是至少有2-3年的從業經驗之後再去接觸和學習前端,前期你可以懂一些前端或者編程的常識,但是如果想要深入學習,最好還是在自己的基本工作業務水平已經比較穩定和熟練的情況下再去拓展前端這項高級技能。
當你已經有幾年的從業經驗之後,首先你自己也可能對自己的職業發展方向有一些基本的想法了,也可能明確知道自己到底是想走什麼細分的設計方向了,比如像有些設計師比較喜歡畫畫或者做一些純視覺的東西,那麼可能前端對他來說就沒必要花大精力去學習了,了解一些前端的基本常識即可,畢竟如果自己都沒興趣,學起來也是事倍功半的,還不如把時間花在學習自己有興趣更擅長的領域。
同時在和團隊打磨產品的過程中,你自己也會在和各種開發人員的工作配合中遇到很多和技術相關的問題,也能讓你對一些技術知識產生一些疑問和好奇,也是有助於你自己去了解和學習前端或者相關的一些編程技能。
再者,如果你覺得所謂設計的本職工作就是在設計軟體裡塗塗畫畫,改改元素,做做原型,那麼在我看來,你首先要改變的是你自己的思維意識,而不是去學習前端或者其他技能。
我理解的設計,其實是一種能用優雅的方式解決問題的工作,並不局限於你用什麼具體的工具,具體的技能,具體的問題,只要能把問題解決了、解決地漂亮了,在我看來其實都是設計。那在網際網路設計領域,如何才能把各種產品的問題解決得更漂亮?我覺得各種複合型的人才就是關鍵,懂代碼會編程的設計師,有審美有想法的工程師,懂技術有品位喜歡研究用戶心理學的產品經理等等。所有這些複合型的人才,其實都是設計師,這樣的團隊能最大程度的減少彼此的溝通損耗,能讓團隊儘可能地都在同一個頻道同一個語境下討論交流問題,從而打造出更好的產品。
還有就是老生常談的一點,網際網路行業就是一個不斷學習的才能生存的行業,如果你不是一個願意不斷學習的人,要麼趁早去轉行找一個不用一直學習的工作,要麼,你就改變自己,把自己平時下班放假用來吃吃喝喝玩玩樂樂的時間,合理安排用來學習,不斷地提高自己,未雨綢繆,居安思危。
四
學前端會不會導致脫髮?
額,這個問題,我覺得應該不會吧,起碼我沒有啊!
我的前端學習體會與經驗
幾個問題說完了,那接下來,我來說一說自己在學習前端過程中總結的幾點經驗。
第一 千萬不要覺得聽懂了就是會寫了!這是初學者很容易犯的毛病,在學習的過程中不太喜歡動手,總感覺聽懂了就好像會了。但是真的輪到自己要動手寫的時候,發現一堆的問題,可能連最基本的寫法都寫不對。要學會編程,一定要動手寫大量的的代碼,這樣不僅能加快對代碼的熟悉程度,掌握書寫代碼的細節要點,也能逐步提高打字速度,對形成輸入代碼的肌肉記憶也非常有好處,因此,在聽懂了之後要自己親自動手從頭到尾把案例多練習幾遍。練習的時候可以先跟著教程寫,然後再試試脫離教程自己從頭寫,就有點像我們上學時候的默寫課文,不過脫離教程的時候要學會主動思考,梳理好思路,跟著自己的思路寫,我們不是去背這個代碼,而是要理解為什麼這麼寫。
第二 不要以為能寫出來就是會了。很多時候,你做練習要多練習幾遍,尤其是自己寫的不太順的時候,第一次完成是磕磕絆絆地,那麼就再練習幾次,或者是隔一兩天再重新做幾次,間歇性重複練習能非常有效地增強自己的對於出問題地方的記憶,能加快你的學習速度。尤其是初學者,對於代碼的感覺特別重要,我們就是在不斷的遇到問題,然後解決問題的過程中,加深對代碼的理解和掌握,培養對代碼的感覺。
第三 不要以為會了就忘不了了。做練習做案例的時候,一定要把自己有問題,不理解地方記錄下來,不管是用notion還是印象筆記還是其他的文檔工具。很多時候我們遇到的問題和知識點都是很零碎的,你通過記錄也是一種加深印象的方式,這樣能方便自己忘了的時候來復盤,或者在一段時間之後進行複習。同時,當你學完一個階段的時候,你可以對筆記進行整理和總結,把這些零碎的知識梳理成有條理成體系的知識要點,這樣你又相當於是再學習了一次,對於你真正掌握知識是非常有幫助的。記錄和整理這一點非常重要,我自己現在不管是做項目還是學習都會堅持做筆記,我自己以前在讀書的時候是很討厭做筆記的,也是因為這兩年的自學經歷讓我慢慢發現做筆記的好處,所以也慢慢養成了做筆記的習慣。
第四 學會自己去解決問題。在學習編程的過程中你會遇到很多問題,你一定要記住一點,你遇到的問題大概率也是別人遇到過的,所以你要學會搜索,學會自己去解決問題,如果你有一個老師或者剛好有其他資深的人可以指導你解決問題,那麼你也要學會問問題,不要因為自己沒有正確表達好問題,而浪費彼此寶貴的時間。
第五 遇到很難解決的問題,可以嘗試地先放一放。在學習過程中我們總會難免遇到一些一時半會沒有辦法解決的,或者甚至都不知道什麼原因的代碼問題,如果研究了好一會也毫無頭緒的話,可以先把問題記錄下來,然後放到一邊,等過段時間再來解決,這樣可以避免自己陷入死胡同當中,很多時候反而會有助於問題的解決。
第六 飯要一口一口吃,學習前端也是一樣。如果你沒有任何的編程基礎,那麼在開始學習前端的過程中,你會碰到很多完全新的名詞和概念,有些知識可能沒有辦法在第一次碰到它的時候就完全理解,甚至有些知識可能會讓你感覺模糊好一段時間,然後突然在某一天就想通了,理解了,這都是很正常的。所以學習的時候不用心急,如果一時半會理解不了,那就先不理解,哪怕就是照貓畫虎先用起來就行,當你學的東西越來越多,你對於整個知識體系的認知會越來越清晰,很多問題會在不知不覺中迎刃而解。同時要擺正自己的心態,因為學習前端並不是可以速成的,你可能需要持續性地堅持學習,不管是每天學半個小時一個小時也好,還是每隔一段時間抽一點時間來學習也好,總之,它都是需要你有規劃地循序漸進地進行學習的,你不要指望你學了十天半個月就能變升級成為一個能擼代碼的設計師,除非你是萬中無一的天才,不然的話,你只能乖乖地一點一點學、一行一行代碼地練習,付出多少才能收穫多少。
其實我們這些不用找前端工作的人來學習前端,並不是要去取代前端的工作,實際上你也取代不了,我們更像是在學習使用一個工具,我們的學習過程中可以少學很多老舊的知識點,少背很多那些前端開發為了面試而不得不背的各種難記的知識點,可以不用太在意代碼的性能優化和整體架構,也不用去學習複雜的算法和難懂的編程理論,我們更多的是要學會如何使用這個前端工具幫我們去做出更好更合理的設計,避免因為無知而不敢開腦洞,導致產出一堆沒有想像力的產品,也要避免無知而亂開腦洞,導致技術上無法實現。
與此同時,如果你又喜歡編程,又喜歡設計,除了可以做一些藝術編程的設計、在工作中用代碼實現一些複雜的功能和交互,你還完全可以自己動手創造一些有趣有創意的小產品,不用假手於人。如果你的產品的用戶越來越多,多到影響到了產品的用戶體驗,那你可以再找專業的開發人員,去優化去改造去提升你的產品。
另外,學習前端或者一些程式語言,對於提高設計師的邏輯思維能力會非常有幫助,這裡我沒有辦法具體的說明,但這是我自己的切身感受,我相信如果你開始慢慢學習前端以後,就能感受到。而邏輯思維能力不僅能提高你思考問題的邏輯性,也能提升你的設計過程的嚴謹性,對於設計師綜合能力的提高也是非常有幫助的。
那以上就是我自己總結的一些關於學習前端常有的疑問和學習前端過程中的一些經驗體會,希望這些能對你學習前端有一些幫助,如果你還有一些其他的問題或者困惑,也歡迎私信評論或者彈幕和我交流。
那從接下來的第五期開始,我會準備一些偏知識型的內容和大家分享,第一個要給大家介紹的就是鼎鼎大名的Git和Github。
好,本期的內容就先到這裡了,未來很長,要學的東西還很多,我們以後慢慢聊。
我是三木,我們下期內容再見!