Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

2018 rồi, chờ đợi gì nữa mà không Go Full-stack thôi!

Năm 2017 đã tạo ra một làn sóng về full-stack developer cao nhất từ trước đến giờ. Ngày nay, càng có nhiều kĩ năng thì bạn lại càng trở nên có giá trị. Sẽ tuyệt vời biết bao nếu có ai đó biết mọi thứ về lập trình app, nhưng những người này trong thực tế là ai?

Một câu hỏi mà chẳng thể trả lời được bằng vài từ đơn giản. Nếu bạn đang tìm kiếm một lập trình viên có thể làm mọi việc hoặc muốn trở thành như vậy, đây sẽ là cách bạn sẽ thực hiện.

Điều gì khiến Full-stack Developer trở nên đặc biệt đến vậy trong năm 2018?

Nếu xem xét các khía cạnh về lí thuyết, ta sẽ thấy nghĩa phổ biến nhất của “Full-stack Developer” là một lập trình viên có thể làm việc cân bằng tốt giữa back-end và front-end

Thuật ngữ này có thể khá khác so với những gì bạn đã từng gặp trong lí thuyết chuẩn về ngành phần mềm. Những lập trình viên như vậy xuất hiện nhờ vào sự tiến hóa trong phát triển kĩ thuật. Họ chưa bao giờ ngừng học hỏi công nghệ mới và sử dụng chúng vào các dự án.

Chính quá trình tiến hóa ấy đã mang tới trái ngọt cho thị trường lao động. Một khảo sát được tổ chức bởi Stack OverFlow vào năm 2016 cho thấy đa số các lập trình viên xem bản thân là một lập trình viên full-stack

Back-end developer xếp thứ 2 với số lượng cũng lớn không kém. Nhờ vào khảo sát này, chúng ta biết rằng một full-stack developer có thể làm việc với 5-6 ngôn ngữ và framework trong khi những chuyên viên khác chỉ chọn 4 trong số đó.

Bức tranh chân dung về một Full-stack Developer

Nếu bạn quyết tâm tập trung vào lập trình full-stack, điều bạn nên hiểu đầu tiên là những tính cách cần thiết phù hợp với công việc. Dưới đây là những yêu cầu mà bạn thường thấy trong các bảng mô tả công việc:

  • Có óc phân tích
  • Kiên nhẫn
  • Luôn muốn học hỏi cái mới
  • Chú ý đến chi tiết
  • Sáng tạo
  • Kỷ luật

Nếu bạn cảm thấy bản thân có những đức tính này thì đã đến lúc nói về khía cạnh kĩ thuật của vấn đề rồi.

Các kĩ năng mà Full-stack Developer phải biết năm 2018

Bạn không cần phải trở thành chuyên gia trong tất cả các công nghệ khi đã tập trung vào cả 2 mảng back-end và front-end. Vấn đề ở đây là khả năng và đam mê của bạn để hiểu được cách thức mọi thứ vận hành. Dưới đây là một danh sách những thứ để học nếu bạn là lập trình viên hoặc yêu cầu các lập trình viên nếu là nhà tuyển dụng.

HTML và CSS

HTML và CSS là 1 nguyên tắc cơ bản bạn cần phải biết khi bắt đầu bất cứ khóa học lập trình nào. Nhờ vào HTML bạn có thể thêm các material vào webpage và CSS sẽ giúp mang lại một phong cách nhất định cho trang web

Hãy bắt đầu với:

  • Semantic HTML
  • CSS Box Model để có thể hiểu các nguyên tác cơ bản và điểm riêng biệt của nó
  • CSS preprocessors – lợi ích của chúng cho lập trình phần mềm
  • Bootstrap

Javascript

Nguồn: TopDev

Tại sao lại phải là Javascript? Ngôn ngữ lập trình này đứng vị trí đầu tiên đối với cả 3 dạng lập trình viên (bao gồm Full-stack). Những tool mới luôn xuất hiện thường xuyên nên bạn luôn phải để ý và cập nhật thường xuyên

Hãy bắt đầu với:

  • Học các nguyên tắc làm việc cơ bản với DOM và JSON
  • Tập trung vào những tính năng quan trọng của ngôn ngữ: prototypal inheritance, event delegation, etc.
  • Lựa chọn một framework để làm việc cùng
  • Có kiến thức về các testing frameworks

Back-end Language

Điều quan trọng là bạn phải chọn 1 ngôn ngữ và tập trung vào đó. Nói cách khác, bạn cần biết một cách chi tiết cách thức làm việc và điều chính xác bạn có thể làm với ngôn ngữ này. Những nhà tuyển dụng luôn bị ấn tưởng bởi những lập trình viên có thể hiểu rõ hoàn toàn về ngôn ngữ họ đang sử dụng. Bạn có thể xem xét các số liệu sau đây:

Nguồn: TopDev

Database và storage

Làm cách nào để lưu trữ dữ liệu một cách khôn khéo. Bạn cần phải biết một câu trả lời chắc chắn cho vấn đề này vì data chính là vũ khí của bạn!

Hãy bắt đầu với:

  • Tìm hiểu về NoSQL database và tình huống khi phải chọn một cái chính xác
  • Đặc thù của relational data
  • Hiếu cách thức link database với back-end language bạn đã chọn
  • Web storage

HTTP

Ứng dụng của HTTP Protocol cho phép client và server được ở trong một kết nối chắc chắn. Ví dụ, bạn có thể tạo một request thông qua code Javascript – cái mà có thể được gửi tới backend code. Điều này sẽ xảy ra nhờ vào HTTP

Không lâu về trước, các chuyên gia phần mềm bắt đầu đối mặt với nhiều vấn đề an ninh với HTTP Protocal. Vấn đề là dữ liệu HTTP không được mã hóa tạo ra một môi trường cực kỳ không an toàn cho người dùng trang web. Bây giờ, chúng ta có một phiên bản bảo mật được gọi là HTTPS. Không cần biết bạn làm việc với website nào, biết về HTTPS là một vấn đề quan trọng. Nếu website của bạn lưu trữ những dữ liệu nhạy cảm thì loại protocol này là một trong những điều quan trọng nhất đối với bạn

Hãy bắt đầu với:

  • Học các điểm cơ bản về REST
  • Thiết kế RESTful API
  • Sử dụng Chrome DevTools
  • Tìm hiểu thêm về chứng chỉ SSL

Kiến trúc

Nếu bạn đã đối phó được với mọi thứ ở trên, đây là phần tiếp theo. Khi bạn tập trung vào các project phức tạp thì việc hiểu về kiến trúc của app rất quan trọng. Bạn nên biết cách đặt code và data của mình theo thứ tự, nơi lưu trữ các file lớn, cách tách các file nhất định, và nhiều vấn đề khác nữa…

Hãy bắt đầu với:

  • Thu thập các thông tin về platform
  • Làm việc về tối ưu hóa ứng dụng
  • MVC
  • Tìm hiểu các codebase từ các dự án lớn trên GitHub

Git

Git là một trong những hệ thống quản lí nổi tiếng nhất. Nếu bạn hiểu cách nó làm việc, bạn hoàn toàn có thể hợp tác với các dev khác làm việc chung trên 1 project. Khi có bất kì thay đổi nào, bạn sẽ phải chịu trách nhiệm về phần của mình: lấy dữ liệu mới nhất và update, thực hiên các sửa chữa cần thiết…

Hãy bắt đầu với

  • Học các lệnh của Git
  • Kiểm tra các hướng dẫn cơ bản về cách sử dụng Git

Học những kĩ năng cơ bản ở đâu?

Học liên tục – đó chính là điều khiến full-stack developer thành công. Vì có rất nhiều lĩnh vực nên bạn luôn phải cập nhật về các tool và công cụ mới nhất, sau đây là một vài source để giúp bạn bắt đầu:

  • Mozilla Developer Network
  • MySQL Documentation
  • W3Schools Tutorials
  • Hypertext Preprocessor
  • Online training

Không có bất kì kiến thức lí thuyết nào có thể thay thế được việc thực hành hàng ngày. Trở thành một phần của một dự án phức tạp sẽ tạo có hội cho bạn làm việc với tất cả các khía cạnh của sản phẩm và học hỏi được nhiều về  kiến trúc của app

Hạn chế

 Bạn cần biết một số điểm tiêu cực phải đối mặt ngay từ đầu. Một vài người sẽ nói biết mọi thứ là không biết gì cả vậy nên full stack dev luôn phải cập nhật các kiến thức mới để theo kịp với tốc độ phát triển của công nghệ.

Bạn cũng đừng mong chờ mình sẽ được giao nhiều việc khi bắt đầu lập trình full-stack. Bất kỳ chuyên gia nào cũng đều phải chứng minh kỹ năng của anh ấy, vì vậy bạn có thể sẽ chỉ được trao một phần nhỏ trong dự án.Tuy nhiên, hãy sẵn sàng chiến đấu để có thêm nhiệm vụ trên con đường phát triển

Kiến thức chính là sức mạnh của Full-stack

Lập trình full–stack phù hợp nhất với những người không thích tập trung vào chỉ 1 lĩnh vực và thích các task phức tạp. Kiến thức của bạn sẽ liên tục tăng vậy nên bạn cần phải quan tâm theo dõi nó. Cùng lúc, các công ty cũng được lợi khi làm việc với các fullstack. Họ biết các khía cạnh khi xây dựng phần mềm cho dù project có thay đổi như thế nào chăng nữa

Via Hackernoon 

***Bài viết có thay đổi một số số liệu so với bản gốc để phù hợp với thị trường Việt Nam