---
# System prepended metadata

title: 2023 update Complete Web Developer

---

# 2023 update Complete Web Developer

## Complete Web Developer in 2023: Zero to Mastery:

 1. \*\*\**2023 Updated Statistics*

 2. *ES2022*

    1. 第177堂課

    2. `array.at(-2)`可以取得arry倒數第二個item的值，這是學python的語法

 3. *React 18 Update*

 4. *Update: Latest Node.js and NPM*

 5. *Why Update Packages?* 

 6. *Keeping Your Projects Up to Date* 

 7. *Snapshot Model of Learning* 

    1. 第266堂

    2. 實際工作並不是只有build project，而是解決問題和maintain projcet，例如更新版本…等等。

    3. Andrei的課就像snap shot，畫面、library或是api是停留在某個時間點，我們在做project時一定會不一樣，會遇到問題，這時不能卡住。因為我們在學的是如何解決問題，在學軟體工程是如何思考，所以要訓練我們的想像力，訓練我們解決問題的力能力，並且進步，這是這門課最刺激而另人興奮的部份。

    4. 開發者最重要的能力，就是解決一種沒有明確解答的問題。

 8. *Deliberate Practice* 刻意練習

    1. 第267堂

    2. Anders Ericsson：

       1. 學習時暫時的遇到挫折是一件好事。

       2. 攀岩、棋士等大師，都可以在事前「看到」未來每一個步驟是什麼，可以憑空在腦中建立親身經歷的感覺，他們能做到這樣，主要是做*Deliberate Practice*。

       3. 學東西一開始會很快看到進步，但是一段時間會遇到撞牆期，看不到進步，會很挫折，因為我們會看不到以前是新手時的那種進步幅度。

       4. 克服這種挫折的方式，是針對遇到挫折、不舒服的地方進行練習，不斷的突破撞牆期。

       5. 重點：

          1. 專心：一般的練習包含不專心的不斷重複，*Deliberate Practice*是必需專心的練習。

          2. 立即的回饋，並修正

          3. 目標

          4. 脫離舒適圈：

             1. 會讓人盡最大的力， 甚至把自己逼到極限，去達成，而讓人感到不舒服。

             2. 在這個區域會很掙扎，會覺得自己不夠好

             3. 要能區分舒適圈和不舒適的區域，也要區分出哪些是真得太難，遠超出自己能力

       6. 雖然每個人的確先天上條件不同，不管是能力或是基因上，可能會有極限，但是克意練習仍然能讓人達到自己最大的潛能，把最大的潛能變為現實。

       7. 好處：當愈來愈在行，會樂趣會愈來愈大

       8. [不是所有的練習都可以讓自己完美](https://nautil.us/not-all-practice-makes-perfect-235890/)

          1. 不論你學什麼，你都需要回饋，如此才能「準確」的辨別出自己的弱點，並針對這些地方刻意練習。

       9. [由劍道的故事來看刻意練習](https://www.tofugu.com/japan/kendo/)

 9. *DEVELOPER FUNDAMENTALS: Maintaining Your Codebase*

10. *Introduction To Node.js* 

11. *fetch() in Node：第283課*

    1. Node 17.5.0開始已內建fetch()

    2. [fetch的歷史](https://blog.logrocket.com/fetch-api-node-js/)

12. *ES2022: Top Level Await* (第291堂課)

13. *Exercise: ES2022 Top Level Await* 

    1. 不需要再包在async裡了，可以直接用await了，瀏覽器已經支援了

    2. 在node.js環境訲，最大的重點在於top leval await只能用在module的最外面，也就是一個檔案的最外面。

    3. 意思是module有commonjs module和es module，就是import和export檔案的方法，top leval await只能在module最外面，如果要用在function裡，仍然要加async。

14. *ES2022: Await Import* 

    1. 可以async的import別的module進來

    2. 原本是const script2 \= require(‘./script2‘)，es module可以改成import { largeNumber } from ‘./script2‘。要async的import的時候，在module的top level的話可以改成const { largeNumber } \= await import ‘./script2‘。

    3. 不過如果是在block裡，就不是在top level了，會噴錯，解決方式要有一點技巧：

       1. 要把import改成function

       2. 要宣告一個top level的變數來接這個值，例如：

          ```
          let a;
          if(1===1){
            const { largeNumber } = await import(‘./script2')
            a = largeNumber;
          }
          ```

    4. 要了解，這功能可以需要時才載入module，進行code spliting，威力非常強，可以增進效能。

15. *Quick Note: Cleaning Up* 

## Junior to Senior Web Developer Roadmap:

1. \*\*IMPORTANT: Thinking Like A Senior Developer\* 

2. *Angular vs React vs Vue* 

3. *Setting Up Jest* 

4. *Exercise: Updating to the Latest Version of Next.js* 

5. *Redis Version Updates and Playground* 

6. *Installing Redis* 

7. ***\+ Updated code for the projects/course***

## Complete NextJS Developer in 2023: Zero to Mastery

Lots of new updates in this course to account for API changes, library changes as well as some big ones: 

1. **Updated Project #1: Static Coffee Connoisseur *(15 new/updated lessons, approx. 1 hour of content)*** 

2. **Source code added for entire course *(attached to respective lectures)*** Big shoutout to **@kulkarniankita** for these updates! Have any questions/want to share in the excitement? 

## ***JavaScript: The Advanced Concepts:***

1. *ES2022* 

2. *ES2022: Private Class Fields \+ Methods* 

3. *Optional: ES2022: Top Level Await* 

4. *Optional: ES2022: Await Import*

***Master the Coding Interview: Data Structures \+ Algorithms***  

1. *Python, Java, C/C\+\+, C#, Golang, Swift, Kotlin, TypeScript, Scala, Perl Code* 

2. *Optional Exercise: Github README*

&nbsp;