Lộ trình trở thành Full stack developer: 6 Bước trọng yếu


Full-stack developer là một kỹ sư (engineer) có thể xử lý tất cả các việc như cơ sở dữ liệu, máy chủ, thiết kế hệ thống và khách hàng.





Là một trong những chủ đề nóng nhất trong giới developer, các thảo luận chưa bao giờ dừng lại.





Trên LinkedIn và Facebook, rất nhiều người đặt chức danh cho mình là full stack developer. Bên cạnh đó, dường như “Full Stack” đã trở thành một xu hướng việc làm mới.





Một bài báo trên Medium thảo luận về full stack designer đã nhận được cả khen ngợi lẫn chê trách. Một số người cho rằng full stack chỉ là một chức danh, cái mà người đó nên tập trung là thực lực cá nhâncông nghệ.





Về cơ bản, tôi nghĩ thảo luận về full stack cũng là một loại tranh luận liên quan đến những người toàn diện và chuyên gia trong ngành CNTT, và tranh luận về độ sâu rộng của kỹ năng development.





Bạn không thể vừa muốn có cái bánh, vừa muốn ăn bánh được. Nhưng full stack developer full stack designer có vẻ như đang thách thức khả năng này. Bởi vì cây kỹ năng theo chiều ngang mang lại cho họ khả năng vừa có bánh, vừa ăn được bánh.





Có một câu nói khác là cái gì cũng biết, nhưng không biết cái gì sâu. Vậy nên, cần phải suy nghĩ về cách trở thành một full stack developer thực thụ chứ không phải một chức danh trống rỗng.





Vậy Full stack developer là gì?





Cây kỹ năng theo bề ngang của Full stack developer
Cây kỹ năng theo bề ngang của Full stack developer. Ảnh: hackernoon




Nói một cách đơn giản, full stack developer là kiểu người thành thạo nhiều kỹ năng và sử dụng những kỹ năng này để hoàn thành sản phẩm một cách độc lập.





1 câu trả lời được bình chọn nhiều nhất trên Quora khi giải thích một full stack developer là gì:





Full-stack developer là một kỹ sư (engineer) có thể xử lý tất cả các việc như cơ sở dữ liệu, máy chủ, thiết kế hệ thống và khách hàng.





Tùy vào dự án, những gì khách hàng cần có thể là các stack mobile, Web hoặc native app.





Trên thực tế, “full stack” đề cập đến tập hợp các công nghệ cần thiết để hoàn thành dự án.





“Stack” đề cập đến tập hợp các mô-đun con. Các mô-đun con hoặc thành phần phần mềm này kết hợp với nhau để đạt được chức năng đã thiết lập mà không cần đến các mô-đun khác.





Tại sao full stack developer lại được thảo luận đầy tranh cãi?





Như đã đề cập ở trên, thảo luận về full stack developer thực sự là cuộc tranh luận về độ sâu rộng của các kỹ năng.





Đặc biệt tại hội nghị OSCON, một kỹ sư của Facebook cho biết họ chỉ thuê một “full stack developer” mà thôi.





Chủ đề này là kết quả của một cuộc thảo luận sôi nổi về ưu và nhược điểm của việc trở thành một full stack developer.





Điểm mạnh





Các full stack developer tham gia vào một yêu cầu kỹ thuật theo chiều ngang, vì vậy họ có thể tạo thiết kế nguyên mẫu cho một sản phẩm rất nhanh chóng nhờ kỹ thuật đa dạng của mình.





Với khả năng full stack, họ có góc nhìn rộng hơn và tư duy tích cực hơn. Hơn nữa, họ sẽ nhạy cảm hơn với kỹ thuật và sản phẩm.





Vì vậy, những người này luôn có thể có ý kiến ​​của mình đối với sản phẩm hoặc thiết kế.





Từ một khía cạnh khác, họ có thể giúp đỡ mọi người trong nhóm và giảm đáng kể thời gian và chi phí kỹ thuật của giao tiếp nhóm, cập nhật công nghệ.





Vì vậy, nhiều người trong số họ trở thành doanh nhân hoặc là đối tác kỹ thuật trong các công ty mới thành lập.





Nhược điểm





Chính vì sự phát triển công nghệ theo chiều ngang, một số full stack developer không thể chuyên sâu một kỹ năng.





Hầu hết những người tự nhận là “full stack dev” chỉ biết một chút ở nhiều kỹ năng. Đối với việc làm thế nào để làm cho kiến ​​trúc phù hợp hơn với sự phát triển mô-đun, đó là một câu hỏi.





Mặc dù vậy, vẫn có người đặt câu hỏi…





Làm thế nào để trở thành một full stack developer?





Một full stack dev chất lượng phải có kiến ​​thức và khả năng vận hành đối với tất cả các khía cạnh liên quan đến việc xây dựng ứng dụng. Kiến thức này bao gồm:





1) Ngôn ngữ lập trình





Bạn cần phải thành thạo nhiều ngôn ngữ lập trình, chẳng hạn như JAVA, PHP, C#, Python, Ruby, Perl, v.v.





Vì hầu hết các quy trình kinh doanh cốt lõi của bạn cần phải được viết bằng các ngôn ngữ này.





Nhưng bạn cũng phải nắm vững ngữ pháp ngôn ngữ và quen thuộc với cách cấu trúc, thiết kế, triển khai và kiểm tra dự án dựa trên một ngôn ngữ hoặc nhiều ngôn ngữ.





Ví dụ: nếu bạn chọn JAVA, thì bạn cần phải nắm vững thiết kế hướng đối tượng và phát triển, các mẫu thiết kế, các thành phần dựa trên J2EE của quá trình phát triển, v.v.





Nơi học: Git / GitHub – Bạn phải biết cách sử dụng Git để quản lý và chia sẻ code của mình.





Ngôn ngữ lập trình Full stack developer cần nắm vững
Ngôn ngữ lập trình Full stack developer cần nắm vững. Ảnh: hackernoon




2) Khung phát triển và thư viện của bên thứ ba





Các ngôn ngữ phát triển phổ biến thường đi kèm với một khung phát triển tốt (development framework), chẳng hạn như JAVA Spring, MyBatis, Hibernate, Python Django, PHP thinkphp, Yin, nodeJs express, v.v.





3) Công nghệ front-end





Công nghệ front-end ngày càng trở nên quan trọng hơn trong quá trình phát triển sản phẩm và dự án ngày nay.





Ngoài tính năng của sản phẩm thì trải nghiệm của người dùng cũng là một trong những tiêu chí để kiểm chứng sự thành công của một sản phẩm.





Tất cả điều đó phụ thuộc vào việc triển khai công nghệ front-end, vì vậy bạn cần phải nắm vững một số công nghệ front-end cơ bản như HTML5, CSS3, JavaScript và nghiên cứu sâu hơn về các khuôn khổ front-end hoặc thư viện của bên thứ ba như JQuery, LESS, SASS, AngularJS hoặc REACT.





4) Cơ sở dữ liệu và cache





Bất kỳ sản phẩm hay dự án nào cũng cần có cơ sở dữ liệu để lưu trữ dữ liệu.





Là một full stack developer, bạn cũng cần phải có ít nhất một hoặc hai cơ sở dữ liệu và biết cách tương tác với cơ sở dữ liệu.





Hiện tại, cơ sở dữ liệu phổ biến là MySQL, MongoDB, Redis, Oracle, SQLServer, v.v.





Là một cơ sở dữ liệu dạng tài liệu, MongoDB, đang được sử dụng rộng rãi hơn trong các sản phẩm Internet.





Đối với các dự án lớn hơn, khuyên bạn nên sử dụng MySQL hoặc Oracle thương mại làm cơ sở dữ liệu back-end.





Trong khi cơ sở dữ liệu bộ nhớ, chẳng hạn như Redis, có thể được sử dụng để lưu vào bộ nhớ đệm nhằm cải thiện hiệu suất hệ thống.





5) Khả năng thiết kế cơ bản





Hầu hết các bài báo hoặc thảo luận về full stack developer khi liên quan đến các yêu cầu thiết kế.





Nhưng tôi nghĩ kỹ năng thiết kế rất quan trọng, nguyên tắc và kỹ năng của thiết kế nguyên mẫu cơ bản, thiết kế UI, UX cũng cần hiểu rõ.





Full stack developer cần có khả năng thiết kế căn bản
Full stack developer cần có khả năng thiết kế căn bản. Ảnh: hackernoon




6) Tư duy, kỹ năng mềm





Yêu cầu bản thân cũng là một yếu tố cần thiết để trở thành full stack developer





  • Tư duy toàn cầu
  • Kỹ năng giao tiếp tốt
  • Sáng tạo
  • Sự tò mò
  • Kỹ năng quản lý thời gian




Tổng kết





Theo luật 10.000 giờ của Gladwell, bạn sẽ mất 10 năm để nắm vững nội dung kiến thức hướng đến khách hàng, front-endback-end để trở thành một full stack developer.





Do đó, full stack developer hoàn toàn không thể đạt được trong một sớm một chiều. Những gì bạn cần làm là đặt nền tảng kỹ thuật, củng cố các kỹ năng cốt lõi và tiếp tục học hỏi để đạt được nhiều thử thách hơn.





Gambaru Team. Lược dịch từ hackernoon.com.