NỘI DUNG BÀI VIẾT
Bài viết này sẽ giúp bạn trả lời cho câu hỏi siêu “hóc búa” trong thế giới lập trình: “Làm thế nào để học Full-Stack Development?”. Cùng bắt đầu nào!
Làm thế nào để học Full-Stack Development?
Bạn có nên tập trung vào học Full-Stack Development không?
Nếu bạn muốn biến việc học thành sự nghiệp của mình, hãy tập trung vào toàn bộ công việc. Lập trình viên fullstack coi thế giới phần mềm đang phát triển như một cơ hội chứ không phải một mối đe dọa. Họ tận dụng các ngôn ngữ hiện đại và các khuôn khổ mới. Họ liên tục phát triển bộ kỹ năng đa dạng của mình. Chúng cũng tiên tiến như chính công nghệ.
Các lập trình viên full-stack có thể thích ứng. Mỗi công ty đều có một ngăn xếp duy nhất, với những thách thức khác nhau trong giao diện người dùng và / hoặc phần phụ trợ. Do đó, khả năng áp dụng bộ kỹ năng đa dạng khiến lập trình viên full-stack thực sự có giá trị.
Cuối cùng, lập trình viên full-stack tận dụng phần thú vị nhất của phần mềm: khám phá những điều chưa biết. Nếu bạn đang viết cùng một giải pháp đến lần thứ một trăm, thì công việc thật nhàm chán. Nhưng một lập trình viên full-stack sẽ luôn có cơ hội đi sâu vào các không gian vấn đề mới.
Nếu bạn là một người mới, bạn sẽ bắt đầu từ đâu?
Bài viết này sẽ giúp bạn hướng đi có thể trở thành lập trình viên fullstack. Nó liệt kê những công nghệ bạn cần học. Lưu ý rằng ước tính thời gian dựa trên kinh nghiệm cá nhân, cũng như của các đồng nghiệp của tôi. Ngoài ra, các ước tính giả định rằng bạn dành 2-3 giờ mỗi ngày cho việc học. Điều chỉnh ước tính nếu bạn có thể dành nhiều thời gian hơn hoặc ít hơn.
Ngay cả khi bạn đã có kinh nghiệm, bạn sẽ thấy nó vẫn hữu ích. Xem nơi bạn hạ cánh và theo dõi tiến trình của bạn. Dù bằng cách nào, mới hay đã có kinh nghiệm, ở phần cuối của biểu đồ, hãy coi bạn là một lập trình viên fullstack. 🏆
Frontend (~5 tháng)
HTML/CSS (1 tuần+)
Bắt đầu bằng cách tìm hiểu các khối xây dựng của web. Bạn phải học HyperText Markup Language (HTML). Đó là cú pháp được sử dụng để cấu trúc một trang web. May mắn thay, đó là một trong những công nghệ nhanh hơn trong danh sách để lựa chọn.
Tiếp theo, bạn có Cascading Style Sheets (CSS). Học cái này chủ yếu được thực hiện thông qua thử nghiệm. Sau khi bạn đã học những kiến thức cơ bản, bao gồm cả flexbox, đừng dành quá nhiều thời gian để tìm hiểu thêm. Bạn có thể tìm hiểu các chi tiết CSS khác khi cần thiết trong các dự án khác.
JavaScript (1 tháng+)
Rất nhiều thời gian của bạn sẽ được dành để học ngôn ngữ lập trình JavaScript. JavaScript cho phép các trang web của bạn biến thành các ứng dụng web động.
JavaScript là một phần rất quan trọng . May mắn thay, có rất nhiều tài nguyên để sử dụng JavaScript. Nhưng hãy cẩn thận để tập trung vào những điều cơ bản. Lưu các khái niệm trung cấp và nâng cao sau này. Chúng sẽ trở nên ít khó hiểu/khó hiểu hơn khi bạn tìm hiểu thêm.
Frameworks (2 tháng+)
Khi bạn đang đạt được động lực với JavaScript, hãy tìm hiểu JS Framework. Framework cho phép bạn sử dụng lại chức năng phổ biến và triển khai các ứng dụng lớn nhanh hơn.
Có một số tùy chọn: React, Angular, Vue, v.v. Theo tôi, cái cần học là React.js. Nó thân thiện với cả người mới bắt đầu và được nhiều nhà phát triển có kinh nghiệm yêu thích.
Điều đó không có nghĩa là bạn nên hoàn toàn bỏ qua Angular và Vue. Ít nhất hãy đọc về chúng, đủ để biết sự khác biệt của chúng so với React. Thậm chí làm một hoặc hai hướng dẫn.
Nhưng thời gian của bạn là một nguồn lực. Tôi sẽ dành phần lớn cho React.
Testing (2 tuần+)
Không cần phải nói rằng các công ty phần mềm đáng tin cậy kiểm thử mã của họ. Do đó, một lập trình viên fullstack nên quen thuộc với các phương pháp kiểm thử và thư viện. Vì bạn biết JavaScript và React, nên các lựa chọn tuyệt vời là Jest và Enzyme.
Redux (2 tuần+)
Bạn không thể tránh Redux nếu đang học React. Đúng, chúng là những khái niệm riêng biệt. React là lớp trình bày. Redux quản lý dữ liệu nội bộ. Tuy nhiên, việc áp dụng Redux với React đã trở thành một tiêu chuẩn trong ngành.
HTTP và Client-Server Architecture (2 tuần+)
Một lập trình viên full-stack nên biết cách truyền dữ liệu qua World Wide Web. Trong HTTP, các hàm tuân theo một mẫu yêu cầu và phản hồi. Nó diễn ra như thế này. Một máy tính đóng vai trò là máy khách. Máy khách sử dụng trình duyệt web để gửi các yêu cầu HTTP đến máy chủ. Máy chủ, là một máy tính khác, phản hồi lại máy khách bằng các tài nguyên như HTML và CSS.
Tôi khuyên bạn nên xây dựng một dự án đưa ra các yêu cầu đối với một API công khai để bạn có thể làm với HTTP.
Git (1 tuần+)
Tìm hiểu Git càng sớm càng tốt. Git là một hệ thống kiểm soát phiên bản theo dõi những thay đổi trong kho (dự án phần mềm). Bạn có thể coi nó là Google Drive trên steroid. Bạn có thể chia sẻ kho với những người khác. Có nhiều người đóng góp cho các tệp.
Nhưng với Git, bạn có thể có các nhánh của kho dự án cho các phiên bản thay thế. Cam kết ghi lại chính xác thời điểm xảy ra thay đổi để thêm, cập nhật hoặc xóa tệp. Và đó mới chỉ là sự khởi đầu của các tính năng của nó
Ngoài ra, các kỹ sư phần mềm và nhà tuyển dụng khác sẽ muốn xem công việc của bạn trên Github.
Backend (~3 tháng)
Node.js (1 tháng+)
Tiết kiệm trải nghiệm JavaScript của bạn và khám phá Node.js trên chương trình phụ trợ. Sử dụng nó với phần mềm trung gian Express.js để xây dựng API của riêng bạn. Node.js tỏa sáng với các ứng dụng dựa trên trò chuyện và phát trực tuyến. Tận dụng những điểm mạnh đó và cố gắng xây dựng bản sao Facebook Messenger / WhatsApp.
Giống như lần đầu tiên bạn gặp JavaScript, Node.js sẽ có vẻ rộng lớn. Thật tuyệt khi có nhiều tài nguyên. Nhưng không phải nếu bạn không biết bắt đầu từ đâu. Tập trung vào các hướng dẫn cơ bản và lên cấp một cách tự nhiên.
SQL và Relational Databases (1.5 tháng+)
Bạn không thể bỏ qua SQL và mô hình quan hệ. Một khía cạnh cơ bản của chương trình phụ trợ là lưu trữ dữ liệu. Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ được sử dụng rộng rãi nhất để điều phối cách dữ liệu sẽ được đọc, ghi và cập nhật. Tìm hiểu mô hình quan hệ. Đây là khái niệm đằng sau các hệ thống cơ sở dữ liệu quan hệ tiêu chuẩn công nghiệp như MySQL, PostgreSQL và Oracle.
Khi đang học Node.js, bạn sẽ bắt gặp rất nhiều hướng dẫn về MongoDB. MongoDB là cơ sở dữ liệu NoSQL – một giải pháp thay thế cho hệ thống cơ sở dữ liệu quan hệ. Hãy cẩn thận, bạn có thể chỉ tập trung vào MongoDB. Bây giờ, thật tốt khi biết về ngôn ngữ và cơ sở dữ liệu NoSQL. Tìm hiểu cả những ưu điểm / nhược điểm của chúng. Nhưng đừng bỏ qua SQL, cũng như mô hình quan hệ. Chúng được sử dụng rộng rãi trong ngành. Bạn sẽ gặp phải chúng cuối cùng.
Khoa học máy tính (5 tháng+)
Một lập trình viên fullstack cũng nên hiểu về khoa học máy tính. Đúng vậy, ước tính thời gian dường như cho thấy rằng bốn năm đại học có thể được rút ngắn xuống còn năm tháng. Điều đó có nghĩa là việc lấy bằng CS là vô nghĩa? Tất nhiên là không, lấy bằng khoa học máy tính là một khoản đầu tư lớn. Bạn kết nối với nhiều cá nhân thông minh.
Và bạn sẽ khám phá các chủ đề kỹ thuật khác mà bạn có thể quan tâm.
Nhưng những thứ có thể áp dụng ngay trong ngành – cấu trúc dữ liệu và thuật toán, hệ điều hành và nguyên tắc phát triển phần mềm – có thể được thực hiện trong năm tháng tập trung cao độ.
Nhiều đồng nghiệp của tôi tốt nghiệp đại học với bằng cấp không phải CS (một số thậm chí không phải khoa học). Họ hoặc là tự học, hoặc đi học bootcamp.
Cảm ơn bạn đã theo dõi bài viết!
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.
TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU
KHOÁ HỌC BOOTCAMP JAVA/PHP/.NET TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG