⑴ 為什麼前端這么難學。我現在是該堅持還是該放棄
首先,你從培訓班出來,包裝3年經驗,很明顯你根本勝任不了3年需求的崗位,說明你第一步就錯了。包裝可以,但是你包裝過頭了。我就面試過一個人,明明是培訓機構出來的,我問他是不是,還不承認,咬死他有三年經驗。結果我一問你都有哪些上線的項目?拿不出來,在問一些知識點,幾乎答不上來。我只能讓他回家等通知了。本來我們招的也不是非得有3年經驗的,我有時候也會帶一些肯上進的新人。你怕找不到工作,你可以說你有一年半年經驗可以理解,但是你說你有3年經驗,那我是不是得給你3年經驗的工資?但是事實上你可能沒有我招的一個新人做得好,還拖項目進度,老闆怎麼可能不罵你?
不過呢,誰都是從菜鳥開始的,在這里你應該也能學得一點東西,培訓機構其實和學校教的都是差不多的,只不過學校兩三天才上一次課,培訓機構系統學習而已。教的東西肯定能用到,你現在要不要走,我覺得你如果是想學東西的話,可以繼續下去,平時有空多點補充知識。等你能獨擋一面了,領導自然就不會輕易罵你了。但是如果實在幹得不開心,那就換一份工作,在工作中積累經驗。無論什麼時候只有讓自己強大起來才是你的資本,包裝來的始終不是真正屬於你的,
⑵ 我想自學前端,學起來難不難啊
難易程度是相對的,不是絕對的。
相較於其它編程類技術,前端開發是最易學的一門技術。可以這么理解,Web前端開發技術是一個先易後難的過程,它主要包括三個大的技術架構是:HTML、CSS、JavaScript。
web前端它是一門注重實際操作的技能,沒有很多冗長復雜的理論知識,大部分人都適合學。但是自學的話,難度就會增大,其中很多技術性的東西,靠自己去參悟,還是有點吃力的,我身邊自學WEB前端朋友,基本都是堅持不下去選擇放棄,或者半路去報名培訓班,就算悟性極高的那批人,學成也花了快1年半的時間。所以不太建議你選擇自學的方式。
⑶ 前端好學習么
其實前端學習沒有好不好學這么一說,學習本身就是不斷的突破,遇到問題和解決問題這樣的一個過程,想要學好肯定都是有難度的。
昨天在我在國外網站reddit上看到一篇文章,作者分享了他自學編程 9 個月後找到工作的經歷。文章不到一天就得到3千多贊,2百條回復。我看了下內容,非常中肯,其中有不少建議也是我在編程教室屢次提過的。所以我連夜翻譯了出來。原文略長,我做了適當的縮減。另外加上了一點我的想法(括弧內斜體字)。雖說國情有不同,但本質是相同的,對想要入行的朋友很有參考價值。
長話短說,2017年12月,我處於人生的十字路口,無論是繼續完成看不到盡頭的化學碩士學位還是重新尋找自己的出路都令我感到糾結。那時我寫了一些代碼(也就幾百行 Python),感覺不錯。我決定靠著積蓄來學習編程,直到找到一份開發的工作。
回顧這個漫長而艱難的旅程,我想分享一些經驗,它是如何開始以及如何結束的。我的觀點沒有特別的順序,雖然我會先寫一些我認為最重要的。
1)設定一個非常精確的目標。我是指現實的目標。這是你旅程中最重要的方面,你需要對終點線有清晰的認識。你學習編程,是因為想解決一些實際問題嗎?也許你想要自動處理你工作/生活中的一些任務,也許你想破解游戲,也許你出於好奇心,也許你喜歡學習新事物,又也許你是一個想開發應用卻沒有資金的企業家。而本文中,我主要針對想要通過學習編程找工作的角度來談。
2)如果你的目標是找工作,就盯著就業市場看,而不是 Twitter 和 Medium 上的熱點。還記得第一點嗎?你必須設定一個非常精確的目標。諸如「我想成為一名開發人員並從事游戲行業」這樣的目標就過於模糊。你的首要任務是什麼?是尋找一個真實的開發工作,還是在游戲行業工作?如果你在游戲行業找不到工作怎麼辦?你的城市沒有此類公司,或者你達不到游戲公司的要求怎麼辦?其實不論你學習哪種編程語言,我敢說將來某一天這些知識都可能用在游戲開發上,只要這是你的目標。你將需要學習大量的新東西。但是你有解決問題的能力和編程知識才能邁出第一步。
你是一名自學成才的開發人員,不是 MIT 的優秀畢業生,找到一份異地的工作會更難。我在2017年12月犯了一個錯誤:我認為首要任務是找到一份前端開發的工作。但我沒意識到,在我的地區 C#/php/Java 的工作與前端 JS 工作的比例為9:1。因此,請查查你所在地區的公司,看看它們的職位和要求。
(如果你的目標是轉行,不妨從初級職位先入行,再不斷調整到你期望的方向)
3)永遠永遠不要假設在編程中什麼更難什麼更容易。當我決定學習前端時,我這樣做了。這是一個巨大的錯誤。不好說前端比後端更容易,或是更難。關鍵是,你也無法知道自己會更喜歡什麼,更適應什麼。所以不要假設。永遠不要認為 JavaScript 比 C 更容易或是更難。不同工具對於不同問題的有不同的復雜性,你還沒有到能區分什麼「更難」什麼「更容易」的程度,我也是。就別去衡量。你能說清,從現在開始的24個月內,在某平台上提升渲染和網路性能比優化基於地理空間數據預測天氣的演算法「更容易」嗎?你確定在復雜的實時應用程序中管理狀態比編寫著色器或教電腦如何翻譯或繪畫更容易嗎?你根本就不知道。所以,千萬不要做這種無腦的假設。
4)堅持學習。你有多少時間學習編程?你是學生嗎?還是失業了(就像我一樣)但是有足夠的積蓄來投入學習。你的目標要符合實際,但要堅持。每天寫1小時代碼會比每周寫一次7小時的代碼會使你成為一個更好的程序員。
5)不必懂得職位所需的一切。對於框架和庫尤其如此。頂級公司非常關注數據結構和演算法,這表明你可以思考並解決問題。更具體地說,無論你選擇何種編程語言(Java,JavaScript,C#,Python 和 PHP 中的任何一種都可能找到工作),盡可能地學習它的基礎知識。我學習了前端開發。我覺得這需要從 html 到 dom,學大量的庫,transpiling,webpack 等等。但實際上,在求職面試中,這些話題很少被問起,他們只想知道我是否真的了解 JavaScript。我申請了3個前端 React 工作,沒有人關心你是否知道 React 的調用(我的意思是,如果你學習 React,你應該至少具備它的工作原理的基本知識),但成為一名優秀的 React 開發人員所需的核心知識就是了解 JavaScript。如果你了解 JavaScript 和 dom,那麼學習 React 只需要一周的時間。否則你永遠不會成為一個好的 React 開發者。高階函數,this 綁定,這些是 React 開發人員每天需要真正面對的問題和知識,其餘的都是谷歌搜索。這同樣適用於任何其他語言。如果沒有扎實的語言基礎,各種 bug 會讓你一籌莫展。僅僅讀過一些東西,並不意味著你吸收了它,更不談掌握它了。一個會 10 種技能/工具,但並不真正精通一個的人,很難取得別人信任。
6)嘗試尋找一個導師。Slacks, IRC, Discord 上很多人比你有經驗,你也許能找到願意長期幫助你的。感謝 freenode 的 javascript 頻道所有成員對我學習的幫助(特別是 ljharb,slikts,stennowork,liste,innovati,zsoc,cjhonson,qswz,GreenJello,sillyslux)。請注意,我不是讓你們去聯系這些人,他們在討論組中提供幫助而不是一對一。兩個建議:1.不要考驗導師的耐心和意願。如果你一直在問可以搜索或書上查到的基本問題,他們會厭煩並懶得回答你。2. 程序員,包括你在內,都希望別人認可自己的聰明,我認為這是理性人的本質。你可以利用這一點,比如:如果你進入聊天室並寫「平心而論,我覺得在座各位不會綁定箭頭函數」,你會得到20個回復。而如果你問「箭頭函數怎麼用?」 可能不會有任何答案。
(一個過來人的建議和指導對於學習非常有幫助,這是任何書本、教程或者視頻都無法達到。關於這點,參與過編程教室碼上行動的各位同學應該深有體會)
7)了解什麼是編程:將數據作為輸入,對它做一些處理,生成一個輸出。這就是每個程序所乾的事情。把兩個數字相加:輸入數字 -> 處理 -> 輸出總和。在屏幕上渲染3D模型:相機+頂點矩陣 -> 處理 -> 屏幕上的2D圖像。在網站上設置你的個人資料圖片:數據輸入+地址 -> 處理 -> 來自伺服器的響應。這就是編程的全部,一切都是為了計算。數據 -> 處理 -> 數據。不過我對數據結構和演算法知之甚少。我不太能實現歸並演算法或實現復雜的數據結構,在面試中也沒有真正要求它們。知道時間復雜度和不同數據結構的應用對於我的面試來說已經足夠了。但在其他公司和職位上可能會有所不同。
8)了解程序員做什麼。他們通過代碼解決問題。作為程序員,你需要解決問題(通常由你自己創建)。不能解決代碼的問題,那要你何用。如果你認為跟隨 youtube/udemy 上的一些廢話視頻可能會讓你成為一名程序員,那就大錯特錯了。看別人替你解決問題意味著你沒有提高問題解決技巧。所以當你無法理解某些代碼時,別急著谷歌或問人。要知道,這就是你要面對的工作。善於解決問題,有些可能是語法問題(如前所述),有些可能與性能有關,等等。學會使用調試器。代碼只是想法的實現,習慣用鉛筆和紙編程。定義好你的問題,輸入,輸出以及如何從一個到另一個。整理你的代碼,看看你亂七八糟的面條代碼,看看你凌亂和命名不佳的函數和變數,超過幾百行就難以維護的代碼,試著改進它。
9)掌握計算機的基本常識。認真臉。你起碼要了解馮·諾伊曼結構和內存模型,這些幾小時就能學完。哪怕是通過維基網路、Youtube 或者是一些博客,至少做下這件事。搞懂內存模型和調用棧,你的代碼水平將會提升,你也會碼得更快。你再也不會搞不清:為什麼你不能修改一個字元串,或者為什麼是通過引用而不是值來傳遞非基本類型。這對提升你的學習速度,加深你對計算機運行原理的了解具有重要意義。
10)不要跟著視頻學習。你需要做得事情越高級,越小眾,你能使用的資源就越來越少。你要習慣用谷歌也搜索不到多少信息的情況。你將會需要使用文檔很少或者為零的程序庫,需要查看代碼來搞清楚為什麼這個庫改變了那個對象類型,或者運行情況和預期不同。去 Github 上看一些熱門的庫,那裡有很多問題可研究。在你之前,那些優秀的工程師從來沒遇到過這些問題。我知道這不容易,但這是個好習慣。我還沒見到過哪個編程問題在視頻中比在出色的書或文章中寫得更好。而且要注意,很多做這些課程的人並不一定是優秀的程序員;即使他們是,他們也不見得是好的老師。
我不是說「不要使用視頻」。有很多視頻幫了我大忙,幫我理解概念,解決問題,以及看怎麼使用一些技術。但是不到最後,不要用這個資源,不要依賴它。比如我自己很喜歡 Andrew Mead 的 React 課程,但如果我沒有自己去研究,一遍遍嘗試,那我看到過的內容都沒變成我自己的。靠著某個視頻,了解關於某個軟體特定版本的例子,只是不得已的替代方案。
(你覺得真正的編程大牛會整天開直播給你講怎麼寫入門代碼嗎?)
11)調試和版本控制。這對於學習語言和計算機基礎是最重要的,也是工作環境中最需要的東西。其次是工具的使用。如果你掌握 Java,那麼學習 Spring 比學習 docker 和 git 要容易得多。但你可能會花 95% 的時間來編寫 Spring 代碼。又比如你掌握 Python,你可以在一個周末學會 Django,但需要花更多時間學會調試錯誤的 Python 代碼。關於 IDE 也是,知道 5 個 IDE 不如熟練使用 1 個。這些未必是初級職位的必備技能,你可以不去了解它們,但這個東西是長期有用的。
(調試 debug和版本控制是區分新手與程序員的重要標志,對求職也很加分,參考開發5分鍾,調試2小時 - 你的問題在哪裡?)
12)不要試圖一次學習太多東西。小步走,但要穩。我犯過這樣的錯,並且付出不小的代價。不是說讀 Hennessy 和 Patterson 的著作沒用,或者說關於設計模式的閱讀是無用的,也不是說看 Youtube 視頻、有趣的技術討論、閱讀行為驅動設計沒用,但是還記得第一點嗎?你必須明白什麼是首要的,扎實走好每一小步。如果你和我一樣,充滿好奇心,那很好。但是,先找到一份工作,在一個舒適的環境中,拿著一份薪水,跟著資深開發者學習,然後回家嘗試用 Rust 編程,看關於不可變性的談話,難道不是更好嗎?
關於招聘:
13)人脈 > 經驗 > 知識。
大多數公司都是長期招聘,但沒對外公布,可能他們的網站上連個「聯系我們」都沒有。所以在找工作時,人脈至關重要。我強烈建議你加入當地線上的社區,線下的更好。我寄出的簡歷全都沒有回應,我得到的所有面試機會都來自我認識的人。當對方知道你是個開發者時,可能會對你說,「你感興趣的話,我可以把你的簡歷遞給我的頭兒。」
如果你是自學的開發,那求職可能有些難(不過這個視地區和職位而定)。盡管你技術很強,知識豐富,但你的簡歷上沒有經驗可寫。只是說我會 Python,沒人會給你面試機會,因為你沒法證明。招了你可能意味著公司要賠錢。養著幾個不產出還拿工資的開發者,人力部門不如做一些別的事。我知道技術過硬卻沒法展示是怎樣地痛苦,但現實就是這樣。
所以人脈之後,第二重要的是有經驗。你有兩個選擇:參與開源項目(寫點有用的庫/模塊,哪怕提交一個好的修改也能加分)或者開發一些人們會用到的東西,甚至是給別人免費使用。我選擇了第二種。我為我們市的一個足球俱樂部開發了一個應用,這個俱樂部需要通知球員周日哪些青年球隊會來比賽。這個應用算不上好,但每周數百人都要用到。
你能用代碼解決一個現實生活中的問題,滿足人們的需求,已經很了不起了。我還給我叔叔寫了一個短租網站,沒有實時預定的復雜資料庫,但是解決了他的問題。就算它有很多反模式,影響大嗎?可能你做了一個精緻的 Instagram 復刻版,代碼也更清晰,但是會有人用它嗎?其中有你的原創嗎?可能你有一部智能電視,你總是要把硬碟里的各種節目拷貝到電視機上來看,為此感到心累時,有想過做些什麼嗎?
你有一個路由器,還有一個可以安裝軟體的程序的電視機。不如花一個月寫一個粗糙簡陋,但卻有用的 app,可以讓你的電腦和電視進行數據傳輸。這些寫到簡歷上也很好看,因為他們給你機會來談論你是怎樣解決問題的,比如你什麼地方做得好,什麼地方做得不好。我的第一個 React app 沒有用狀態管理器,隨後我遇到很多由此導致的問題,維護代碼也越來越難。
我遇到了問題,解決它,而且能知道我的解決辦法是好是壞。看看你的周圍,你能做哪些事情來幫人們解決問題?從你自己的問題開始,繼而關注別人的,哪怕是做免費服務。而你用 Django+PostgreSQL完美復刻 Twitter 有什麼好談的呢?
(很多人說學完基礎不知道做什麼,但其實身邊處處都可能用到編程。我們也舉過很多例子,公眾號Crossin的編程教室里回復關鍵字項目)
最後就是你的知識,而且這很重要。如果沒人幫你遞簡歷,說你是個優質資源,那知識就是你最後的王牌。你發布了兩個安卓的應用,簡歷上至少有東西可寫。可能你回答不了被問到的問題,但如果給你時間,你總能做出一個產品。所以知識成了你唯一的資源,但不那麼有力。當你坐在一個 10 年經驗的人面前,說著「value」而不是「variable」,別人就對你的水平有所了解了。假設沒人推薦你,沒人用你寫的代碼,你的 GitHub 上是一堆剛初始化或者廢棄了的項目,或者是從教程里復制來的一些片段;假設你被問到一些基礎問題(其實也是最難的),而你不能自信地給出一個清晰的答案,誰會付你錢呢?
14)小貼士1:如果在你正式找工作前有 6 至 7 個月的准備時間,我推薦學下 C 語言。這是一門很小的語言,但可以教會你很多。這么說吧,如果我在花 4 個月學習另一門高階語言之前,先花 2 個月學習 C 語言(每天至少 4 小時),並且解決一些 Leetcode 上簡單和中等難度的問題,我會成為一名比現在更優秀的程序員。現在技術太多,高階語言中有大量「噪音」。
你很快就會從「我怎麼樣從 input 到 output 」這樣的問題上被引誘到別的關注點上,而這卻是寫一個完整代碼最最基本的步驟。我知道編寫「input」和「output」一點也不酷,但還記得第一點嗎?我們需要盡快找到一份讓自己能掙錢的體面工作。學習 C 語言,可能起初比較慢。但當你學習下一門語言時,你最後會發現和使用 C 語言解決問題是一樣的,只不過要使用無數的 API。
15)小貼士2:學會管理你的時間。你整天坐在電腦前學編程,順手刷一刷各種網站很有誘惑力的,但這些都是在浪費時間。如果你能把時間管理好,那你的准備時間可以大大縮減掉幾個星期甚至幾個月。
16)小貼士3:休息,社交,戀愛,娛樂,照顧自己,這些都超級重要。一個人坐在那裡,整天看著博客,盯著Visual Studio,對你的精神健康沒有好處,而且會讓你和別人格格不入。努力學習,懂得自製,但是在生活的其他方面也要自製。因為一旦這個平衡被打破,其他地方也會出問題。
就寫這么多,如果寫太長了,請不要介意。希望有人會覺得這篇文章有幫助,且這只是我個人的見解,可能會有很多人不贊同。
基礎小白自學前端推薦一些比較不錯的學習網站
⑷ 為什麼前端這么難學,培訓班出來的前端。在每個公司都待不長
這只能說明你的前端培訓班比較糟糕而已。前端培訓千千萬,培訓前端的萬萬千,你如果是隨便找了一個,你大概率會被坑啊,你想啊,好的大學在全國所有大學當中才能佔多少比例啊,更何況民間的機構?
正常的前端培訓班本來就是應該通過短期速成的培訓,把1~2年的前端開發的工作經驗傳授於你,如果你根本就沒達到這個水準,那就是非常失敗的培訓啊。
其實前端開發並不難學。前端開發的技術棧。也並沒有什麼艱深的地方,如果說後端開發的難度是1的話,前端開發只是0.5。前端開發最大的問題是技術棧更新過快。需要不斷學習。但是學的內容也並沒有超出正常人理解范疇之外的事。
所以得出結論,培訓出來的前端程序員在公司都待不長,大概率是自身原因,然後是機構的原因。並不是行業的原因。
⑸ 學習前端的難處有那些呀
入門前端時的一些困境?
1、因一些基礎演算法、數據結構理論不扎實導致一些編程思維難於理解。
2、計算機體系結構、操作系統理論、網路理論不扎實導致到後期一些東西難於理解。
3、前端整體體系架構沒有做過深入思考。導致用會用,但不知道為什麼用,用另外一個有什麼區別。
4、學習環境中無高手,沒有高手能夠指導自己進入下一個層次。
5、有意識但是沒有行動,我的網盤收集了一堆資料或者一堆視頻,然後就沒有然後了 。
如何才能快速入門前端?
1、學習東西,自學是一種途徑,然而在自學的過程中,很多人處於不知道自己不知道的狀態。
2、另一種是跟著高手,開闊視野,達到知道自己不知道的境界,從而有方向,在短時期內進入到一個新的境界,節約時間成本。
⑹ 自學web前端難嗎,為什麼我學得那麼吃力
零基礎學習web前端肯定是可以的,web前端作為當下IT互聯網行業比較流行的一個編程開發行業,不管是pc端還是移動端都有著廣發的應用,尤其是在互聯網普及的今天,市場對於web前端人才的需求也在增加,相對來說選擇學習web前端還是比較有發展前景的。
對於學習前端的人來說,入門是相對是比較容易的,對於零基礎的來說是完全可以的進行學習的,下面小編就分享一下零基礎學習web前端應該如何進行。
1、首先,要有一套完整的符合企業需求的web前端課程;
2、為自己制定一套適合的學習計劃,後期學習按照計劃嚴格執行;
3、學習的過程中要多和別人進行互動交流,這樣才可以把自己學到的東西更好的記憶;
4、關注一些比較好的web前端學習社區,有時間多去了解一下前端行業的發展和新出的技術都有哪些;
5、學習要持之以恆,不能三天打魚倆天曬網。
學東西不可以學死東西,要學會舉一反三,多思考,遇到一個問題先去自己解決,學編程很多時候就是一個思考的過程,腦子要不斷的旋轉起來,同時也要培養自己的語言組織能力,這都是跟邏輯有關系的。
⑺ 前端開發很難嗎
前端相對Java,C++這些後台編程語言入門難度低一些,但是學習到後期也是一樣有難度的,沒有難度的東西沒有競爭力,對應薪資肯定也不高。
有沒有報培訓的必要還是要根據你實際情況和自身的需求,很多人都在自學和培訓之間糾結。我也回答過很多這方面的問題。
自學可以省錢,靈活不受拘束。但需要你有比較好的自控能力和學習能力。如果沒有良好的規劃和自控能力很多人自學到放棄只需要一周。
培訓有老師全程輔導監督、完善的課程體系、就業服務等。但培訓費用昂貴,良莠不齊。學員培訓出來找不到工作也大有人在。所以需要你也要擦亮眼睛。現在機構很多,坑的也不少。
所以你需要分析哪種方式更適合你,自學和培訓沒有絕對的好壞,只是希望你選擇到最適合你的方式。
⑻ JS本身並不難,為什麼前端學起來感覺很難
因為技術更新太快,vue,angular等,前端就是一直在學習的過程。
⑼ 前端好學嘛
前端開發的入門門檻不是很高,前面的部分學起來很容易。所以對於想從事IT工作的人來說,前端開發是個不錯的切入點。但是後面關於框架和項目的部分難度就增加了,學習曲線也越來越陡峭。
現在很多企業招人更看重的是全棧開發能力,除了web和移動端的開發,也要負責一部分後端的工作,所以就對前端人員的技能提出了更高的要求,相應的薪資也比普通的前端開發人員更高一些。在激烈競爭下,經受住考驗的永遠是那批更優秀的人。
如果你是喜歡編程開發,願意不斷學習提升自己的技能,想成為優秀的互聯網人才,那轉行前端確實是一個很好的選擇。
⑽ 為什麼自學前端開發很難堅持下去
一直以來,我總是強調,自學最需要並不是智商,而是堅持。堅持看書,堅持練習,堅持寫做代碼。年齡並不是成為前端程序員的最大障礙,學不會、看不懂,慢慢看,換個角度看,換本書來看,早晚能看懂。因為客觀上來講js並不難,它只是一門腳本語言而已。絕大多數的前端程序員,都只是在從事鍵盤上的體力勞動而已。
說了這半天,那為啥前端自學難以堅持?
就是因為在自學前端這個事兒里,存在著「未知」,所以難。這個對「未知」的自學,會帶來幾乎是連續的挫折感。這是肯定的呀,你學一個新東西,肯定會有看不懂的地方。
「學不會,看不懂,換個姿勢,還是看不懂」,「找人問吧,找誰呢?好不容易找個人問,要麼你說不清楚,要麼人家不愛理你」,大家都時間寶貴,憑啥理你啊。
這期間的挫折感,甚至是失敗感,是連續的,而且是累加的。先是挫折感,然後是失敗感,然後是懷疑自己,然後是自覺不自覺的遠離挫折源頭,「看不懂的書都不想再翻開」。
就這樣,從入門到放棄。人之常情,可以理解。