想成為一個高效的Web開發者嗎?來看看大牛分享的經驗吧~ #精選JAVASCRIPT前端開發

来源:http://www.cnblogs.com/qianduantuanzhang/archive/2017/10/29/7751549.html
-Advertisement-
Play Games

想成為一個高效的Web開發者嗎?來看看大牛分享的經驗吧~ 作為一個軟(ku)件(bi)工(de)程(ma)師(nong),你有沒有覺得做什麼事都沒時間?沒時間學習新東西,沒時間去回顧、整理原來寫的爛代碼,沒時間寫單元測試,沒時間給接管你項目的家伙寫文檔,沒時間思考,沒時間喘氣,沒!時!間! 額……如 ...


想成為一個高效的Web開發者嗎?來看看大牛分享的經驗吧~

作為一個軟(ku)件(bi)工(de)程(ma)師(nong),你有沒有覺得做什麼事都沒時間?沒時間學習新東西,沒時間去回顧、整理原來寫的爛代碼,沒時間寫單元測試,沒時間給接管你項目的家伙寫文檔,沒時間思考,沒時間喘氣,沒!時!間!

額……如果你肯花點時間看看這篇文章,我相信你會明白應該把時間花在哪。

我曾以為成為一個技術大牛的唯一途徑是玩命地學習與工作。這個想法差點毀了我。身體越來越差,和家人與朋友越來越疏遠,很快我就撐不住了。後來我開始反思,發現自己的時間安排極為不合理,並逐漸悟出了下麵這5個道理,這才讓自己從那種高壓狀態中解脫出來。

不要因為怕自己落伍而去學習新東西

一個優秀的開發者始終在學習,這一點毋庸置疑。誠然,舊的技術終會被淘汰。但是新的技術終有一天會變成舊的。因此,沒有必要一味地去追求最新的技術。
平均每37秒就會誕生一個新的標準或框架,你不可能把它們都學會。很多新技術、框架或者新特性對你來說都不是必需的,你沒必要非得瞭解它們。真正有價值的技術需要經過社區和市場一段時間的打磨才能出現。IT公司通常都會重點培養適合於自己的技術,沒有哪個公司會一拍腦門讓自己的代碼去適配某個全新的框架。因此你也不用太擔心因為某些新技術而被裁員。你需要關註的是這三類知識,按照優先順序排列如下:
(1)基礎。基礎是重中之重。當你掌握一門基礎知識後,你可以快速掌握其相關的技術。比如如果你非常熟悉JavaScript,那麼基於JavaScript的任何框架都難不倒你。如果你掌握了面向對象編程,那麼你可以快速掌握一門新的面向對象的語言。深入學習基礎能夠大幅提高你的學習效率。



(2)你常用技術的最新版本。你平常用得最多的技術才是你的鐵飯碗。如果它們出了新的版本,那麼你有必要花時間去學習一下。

 

(3)大公司推崇的技術。如果一個非常知名的公司(如谷歌、臉書和微軟)發佈了一個新的技術並不斷地對它進行維護,那麼這個技術就值得你去關註。曾經社區里有成百上千個非常火的JavaScript框架,結果Angular和React的出現瞬間搶走了他們的風頭。


 

好好規劃你的學習時間,每天安排一段時間來學習。這段時間不一定很長,哪怕只有25分鐘也能使你有所成長。

寫出高效的代碼比一般的代碼要花更多的時間
當你運行完程式併發現功能實現的時候,你感覺工作已經完成了,實則不然。實現一個新的功能除了編寫新的代碼以外,還包括對該功能相關的其他部分已有代碼的調整與優化。當你發現你的一部分時間花在完善代碼的設計上了,那麼從長遠角度來看你遇到的錯誤會更少一些。(web前端學習交流群:328058344 禁止閑聊,非喜勿進!)

要想減少你的代碼的錯誤並優化設計,你需要註意以下兩點:
(1)先準備好測試環境,然後再開發。先將測試功能配置好,然後再編寫符合測試標準的代碼。這樣既可以減少bug的產生還能優化你的代碼思路,因為你在編寫代碼的時候就嚴格遵守更加合理和規範的標準。這會使你的代碼變得簡潔、高效。



(2)迭代完成你的工作而不是一步到位。在你的代碼實現需求之前不要花時間去完善它。你永遠也不可能使你的代碼處於完美的狀態。你優先要做的就是讓你的代碼完成指定的功能。通常情況開發者會犯這兩個錯誤:要麼花了太多時間思考而沒有充足的時間去實現,要麼沒有在設計最初的方案上花足夠的時間。遵循Kent Beck說得這句話:
“先讓它生效,再讓它正確地工作,最後再讓它更高效”。

 

7*24小時的工作不會讓你成為佼佼者,合理的時間安排才是最重要的
這個經驗源於我自身的教訓。我曾經為了讓老闆和客戶滿意而瘋狂地工作。我害怕說“不”,不想讓其他人失望。我盡我所能去完成工作,曾經大量攝入咖啡因通宵地工作,困了就直接睡在我的辦公桌上。



起初我是全公司的楷模。我得到老闆的賞識並感覺風光無限,前途一片光明。這種並不長久的過度表現使其他人對我產生了過高的期待,很快我就撐不住了。結果我的身子垮了,經常生病,耽誤了工作。公司的人變得不再信任我。

 

後來我漸漸明白真正的佼佼者是那些一直可靠的人。他們保證的事一定會做到。要想成為那樣的人就必須認真規劃自己的時間。

你必須牢牢把握自己時間的控制權,在約定好的期限即將到達的時候高質量地完成你的工作。要想做到這一點起初會很難,因為你需要對超出你能力範圍的任務說不。



剛開始,你的老闆和客戶可能不太會在意你。但是一旦你建立起靠譜、可信的名聲後,一切就都不一樣了。隨著時間的推移,其他開發者都會漸漸顯露疲態,變得不再那麼可靠,而你則會脫穎而出,成為團隊里的佼佼者。我就是這樣成為了行業翹楚。我很好地協調了自己的時間並調整他人對自己的期望值,因此建立起了高質量和高實效的好名聲。

 

不是所有的付出都會有回報
花時間也是一種投資。和其他的投資一樣,你非常期待投資會有回報,希望在回本的基礎上有所收益。

我之前曾提到“先讓它生效,再讓它正確地工作,最後再讓它更高效”這句話。但是不要誤解,這裡的“正確”不代表完美,“高效”不代表追求極致。“正確”意味著你的代碼能夠準確地實現功能並易於維護。“高效”意味著不影響用戶體驗。最關鍵的一點是你的應用要讓用戶感覺很快。


 

因此,不要糾結於優化一個基本上不用的函數,也不要為了僅節省幾毫秒而去修改一個已經比眨眼(大約300毫秒)還要快的功能。不要因為你學了一個新的技術或方法就把你之前寫的功能正確、結構完整的代碼推翻重寫。

按照時間表去工作可以使你更加高效
起初我很難理解這一點。你不將你的精力全部投入到工作中也能做到高效?恩,這是真的。Allison Gabriel是弗吉尼亞聯邦大學的管理學教授助理,主要研究工作需求和員工動機。她認為:“很多研究表明人的認知能力是有限的,當你不斷地去耗費你的能力時,你並不能達到最佳的工作狀態。當你被自己榨干時,你的效率會大幅下降。”

永遠不要在壓力非常大的時候工作,尤其是你非常疲勞、情緒不好的時候。這些不安因素都會讓你分心,從身心兩方面對你造成不良影響,降低你的工作效率。



人腦的自控能力好比是一種資源,當你進行自我控制時,這個資源會被消耗一部分。如果你的自控能力被大量消耗的話你就不能集中註意力,自然就不能高效地工作了。

 

不論你是否樂意,你的身心都需要一個休息的時間。因此在每天的時間表裡都要安排休息的時間。嚴格按照時間表的休息時間去休息,不多也不少,這樣可以讓你在充分休息的同時不感到內疚。指定明確的休息時間可以讓你以更加自如的心態去工作,因為你知道你有休息的時間而不是無休止的工作下去。


 

結語

瞭解了這五個經驗,相信你已經明白了應該如何安排自己的時間。合理地安排你的學習、工作與休息的時間,制定出詳細的時間表並嚴格按照它執行。學習你應該學的、花時間在一些必要工作上、該休息的時候好好休息。希望你也能在自己的領域嶄露頭角,成為一個真正的大牛~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • js 數組的push方法,想必大家都知道是向數組末尾添加元素,但是有一個很關鍵的點需註意: 引自 MDN 返回值 當調用該方法時,新的 length 屬性值將被返回。 數組push之後返回的是length,而不是新的數組,如果不清楚這點,在使用過程中回遇到很大的坑。 順帶記一下其他幾個數組的方法返回 ...
  • var聲明與變數提升 使用var關鍵字聲明的變數,無論其實際聲明位置在何處,都會被視為聲明於所在函數的頂部(如果聲明不在任意函數內,則視為在全局作用域的頂部)。這就是所謂的變數提升。 塊級聲明 塊級聲明就是讓所聲明的變數在指定塊的作用域外無法被訪問。塊級作用域在如下情況被創建: 1. 一個函數內部 ...
  • 引言 JavaScript程式使用Unicode字元集編寫。Unicode是ASCII和Latin 1的超集,並支持地球上幾乎所有在使用的語言。ECMAScript3要求JavaScript的實現必須支持Unicode2.1及後續版本,ECMAScript5則要求支持Unicode3及後續版本。 區 ...
  • 1. 通過 2. 通過非同步請求 3. 通過jQuery ...
  • 備註:第一次翻譯技術文章,標題都糾結了好久不知道腫麽翻譯,如發現翻譯不當之處,可點擊github鏈接提交評論,thx~ 前幾天我為一個項目寫README文檔,我希望其他開發者能夠看到這個項目,並從中學到一些東西。突然我意識到,若放在幾年前,我寫作的過程中隨口提到的Node,npm,Homebrew, ...
  • 一.介紹 本篇是續上一篇的,引用類型的後篇,本篇主要是說基本包裝類型和個體內置對象。如果你能收穫一些知識,那我很高興,很滿足,哈哈哈,希望大家能愉快看完。如果你想學好一門技術,要不忘初心,方得始終。 二.基本包裝類型 先說明基本包裝類型也是屬於引用類型,是接著上一篇的,強調一下. 然後我們記住兩句話 ...
  • ## 寫在前面 因為對Vue.js很感興趣,而且平時工作的技術棧也是Vue.js,這幾個月花了些時間研究學習了一下Vue.js源碼,並做了總結與輸出。 文章的原地址:[https://github.com/answershuto/learnVue](https://github.com/answer ...
  • 一、交換兩個數字的值 我們交換兩個數字的值想到的方法一般就是用一個新的變變數,讓他把一個數存起來,然後在交換兩個數字的值,看下麵這種。 看下麵這段代碼,也可以交換兩個數字的值,如果這樣寫你會不會發現特別高大上。 二、數組的排序 1.數組方法中的sort排序方法。 這是數組方法中的sort排序方法,如 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...