作者:張鑫旭
文章源自:http://www.zhangxinxu.com/wordpress/?p=6183
之前知乎上有不少同行邀請我回答一些前端相關(guān)問題,但是,大家都知道了铝噩,要認(rèn)真回答一個(gè)問題是需要大量時(shí)間和精力的,對于還在不斷學(xué)習(xí)積累階段的我晋涣,時(shí)不時(shí)分散原本的精力笨鸡,打亂自己原本的節(jié)奏,實(shí)際上是一件不劃算的事情缤弦。就好像郵件或者微信领迈,來一條信息,你就去看一下碍沐,時(shí)間和精力都會大大分散狸捅,工作和學(xué)習(xí)效率必然會大打折扣。所以我的策略是一段時(shí)間后專門花時(shí)間統(tǒng)一處理累提,這樣時(shí)間利用率會更高尘喝,投入產(chǎn)出比會更大。
對于知乎上的這些前端的問題斋陪,我也打算采用同樣的套路朽褪,趁著端午節(jié)前還有兩個(gè)晚上的自由時(shí)間(當(dāng)晚修正:兩個(gè)晚上絕對搞不定,怕要月底前才能全部寫好)无虚,決定抽十個(gè)比較具有代表性缔赠,自己能夠駕馭的前端問題統(tǒng)一作答。
問題一骑科、前端現(xiàn)在怎么這么多人橡淑?
原問題地址是:https://www.zhihu.com/question/55886635
問題描述如下:
投出去的簡歷沒有人看了
我的回答:
想來想去,還是從一個(gè)非前端領(lǐng)域的切身故事說起吧咆爽。
我的老家江蘇泰興是中國銀杏之鄉(xiāng)梁棠,產(chǎn)量全國 1/3,而我外公家宣堡鎮(zhèn)除了小餛飩出門斗埂,還是就是中國銀杏第一鄉(xiāng)的美稱符糊。在我小的時(shí)候,銀杏的藥用價(jià)值和使用價(jià)值被發(fā)掘呛凶,銀杏價(jià)格突然猛增男娄,那個(gè)時(shí)候的銀杏樹是沒有人專門種植的,全部都是很早很早以前的那些老樹漾稀,百年以上的比比皆是模闲,或者說全部都是又大又粗的銀杏樹(見下圖),那個(gè)時(shí)候銀杏 30~50 元每斤崭捍,20 年前的 30 元相當(dāng)于現(xiàn)在 300 元尸折,而一顆百年銀杏大樹一年可以產(chǎn)上千斤的銀杏,按照現(xiàn)在的購買力殷蛇,相當(dāng)于一棵樹可以給一個(gè)家庭帶來年收入 30 萬实夹,所以那個(gè)年代相親橄浓,聽說市區(qū)有套房,恩亮航,還行荸实!聽說家里有個(gè)百年銀杏樹,靠缴淋,直接就成了准给!當(dāng)時(shí)一粒指頭大的白果就可以賣幾毛錢,可以換一斤西瓜重抖。以至于銀杏成熟的時(shí)候圆存,銀杏樹擁有者(我家田里的就是我的)會在外面通宵守著。
一看這玩意兒值錢,政府又鼓勵(lì)讹剔,于是家家戶戶详民,真的是家家戶戶延欠,包括我外公由捎,屋子前面和屋后面地全部嫁接了的銀杏樹,好多好多顆饿凛,但是樹這東西啊,它不是一嫁接就能成熟的心肪,沒個(gè) 3硬鞍,5 年戴已,花都看不到一個(gè)糖儡。然后前幾年國慶回去看望休玩,銀杏成熟季節(jié),結(jié)果發(fā)現(xiàn)家家戶戶銀杏樹上都掛著黃燦燦成熟的銀杏果独泞,很是奇怪苔埋,怎么還不收白殚稀玉工?
后來跟外公聊天才知道遵班,現(xiàn)在銀杏才一塊多錢一斤,扣除打果子腹暖,蛻皮等一系列人力成本脏答,完全就是虧本的買賣殖告,所以大家全部都讓果子掛在樹上,自然掉落丛肮,然后爛在地里宝与,甚至很多人习劫,直接把好不容易長大的銀杏樹直接砍了诽里,又種起了紅薯花生飞蛹。
我覺得前端人為什么現(xiàn)在這么多,和銀杏樹一下子這么多是類似的焰宣。
本質(zhì)上市場需求導(dǎo)致的匕积。
一個(gè)是移動 web 的興起(本質(zhì)上是多端的出現(xiàn))闪唆,二是 Node.js 發(fā)展帶來的諸如大前端的發(fā)展悄蕾,三是我國的互聯(lián)網(wǎng)還在快速發(fā)展階段笼吟,包括很多傳統(tǒng)行業(yè)的轉(zhuǎn)型等。
就好像智能手機(jī)興起的那會兒诱告,iOS 開發(fā)以及 Android 開發(fā)需求很旺盛,而導(dǎo)致后來相關(guān)開發(fā)人員過盛是一樣的靴姿。
歷史總是驚人的相似媒鼓,但卻又無法避免维雇。
畢竟互聯(lián)網(wǎng)行業(yè)的工資吱型,確實(shí)比其他行業(yè)要高很多津滞,一旦市場出現(xiàn)某個(gè)巨大的職位缺口触徐,自然會有很多人涌向這一塊蛋糕锌介,來的早還好孔祸,還能吃到一口蛋糕崔慧。就像股市一樣的惶室,有些人敏銳皇钞,牛市起來的時(shí)候跟進(jìn)夹界,但大多數(shù)人都是在大家都已經(jīng)知道事物很火的時(shí)候跟進(jìn)的可柿,承受的往往是低收益和高風(fēng)險(xiǎn)复斥。
所以目锭,當(dāng)知乎上開始出現(xiàn)“前端現(xiàn)在怎么這么多人”這樣的問題的時(shí)候痢虹,已經(jīng)預(yù)示著市場開始飽和编振,那些趁著春風(fēng)踪央,聽著前端很火畅蹂,看著工資很高才進(jìn)入這個(gè)行業(yè)的小伙伴就和牛市到頭進(jìn)入股市液斜,別人銀杏賺錢也跟著種銀杏樹的人一樣少漆,必然要面對貶值和風(fēng)險(xiǎn)兩大問題示损。
在市場面前检访,我們其實(shí)都是商品脆贵。
當(dāng)市場趨于穩(wěn)定会烙,最終能夠擺在貨架上的,還是那些真材實(shí)料的商品焙矛。所謂大浪淘沙村斟,去粗取精蟆盹,時(shí)間會證明一切逾滥,其實(shí)也是同樣的意思寨昙。
所以舔哪,提這個(gè)問題的小伙伴捉蚤,你應(yīng)該意識到問題不在于前端有這么多人布持,而應(yīng)該意識到自己在前端這一塊的造詣還不行鳖链,意圖趁著春風(fēng)進(jìn)入某個(gè)行業(yè)芙委,并且有大成灌侣,這種概率非常小侧啼,因?yàn)槁殬I(yè)生涯它是一個(gè)長期的過程,就算你趁著行業(yè)需求緊缺進(jìn)入這個(gè)行業(yè)哪审,你自身能力不過關(guān)湿滓,永遠(yuǎn)都會停留在這個(gè)位置叽奥,會逐漸淪為邊緣角色,生活不一定開心的膀篮。
你想啊誓竿,如果你比大部分人都優(yōu)秀筷屡,能力比大部分人都強(qiáng)燎潮,再多人進(jìn)入這個(gè)行業(yè)也不需要擔(dān)心确封,所以其實(shí)最重要的是爪喘,安下心來好好的把自己的前端知識給打牢了秉剑,基礎(chǔ)學(xué)扎實(shí)了學(xué)系統(tǒng)了,千萬不要有什么一夜暴富的想法略水,群體一定會發(fā)生小概率事件渊涝,但是是不會發(fā)生在你這個(gè)個(gè)體上的驶赏。
我當(dāng)年大學(xué)畢業(yè)的時(shí)候盖文,前端這一塊的積累其實(shí)已經(jīng)比很多人都多了,但我還是辭去工作龄恋,無業(yè)閉關(guān)學(xué)習(xí)了 9 個(gè)月的基礎(chǔ)知識,你看我現(xiàn)在已經(jīng) 30 出頭了显押,雖然還是在一線乘碑,但是根本就不會擔(dān)心小鮮肉頂替了自己的位置,因?yàn)閮?nèi)功足夠扎實(shí)资铡,這些東西呢害驹,才是真正經(jīng)得起時(shí)間考驗(yàn)的。
所以底洗,如果當(dāng)你們靜下心來更關(guān)注自身成長的時(shí)候亥揖,說不定哪天一抬頭,嘿挚歧,物聯(lián)網(wǎng)興起了滑负,需要大量前端職位帮匾;人工智能興起了瘟斜,又來了前端職位哼转;JS 已經(jīng)深入到生物基因工程領(lǐng)域了,又是高薪職位佣蓉。
此時(shí)的你勇凭,站在了牛市的起點(diǎn),自己就是一顆巨大健壯的銀杏樹璧函,而銀杏的價(jià)格又很高很高……
而銀杏的故事其實(shí)還沒完蘸吓,很多農(nóng)戶把自己的銀杏樹砍掉重新種了普通莊稼,所以這幾年銀杏價(jià)格就開始節(jié)節(jié)攀升……所以簡歷無人問津宪萄,不要擔(dān)心,你再堅(jiān)持個(gè)一兩年聊记,一定會有新的機(jī)會的排监!
問題二、Web 前端的路該怎么走挨队?
原問題地址是:https://www.zhihu.com/question/34388831
問題描述如下:
剛剛畢業(yè),在公司一直做的是前端開發(fā)腾夯,之前都是自己去學(xué)習(xí)一些基礎(chǔ)的前端知識(html+css+js)。到現(xiàn)在越來越迷茫榨呆,不知道自己該去學(xué)哪方面的积蜻。 在學(xué)校學(xué)的都是一些基礎(chǔ)知識,畢業(yè)之后自己自學(xué)了 JavaScript如输,在這個(gè)公司,要求不高能搭頁面就行稳吮,可是我想提升自己列林。.求各位前輩指點(diǎn)希痴!
我的回答:
想要提升的想法是對的。企業(yè)對員工的要求就是搭頁面嫩实,只會是下面兩種情況:1. 頁面質(zhì)量各方面都是 top 級別,交給你實(shí)現(xiàn)可以收益最大化竟纳;2. 你技術(shù)能力僅限搭個(gè)頁面,其他活交給你不放心桶略。由于你剛畢業(yè)诲宇,我想你應(yīng)該是第二種际歼,所以,如果你滿足于現(xiàn)狀姑蓝,必然對自己職業(yè)發(fā)展是非常不利的鹅心,任何可以被輕易替換的職位都是不具有競爭力的,搭頁面就是IT行業(yè)門檻最低的職位纺荧,沒有之一旭愧,雖然實(shí)際上要想搭的好需要很多積累,但是宙暇,對于大多數(shù)企業(yè)输枯,大部分用戶,大部分場景占贫,只需要頁面視覺過得去就可以桃熄,而這種程度的要求實(shí)在太好實(shí)現(xiàn)了,而太多入行的新人都是這種程度型奥,導(dǎo)致“問題一”的出現(xiàn)瞳收。
從理論上講碉京,只要你 HTML 和 CSS 足夠精通,頁面足夠好螟深,也是可以進(jìn)入很好的單位谐宙,有不錯(cuò)的發(fā)展。但是血崭,很難,對于大多數(shù)同學(xué)而言厘灼,往往是條不歸路夹纫,所謂一葉蔽目,不見泰山设凹,簡單和舒適容易讓人忽略的對邊界和底層的不斷探索舰讹,以及即使是大公司,也不希望你化太多精力在收益不直接不明顯的事情上闪朱,所謂人在江湖月匣,身不由己,因此很難堅(jiān)持下來奋姿。
所以锄开,我的建議是優(yōu)先投入精力在 JS 的學(xué)習(xí)上,學(xué)習(xí)一定要系統(tǒng)称诗,一定要是基礎(chǔ)知識萍悴。
學(xué)習(xí)有經(jīng)驗(yàn)式學(xué)習(xí)和系統(tǒng)學(xué)習(xí)兩種。經(jīng)驗(yàn)式可以收獲書本上沒有的一些知識寓免,例如微信瀏覽器下的坑癣诱,以及知識具有極高概率的重復(fù)利用可能性,可以說是投入產(chǎn)出比非常高的一種學(xué)習(xí)方式袜香;但是不足也很明顯撕予,一是學(xué)到的知識比較狹隘,拿搭頁面舉例蜈首,常用的 CSS 顛來倒去就那些实抡,以至于很多小伙伴都沒見過unicode-bidi
等 CSS 屬性;第二個(gè)是工作效率其實(shí)并不高欢策,一旦遇到之前沒有接觸過的場景或者需求澜术,就會不知從何下手,百之谷之問人之猬腰,大把時(shí)間都被耗掉了鸟废;第三個(gè)就是技術(shù)實(shí)現(xiàn)往往不是最優(yōu)解,舉例來說姑荷,想要知道A元素是否包含 B 元素盒延。以前工作經(jīng)歷讓我們知道parentElement
可以獲得父元素缩擂,于是,說不定就會寫一個(gè)不斷遍歷父元素判斷元素是否包含的方法添寺。寫的人自以為寫了個(gè)很厲害的方法胯盯,殊不知,瀏覽器计露,包括低版本 IE 都天然支持元素是否包含的 DOM 方法contains
博脑。
而系統(tǒng)學(xué)習(xí)是成為一個(gè)技術(shù)能手所必須的,全部知識點(diǎn)在腦中(或者有印象)票罐,自然想要實(shí)現(xiàn)什么手到擒來叉趣。然而系統(tǒng)學(xué)習(xí)卻是很枯燥,很花時(shí)間该押,有些知識可能一輩子都用不到幾次疗杉,平均下來,似乎是個(gè)投入很大產(chǎn)出效率并不高的買賣蚕礼。人總是喜歡舒適討厭無用功的付出烟具,因此,有非常多的開發(fā)人員的知識都是經(jīng)驗(yàn)式學(xué)習(xí)奠蹬,然后 1 年經(jīng)驗(yàn) 3 年用朝聋,然后中年危機(jī)。
“基礎(chǔ)知識”是相對上層工具或者應(yīng)用而言的囤躁,例如玖翅,最近 Vue 很火,對于剛畢業(yè)的你割以,且公司又不需要你寫 Vue, 因此金度,Vue 哪怕被說到天上去,也不要去學(xué)習(xí)严沥,抓緊時(shí)間學(xué)習(xí) JS 基礎(chǔ)知識猜极,原生的那些東西。
雖然前面講過學(xué)習(xí)要系統(tǒng)消玄,但是跟伏,JS 知識點(diǎn)那么多,如果每個(gè)知識點(diǎn)都花大把功夫去學(xué)習(xí)翩瓜,且不說能不能學(xué)懂受扳,怕是壓根騰不出這么多業(yè)余時(shí)間吧。因此兔跌,很有必要指出哪些內(nèi)容是適合你當(dāng)下學(xué)習(xí)的勘高,否則學(xué)習(xí)無重點(diǎn)像無頭蒼蠅,很容易陷入迷茫的。
非計(jì)算機(jī)專業(yè)背景學(xué)習(xí) JS 要點(diǎn):
- 非常重要:先要對 JS 這門語言要有整體华望、感性的認(rèn)識蕊蝗;
- 掌握 JS 中的字符串、函數(shù)赖舟、對象蓬戚、數(shù)組、字面量等基本概念宾抓,熟記所有內(nèi)置的方法(包括參數(shù)和返回值)子漩;
- 所有繼承和原型相關(guān)內(nèi)容跳過,注意石洗,是跳過幢泼,不要看!沒有這些 JS 一樣可以活得很好劲腿,你的日常工作一樣玩得飛起旭绒,當(dāng)然鸟妙,你沒忍住看了相關(guān)知識也沒關(guān)系焦人,因?yàn)槟銜l(fā)現(xiàn)自己看不懂的;
- DOM 事件和所有 DOM 方法一定要掌握的牢不可破重父;
- 學(xué)好正則表達(dá)式花椭;
然而,要記住 JS 所有字符串房午、函數(shù)矿辽、數(shù)組相關(guān)的方法,所有 DOM 相關(guān)方法是相當(dāng)龐大的一項(xiàng)工作郭厌,因?yàn)榇螅苋菀淄洠椒ㄒ埠芎唵握勰^好記性不如爛筆頭宾娜。把編輯器的 JS 自帶補(bǔ)全提示干掉,從小交互開始扇售,嘗試使用原生的 JS 書寫前塔,寫著寫著,一定就會記住了承冰,這是最快學(xué)習(xí)成長的方法华弓。
學(xué)習(xí)的過程一定是帶有痛苦的,并且漫長的困乒,千萬不要出現(xiàn)類似“《JavaScript 高級程序設(shè)計(jì)》和《JavaScript 語言精粹》我都看完了寂屏,接下來我要學(xué)什么的言論”?你以為你是黃蓉啊,看一眼就記住啦凑保!反復(fù)看冈爹,看完肯定會忘記,忘記了再看欧引,我也是看這兩本書學(xué)習(xí) JS 的频伤,《JavaScript 高級程序設(shè)計(jì)》這本書已經(jīng)被我翻到掉頁了,《JavaScript 語言精粹》上面滿滿的筆記芝此,哪個(gè)知識點(diǎn)不記得了憋肖,基本上一翻就可以準(zhǔn)確到對應(yīng)的頁數(shù),因?yàn)橐彩欠颂啾榱恕?/p>
最終學(xué)習(xí)是否成功的關(guān)鍵在于“堅(jiān)持”婚苹。
在一個(gè)相對公平的環(huán)境下岸更,想要超越他人,只要能夠完成他人完成不了的事情就可以了膊升。大多數(shù)非計(jì)算機(jī)背景前端從業(yè)人員對于 JS 的系統(tǒng)學(xué)習(xí)是很難堅(jiān)持下來的怎炊,時(shí)間長,收益緩慢廓译,但是评肆,如果你堅(jiān)持下來了,你就超越了這些人非区,你就不是一抓一大把的頁面仔瓜挽,而真正能獨(dú)當(dāng)一面搶手的前端開發(fā)了,完成了前端開發(fā)領(lǐng)域的階級跨越征绸。如果你學(xué)習(xí)的時(shí)候像放棄久橙,想想前面這句話,或許就又有了額外的動力管怠。
問題三淆衷、前端開發(fā)基礎(chǔ)扎實(shí)的標(biāo)準(zhǔn)是什么?
原問題地址是:https://www.zhihu.com/question/38922374
問題描述如下:
- 題主妹子渤弛,現(xiàn)在在培訓(xùn)學(xué)習(xí)前端祝拯,看到有人說不要培訓(xùn)出來的程序員,因?yàn)榛A(chǔ)不扎實(shí)暮芭,自學(xué)能力差等鹿驼,讓我不得不重視這個(gè)問題;
- 題主上一份工作是做招聘的辕宏,也了解過畜晰,有的企業(yè)是不要自學(xué)的,因?yàn)闆]有經(jīng)過系統(tǒng)學(xué)習(xí)瑞筐,基礎(chǔ)也不扎實(shí)凄鼻,但是有人又說會喜歡自學(xué)的人多過培訓(xùn)的。
- 感慨就是這個(gè)世界好復(fù)雜,每個(gè)人想要的都不一樣啊块蚌,那其實(shí)唯一的標(biāo)準(zhǔn)就是基礎(chǔ)好不好嘛闰非?
那問題來了:
對于前端,或者其他的IT崗位而言峭范,怎樣才算基礎(chǔ)扎實(shí)呢财松?
我的回答:
這個(gè)問題我們其實(shí)可以通過咬文嚼字來理解,首先要明白什么是“基礎(chǔ)”纱控,然后理解什么是“扎實(shí)”辆毡。
“基礎(chǔ)”漢字表形上有“土”“石”“山”,原本用在建筑構(gòu)造上甜害,由于地球重力的存在舶掖,現(xiàn)代建筑都是從下往上建的,而最下面這個(gè)用來穩(wěn)固建筑的這個(gè)底層就是“基礎(chǔ)”尔店。眾所周知眨攘,建筑越高,基礎(chǔ)一定要越牢固嚣州,否則就會出現(xiàn)“眼看他起朱樓鲫售,眼看他樓塌了”的情況。在這世界上有非常非常多的東西都是從無到有建立起來的避诽,就跟一棟建筑的拔地而起是一樣的龟虎,先有個(gè)底子璃谨,然后再慢慢的往上添加?xùn)|西沙庐,最終形成一個(gè)完整事物,而這個(gè)“底子”佳吞,我們也稱之為“基礎(chǔ)”拱雏,可以看成是事物發(fā)展的立命之本。
其中個(gè)人技能成長底扳,就是非常典型的一個(gè)從無到有建立的過程铸抑,比如說打籃球,籃球規(guī)則衷模,運(yùn)球鹊汛,定點(diǎn)投籃等就屬于非常基本的東西阱冶,我們就可以稱之為“基礎(chǔ)”刁憋,就算籃球之神邁克爾喬丹也是踩著這些基礎(chǔ)成長起來的;又比方說前端開發(fā)木蹬,在接觸這玩意之前至耻,大家顯然都是一無所知的,到后來祝那個(gè)玩出點(diǎn)花樣來,這個(gè)從無到有的過程也必然伴隨著一些稱之為“基礎(chǔ)”的東西在里面尘颓,那到底是什么東西呢走触?
回到這個(gè)問題本身,目前行業(yè)中前端開發(fā)其實(shí)分兩類疤苹,一類是偏邏輯系的互广,一支也是偏視覺系的,無論是哪個(gè)系的卧土,基礎(chǔ)都離不開 HTML兜辞,CSS 和 JavaScript 的,但不同系別最基礎(chǔ)東西有差異夸溶,如果是偏邏輯系的逸吵,基礎(chǔ)中的基礎(chǔ)是 JavaScript,至于邏輯思維能力和抽象能力缝裁,并不是基礎(chǔ)扫皱,而是天賦,基礎(chǔ)是通過努力可以夯實(shí)的捷绑,如果無論怎么努力也夯實(shí)不了韩脑,那就不能稱之為基礎(chǔ);如果是視覺系的粹污,基礎(chǔ)中的基礎(chǔ)就是 HTML段多,沒錯(cuò),是 HTML壮吩,不是 CSS进苍,雖然 CSS 出鏡頻率甩了 HTML 好幾條街,但是鸭叙,最基礎(chǔ)的是 HTML觉啊,自帶行為和樣式,前端中的前端沈贝。同樣的審美能力和具象能力也不是基礎(chǔ)杠人,這東西天生的,很難練出來宋下。
提問的妹子上一份工作是做招聘的嗡善,根據(jù)我其實(shí)不太靠譜的經(jīng)驗(yàn)式猜測,妹子應(yīng)該是走視覺系的学歧,那前端基礎(chǔ)排序應(yīng)該是 HTML > CSS > JavaScript罩引。大家千萬不要有這樣一個(gè)誤區(qū),認(rèn)為基礎(chǔ)的重要程度是和學(xué)習(xí)時(shí)間成正比的撩满,其實(shí)不是這樣子的蜒程。很多人學(xué) HTML 估計(jì)就幾周時(shí)間绅你,覺得學(xué)得很不錯(cuò)了,簡歷上可以寫“精通”二字昭躺,因?yàn)樽罱K的效果好像確實(shí)和預(yù)期的一樣忌锯,我說這個(gè)并不是想吐槽這些人“槑”,而是想表達(dá)的是 HTML 這門語言相當(dāng)?shù)膮柡α祆牛@絕對是一個(gè)會非常長盛的語言偶垮,因?yàn)槠渲匾瑫r(shí)上手非常的簡單,并且隨著發(fā)展帝洪,說不定以后會一統(tǒng)萬端似舵。
這個(gè)問題的重點(diǎn)其實(shí)是“扎實(shí)”。先說說“實(shí)”吧葱峡,拿大米舉例砚哗,我們盛了滿滿的一碗飯,用勺子再壓一壓砰奕,我們會覺得米飯很“扎實(shí)”蛛芥,很管飽,但是我想從來不會有人覺得一碗粥很“扎實(shí)”吧军援,為什么呢仅淑?粥里面雖然也有米飯,但其實(shí)百分之八九十都是水胸哥,水大家都知道的涯竟,進(jìn)到肚子里一會兒一泡尿一撒就沒了……
基礎(chǔ)知識的學(xué)習(xí)其實(shí)也是類似的,所以“實(shí)”空厌,就是要滿庐船,就是要沒有間隙,就是沒有水分在里面蝇庭。假設(shè)請問那些基礎(chǔ)知識醉鳖,無論 HTML捡硅,CSS 還是 JavaScript哮内,我們都看成是一碗米,那我們花兩周速成那些知識壮韭,或者說平時(shí)項(xiàng)目開發(fā)所用的那些知識所代表的米粒頂多就一碗粥里面米飯的量北发,雖然吃的時(shí)候管飽,你以為好像知道了全世界喷屋,但實(shí)際上你知道的永遠(yuǎn)是碗里面那一小撮米而已琳拨,這就是不夠“實(shí)”。
因此屯曹,所謂“實(shí)”狱庇,就是從中心到邊界全部一個(gè)不落的進(jìn)行細(xì)致的了解惊畏,比如說舉個(gè)很簡單的例子,是我問過我廠實(shí)習(xí)生的問題:“CSS vertical-align
支持幾個(gè)關(guān)鍵的屬性值密任?CSS vertical-align
支不支持負(fù)值颜启?CSS vertical-align
百分比值是相對哪個(gè)屬性計(jì)算的?”CSS vertical-align
屬性大家肯定都用過浪讳,一定是middle
用的最多缰盏,有時(shí)候也會用用top
或者bottom
,然后有太多的人就會認(rèn)為vertical-align:top/middle/bottom
就是vertical-align
屬性的全世界,這就是典型的CSS前端知識不扎實(shí),想要扎實(shí)非常簡單剿配,MDN 文檔看起來盛嘿。HTML 中有非常多的標(biāo)簽和屬性,有新標(biāo)簽字的行為呛讲,有些屬性自帶行為,還有些屬性自帶樣式,且影響無障礙訪問冻辩,想要“實(shí)”,文檔一個(gè)一個(gè)看過來拆祈,一定要一個(gè)不落恨闪,要記住放坏;CSS 那么多屬性咙咽,默認(rèn)值是什么,支持的屬性值是什么淤年,定義是什么钧敞,都是非常簡單的不需要邏輯思維的東西,全部一個(gè)不拉記住麸粮。于是你會發(fā)現(xiàn)這些其實(shí)非常表面的一些東西溉苛,你花兩周時(shí)間是根本來不及看的,我想很多人兩年都看不完弄诲,或者說根本就看不下來愚战,靜不下心來,眼睛速度一掃齐遵,恩寂玲,我知道了,這些東西梗摇,好簡單拓哟,其實(shí)屁什么都看不出來,就好像自己寫的文章中的錯(cuò)別字伶授,有時(shí)候復(fù)查個(gè)十幾遍都看不出來断序。要想從簡單的自以為了解的東西中看出一些不一樣的東西出來流纹,這個(gè)其實(shí)是需要天賦的,心態(tài)违诗,專注度等都有關(guān)系捧颅。
所以,雖然我這里對這個(gè)問題進(jìn)行了用心的回答较雕,但是最終能帶來多少好的結(jié)果我其實(shí)是保持極大的懷疑的碉哑。
最后,回答一下“扎”亮蒋,“實(shí)”為“滿”扣典,可以理解為廣度,“扎”則可以理解為深度慎玖,我們可以看兩張圖片贮尖,形象的感受一下這個(gè)“扎”這個(gè)動作:
也就是說基礎(chǔ)扎實(shí)的另外一層意思就是要“進(jìn)入水下”,“深入肌膚”趁怔,也就是說湿硝,我們除了要熟記表面的那些定義啊,語法啊润努,參數(shù)啊关斜,還需要多思考,為什么這樣設(shè)計(jì)铺浇?為什么會有這樣的表現(xiàn)痢畜?
舉個(gè)簡單例子,我們或多或少都聽說話鳍侣,寫頁面要符合 W3C 標(biāo)準(zhǔn)丁稀,HTML 一定要要語義化,但不知道大家有沒有想過為什么要注意語義化倚聚?這其中背后的原因就是“扎”线衫。
如果我們把前端基礎(chǔ)知識點(diǎn)比多人的話,所以前端基礎(chǔ)扎實(shí)惑折,包括:在座所有的人我都知道你們的名字是什么授账,你們的父母叫什么,在什么地方上班唬复,星座是什么矗积,特長是什么;甚至我還知道你為什么你會叫這個(gè)名字敞咧,你為什么會有這樣的性格。
發(fā)現(xiàn)沒辜腺,“前端基礎(chǔ)知識”這幾個(gè)字看上去好像很簡單休建,但實(shí)際上真的要做好其實(shí)是非常難的乍恐。HTML,CSS 和 JavaScript 分屬三門不同的語言测砂,每門語言都有非常多的基礎(chǔ)知識茵烈,要想全部記住并能自如在項(xiàng)目中選項(xiàng)應(yīng)用,那一定是需要大量的時(shí)間學(xué)習(xí)和積累的砌些。
但是如果你積累到一定程度呜投,猶如萬丈高樓一樣,有非常好的基礎(chǔ)存璃,日后在前端領(lǐng)域仑荐,尤其技術(shù)這一塊,日后的高度一定非匙荻可觀粘招,而且持續(xù)上升。并且無形中會從一個(gè)前端使用者變成一個(gè)前端創(chuàng)造者偎球,成為一個(gè)真正的高級前端開發(fā)人員洒扎,成為行業(yè)的香餑餑。
問題四衰絮、前端新人的迷茫袍冷?
原問題地址是:https://www.zhihu.com/question/54440732
問題描述如下:
大二,學(xué)前端大半年了猫牡,html难裆,css,js镊掖,jq乃戈,less,bootstrap 這些不敢說精通亩进,但也熟練掌握症虑,項(xiàng)目也做了不少。最近學(xué) react 的時(shí)候開始感覺力不從心了归薛,之后再去了解 webpack谍憔,npm,node 等簡直一臉懵逼主籍,各種配置命令行根本看不懂习贫,仿佛到了另一個(gè)世界。
到了這個(gè)階段應(yīng)該怎么繼續(xù)學(xué)下去呢千元,是我基礎(chǔ)知識不足的問題嗎苫昌?
我的回答:
現(xiàn)在的年輕人啊,就是急躁幸海。有句古話說的好祟身,不識廬山真面目奥务,只緣身在此山中。
如果單看問題表面袜硫,進(jìn)行不下去氯葬,肯定是因?yàn)榛A(chǔ)知識不足,主要是計(jì)算機(jī)基礎(chǔ)理論知識婉陷,這個(gè)時(shí)候就可以看出計(jì)算機(jī)專業(yè)背景的優(yōu)勢以及其實(shí)JS掌握得很弱啦帚称。
但我看的是,你可能在走一條錯(cuò)誤的方向秽澳,或者說有種給人盲目學(xué)習(xí)的感覺闯睹。
我覺得我大學(xué)最大的收獲是“自我認(rèn)知”。我當(dāng)時(shí)買了一本厚厚的心理學(xué)書肝集,叫做《人格心理學(xué)》瞻坝,讀得非常認(rèn)真,一頁不落全部讀完杏瞻,幾乎每一頁都有筆記和心得所刀。這本書是我人生中的一個(gè)轉(zhuǎn)折點(diǎn),它讓我明白了捞挥,為什么我會如此特立獨(dú)行浮创,為什么性格會很罕見地分布在兩個(gè)對立端,為什么內(nèi)在更像女孩子砌函,敏感細(xì)膩斩披,喜歡和女孩子相處,喜歡聽女生的歌(取向還是正常的哈)讹俊,這種性格特質(zhì)比例多少垦沉,這種性格的優(yōu)勢在哪里,不足在哪里等等仍劈。
“自我認(rèn)知”帶來的好處是更自信厕倍,內(nèi)心更強(qiáng)大了,比方說一些說話刻薄的人說你是“變態(tài)”贩疙,你就可以大可不必放在心上讹弯,因?yàn)槟阕约褐滥闶鞘裁匆粋€(gè)人;你知道自己的不足在哪里这溅,以后就可以知道從朝方面努力不斷改正讓自己變得更好组民;你知道你自己的特長在哪里,從哪方面發(fā)力更容易讓你走得更高更遠(yuǎn)悲靴,學(xué)習(xí)的時(shí)候不會盲目臭胜,即使是一條別人沒走過的路,也會堅(jiān)持走下去。注意庇楞,最后這一點(diǎn)就是我想說的重點(diǎn)榜配,所謂“人貴自知”否纬,人的精力總是有限的吕晌,盲目地學(xué)習(xí),甚至直接去硬啃自己當(dāng)下啃不動的骨頭临燃,實(shí)際上是種無謂的消耗和浪費(fèi)睛驳。
在我看來,你學(xué) react 除了讓自我感覺良好以外膜廊,沒有任何作用乏沸,如果你的目標(biāo)是進(jìn)入非常棒的前端團(tuán)隊(duì)的話。因?yàn)樾U凶希踔辽缯械旁荆A(chǔ)絕對是更重要的。所以铆铆,我覺得你有必要好好想一想蝶缀,我的專業(yè)是什么,我的興趣是什么薄货,我最強(qiáng)的特質(zhì)是什么翁都,既然你說你 react 力不從心,很顯然谅猾,react 這種東西在當(dāng)下并不適合你柄慰,如果進(jìn)一步本質(zhì)分析,可能這輩子都不適合你税娜。大學(xué)數(shù)年過得很快的坐搔,要想校招時(shí)候 offer 拿到手軟,一定要進(jìn)行基礎(chǔ)攻堅(jiān)敬矩,jq概行,less,bootstrap 要學(xué)就不要學(xué)怎么使用谤绳,而是學(xué)人家的源碼占锯,為什么這么實(shí)現(xiàn),如果看不懂缩筛,搞不明白消略,說明你 html,css瞎抛,js 基礎(chǔ)還很弱艺演,離熟練掌握還差了好幾條街,需要不斷積累,再不斷積累胎撤,會做幾個(gè)項(xiàng)目鳥用都沒有晓殊,和你競爭的那些前端哪個(gè)大學(xué)沒做過幾個(gè)項(xiàng)目,而校招名額就那幾個(gè)伤提。等什么時(shí)候巫俺,jq,bootstrap 甚至 react 源碼都看得懂了肿男,恭喜你介汹,你已經(jīng)到了另一個(gè)世界,眼界和認(rèn)知都脫胎換骨舶沛,即使是一些你自己都沒注意的談吐表達(dá)嘹承,都會很容易感受出不俗的技術(shù)造詣在里面!
所以呢如庭,那些讓你懵逼的東西就不要學(xué)了叹卷,了解下大概即可,好好扎實(shí)基礎(chǔ)坪它,參見問題三骤竹,這才是你的方向。
然后哟楷,對于在校學(xué)生瘤载,從概率上講,深入 JavaScript 要比深入 CSS 入職概率高卖擅,但也有團(tuán)隊(duì)招 CSS 很厲害鸣奔,JS 毛毛雨的人,例如我們閱文集團(tuán)惩阶,但這樣的企業(yè)并不多挎狸。當(dāng)然,如果要我說心里話断楷,我是鼓勵(lì)大家追尋自己的內(nèi)心世界锨匆,不要被外部這些東西左右,做好自己冬筒,等待時(shí)機(jī)恐锣。但對于大部分人其實(shí)只想混口飯,給父母長長臉舞痰,功利些也無可厚非土榴,面向職位面向熱門前端開發(fā)也沒什么不好的,喬布斯的名言“follow your heart”其實(shí)只適合有資本有能力的那些人响牛。
問題五玷禽、① 前端工程師的價(jià)值體現(xiàn)在哪里赫段?② 前端的意義是什么?
前一個(gè)問題地址是:https://www.zhihu.com/question/19589966
后一個(gè)問題地址是:https://www.zhihu.com/question/44812950
問題描述如下:
上一門必修課的時(shí)候矢赁,老師介紹了許多她的科研成果糯笙,感覺好高端。最后撩银,老師讓我們思考一下自己學(xué)計(jì)算機(jī)的意義是什么给涕?難道就是為了寫寫網(wǎng)頁?
我個(gè)人深知將網(wǎng)頁寫好多么的不容易蜒蕾。但是感覺所解決的問題貌似是可有可無的稠炬,即沒有前端焕阿,我們好像也能使用好多的互聯(lián)網(wǎng)功能咪啡。前端的意義是什么呢?僅僅是可以優(yōu)化視覺效果暮屡,讓用戶用得開心(我承認(rèn)這是很重要的一部分撤摸,想知道還有沒有其他的)
由于兩個(gè)問題答案本質(zhì)上類似,因此褒纲,我統(tǒng)一作答准夷。
我的回答
如果作為一個(gè)打工者角度來講,前端的意義就是可以養(yǎng)家糊口莺掠。
而作為職業(yè)本身衫嵌,前端的意義其實(shí)就如你說的,讓人機(jī)交互這一塊讓用戶更加愉悅彻秆。至于其他什么高大上的意義楔绞,其實(shí)并沒有。前端工程師的價(jià)值其實(shí)也就是讓用戶在于機(jī)器交互的時(shí)候更加愉悅唇兑,讓用戶越來越喜歡酒朵,甚至在上面花錢,給企業(yè)創(chuàng)造價(jià)值扎附。
你說如果你想要通過前端代碼來改變世界蔫耽,很難,除非你造個(gè)像 jQuery 這樣的東西留夜,也就讓世界變化了那么一點(diǎn)點(diǎn)而已匙铡。
所以千萬不要高估前端這個(gè)職位的價(jià)值和意義。有種效應(yīng)叫做“稟賦效應(yīng)”碍粥,指的是“當(dāng)個(gè)人一旦擁有某項(xiàng)物品鳖眼,那么他對該物品價(jià)值的評價(jià)要比未擁有之前大大增加”。我們身為前端工程師即纲,對前端這個(gè)職位的評價(jià)自然就要比真實(shí)的要高那么幾分具帮。
我剛開始工作的時(shí)候博肋,有非常強(qiáng)烈的,我是前端我自豪的感覺蜂厅,追求完美的代碼匪凡,和開發(fā) PK JS 要放底部還是上面,慫第三方推廣負(fù)責(zé)人產(chǎn)生的 http 請求太多等等掘猿。當(dāng)然現(xiàn)在看問題的角度已經(jīng)完全不一樣了病游,比方我們看新浪微博,前端體驗(yàn)其實(shí)是做的很不好的稠通,性能也很差衬衬,微博網(wǎng)頁掛著同時(shí)看騰訊視頻,視頻就會有卡頓改橘,把微博網(wǎng)頁關(guān)掉立馬就好了滋尉,但是你看人家的財(cái)報(bào),看看人家的股價(jià)飞主,你就會發(fā)現(xiàn)前端在整個(gè)產(chǎn)品中使用的價(jià)值其實(shí)并沒有我們想的那么高狮惜。
我突然想起了很早年的時(shí)候參加 D2 前端技術(shù)會議,因?yàn)橹Ц秾毜那拜叿窒砹艘粋€(gè)很有意思的案例碌识,就是很重要的支付頁面的加載時(shí)間碾篡,具體時(shí)間我記不得啦,我大致說兩個(gè)數(shù)值示意下筏餐,就是 1 秒變成 500 毫秒开泽,然后去看用戶的跳出率存留量之類的數(shù)據(jù),結(jié)果發(fā)現(xiàn)并沒有什么明顯的變化魁瞪。也就是說我們拼命優(yōu)化提高的那點(diǎn)加載時(shí)間穆律,其實(shí)對用戶來講并沒有什么價(jià)值。
因此佩番,從企業(yè)的角度講众旗,前端僅僅是整個(gè)產(chǎn)品流程上比較重要的一環(huán),想要真正改變世界趟畏,需要上下游一起齊心齊力贡歧,當(dāng)然,最重要的還是上層領(lǐng)導(dǎo)者的方向赋秀,決策一定要正確利朵。
這里可以順便說點(diǎn)其他的東西,前端工程師的的薪資水平其實(shí)是與他給企業(yè)帶來的價(jià)值決定的猎莲,一個(gè)前端工作者绍弟,就算他技術(shù)再牛,如果他只是單打獨(dú)斗著洼,給企業(yè)帶來價(jià)值其實(shí)是有限的樟遣,哪怕做的產(chǎn)品在前端這一塊是世界一級棒而叼,可能會遇到晉升阻礙;但是如果他可以讓其他前端同事一起變得更好豹悬,現(xiàn)在上游的設(shè)計(jì)師或者下游的開發(fā)也變得更好葵陵,產(chǎn)生了更多的價(jià)值,自然薪資也會上去瞻佛。因此脱篙,通常前端管理人員會工資比較高(即使不參與一線開發(fā)),因?yàn)樗枰尯芏嗟那岸巳藛T一起變得井井有條伤柄,高效運(yùn)轉(zhuǎn)绊困,這也是需要很多精力成本和承擔(dān)巨大壓力的,還有一類就是前端架構(gòu)人員适刀,負(fù)責(zé)優(yōu)質(zhì)的類庫秤朗,業(yè)務(wù)配套工具等基礎(chǔ)建設(shè),保證整個(gè)產(chǎn)品線都高質(zhì)量蔗彤,同時(shí)節(jié)約人力等成本川梅,也會有比較高的收入。
作為職業(yè)人然遏,在談?wù)撉岸斯こ處煹膬r(jià)值的時(shí)候,眼中不應(yīng)該只有技術(shù)吧彪,或者心心念念待侵,實(shí)際上根本就不了解的用戶,其實(shí)可以多想想給團(tuán)隊(duì)姨裸,給公司帶來了哪些價(jià)值秧倾,并且能夠佐證之。跳出職業(yè)本身思考問題傀缩,或許會有不一樣的感悟和成長那先。
對了,你的代碼最終能否改變世界其實(shí)是你的老板決定的赡艰,就算你寫的代碼一般般售淡,但是你的老板很厲害,產(chǎn)品全球使用慷垮,你其實(shí)也已經(jīng)改變了世界了揖闸。最后你會發(fā)現(xiàn),改變世界似乎和你技術(shù)牛不牛一點(diǎn)關(guān)系都沒有料身,還是那句話汤纸,站在老板的角度,前端的意義其實(shí)就那么回事芹血。
問題六贮泞、學(xué) Web 前端開發(fā)楞慈,培訓(xùn)還是自學(xué)靠譜?
原問題地址是:https://www.zhihu.com/question/31059577
問題描述如下:
先說明問題:想轉(zhuǎn)行做 web 前端開發(fā)工作啃擦,但是無從下手抖部。詢問別人有的說是培訓(xùn)比較靠譜,也有說自學(xué)也沒什么問題议惰。所以想在這請教一下師兄們慎颗,集思廣益,但求少走彎路言询。
情況:本姑娘普通二本院校 14 級畢業(yè)生俯萎,電子信息工程專業(yè)學(xué)嵌入式開發(fā)。畢業(yè)后由于一些什么“鐵飯碗”运杭、“工作穩(wěn)定”夫啊、“國企有發(fā)展”之類的原因,家里在這邊給找了一份銀行的工作辆憔,現(xiàn)在工作一年撇眯。一年的工作終于發(fā)現(xiàn)這跟本不是我想要的生活,于是果斷辭職虱咧。在校期間學(xué)習(xí)過 C 語言熊榛。曾經(jīng)也對網(wǎng)頁設(shè)計(jì)比較感興趣,自學(xué)了一點(diǎn)腕巡,不過那個(gè)時(shí)候?qū)W的都是Dreamweaver玄坦,F(xiàn)ireworks , Flash 什么的绘沉,也沒去研究 HTML煎楣,CSS,JavaScript 這些车伞。
所以在這里還是想詢問一下择懂,如果我想做這些究竟是找一份工作一邊工作一邊自學(xué),還是找一個(gè)培訓(xùn)機(jī)構(gòu)學(xué)習(xí)更靠譜一些另玖。第一次在知乎提問困曙,求大神指點(diǎn)迷津。多謝了日矫。
我的回答:
站在我個(gè)人的角度赂弓,肯定是自學(xué)靠譜,因?yàn)槲易约壕褪峭耆詫W(xué)成長起來的哪轿。
但是盈魁,我的成長不具有代表性,因此窃诉,不一定具有參考價(jià)值杨耙。
雖然是上的是理工科大學(xué)赤套,但是,對于設(shè)計(jì)珊膜,繪畫容握,人文之類的東西很很興趣,但是人比較迷茫和憂郁车柠,既然如此剔氏,早就做些自己喜歡的事情,例如……翻閱斷子絕孫的柵欄翻墻去后面的東湖釣魚竹祷,或者去圖書館把所有繪畫相關(guān)書籍(老圖書館這方面書不多)就借了個(gè)遍谈跛,去臨摹與學(xué)習(xí),彩鉛塑陵,油畫棒感憾,水彩都自娛自樂過。
大二有了電腦令花,就自學(xué) Photoshop阻桅,暑假都在刻苦練習(xí) PS 技術(shù),技術(shù)練得很好兼都,做做平面設(shè)計(jì)嫂沉,PPT 設(shè)計(jì)什么的;下學(xué)期開始自學(xué) flash俯抖,制作一些動畫片什么的输瓜,當(dāng)然,也是興趣使然芬萍,自娛自樂,例如下面這個(gè)殺馬特風(fēng)格濃烈的 flash 動畫(點(diǎn)擊加載)搔啊。
點(diǎn)擊加載Flash動畫
后來大三開始玩社團(tuán)柬祠,去了學(xué)校網(wǎng)研團(tuán)隊(duì),小胡子哥閻王也是這里出來的负芋,當(dāng)時(shí)在網(wǎng)頁上弄酷酷的 flash漫蛔,寫寫簡單的 AS2.0 腳本,當(dāng)年流行這個(gè)旧蛾。再后來莽龟,沒什么需求,就開始寫寫幫其他小伙伴應(yīng)付應(yīng)付 CSS 和 HTML 的工作锨天,看了一晚上別人實(shí)現(xiàn)的代碼毯盈,然后就自己可以把頁面鼓搗出來了,可見寫頁面這件事入門門檻太 TM 低了病袄。
然而搂赋,上面這些事情其實(shí)都是業(yè)余愛好赘阀,自娛自樂,和很多牛人同學(xué)不一樣脑奠,他們一開始眼界就不一樣基公,就奔著 top 級別的好公司去的,所以宋欺,成長都比較專業(yè)和正軌轰豆。像我這種隨性吊子的人暑假就在學(xué)校幫老師干點(diǎn)活算實(shí)習(xí),現(xiàn)在想想真想甩當(dāng)時(shí)的自己幾個(gè)嘴巴子齿诞。
等到大四了酸休,玩耍了 3 年,看著周圍同學(xué)出國的出國掌挚,直博的直博雨席,或者 offer 拿到手軟,自己又找不到讀研的理由吠式,BAT 都不鳥我陡厘,我心里急啊,這才意識到特占,業(yè)余玩耍自我感覺不錯(cuò)的東西糙置,在專業(yè)人眼中,就是坨“巧克力冰淇淋”是目。所以谤饭,我就出賣自己勞動力去創(chuàng)業(yè)小作坊拼命學(xué)習(xí)和成長(吃睡都在公司),老板很喜歡改版懊纳,正好揉抵,活夠多,于是天天起早貪黑寫頁面嗤疯,年寫頁面1千張谈秫,所以亥鬓,CSS 和 HTML 的學(xué)習(xí)有個(gè)很簡單的方法雇初,就是寫硝清,很多人寫了個(gè)淘寶首頁,京東首頁好像就覺得我行了脚囊,毛線龟糕,請整站完整寫一遍,寫他個(gè)上百個(gè)頁面悔耘,然后對比自己的實(shí)現(xiàn)和對方的實(shí)現(xiàn)有什么不一樣讲岁,前端這個(gè)東西有個(gè)好處,就是都是明文的,尤其 CSS 和 HTML催首,壓縮都沒法壓縮扶踊,就去去空格換行之類。遇到疑問之處郎任,全部搞懂它秧耗,那成長速度,蹭蹭蹭的舶治,比去培訓(xùn)班快分井,聽來的看來的,不如自己實(shí)踐來的快霉猛。
后來畢業(yè)了尺锚,大家都快快樂樂地去上班了,我就把小作坊的工作辭掉了惜浅,裸辭瘫辩,然后遠(yuǎn)走他鄉(xiāng)閉關(guān)學(xué)習(xí)去了√诚ぃ可以看出我還是很有想法伐厌,很有個(gè)性的一個(gè)人,甚至很多溫室中一帆風(fēng)順長大的自我感覺很好的人不理解裸影,你一邊工作一邊學(xué)習(xí)就好了挣轨。正如問題五提到的,人貴自知轩猩,你希望你以后成為什么樣的一個(gè)人卷扮,當(dāng)時(shí)我是希望自己 3 年內(nèi)可以成為前端技術(shù)牛人,但是均践,一看自己晤锹,就會寫點(diǎn)頁面,JS 是個(gè)渣彤委,后端語言是個(gè) P抖甘,弱項(xiàng)非常明顯,要想以后高度足夠高葫慎,這些基礎(chǔ)一定要打牢實(shí)。但是薇宠,如果一邊工作一邊學(xué)習(xí)偷办,考慮到之前小作坊每天都是早 9 點(diǎn)到凌晨 1 點(diǎn),每周只有半天休息的狀態(tài)澄港,屁的時(shí)間給你學(xué)工作以外的知識椒涯,你就會發(fā)現(xiàn),你的技術(shù)一定會早早遇到瓶頸回梧,然后就成為一個(gè)普通的技術(shù)人員废岂,和自己未來的期望背道而馳祖搓。于是倒退下來,我需要學(xué)一門后端語言湖苞,需要把 JS 進(jìn)行系統(tǒng)學(xué)習(xí)拯欧,把基礎(chǔ)夯實(shí)。
這次閉關(guān)共耗費(fèi)我 9 個(gè)月時(shí)間财骨,獨(dú)自離家镐作,直接去了一個(gè)從未去過的省份去閉關(guān),9 個(gè)月的時(shí)間把之前小作坊賺的小錢全部耗費(fèi)光光隆箩,收獲的是可以自己用 php+sql 做一個(gè)動態(tài)網(wǎng)站该贾,基本上算是和全棧,把 JS 基礎(chǔ)夯了一遍捌臊。學(xué)習(xí)的方法是看書杨蛋,《 php 和 mysql 程序設(shè)計(jì)》《 PHP 6 與 MySQL 5 基礎(chǔ)教程》,《JavaScript 高級程序設(shè)計(jì)》和《JavaScript 語言精粹》理澎,反復(fù)看逞力,反復(fù)理解與記憶,一頁都不訪問矾端,其中實(shí)例全部都親自跑一遍掏击,看完后,給自己安排了個(gè)項(xiàng)目秩铆,從 0 到 1 把自己個(gè)人網(wǎng)站建起來砚亭,純自己手寫代碼,算是自己閉關(guān)學(xué)習(xí)的一次考試殴玛,結(jié)果個(gè)站從設(shè)計(jì)到開發(fā)上線捅膘,共花了我 3 個(gè)月時(shí)間,因?yàn)榘暾馁~戶體系滚粟,以及諸多內(nèi)部頻道和外部頻道寻仗。
雖然我的自學(xué)故事才說了一半,但已經(jīng)足夠回答這個(gè)問題了凡壤。
其實(shí)姑娘和我當(dāng)初的經(jīng)歷有些許類似署尤,由于業(yè)余興趣玩過一些網(wǎng)頁相關(guān)的東西,然后現(xiàn)在希望重拾并進(jìn)入這個(gè)行業(yè)亚侠。我是從興趣向職業(yè)轉(zhuǎn)移曹体,這其中是 9 個(gè)月小作坊 + 9 個(gè)月閉關(guān),共計(jì) 18 個(gè)月也就是 1 年半的高強(qiáng)度前端知識積累硝烂,外加我還有計(jì)算機(jī)專業(yè)背景箕别。所以,你這個(gè)問題,尤其看到“無從下手”串稀,“少走彎路”這些詞除抛,我覺得你無論是一邊工作一邊學(xué),以及還是培訓(xùn)班母截,最后的結(jié)果都會是“問題一”到忽,想變成職業(yè)沒這么簡單的,我覺得你需要破釜沉舟微酬,自斷后路的勇氣绘趋,前路一定挫折不斷,如果沒有足夠的心理預(yù)期颗管,最后可能就變成嘴上說說而已陷遮。什么“少走彎路”,有這種想法恰恰容易走彎路垦江,認(rèn)準(zhǔn)目標(biāo)帽馋,直接義無反顧往前沖,哪怕路上是荊棘是深溝比吭,也不要退卻绽族,這此時(shí)絕對的直線之路,才是真正的捷徑衩藤。所以吧慢,自學(xué)也好,培訓(xùn)也好赏表,形式根本不重要检诗,重要的是你的心到底有多勇敢。
問題七瓢剿、前端工程師和 UI 設(shè)計(jì)師該如何選擇逢慌?
原問題地址是:https://www.zhihu.com/question/21630068
問題描述如下:
本人大四了,正準(zhǔn)備校招呢~可是本人是學(xué)計(jì)算機(jī)的间狂,本人特別喜歡設(shè)計(jì)攻泼,ui 設(shè)計(jì) 視覺設(shè)計(jì)平面設(shè)計(jì)啦等等,熟練 ps鉴象,給朋友做過設(shè)計(jì) 忙菠,也設(shè)計(jì)這網(wǎng)頁。由于大部分時(shí)間都 學(xué)前端了纺弊,所以設(shè)計(jì)的軟件就熟練 ps只搁。我當(dāng)然也不討厭編程,前端開發(fā)需要的基礎(chǔ)我都會俭尖,也做過不少的網(wǎng)站項(xiàng)目,但是一想到以后想做好前端開發(fā)還要學(xué)的語言多了去了我就頭疼,但是想到設(shè)計(jì)不管以后要學(xué)什么還是怎么樣我都不煩稽犁,我不知道該選網(wǎng)頁設(shè)計(jì)和前端開發(fā)這兩個(gè)職業(yè)的哪一個(gè)焰望。
我想選設(shè)計(jì)但我不是設(shè)計(jì)專業(yè)的,我不是學(xué)設(shè)計(jì)的是不是一般公司都不會鳥我已亥。熊赖。?但是前端要做好學(xué)的東西太多虑椎。震鹉。而且前端是不是就是程序員?捆姜。传趾。
我的回答
參見“問題六”我的經(jīng)歷,你具備了傳統(tǒng)意義上真正優(yōu)秀前端的基本潛質(zhì)泥技。網(wǎng)頁設(shè)計(jì)勸你就不要做的浆兰,千萬不要把興趣沖動當(dāng)才華,非設(shè)計(jì)專業(yè)要想在設(shè)計(jì)領(lǐng)域有所造詣珊豹,除非個(gè)別天才簸呈,基本上是不可能的,設(shè)計(jì)理論和設(shè)計(jì)素養(yǎng)這些東西很難補(bǔ)的店茶,而這些決定了以后的高度蜕便。我當(dāng)年就是看到了專業(yè)第一同學(xué)的作品,意識到我20年都追不上贩幻,放棄了做設(shè)計(jì)的打算轿腺。但是,業(yè)余從事設(shè)計(jì)的這段經(jīng)歷對你從事前端大有裨益段直,尤其是偏體驗(yàn)方向的前端吃溅。我工作之前并未意識到自己這方面的優(yōu)勢,后來去了騰訊鸯檬,我才發(fā)現(xiàn)决侈,我本身細(xì)膩的性格以及以前的那些設(shè)計(jì)和動畫方面的積累,是我和其他前端相比而言最大的優(yōu)勢喧务,這也是我后來更多的學(xué)習(xí)中心向交互體驗(yàn)這塊發(fā)力的原因赖歌,可以充分發(fā)揮自己的優(yōu)勢,讓自己更具有不可替代性功茴。
所以庐冯,你可以選擇前端設(shè)計(jì)這個(gè)職位,臥槽坎穿,我給你講展父,超級稀缺的返劲,要代碼寫得溜,要設(shè)計(jì)敏感栖茉,基本上就是計(jì)算機(jī)背景但對設(shè)計(jì)感興趣的那些人篮绿,居然你就是這樣的。哎呀吕漂,居然問題是 2 年前的亲配,不知道你現(xiàn)在再做哪一塊工作。要是真的做了設(shè)計(jì)師惶凝,我覺得可惜了吼虎。真正的前端,應(yīng)該是負(fù)責(zé)人機(jī)交互的苍鲜,和交互與體驗(yàn)走的更近思灰,而這類職位就需要兼顧代碼和設(shè)計(jì),是個(gè)是個(gè)交叉職位坡贺,和傳統(tǒng)意義上的程序員其實(shí)并不是一路的官辈,通常玩不到一塊的,反而和設(shè)計(jì)師走的比較近遍坟,哈哈拳亿。
問題八、如何面試前端工程師愿伴?
原問題地址是:https://www.zhihu.com/question/19568008
問題描述如下:
需要考察的重點(diǎn)有哪些肺魁?有什么方法能夠有效地判斷其水平?
我的回答:通常我并不參與面試隔节,但如果有面試鹅经,通常會花半小時(shí)對候選人各方面信息有盡可能的了解。
我很不喜歡自己準(zhǔn)備一些沒什么養(yǎng)料的問題去問面試者怎诫,而總是盡可能讓面試人員自己表達(dá)自己認(rèn)為最厲害的地方瘾晃,可以是 JS 的也可以是 CSS 的或者 HTML 的,SVG 以及 Canvas 也是可以幻妓。面試的最終目的并不是一場應(yīng)試考試蹦误,而是在對候選人能力等不確定的情況下進(jìn)行準(zhǔn)確評估。如果你搞幾個(gè)固定的題目肉津,那些面試黨說不定正好研究了這個(gè)題目强胰,也有能力不錯(cuò)的人技術(shù)棧并不在你這個(gè)點(diǎn)上,這招聘質(zhì)量就會大大折扣妹沙。
所以偶洋,我的策略是,把你最厲害的一面展示出來距糖,然后玄窝,讓我來看看你這個(gè)最厲害的一面到底有多厲害牵寺,然后根據(jù)其表述話語中一些有意思的信息進(jìn)行深入提問,為什么會這樣哆料?有沒有其他策略缸剪?當(dāng)時(shí)你是怎么想的?最后效果怎么樣东亦?之類的問題,可以看看對待問題的思路唬渗,技術(shù)的深度是怎樣的典阵。
千萬不要拿自己的長處去面別人,而是發(fā)覺對方的長處镊逝,然后看看能否給團(tuán)隊(duì)帶來足夠的幫助壮啊。
除了技術(shù),也會考察候選人的溝通表達(dá)能力撑蒜,以及特質(zhì)方面的一些東西歹啼。例如,這個(gè)人回答問題比較的油座菠,技巧性很強(qiáng)狸眼,抱歉,你大概率會被斃掉浴滴,上頭更喜歡簡單純粹的小伙伴拓萌,因?yàn)閷φ麄€(gè)團(tuán)隊(duì)而言是有好處的,因?yàn)橛偷娜颂嗌裕瑘F(tuán)隊(duì)就不好帶了微王。
總之,就是從多個(gè)維度勾勒出候選人的輪廓品嚣,然后看看是否是團(tuán)隊(duì)目前需要的拼圖炕倘。
對于面試者,我這里有個(gè)建議翰撑,盡量展示最真實(shí)的自己罩旋,因?yàn)槟愀静恢缿?yīng)聘團(tuán)隊(duì)需要的是怎樣的人,例如额嘿,本希望招一個(gè)神經(jīng)刀瘸恼,你反而刻意一本正經(jīng),只能有緣無分了册养,豈不可惜了彼此东帅。
問題九、前端工程師們球拦,你們對前端的興趣是什么靠闭?
原問題地址是:https://www.zhihu.com/question/29071150
問題描述如下:
難道沒有真正喜歡前端的嗎 QAQ 大一妹子帐我,信息安全專業(yè),剛剛確定了自己以后的方向愧膀,擁抱大前端拦键,并希望著幾年后可以以前端工程師的身份來介紹自己,但我確定自己前端方向的時(shí)候可能有些坎坷檩淋。希望可以從知乎中得到前輩們的經(jīng)驗(yàn)和指點(diǎn)芬为。我確定前端方向的時(shí)候很坎坷,想了好多蟀悦,放棄了好多媚朦,但是很好奇前端界的前輩們?yōu)槭裁磿x擇前端工程師呢,你們的興趣在哪里日戈?
我的回答:
老實(shí)講询张,我之所以選擇前端這個(gè)職位,是因?yàn)槲移渌麞|西做不來浙炼,我其實(shí)國標(biāo)跳得蠻很不錯(cuò)的份氧,身高身材力量柔韌性都有成功國標(biāo)高手的潛力,但是當(dāng)時(shí)的性格比較內(nèi)向弯屈,具有輕微的社交恐懼蜗帜,對于一個(gè)需要親密舞伴的舞蹈,自己覺得路不太好走季俩。我其實(shí)對設(shè)計(jì)也很感興趣钮糖,但是總是有力使不出來的感覺,空有技術(shù)酌住,但設(shè)計(jì)出來的東西店归,咳咳,當(dāng)作廁紙我都覺得有辱屁股酪我,以后就算硬著頭皮做下去消痛,估計(jì)也就是一個(gè)普通的設(shè)計(jì)打雜人員。我的專業(yè)是生物信息技術(shù)都哭,生物這玩意兒不念個(gè)博士秩伞,基本上也是苦逼的打工命,可憐欺矫,我要想念博士纱新,必須考研,但找不到考研的理由穆趴,所以脸爱,生物這條路只能以后想辦法曲線救國了。信息就是計(jì)算機(jī)未妹,大學(xué)時(shí)候我計(jì)算機(jī)編程起步相對比較晚簿废,我上大學(xué)之前網(wǎng)吧都沒去過空入,大學(xué)用電腦鍵盤都是要一個(gè)字母,一個(gè)字母盯著然后再敲的族檬,如何和初中就 VB 拿獎的同學(xué)比歪赢,雖然也學(xué)了些理論知識,但當(dāng)時(shí)連程序是什么都是一臉懵逼单料,更別談實(shí)際操作了埋凯。
后來發(fā)現(xiàn)就前端好像玩得來,要會懂點(diǎn) ps扫尖,要會寫點(diǎn)代碼递鹉。寫代碼面向過程即可,并且效果所見即所得藏斩,興趣很容易被燃起來。然后我就開始選擇做前端了却盘。
當(dāng)你做其他東西都不順心的時(shí)候狰域,突然發(fā)現(xiàn)某項(xiàng)東西做的非常得心應(yīng)手,這個(gè)東西很自然就會變成你的興趣所在黄橘,而這個(gè)興趣反過來又會讓你堅(jiān)持不斷做這件事情兆览,形成一個(gè)良性循環(huán),最終成為你的終身職業(yè)塞关。
問題十抬探、Web 前端開發(fā)前景如何?
原問題地址是:https://www.zhihu.com/question/20287740
我的回答:
我其實(shí)并不關(guān)心 Web 前端開發(fā)前景如何帆赢,正如我當(dāng)年選的這個(gè)職業(yè)一樣小压,根本就沒有想過以后會如何如何。所以三十年河?xùn)|三十年河西椰于,如果有一個(gè)工作機(jī)會擺在你面前怠益,分別是十年前的聯(lián)想和騰訊以及現(xiàn)在的聯(lián)想和騰訊,請問你會如何選擇瘾婿?
同樣的蜻牢,十年前的 .net 開發(fā)和網(wǎng)頁美工以及現(xiàn)在的 .net 開發(fā)和前端開發(fā),請問你會如何選擇偏陪?
未來其實(shí)是不可預(yù)期的抢呆,金融危機(jī)出現(xiàn)之前,大家根本就吃意識不到會出現(xiàn)金融危機(jī)笛谦。
人的職業(yè)生涯長達(dá) 40 年抱虐,而科技行業(yè)的發(fā)展這么快,在你的職業(yè)生涯有生幾年揪罕,Web 前端開發(fā)一定會衰落下去梯码,說不定 10 年后就直接嗶嗶了宝泵。難道就因?yàn)檫@個(gè)你就不從事這一行了?萬一前端由于其簡單以及廣泛適用性轩娶,可以再興盛個(gè) 30 年呢儿奶?
我說這么多是什么意思呢?如果我們能把職業(yè)生涯像賭博一樣交在所謂的前景上鳄抒,其實(shí)非常危險(xiǎn)的一件事情闯捎,就像隨波的樹葉,很難掌控自己的前進(jìn)的方向许溅,隨時(shí)都有傾覆的危險(xiǎn)瓤鼻。我真正關(guān)心的應(yīng)該是,你的內(nèi)心是怎么想的贤重?你的興趣在哪里茬祷?你想成為怎樣的人?你的理想是什么并蝗?你的價(jià)值觀是怎樣的祭犯?
正如喬布斯說的那樣:“follow your heart!”——追隨你的內(nèi)心!
除了職業(yè)本身滚停,我們還應(yīng)該隨時(shí)注意提高自己在軟實(shí)力方面的競爭力沃粗,溝通表達(dá)、為人處事键畴、團(tuán)隊(duì)協(xié)作最盅、項(xiàng)目推動等等,日后即使行業(yè)不景氣了起惕,也不要擔(dān)心隨風(fēng)而去涡贱。
當(dāng)然,如果只回答問題字面上的提問內(nèi)容疤祭,我認(rèn)為前端開發(fā)還是可以繼續(xù)持續(xù)盼产,如果非要加 Web 這個(gè)前提,那就不好說了勺馆,瀏覽器這個(gè)二級殼子在下一代大規(guī)模端設(shè)備出現(xiàn)的時(shí)候說不定就沒了戏售,自然也就沒有 Web 這種說法。
為什么我的我對前端開發(fā)前景這么肯定呢草穆,因?yàn)樵绞呛唵蔚臇|西灌灾,越是容易普及的東西,越是能夠興盛昌盛悲柱,經(jīng)久不衰锋喜。前端開發(fā)除了在 Web 上,還可以出現(xiàn)在桌面軟件上,各種物聯(lián)網(wǎng)端嘿般,甚至操作系統(tǒng)都前端開發(fā)來搞段标,因?yàn)樽銐蚝唵巍:唵问挛锷Ω⒙@是億萬年生物演化驗(yàn)證的哲理逼庞。
HTML 和 CSS 是偉大的發(fā)明,簡單實(shí)用瞻赶;JavaScript 其實(shí)也很偉大赛糟,別聽那些程序員瞎嗶嗶 JavaScript 的一些不足,對于那些被 C砸逊,C++ 奶大的程序員璧南,自然會覺得 JavaScript 的套路很奇怪,也會詬病性能方面的東西师逸。
但是如果站在設(shè)計(jì)師和普通開發(fā)人員的角度而言司倚,如果沒有被 C,C++ 這些東西污染篓像,就會覺得 JavaScript 就像是一個(gè)靈動的精靈对湃,親切自由灑脫奔放隨性,套路比較符合現(xiàn)實(shí)認(rèn)知遗淳,非常適合人機(jī)交互這種場景。當(dāng)然心傀,如果你要使用 JavaScript 實(shí)現(xiàn)傳統(tǒng)后端或者桌面軟件的功能屈暗,則自然現(xiàn)在的套路是有不足的,這就是 ES6 開始出現(xiàn)的原因脂男,是用來讓傳統(tǒng)的那些程序員舒服開心的养叛。
當(dāng)我們判斷一件事情的大方向趨勢的時(shí)候,套用古代哲學(xué)思想其實(shí)是非常好的一件事情宰翅,這些思想之所以可以流傳千年弃甥,肯定是有其道理的。如果我們只專注當(dāng)下表面的那些信息去做判斷汁讼,很容易會導(dǎo)致大方向錯(cuò)誤淆攻。就好像你進(jìn)入一個(gè)迷霧森林,如果你只是根據(jù)當(dāng)前的樹木和路進(jìn)行方向判斷嘿架,你很容易迷路瓶珊,走錯(cuò)方向,但是如果你以天空中的北斗星作為方向去指引的話耸彪,你永遠(yuǎn)不會走錯(cuò)路伞芹。
如果這個(gè)問題的本意是問“ Web 前端開發(fā)錢景如何?”,我只是說三十六行唱较,行行狀元扎唾,任何行業(yè),哪怕你是清潔工南缓,需要做到頂尖胸遇,“錢景”根本就不要擔(dān)心的。
這個(gè)問題好像是 2014 年提出來的西乖,現(xiàn)在來看狐榔,前景感人,感人沒有引號获雕,是真的感人薄腻,2016 年培訓(xùn)最火的職位,同時(shí)也是競爭最激烈的職位届案。
結(jié)束語
人生路漫漫庵楷,找準(zhǔn)目標(biāo),認(rèn)準(zhǔn)方向楣颠,堅(jiān)持不懈尽纽,終有所成。成長路上童漩,最忌猶豫不決弄贿,瞻前顧后,定要破釜沉舟矫膨,一往無前差凹,否則還是不要入此行,找個(gè)閑職做做好了侧馅。
共勉共成長危尿!
感謝閱讀!