天天看點

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

 現在大家的學曆基本提升上來啦,基本搞程式設計的都是大學或者大專起步,這裡僅那大學舉例。

好多大學生跟我說是計算機專業,軟體工程專業等,啥都學一點,這樣真的好?

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

對于大學生,如果是計算機相關專業,想走程式員這條道路,我建議你還是盡早确立人生方向,比如你想從事前端方向,就深入研究前端的技術,可以用一門技術解決各種問題,這樣就很棒棒,前端相關技術可以參考我上一篇文章:--->2020年前端技術概覽

大學期間可以找一兩門感興趣的課程,朝着精通的方向研究,這個社會确定不是全才,而是專家。

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

 關于程式設計這個職業,正如前一點所說的,很普通的職業。比如與建築行業做類比,都一樣,數量最龐大的還是底層的“小工”,在我眼裡,如果隻有一膀子力氣隻會别人讓你幹嘛就幹嘛,那用手敲鍵盤和用手搬磚其實差別并不大,不要覺得在辦公室裡吹空調通宵跟在工地曬太陽相比會輕松高貴一些,近些來聽到的活活累死在辦公室的例子可也有不少呢。同樣的,在程式設計這個職業裡,從小工要進化成“架構師”、“專家”、技術總監等等高端崗位的難度,一點不比搬磚工進化成建築設計師啥的崗位難度來得小,甚至更大。

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

學程式設計有前途嗎?程式設計在當今世界隻是一個很普通的職業,其他職業有的一些特性它多少都有一些。比如各位最關注的收入,和其他職業一樣,高薪隻屬于小部分人,絕大多數人拿的工資和其他行業的差別并不是很大。是以幻想這隻要入了這行就能輕松登上人生巅峰迎娶白富美的,那你還是死了這條心吧。是以說,學程式設計有前途,但不一定比學銷售、學設計...來得更有前途。

“你看現在很多統計報告都說IT行業平均工資很高……”,列位,這年頭最不靠譜的詞就是平均,有多少人是“被平均”的。

寫前面幾點的目的不是勸退初學者。很多初學者之是以願意進入到這個行業,我想大部分都是因為宣傳的引導。有些是合理引導,比如國家學校,因為作為比較朝陽并且能帶來大量稅收的行業,國家當然希望越來越多的人從事這個領域推動發展;另一些是為了達到一些個人目的而進行的誇大性引導,比如部分無良教育訓練班的一些就業保證、收入保證。在這種背景下,我希望在一些過度發熱的大腦上适當地澆一點涼水,說明一下一些現實情況,冷靜下來以後我們再來說後面的事情。

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

如果你冷靜下來了以後還是願意繼續從事這個行業這個領域,那麼我們就能理性地介紹一下這個職業了(這裡就不灌雞湯說為了興趣為了夢想什麼的了)。現階段,這個職業相較于其他來說,是一個變化速度最快的職業。變化速度快會讓從事這個職業的每個人都過得很累,沒辦法,因為變化得快你就得不停地學,停止學習就意味着淘汰,這在IT領域展現得尤為明顯和殘酷;反過來,變化速度快也就意味着機會大,如果說你跟上了變化速度而其他人沒有跟上,那麼好了,你就踩着他的屍體上去了。競争這件事哪裡都有,有些職業上的競争點主要是經驗、關系沉澱等,那麼反超難度自然很大了;而程式設計這個職業裡,經驗和關系雖然也會對競争結果産生影響,但是技術實力所占據的比重更大,是以可以說,這個職業相對機會更多。另外一方面,雖然同級人之間存在競争,而且這種競争更加顯而易見,但實際上真正影響到你生活品質的對手是那些高高在上的前輩。之前,由于這個行業還處于一種“野蠻生長”的階段,各種崗位的需求量都在不斷擴大,這種“與前輩争利”的現象還不明顯,但是在現階段乃至未來,這類競争會越來越凸顯,直到和其他行業相同。在這個領域裡,技術實力的累積雖說與經驗也有關系,但當你真正入了門以後,技術實力的增長與你的專注度、精力、能用于學習的時間是非常相關的。(這裡假設前提是你已經懂得如何學習、提高技術水準和能力)假如你剛畢業,渾身打滿雞血,身體倍兒棒,恰巧又是個單身狗(嘿嘿...),那麼與一個40多歲,上有老下有小,身體開始走下坡路的中年工程師相比,一起去學習某個新的技術,你的優勢顯而易見。是以可以說,這個職業抓住機會更加容易。

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

是以,如果你對未來充滿渴望,并且有信心堅持付出努力,那麼選這行沒錯。沒有别的,這行裡付出以後獲得回報的機率比較高,僅此而已。

瞎分析完行業,我們來說學程式設計。學程式設計難嗎?幼稚園和國小都開始教程式設計啦;學程式設計不難嗎?一些好大學相關專業的學霸也不見得是合格的程式員。然而無論難不難,先得正視這個技能。在我眼裡,現在學程式設計跟電腦剛出現時學打字其實差別并不大。當年,一個每分鐘能打一百多漢字的打字員那也是響當當的高端技術人才,如今呢,打字已經淪為和拼音一樣的基本技能啦。程式設計也是如此,可以預見,如果隻是學會了xx語言的xx文法,那麼幾年後的你和現在的打字員沒什麼差別:誰都會的東西還要你幹嘛?但是換個角度想,你會打字就一定能寫出好文章來麼?那種閱讀量幾十萬幾百萬的好文章難的是構思内容還是打字?同樣的,對于程式設計,真正難的是如何寫出能解決實際問題的代碼,而不在于xx語言文法或者xx架構使用方法本身。是以,學程式設計,學會xx語言預發或者xx架構使用方法簡單,但是必須要學(要寫好文章你總得會打字吧),難學的是,如何寫出能解決實際問題的代碼。

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?
教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

程式員這個職業的學習和一些傳統職業的學習存在很大的不同。如果把大學和教育訓練機構比作一個工廠,對于一些傳統行業來說,他輸出的合格産品是一些能夠勝任工作的員工;而對于IT行業來說,他輸出的合格産品是一些能夠快速學習新技能勝任工作的員工。再厲害的大學和教育訓練機構,也不可能僅靠他們所提供的教學内容培養出完美勝任軟體崗位需要的人才,這個過程中必須要求學習者自身能夠自己探索,緊跟技術發展。IT行業變化很快,新技術層出不窮,也許一年前正确的理論在一年後就被人噴得一文不值。而技術是先出現于實驗室研究所,然後在行業内應用,最後才會被人總結成教材出現在學校和教育訓練機構裡,這個過程需要一個很長的時間,是以對于程式設計來說,學校教學内容的落後是必然。是以,你不用到處說學校教材如何如何落後不靠譜,教育訓練機構如何如何不貼合行業實際,真正落後的是你自己的思想。如果你還在學校或教育訓練機構學習,那麼你一定要分析一下a)你要什麼;b)它能給你什麼。我這裡給你的答案是:a)你要的是這個行業的基本知識(學會打字),并且如何學習新東西的技巧;b)它能給你的是教會你基本知識。你看,有一條東西看起來學校和教育訓練機構給不了你,那就是學習新東西的技巧,而這一點又至關重要,影響到你的職業發展。其實任何學校和教育訓練機構在教你基本知識的過程中就在一遍遍給你示範如何學習新東西,比如讓你做作業,讓你看書,讓你練習寫代碼(有些好老師會直接總結成方法單獨拎出來讓你學)。不是他們不給,是給你了你沒接住。

教育訓練班好不好?很難評價,但是它既然能存在就必定有其存在的價值。很多時候教育訓練班學員找工作成功率低于科班出身或者自學出身的程式員,不能全怪人家教育訓練班。首先,學曆這東西在中國多少還是有用的,如果說你沒有一個好學曆,隻有教育訓練班教育訓練經曆,那你得先承認你的起點比其他人略微低了一點(這裡插一句,無論學什麼東西,承認自己的弱點隻有好處沒有壞處);再者,我相信有很多人選擇教育訓練班是因為不知道怎麼自學,那麼按照第7點的分析來看,“如何學習新東西”這項關鍵技能對于這部分同學來說,從開始時就要弱一些。而這部分同學在經曆了教育訓練班之後如果隻掌握了基礎知識,而在最缺乏的“學習新東西的能力”上沒有所斬獲的話,我說直接點,教育訓練班上了跟沒上差別不大。

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

如果選擇上教育訓練班,那麼需要注意哪些事情呢?首先上了教育訓練班的一個最大好處在于你會比自學更加專注,更加能保障時間和精力的投入,并且不會輕易放棄。你交錢了,還不便宜,半途退縮人家也不給你退錢,是以處于心疼錢你也會好好聽,也會堅持到課程結束(土豪忽略)。另一方面,封閉式的環境讓你難得沒有心思和時間幹别的,說真的,在如今這個時候,想找這樣的環境真挺不容易的。上了教育訓練班就得努力,畢竟人家也隻是輔助,最終能學多少還是在你自己,你要是上課睡覺作業不做誰都救不了你。認真聽講努力學習是必要條件但不是充分條件。另一個,你得自己找資料再以基礎知識為起點再學點别的,這一點最為關鍵。學一點别的不是為了讓你有資本在同學面前吹牛逼,而是要通過方式一點點學會,在沒有老師教的情況下,你自己還是能學會一些東西的。在教育訓練班上課期間,你要不斷練習這件事情,否則就如我前面說的,教育訓練班上了跟沒上差別不大。

是以我來總結一下教育訓練班這件事:

  • 上了教育訓練班就能有高薪工作。假的,趁早死心,高薪跟教育訓練班無關,跟你這個人本身有關,人家否定的就是你這個人,而不是你上教育訓練班的經曆。
  • 教育訓練班都是騙子。不對。騙子是存在的,也聽說過以教育訓練為名實際上是傳銷的,也聽過搞什麼學費貸款其實是詐騙的,這種是真的騙子,教育訓練班隻是他們騙人的手段。而對于正經上課的教育訓練班來說,一方面上教育訓練班是投資,投資有風險(老師水準有高低);另一方面你自己如果沒搞清楚你需要從教育訓練班得到哪些東西,出來找不到工作,我認為這個責任在于你自己。
  • 教育訓練班作用很大。對于自制力差,周圍幹擾因素多的人來說,這句話對。對于自制力強,學習能力強的人來說,作用确實不大。
  • 業界歧視教育訓練班,履歷上有教育訓練經曆找不到好工作。假,我說句實在話,自己菜就是菜,别找客觀原因甩鍋,你要是怕過不了履歷海選你可以走内推管道啊,這年頭對于高手哪個人不是如饑似渴的。如果你覺得能力強技術好但是沒找到工作,請把履歷私信發我,我可以無償對你做評估,如果确實有實力,我包推薦(熱烈歡迎,我們這如饑似渴期待高手的加盟),到時候進來後就算我給你打下手我也心甘情願,抱着你的大腿求你帶我飛。

你的工資與什麼相關?在一個公平的環境裡,你的工資與你能為公司創造的價值相關,這是一定的。那麼如何産生價值?那就是替公司解決問題。能解決問題的事就是有價值的事,無法替公司解決問題的事就是沒價值的事,就是這麼簡單。這樣一來可以看到,你的技術和你的工資實際上并沒有直接關系。我舉個例子,如果一個公司他隻有PC端産品,公司的收入全部來自于PC端産品,那麼你手機開發能力的高低對于公司來說是沒有意義的。這種情況下能給公司産生價值的有這樣幾種管道:1. 公司以後可能會發展手機端業務,那麼留着你當儲備人才,那麼你就是能替公司解決“當需要發展手機端業務時如何快速開始”的問題,産生了價值;2. 你經驗豐富觸類旁通,你多年的工作經驗對現有PC端業務也有指導意義,那麼發揮作用的不是你手機端開發技術的高低,而是伴随他的其他能解決問題的技術。由此得到了幾點建議:1. 如果你不打算換工作,那麼想要提高工資(公平的環境),就要分析公司的核心問題是什麼,然後一層層細化分解,選擇問題去嘗試學習新的工具方法去解決,你能解決的問題層次越高,越接近根本問題(公司的根本問題就是持續快速賺錢),你的價值就越大;2. 根據自己掌握的技術選擇一個能讓你發揮最大價值的公司。

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

産生價值的隻有技術?如前面所說,技術是間接産生價值的,直接産生價值的是解決問題。解決問題的第一步是發現問題,或者說是了解問題。不知公司需要你解決的問題是什麼,不了解問題内容的程式員技術再牛逼,也産生不了價值(至少在這家公司)。而一些非技術的專業知識,對發現問題了解問題的作用是很關鍵的。比如說如果要開發一款炒股軟體,那麼大學學金融學然後轉行做技術的程式員能産生的價值,會高于大學就是學軟體而技術水準又沒有顯著優勢的程式員(是以啊,科班程式員注意了,如果你的技術水準和非科班的程式員差不多,那你們的價值實際上已經差很多了,隻不過對方不一定把價值完全發揮出來了而已)。解決問題的方法有很多,解決問題過程中涉及到的事情也有很多,技術隻是一小部分罷了。可能你技術不強,但是擅長統合資源,擅長項目或人員的管理,那麼依然價值巨大。反而由于技術具備可替代性,技術對于問題的解決倒是沒有想象中那麼巨大的作用(例如對于那些業務強勢的小公司,大不了技術的活外包出去咯)。對于做技術來說,不要妄自菲薄把自己比作苦力,但也不要自視過高覺得公司少了自己就不轉了。做技術,不僅要關注技術本身,更要關注你所在的業務領域。而那些從别的行業轉行過來的程式員,如果你轉行成功了,那麼你的實際價值其實非常巨大,千萬不要得自己不如别人,反而要冷靜分析一下自身的優勢,選擇适當的領域悉心鑽研,把自身發質發揮到最大。

程式設計不是考試,還按照初高中備考的思路去學習程式設計這是不現實的。程式設計是一個實踐性非常強的工種,很多知識和文法你知道并不代表你掌握了。程式設計考究的是你是否能夠靈活的應用這些程式設計知識。很多時候,你隻需要在你腦海中留下一個淺淺的印象,當需要解決問題的時候,迅速能夠調出這些知識片段,把他們“組合”在一起來解決問題。細節不記得,不要緊,語言的速查手冊就是幫你具體化這些知識的。

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

很多程式設計基礎知識就如同阿拉伯數字一樣,你隻看他他就是數字,但你可曾想過數字也能演化出正數、負數、小數、實數、虛數、指數、複數?

這些變化隻有在實踐中,隻有在你真正去解決問題的過程中,你才能體會到變化的奧妙與組合的奇妙。

很多同學經常會抱怨我不在大公司,我沒有優質的項目機會,可你要知道80%的coder都在中小公司,絕大多數coder都沒有接觸優質項目的機會。

那難道我們就放棄實踐?

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?
教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?
教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

人之是以為人,就在于我們有很強的主觀能動性。外界條件不夠優越,我們就自己尋找。模仿你會嗎?找一個自己很欣賞的産品,1:1或者盡可能在細節上複制一個産品作為自己的練習項目,有什麼不可以嗎?連設計師的UI設計都給你省了。

但這個過程中,大家一定要注意細節,如果你隻是實作了大體的功能,這意義不大。好的産品其實就優秀在細節上,好的程式員和普通的程式員一定的差距也在細節上。

工作中我們要更關注成果,但學習一定要注重過程。

教你如何看待程式員這個職業的前前後後什麼是大前端,前端工程師要不要成為全棧工程師?

好啦,今天的内容就分享這麼多,我們下期見!