Node.js hiện nay đang là một nền tảng thực sự hấp dẫn chính vì thế ngày càng có nhiều người theo học nó. Thống kê của Stackoverflow cho thấy năm 2021 Javascript (JS) dẫn đầu trong bảng xếp hạng công nghệ phổ biến trên nền tảng của họ và Node.js đứng ở vị trí thứ 6 xếp sau Java. Điều này cho thấy sức nóng của Javascript cũng như Node.js chưa hề dừng lại.
Nhiều công ty tuyển dụng Node, nhiều sản phẩm hay công cụ bằng Node ra đời cũng cho thấy mức độ quan tâm rất lớn của các nhà tuyển dụng đối với nó. Một công nghệ khi càng phổ biến, cộng đồng càng lớn thì độ phủ sóng cũng như mức độ tin cậy sẽ càng cao.
Nếu là một lập trình viên FE và làm việc với JS là một lợi thế rất lớn để chuyển qua vị trí lập trình Node. Bởi suy cho cùng Node là môi trường chạy mã Javascript, chỉ khác ở chỗ thay vì tương tác với DOM trên trình duyệt thì ta dùng JS để tương tác với file, cơ sở dữ liệu... nhiều hơn mà thôi.
Nhưng với những người mới bắt đầu lập trình chưa có nhiều kinh nghiệm lẫn kiến thức, hay lập trình viên FE muốn thử sức với BE thì nên tiếp cận như thế nào? Bài viết ngày hôm nay tôi xin phép chia sẻ kinh nghiệm của tôi cho những ai đang trên đường chinh phục Node, tuy chỉ là quan điểm cá nhân nhưng hy vọng sẽ giúp ích cho mọi người.
Node.js không phải là một ngôn ngữ, nó là một môi trường cho phép chạy mã Javascript "bên ngoài trình duyệt" và hơn thế nữa. Thử tưởng tượng nếu trình duyệt cho phép bạn chạy mã JS thì Node.js cho phép bạn chạy mã JS trên máy chủ. Có thể nói Node.js ở đây có vai trò tương đương như trình duyệt. Vì thế để học Node.js tối thiểu bạn cần có kiến thức về JS.
Một điều thuận lợi là tài liệu về JS rất nhiều, cộng đồng phát triển JS cũng rất đông nên bạn không cần phải lo lắng quá nhiều về việc tìm kiếm sự trợ giúp. Đơn giản với một từ khoá "tự học javascript/node.js" đã có rất nhiều những video, bài viết, khoá học... rồi.
Lập trình BE sẽ có phần khác với lập trình FE. Lập trình BE bạn sẽ phải tương tác với file nhiều hơn (đọc/ghi dữ liệu), tương tác với cơ sở dữ liệu (database) và nhiều logic xử lý dữ liệu rất khác với FE. Bạn chỉ có thể biết nhiều hơn bằng cách học và làm. Học đến đâu thì làm đến đó, có thể ngay từ đầu code không được tốt nhưng qua thời gian rèn luyện sẽ dần được cải thiện.
Một người làm Back-end (BE) lâu năm bất kể là ngôn ngữ nào thì đối với họ đó là một điểm cộng rất lớn vì họ đã có sẵn tư duy lập trình, họ tự biết cách để chuyển những điều đó sang làm việc với Node.js. Có chăng khó khăn ban đầu là sự khác biệt giữ cú pháp, vấn đề này hoàn toàn có thể khắc phục được theo thời gian. Ngoài ra mỗi ngôn ngữ luôn có những tính năng đặc trưng nên cần bỏ thêm thời gian để nhuần nhuyễn những điều đó.
Một người làm Front-end (FE) cũng có thể chuyển sang BE bằng cách tiếp xúc với một dự án BE sẵn có. Chỉ cần trình bày cấu trúc dự án rồi giải thích cách hoạt động của dự án thì đã có thể làm theo để tạo những chức năng đơn giản đến phức tạp. Đây là một cách tiếp cận nhanh chóng thế nhưng vẫn cần phải bỏ ra thời gian để nghiên cứu thêm kiến thức về BE, nếu không rất có thể bạn sẽ bị hổng những kiến thức nền tảng quan trọng.
Còn đối với những người chưa hề có kinh nghiệp lập trình thì sao? Có thể họ sẽ tìm kiếm các khoá học về Node.js. Thời đại bùng nổ công nghệ thông tin việc tìm kiếm các nguồn tài nguyên học tập không mấy khó khăn, các chủ đề nói về node rất là nhiều, miễn phí và trả phí đều có. Nếu tìm được một người "thầy" hỗ trợ thì rất tốt, họ sẽ cho bạn những hướng đi để đến đích nhanh hơn. Khi gặp vấn đề họ cũng là người gỡ rối. Nhưng họ không thể mãi chỉ cho bạn từng li từng tí mà bạn cần phải tự thân vận động thì mới tiến bộ được.
Bằng cách nào đi nữa thì nổ lực học hỏi của bạn vẫn là quan trọng nhất. Nhiều bài viết, bài giảng đi theo một cấu trúc nhất định, nếu chỉ học ở trong đó chưa chắc đã là đủ. Kiến thức của lập trình rất nhiều và chúng móc nối với nhau. Liên tục vượt ra vùng an toàn để học những kiến thức mới, đừng để bị thụ động vấp mới bắt đầu học. Nên nhớ bản thân các công nghệ nói chung hay Node.js nói riêng đều được cập nhật hàng ngày, kiến thức bạn học hôm nay có thể ngày mai đã bị lỗi thời.
Trước tiên hãy đầu tư thời gian để học kiến thức cơ bản về Javascript, đó là cơ sở để học tiếp các kiến thức nâng cao sau này. Có một trang tài liệu về Javascript khá đầy đủ và chi tiết mà không cần phải tìm kiếm đâu xa là Mozila. Có thể nói Mozila là một trong những ông lớn trong làng trình duyệt đời đầu của giới web thế nên việc Mozila cung cấp tài liệu về Javascript là hết sức uy tín. Các bạn có thể đọc thêm bài viết Giải ngố: Mozilla/5.0 là gì? Tại sao trình duyệt nào cũng có chuỗi này trong User-Agent? để thấy tầm ảnh hưởng của Mozila.
Mozila cung cấp đầy đủ và chi tiết các bài viết về Javascript từ cơ bản đến nâng cao. Bạn sẽ được học từ các câu lệnh cơ bản của JS, về Object, bất đồng bộ (asynchronous) đến đi sâu vào các thành phần cấu tạo của Javascript như kiểu dữ liệu, Closure và Event loop... Các tài liệu sẽ có tính tham chiếu (reference) đến nhau nên hãy thận trọng trong khi tìm kiểu cẩn thận bị quá tải. Lời khuyên của tôi là hãy đọc tài liệu tham chiếu nhiều nhất nếu có thể để hiểu rõ hơn về các miền kiến thức liên quan đến nhau.
Có một số người sẽ thắc mắc đọc nhiều làm gì vì chưa chắc đã dùng hết. Đúng vậy, kiến thức về JS rất nhiều chưa chắc chúng ta cần phải áp dụng hết. Tuy nhiên bạn vẫn nên đọc để có góc nhìn bao quát, xem nó có gì để sau này tiện nghiên cứu hoặc gặp một bài viết hay vấn đề nào đó mà có liên quan thì sẽ biết cách tìm kiếm tài liệu.
Sau khi học xong JS, bước tiếp theo là học Node.js. Node.js là môi trường chạy mã JS nên nếu nắm vững JS thì không còn là vấn đề. Nodejs.dev là một trang dạy cách sử dụng Node.js theo phong cách Step-By-Step mà đơn giản để bắt đầu.
Nếu cảm thấy quá khó hãy thử tìm một "starter project". Đó là những khung project được tạo ra cho bạn bắt đầu viết mã. Xây dựng dự án theo khung và dành thời gian tìm hiểu cách hoạt động của nó. Làm đến khi tự dựng được một khung mà không cần dựa vào ai cả.
Học không thể không đi đôi với hành. Trong quá trình học nên tự tạo cho mình một dự án để vừa học vừa làm. Làm nhiều thì sẽ hình thành kinh nghiệm, mà kinh nghiệm càng dày dặn thì chắc chắn bạn sẽ chinh phục Node.js vào một ngày không xa.
Một ngày nào đó bạn sẽ nhận ra học mỗi Node.js là chưa đủ để trở thành một BE Developer. Còn rất nhiều thứ mà bạn cần khám phá và bạn cần có một lộ trình chi tiết. Roadmap.sh Backend là một lộ trình đầy đủ để giúp bạn trở thành một lập trình viên BE chuyên nghiệp.
Tại đây bạn sẽ được cung cấp một lộ trình kiến thức cần phải học để đạt được mục đích cuối cùng là trở thành một BE Developer. Có rất nhiều thứ được nêu ra trong ảnh có thể khiến bạn bị choáng ngợp. Nhưng hãy bình tĩnh, không ai có thể trở thành chuyên gia trong ngày một ngày hai. Hãy từ từ tìm hiểu từng thứ một, như tôi đã nói không chắc là bạn phải biết cách áp dụng hết kiến thức đã học mà cần phải biết đến với thế giới BE thì có những gì. Để sau này gặp phải vấn đề còn biết cách tìm kiếm để giải quyết.
Cuối cùng, sự quyết tâm của bạn là tất cả, thành hay bại là do bạn tự quyết. Con đường học hành không bao giờ là dễ nhưng quyết tâm đủ lớn thì sớm muộn gì bạn cũng gặt hái được thành công.
Nhìn chung Javascript nói chung hay Node.js nói riêng không quá khó để bắt đầu. Những kiến thức cơ bản của chúng rất nhẹ nhàng và bạn có thể làm quen rất nhanh. Đó cũng là nền tảng để bạn tiếp cận với các kiến thức nâng cao sau này. Hãy nhớ muốn nhanh thì học cơ bản còn muốn giỏi thì phải học nâng cao.
Tự học là một quá trình dài và đòi hỏi sự kiên nhẫn. Tìm được một người "thầy" tốt là rất đáng trân trọng, còn không thì đường đi cũng chỉ hơi chông gai một tí. Nhưng bù lại bạn sẽ học cách làm chủ bản thân. Bạn có thể bỏ cuộc bất kì lúc nào nhưng sau những lần đó chỉ làm bạn quyết tâm hơn. Nếu vấp ngã hãy tự biết cách đứng dậy.
Bí mật ngăn xếp của Blog
Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, hãy bấm vào ngay!
Đăng ký nhận thông báo bài viết mới
Xin chào, tôi tên là Hoài - một anh Dev kể chuyện bằng cách viết ✍️ và làm sản phẩm 🚀. Với nhiều năm kinh nghiệm lập trình, tôi đã đóng góp một phần công sức cho nhiều sản phẩm mang lại giá trị cho người dùng tại nơi đang làm việc, cũng như cho chính bản thân. Sở thích của tôi là đọc, viết, nghiên cứu... Tôi tạo ra trang Blog này với sứ mệnh mang đến những bài viết chất lượng cho độc giả của 2coffee.dev.Hãy theo dõi tôi qua các kênh LinkedIn, Facebook, Instagram, Telegram.
Bình luận (1)