Các bài viết ngắn phần 29 - BeautyOnCode
Mình có từng đăng một bài về khảo sát State of CSS 2022. Với Javascript, khảo sát tương tự có rất nhiều thứ hay ho mà bạn nên cập nhật.
Bạn có biết hay có từng sử dụng các loại sau:
Language
– Proxies
– Promise.allsettled()
– Dynamic import
– Private fields
– Nullish coalescing
– Numberic seperators
– String.prototype.replaceall()
– String.prototype.matchall()
– Logical assignment
– Promise.any()
– Array.prototype.at()
– Top level await
– Temporal
– Array.prototype.findlast()
– Error.prototype.cause
– Object.hasown()
– Regex match indices
Browser APIs
– Service workers
– Intl
– WebGL
– Web Animation
– WebRTC
– Web Speech API
– Websocket
– Custom Elements
– Shadow DOM
– Pgae Visibility API
– Broadcast Channel API
– Geolocation API
– File System Access API
– Web Share API
– WebXR Device API
Other features
– Progressive Web Apps
– Webassembly (WASM)
Top Libraries
– Frontend frameworks: React, Svelte
– Rendering framework: Next.js, Nuxt
– Build tools: Vite, esbuild, tsc CLI
– Testing: Vitest, Playwright, Testing Library, Jest, Cypress, Storybook
– Monorepo tools: pnpm, Nx
Ngoài ra còn có rất nhiều nguồn tài liệu, các tác giả, các phương thức học phổ biến nhất và các bài viết ở mục Resources.
Top những người nổi tiếng nhất ở thế giới JS:
– Dan Abramov
– Rich Harris
– Ryan Carniato
– Evan You
– Josh W. Comeau
Lưu link dưới đây để cập nhật thêm nhé!
Khi xây dựng dự án cá nhân, hay thường gọi là side project, đầu tiên, dự án đó phải “thú vị” với bạn. Sau đó, có thể trả lời các câu hỏi sau:
– Mức độ khó của dự án này thế nào, có phù hợp với khả năng của bạn?
– Dự án có thể mở rộng chứ?
– Khả năng kiếm tiền từ dự án này như thế nào?
Một số gợi ý dành cho bạn:
– Caculator: máy tính đơn giản
– Todo list: danh sách công việc hàng ngày
– Weather app: ứng dụng thời tiết
– Simple game: làm một game đơn giản
– Automations: viết script cho hệ điều hành
– Web scraper: trích xuất dữ liệu (cào dữ liệu) từ các trang web
– Chatbot: robot chat tự động
– Markdown editor/viewer: ứng dụng với markdown
– Budget tracker: theo dõi chi tiêu
– Sentiment Analysis Tools: công cụ phân tích ý kiến
– Duplicate code detector: công cụ giúp chỉ ra code lặp
– Dependency analyzer: công cụ phân tích các dependency
– Metric collector: sưu tập các số liệu
– Refactoring helper: công cụ hỗ trợ refactor code
Các gợi ý trên kèm câu trả lời cho 3 câu hỏi về mức độ khó, khả năng mở rộng và khả năng kiếm tiền được ArjanCodes gửi đến bạn qua video sau:
https://youtu.be/54XyRw9y8oE
Cùng tìm hiểu các cấp bậc: noob, pro, epic, legend với 10 tầng của các ngôn ngữ lập trình bao gồm đối tượng, đặc điểm, các ngôn ngữ.
Tầng 1: Học code
Learn to code
– đối tượng: người chưa biết gì về lập trình
– ngôn ngữ: scratch, basic
– đặc điểm:
– scratch: đơn giản, kéo thả các khối lệnh, làm quen với các khái niệm lập trình như biến, điều kiện, vòng lặp, … có kết quả ngay là các trò chơi thú vị
– basic: có trước scratch, lập trình cơ bản câu lệnh như IF, PRINT, LET
Tầng sâu số 2: Cực phổ biến
Mega popular – dynamic high level languages
– đối tượng: hầu khắp giới lập trình viên
– ngôn ngữ: python, javascript
– đặc điểm: gần ngôn ngữ tự nhiên, cho phép kiểu dữ liệu chuyển đổi tự do nên gọi là dynamic
– python: cú pháp đơn giản
– javascript: cú pháp phức tạp hơn nhưng là ngôn ngữ chuẩn trên các trình duyệt web
Tầng sâu số 3: Phổ biến
Specific – dynamic high level languages
– đối tượng: cụ thể tuỳ mục đích
– ngôn ngữ: bash, powershell, SQL, php, lua, Roblox, Ruby (Rails framework), R, julia
– đặc điểm: sử dụng cụ thể cho các mục đích nhất định
– bash, powershell: viết script
– html, css: cấu trúc và style web
– SQL: ngôn ngữ truy vấn cơ sở dữ liệu
– php: xây dựng server-side web app
– R, julia: data science
Tầng sâu số 4:
Static high-level languages
– đối tượng: các dự án lớn, phức tạp, giúp dễ hiểu và dễ debug, giảm lỗi
– đặc điểm: gần ngôn ngữ tự nhiên, không cho phép chuyển đổi kiểu dữ liệu nên gọi là static
– ngôn ngữ: java, C# (.NET framework), typescript (JavaScript), Kotlin (Android), Swift (iOS), Dart (Flutter framework), Go
Tầng sâu số 5:
Functional languages
– đối tượng: lập trình viên mệt mỏi với OOP quá lớn và nặng nề, muốn tìm cách tốt hơn
– đặc điểm: lập trình hướng chức năng, không hoặc hạn chế OOP
– ngôn ngữ: Haskell, Miranda, F Sharp, Scala, Closure, Ocaml, Elixir, Elm,
– Haskell: biến không thể thay đổi, hàm không có side-effects
Tầng sâu số 6:
System languages
– đối tượng: lập trình cho bộ nhớ, xử lý với ram, game engine, code compiler, …
– đặc điểm: quản lý và tối ưu bộ nhớ thủ công do đó để sử dụng hiệu quả cần nhiều kiến thức về thuật toán, …
– ngôn ngữ: C, C++, R
Tầng sâu số 7:
Modern languages
– đặc điểm: các ngôn ngữ hiện đại ít phổ biến
– ngôn ngữ: V, Zig, nim, carbon, Solidity, Hack
Tầng sâu số 8: ngôn ngữ mang tính lịch sử
Historical important languages
– đặc điểm: ngôn ngữ có vai trò lịch sử, làm nền tảng cho nhiều ngôn ngữ hiện đại
– ngôn ngữ: Fortran, Lisp, Algol, Cobol, APL, Turbo Pascal, Simular, Small talk, Erlang, Ada, Prolog, ML
Tầng sâu số 9: ngôn ngữ bí truyền
Esoteric languages
– ngôn ngữ: Intercal, Brainf**k, Malbolge, Chef, Shakespeare, Piet, Lolcode, Emojicode, C–, Holy C
Tầng dưới cùng:
Behind the curtain
– ngôn ngữ: asm, Binary, Transistor, Logic gates, Quantum electrodynamics
Điều duy nhất mình biết là mình chưa biết gì hết cả ^^
Bạn xem nội dung thú vị này ở video sau
https://youtu.be/pEfrdAtAmqk