강의

멘토링

커뮤니티

BEST
Programming

/

Front-end

Sinabro JavaScript

Xây dựng nền tảng kỹ năng và sự tự tin vững chắc bằng cách phát triển nhiều chủ đề khác nhau từ đầu bằng JavaScript.

(4.9) 32 đánh giá

597 học viên

  • eunjae
자바스크립트
vanillajs
JavaScript
vanilla-js

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Phát triển các kỹ năng JavaScript cốt lõi mà không cần khuôn khổ

  • Hiểu sâu hơn về hệ sinh thái JavaScript

Nâng cao! Xây dựng các kỹ năng JS cốt lõi của bạn .

💡 “Nó có tác dụng, nhưng tại sao nó lại có tác dụng?”

Chúng tôi luôn sử dụng nhiều thư viện và framework khác nhau để phát triển web, nhưng đôi khi rất khó để hiểu chính xác những gì đang diễn ra. Hệ sinh thái JavaScript rất phức tạp và đan xen với rất nhiều yếu tố khác nhau, nên việc khám phá những bí ẩn có thể rất khó khăn.

Sinabro JavaScript cung cấp bước đệm để thăng cấp từ trình độ cơ bản lên trình độ trung cấp và từ trình độ trung cấp lên trình độ cao cấp .

“Phát triển web quá phức tạp.”

Điều này là do nợ kỹ thuật và vô số yếu tố đan xen đã tích tụ trong quá trình phát triển của hệ sinh thái JavaScript. Mặc dù bạn có thể tự mình tìm hiểu, nhưng việc ngồi xuống và học hỏi từ từ với một người đã có kinh nghiệm cũng là một ý tưởng hay.

“Tôi có thể làm được, nhưng tôi không đủ tự tin.”

Nếu bạn không hiểu các nguyên tắc cơ bản về cách thức hoạt động của các framework và thư viện bạn sử dụng, bạn rất dễ hoảng loạn ngay cả khi gặp phải những lỗi nhỏ. Bài giảng này sẽ hướng dẫn bạn cách các chủ đề quan trọng hoạt động như thế nào bằng cách phát triển mà không cần thư viện .

“Tôi muốn nâng cao kỹ năng phát triển của mình.”

Lặp lại các dự án đồ chơi tương tự có thể giúp bạn nhanh hơn, nhưng để đào sâu hơn đòi hỏi một chiến lược khác. Một khi bạn hiểu sâu sắc các khái niệm cốt lõi, bạn sẽ có được nền tảng kiến thức cơ bản, cho phép bạn dễ dàng nắm bắt bất kỳ khuôn khổ hoặc công nghệ mới nào xuất hiện.

“Những điều mới mẻ đang xuất hiện rất nhanh.”

JavaScript, đặc biệt là front-end, vẫn còn nhiều vấn đề cần giải quyết, và nhiều nỗ lực liên tục được thực hiện. Do đó, vô số thư viện, framework và khái niệm mới đang xuất hiện. Tuy nhiên, hầu hết trong số đó là những nỗ lực nhằm giải quyết các vấn đề hiện có theo những cách mới.

Khi bạn đã thử giải quyết các vấn đề hiện tại mà không có những giải pháp đó, bạn sẽ dễ dàng so sánh và hiểu được cách các giải pháp mới giải quyết chúng theo cách khác nhau như thế nào .

🙌🏻 Xin chào, tôi là Eunjae Lee.

Tôi chủ yếu làm việc ở mảng phát triển front-end tại các công ty như Daum, Kakao và Algolia. Hiện tại, tôi đang là lập trình viên full-stack tại Storyblok.

Sau một thời gian dài làm việc tại một công ty khởi nghiệp, tôi chợt nhận ra mọi thứ đã thay đổi quá nhiều. Tôi đã sử dụng AngularJS từ năm 2014 đến cuối năm 2017, nhưng mãi đến năm 2018 tôi mới bắt đầu học được tất cả những điều mình đã bỏ lỡ. Bắt đầu với ES6, React, Babel, v.v., và cứ thế không ngừng.

Việc chuyển đến Pháp vào năm 2019 và gia nhập công ty Algolia là một cơ hội tuyệt vời để tôi hiểu sâu hơn về nhiều khái niệm khác nhau và làm việc với chúng. Tôi đã có được một bức tranh toàn diện bằng cách trực tiếp tham gia vào các khái niệm và đặt câu hỏi cho những người xung quanh. Sau một thời gian, tôi bắt đầu suy nghĩ về việc có một nội dung được tổ chức tốt về những chủ đề này sẽ hữu ích như thế nào , và cuối cùng điều này đã dẫn tôi đến việc tạo ra một khóa học.


📖 Danh sách nội dung (Tổng cộng 13 giờ 16 phút)

1. Cơ bản về DOM API

Tìm hiểu DOM API cơ bản và thực hành cấu trúc HTML và đính kèm sự kiện mà không cần framework front-end. (1 giờ 3 phút)

  • innerHTML
  • tạo phần tử
  • appendChild
  • addEventListener

2. Tạo một trung tâm mua sắm

Hãy cùng triển khai danh sách sản phẩm và giỏ hàng trong trung tâm thương mại. Mục tiêu của chúng ta là triển khai các tương tác động trực tiếp bằng DOM API. Khi sản phẩm được thêm vào và xóa khỏi giỏ hàng, chúng ta sẽ phát triển một hệ thống cập nhật đồng thời cùng một dữ liệu (số lượng) trên nhiều màn hình (danh sách sản phẩm và giỏ hàng). Thông qua quy trình này, chúng ta sẽ trải nghiệm tầm quan trọng của một nền tảng front-end hiện đại. (1 giờ 20 phút)

Tiếp theo, chúng tôi sẽ cấu trúc lại danh sách sản phẩm và giỏ hàng của trung tâm mua sắm đã triển khai thành nhiều thành phần, xem xét thiết kế, ý nghĩa và vai trò để giúp chúng dễ quản lý hơn. (52 phút)

Cuối cùng, thay vì tìm kiếm thủ công các phần tử DOM và cập nhật số lượng của chúng, hãy triển khai một phương pháp tự động cập nhật DOM theo phản ứng khi dữ liệu được cập nhật. (52m)

3. Cơ bản về máy chủ web

Tìm hiểu những kiến thức cơ bản về máy chủ web bằng cách sử dụng Express. Các chức năng không cần máy chủ do Vercel và Netlify cung cấp hiện nay rất dễ dàng và tiện lợi, nhưng trước khi chúng ra mắt, chúng ta sẽ tìm hiểu cách cấu trúc back-end bằng Express.

Chúng ta cũng sẽ tìm hiểu về CORS, một vấn đề gặp phải trong quá trình hiển thị dữ liệu từ giao diện người dùng được hỗ trợ bởi Vite yêu cầu máy chủ Express. (45 phút)

4. Phương pháp mảng

Chúng ta sẽ thực hành các phương thức Array tiêu biểu như filter, map và reduce thông qua nhiều ví dụ khác nhau. Chúng tôi giả định bạn đã quen thuộc với ngữ pháp cơ bản, và chúng ta sẽ tiếp tục với một bài tập thực hành. (1 giờ 18 phút)

5. Cơ bản về thư viện npm

Chúng ta sẽ khám phá cấu trúc của thư viện npm, từ từ đi sâu vào các vấn đề phức tạp xung quanh CommonJS và ES Modules, và triển khai thư viện của chúng ta trực tiếp lên npm. (27 phút)

6. Tạo một truy vấn nhỏ

Hãy cùng xây dựng một tập hợp con jQuery rất nhỏ. Tìm hiểu cách thiết lập monorepo bằng Yarn Workspace và trải nghiệm quy trình làm việc tổng thể để phát triển thư viện bằng cách làm việc trên thư viện, ứng dụng mẫu và trang tài liệu trong đó.

Chúng ta sẽ viết các bài kiểm tra đơn vị bằng vitest, trải nghiệm những thách thức phát sinh trong quá trình xây dựng thư viện và khám phá Tree-Shake. (1 giờ 7 phút)

7. Trang thông tin phim ảnh

Hãy cùng xây dựng một trang web tìm kiếm phim. Kết quả rất đơn giản, nhưng tập này sẽ đề cập đến các khái niệm quan trọng. Chúng ta sẽ tìm hiểu về History API của trình duyệt và sử dụng nó để triển khai định tuyến phía máy khách, tương tự như React Router. (45 phút)

Tiếp theo, chúng ta sẽ triển khai render phía máy chủ trực tiếp trên máy chủ Express và hydrat hóa nó trên máy khách. Đến cuối hướng dẫn này, bạn sẽ hiểu khá chi tiết về quy trình hydrat hóa + SSR của Next.js. (1 giờ 14 phút)

8. Thực hành không đồng bộ

Tương tự như tập thực hành phương thức Mảng, chúng ta sẽ thực hành các lệnh gọi lại, lời hứa, async và await để xử lý tính không đồng bộ tốt hơn. (38 phút)

9. Tạo một blog tĩnh

Nhiều trang web tĩnh được xây dựng bằng các công cụ như Jekyll, Gatsby và Next.js. Hãy cùng xem cách các công cụ này tạo ra các trang web tĩnh và mô phỏng quy trình xây dựng của chúng.

Trong quá trình này, chúng ta sẽ xây dựng một blog tĩnh từ các bài đăng Markdown bằng cách sử dụng tập lệnh Node.js, không cần bất kỳ khuôn khổ hoặc công cụ nào, và triển khai nó lên Vercel. (1 giờ 3 phút)

10. Tạo CLI

Hãy cùng xem xét cấu trúc của thư viện npm cho CLI, tạo CLI của riêng mình và triển khai nó lên npm. Sau đó, chúng ta sẽ chạy lệnh npm install -g Có thể lắp đặt và sử dụng như (48m)

11. Tạo thư viện biểu mẫu

Trước đây, chúng ta thường tạo các biểu mẫu như trên. Hãy cùng triển khai theo cách cũ để xem nó hoạt động như thế nào. Và giờ, chúng ta đã hiểu tại sao cách này không được thực hiện. Chúng ta cũng hiểu được lợi ích của các thư viện như react-hook-form, vốn được sử dụng rộng rãi hiện nay, và chúng ta sẽ tạo ra một thứ tương tự. (1 giờ 4 phút)

👥 Nếu bạn tham gia lớp học

Những người mua khóa học sẽ được mời tham gia kênh Discord dành riêng cho học viên . Hãy đặt bất kỳ câu hỏi nào phát sinh trong suốt khóa học. Bạn cũng có thể học hỏi từ các câu hỏi do người khác đăng.

Tôi hy vọng chúng ta có thể cùng nhau học hỏi thông qua các câu hỏi và thảo luận miễn phí trong một không gian mà việc không biết gì cũng không sao. Mục tiêu quan trọng nhất của chúng tôi là nâng cao sự tự tin của bạn với JavaScript.


❓ Câu hỏi thường gặp

H. Bạn có sử dụng Tailwind CSS trong bài giảng của mình không?

Chỉ trong một tập "Xây dựng Cửa hàng Trực tuyến", tôi sử dụng Tailwind CSS để thiết kế. Nếu bạn chưa quen với Tailwind CSS, bạn có thể tự viết CSS theo bất kỳ cách nào bạn muốn. Nếu quan tâm, bạn cũng có thể tham khảo video miễn phí của tôi.

H. Tôi có thể nghe cái này được không?

Thật khó để nói chắc chắn, nhưng nếu bất kỳ điều nào sau đây áp dụng cho bạn, bạn có thể muốn tham gia khóa học này.

  • Hiểu được sự khác biệt giữa let và const.
  • Bạn có thể xử lý các mô-đun bằng cách nhập/xuất.
  • Tôi biết sự khác biệt giữa import và require ở một mức độ nào đó.
  • Tôi hiểu ngữ pháp này: const { name, address } = person .
  • Bạn có thể tạo một ứng dụng quản lý việc cần làm đơn giản bằng React hoặc Vue.js bằng cách lưu trữ việc cần làm trong các biến mà không cần cơ sở dữ liệu.
  • Nếu bạn sử dụng React, có lẽ bạn biết cách sử dụng useEffect và useMemo.
  • Nếu bạn được yêu cầu tạo một ứng dụng Việc cần làm, bạn có thể hình dung sơ qua các thành phần sẽ được chia nhỏ như thế nào.

H. Nó khác với các bài giảng khác như thế nào?

Nhiều khóa học tập trung vào việc xây dựng các dự án cụ thể. Các khóa học này thường hướng dẫn một quá trình kết hợp dần dần các công nghệ, thư viện và dịch vụ khác nhau. Mặc dù điều này hữu ích trong việc tìm hiểu "cái gì" và "cách thức" kết hợp các yếu tố khác nhau, nhưng rất khó để giải thích phần "lý do" của các khóa học này.

Trong Sinabro JavaScript, bạn sẽ tìm hiểu lịch sử về cách thức một số chủ đề nhất định được thực hiện trong quá khứ và lý do tại sao chúng được thực hiện theo cách này ngày nay, hiểu được ưu và nhược điểm của từng phương pháp. Và bằng cách triển khai các tính năng mà các framework ẩn giấu, bạn sẽ hiểu tại sao chúng lại làm như vậy.

Biết "Cái gì" và "Cách thức" là rất quan trọng, nhưng nếu không có "Tại sao", bạn sẽ khó mà tiến xa được. Thiếu tự tin vào phát triển thường bắt nguồn từ việc thiếu "Tại sao". Khi một lỗi xảy ra, bạn không hiểu rõ tình huống, nên không biết cách khắc phục. Áp dụng kết quả tìm kiếm trên Google có thể khắc phục được lỗi, nhưng bạn lại không hiểu tại sao. Điều này khiến bạn cảm thấy bất an và lo lắng không biết phải làm gì nếu tình huống tương tự lại xảy ra.

Do đó, việc hiểu chính xác "lý do" là điều cần thiết để nâng cao trình độ. Mặc dù học thực hành là một cách, nhưng việc học hỏi từ một người đã trải qua quá trình này và giải thích chi tiết cũng là một phương pháp hiệu quả. Trên thực tế, nhu cầu cho các khóa học trung cấp này chắc chắn sẽ thấp hơn so với người mới bắt đầu, đó là lý do tại sao các khóa học chuyên sâu như vậy rất hiếm.

H. Có lớp học thử không?

Đây rồi! Trước khi xem bài giảng này, tôi đã tạo một video ngắn miễn phí với một số bài tập khởi động hữu ích. Bạn cũng có thể xem qua tại liên kết .

H. Có giảm giá cho sinh viên hoặc người tìm việc không?

Có, bạn có thể. Chúng tôi sẽ giảm giá cho bạn sau khi hoàn tất quy trình xác minh đơn giản.

H. Tôi có một câu hỏi khác!

Vui lòng gửi email hoặc nhắn tin trực tiếp cho tôi trên Twitter và tôi sẽ trả lời. Tôi sống ở Pháp, vì vậy xin hãy thông cảm rằng phản hồi của tôi có thể bị chậm trễ do chênh lệch múi giờ.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • "Nó hoạt động được, nhưng tại sao điều này lại xảy ra?"

  • "Phát triển web quá phức tạp"

  • "Tôi có thể làm được nhưng tôi không tự tin"

  • "Tôi muốn nâng cao kỹ năng phát triển của mình."

  • "Có quá nhiều thứ mới xuất hiện nhanh chóng."

Cần biết trước khi bắt đầu?

  • Đây không phải là khóa học dành cho người mới bắt đầu học JavaScript. Đây là khóa học dành cho các bài tập cốt lõi từ cấp cơ sở đến cấp cơ sở và từ cấp cơ sở đến cấp cao.

Xin chào
Đây là

618

Học viên

33

Đánh giá

16

Trả lời

4.9

Xếp hạng

2

Các khóa học

안녕하세요. 이은재입니다. 프랑스에서 살고 있어요. 집에서 멍 때리고 냥이들 바라보는 걸 좋아하고, 저녁 식사 후에 한 시간 정도 산책하는 걸 즐깁니다. 시끄럽고 붐비는 도심이 부담돼서 파리 인근 소도시에 살고 있고, 새 구경을 좋아하고, 채소를 키우는 취미가 있어요.

좀 더 개발 관련 얘길 하자면, 2022년 11월부터 Storyblok 이라는 Headless CMS 서비스를 만드는 곳에서 개발자 유저들을 위한 extension platform 을 만들고 있어요.

2019년에 Algolia 라는 클라우드 기반의 검색 솔루션 회사에 입사하기 위해 프랑스로 이주했어요. 그 회사에서 InstantSearch 라는 오픈소스 UI 라이브러리를 만드는 일을 했어요. Vanilla JavaScript, React, Vue.js, Angular 총 네 가지 버전으로 라이브러리를 제공하기 위해 공통 로직을 따로 관리하고 각 flavor 는 최소한의 wrapper 이도록 하는 작업에 시간을 가장 많이 썼어요. 그 외에도 업무적으로 여러 오픈 소스 프로젝트에 참여했어요.

그전에는 한 스타트업에서 한국과 싱가폴에서 풀스택으로 3년 정도 일했고, 그 전에는 카카오와 다음 커뮤니케이션에서 4-5년간 주로 프론트엔드 업무를 했어요.

Chương trình giảng dạy

Tất cả

118 bài giảng ∙ (19giờ 56phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

32 đánh giá

4.9

32 đánh giá

  • damyo7477님의 프로필 이미지
    damyo7477

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    It felt different from the lectures I've seen so far, and I felt like I was taking a break, so I took the class comfortably. It doesn't mean that the lectures were light or easy. In the past, I liked the lectures that crammed in a lot of knowledge and skills(?) (I felt like I was getting my money's worth😁), but sometimes it was hard to keep up, and I was confused whether the lectures were for the students or if the lecturers were just displaying what they knew like trophies and building up their own achievements. Eunjae's lectures seemed to have a good balance. They were moderately wide and moderately deep. Above all, it was good because I could experience following the flow of thought as if I was solving a problem, rather than memorizing formulas. It also gave me a chance to think again about things I didn't know, but just took for granted and didn't wonder about, and things I didn't care about because I considered them unimportant. I need to look back on how I deal with and think about problems, and what kind of attitude I've had so far. If you have the chance, it would be great if you could share Eunjae's tips as a developer (what tools you use, how you work/collaborate, etc.). I look forward to seeing you again with another great lecture. Thank you.

    • eunjae
      Giảng viên

      Wow, I'm so glad you felt that way. I really thought from the time I was planning the lecture that it would be nice to learn each topic "step by step", and I'm so happy that you felt that way. I'll think about the bonus episode about development tools and collaboration methods 😊

  • gichulroh6344님의 프로필 이미지
    gichulroh6344

    Đánh giá 14

    Đánh giá trung bình 4.7

    5

    100% đã tham gia

    The lecturer seems like a philosopher who codes. Development is a fun thing in some ways, and it helped me find that fun again. At first, I hesitated because the lecture was a bit pricey, but I finished the first session. I think I should watch it two or three times. There are many lectures on making apps, but thanks to the Node environment and library development lectures, my understanding of related development environments has increased. I look forward to the next lecture. I hope you do well from afar. Finally, in the video of Section 12, Creating a Static Blog, Deployment, there is a blackout for about a minute.

    • eunjae
      Giảng viên

      Thank you so much for the great review 😊 There was a long gap in the video you mentioned. Thanks to you, I was able to remove it and reupload it. Thank you!

  • sai님의 프로필 이미지
    sai

    Đánh giá 4

    Đánh giá trung bình 5.0

    5

    58% đã tham gia

    I usually like to spy on the instructor's SNS account, and when he introduced the lecture, I quickly read the curriculum. I was doing a vanilla JavaScript-based project while preparing for a job, and while doing the project, I often thought that my JavaScript skills were still not enough! This lecture provided insight into how to implement convenient functions in libraries & frameworks in JavaScript, and concepts that are difficult to study alone, such as TDD and npm distribution. While studying FE, I vaguely knew about the concepts but wanted to learn them in detail, so it was good to follow along with the instructor, which helped ease the burden. This lecture is recommended for those who quickly moved from JavaScript to React or started developing with React but are stuck. This lecture is useful even now that I am preparing for a job, but if it had been shown to me a year ago... when I was desperately craving insight, I think it would have been a lecture that I would have applauded. The instructor is very considerate in many ways, from the fact that he manages students through a separate Discord to the fact that he distributes discount codes for job seekers! I recommend it! (And the cat that appears briefly in the video is cute too. ☺️)

    • eunjae
      Giảng viên

      Hello. I'm so glad it was helpful 🥹 Thank you so much for your kind words, and I hope you do well in your job search!

  • leehyunji07152667님의 프로필 이미지
    leehyunji07152667

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    97% đã tham gia

    I'm a junior developer in my third year! I was browsing through the courses and I liked it so much that I bought it and listened to it. It was so good. Since my company focuses on functional development, it was hard for me to learn about project setup or core JS concepts. It was so helpful and good to learn such diverse and essential knowledge. I was impressed by how you implemented SSR yourself and made it work like React using JS. I also liked how you covered bundlers and module concepts. It seems like a course that teaches you how to catch fish, not give them fish. I felt like you put a lot of thought into the course structure while listening to the course. I'll review it from time to time. Thank you~!

    • eunjae
      Giảng viên

      Thank you for your kind words 😊 I also tried my best to teach you how to catch fish, not the fish, so I'm so glad you felt that way. If you have any questions, please leave them anytime. Thank you!

  • qpyou12340482님의 프로필 이미지
    qpyou12340482

    Đánh giá 9

    Đánh giá trung bình 4.9

    5

    14% đã tham gia

    A lecture from deep insight! I recommend it :)

    • eunjae
      Giảng viên

      Thank you evanjin 😊

2.983.189 ₫

Khóa học khác của eunjae

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!