Full Stack Developer Là Gì ? - Làm Sao Để Trở Thành Full Stack Developer

Full Stack là gì ?

Thật ra bản thân từ Full Stack không có nghĩa nhiều lắm trong IT. Hoặc có thể hiểu nôm na là đầy đủ những mức độ khác nhau của việc lập trình (Thật ra cũng vẫn khó hiểu?)

Full Stack Developer Là Gì Và Làm Sao Để Trở Thành Full Stack Developer

Vậy Full Stack Developer là ai?

Bạn có thể xem định nghĩa về Full Stack (bằng tiếng Anh) tại đây hoặc tại Quora. Có rất nhiều cách hiểu khác nhau. Đặc biệt Full Stack không chỉ dành cho Web, mà thường là cả Web và Mobile.

Full Stack Developer Là Gì Và Làm Sao Để Trở Thành Full Stack Developer

Theo quan điểm của mình “định nghĩa” Full Stack Developer là 1 người:
  • Không giới hạn mình ở bất kỳ 1 language hay 1 framework hay 1 specialisation nào hết.
  • Có kiến thức IT tổng quát và khả năng tìm hiểu sâu khi cần thiết bất kỳ vấn đề gì thuộc: (1) Server – Network (2) Database (3) Web frameworks (4) Mobile frameworks
  • Hiểu và ứng dụng được UI/UX vào trong projects
  • Nắm bắt nhanh Business Logics và chuyển được thành Technical Logics
  • Biết được khi nào cần hiểu rộng, khi nào cần hiểu sâu
  • Có thể lập trình được ít nhất 1 ngôn ngữ web và 1 ngôn ngữ mobile (iOS/Android)
Nhìn vào, chắc hẳn bạn sẽ thấy khá “đơn giản” để được gọi là 1 Full Stack Developer nhỉ. Thật sự là vậy!

Cái khó nhất nằm ở chỗ, bạn có sẵn sàng trở thành 1 Full Stack Developer không?

Làm thế nào để trở thành 1 Full Stack Developer?

Với định nghĩa như trên thì để một bạn dev có thể được gọi là 1 Full Stack Developer thì cần: Kiên trì và Dũng cảm. Còn về kỹ năng, tất cả đều có thể tự học được!

Full Stack Developer Là Gì Và Làm Sao Để Trở Thành Full Stack Developer

Kiên trì

Kiên trì để liên tục đẩy bản thân mình không ngừng nghỉ. Với tất cả những bạn học IT tốt nghiệp ra đi làm, hầu hết các bạn đều có đủ kiến thức cơ bản. Tuy nhiên giống như 1 self-timer vậy. Kiến thức này expire và obsolete cực nhanh. Do đó bạn phải kiên trì liên tục học cái mới. Mỗi tuần bạn không biết thêm và làm thêm 1 cái gì mới coi như bạn đang đi thụt lùi.

Kiên trì cho 1 chuyên môn, 1 ngôn ngữ nhất định thì dễ (như PHP, Ruby, Android, Python, iOS, …). Bạn cứ làm, cứ nghiên cứu thì cũng là tiến bộ rồi. Nhưng bạn có đủ kiên trì để học 2-3 ngôn ngữ, tìm hiểu 2-3 nền tảng cùng 1 lúc không? Bạn có đủ kiên trì để trải qua những cung bậc cảm xúc khi bắt đầu lại từ đầu với 1 ngôn ngữ mới không?

Kiên trì tìm cho mình cơ hội. Cơ hội để được làm, được thực hành. Ngồi đọc 10 bài trên StackOverflow, Reddit, HackerNews mà không bắt tay vào làm thử thì cũng vô dụng. Do đó, tìm cho mình mọi cơ hội để được làm, để được thử. Bạn có thể tự làm project của mình,  hoặc xin sếp cho làm thêm 1 project, tìm project freelance,… Bạn có đủ kiên trì làm như vậy trong suốt 2-3 năm trời không?

Dũng cảm

Dũng cảm để chọn con đường hơi khác người. Bạn có đủ dũng cảm và tự tin để sale bản thân mình với 1 bộ skillset không giống lắm với những bạn bè của mình.

Dũng cảm để có thể bỏ toàn bộ code làm 5-6 tháng trời để nâng cấp lên một ngôn ngữ mới. Dũng cảm để không dùng Code generator mà tự code để hiểu được architecture và nền tảng chuyên sâu bên dưới.

Dũng cảm để trở thành lại 1 newbie trong khi mình đang là hardcore khi nhảy từ 1 nền tảng ruột (Android), sang 1 nên tảng lạ hoắc (iOS). Và phải đi tầm sự học đạo 1 bạn junior vì bạn đó giỏi hơn mình (trong cái mới này).

Tóm lại, về chuyên môn thì ai cũng có thể trở thành 1 Full Stack Developer được hết (ít ra là tự cho mình là vậy). Nhưng về thái độ và bản lĩnh, chưa chắc nhiều bạn sẽ dám dấn thân và thử thách bản thân mình đâu.

Nhưng mà còn ông bà có câu “Nhất nghệ tinh” thì sao?

Đây có lẽ cũng là lý do để nhiều bạn phản đối con đường Full Stack Developer nhất. Có vài câu “chất vấn” quen thuộc bạn sẽ nghe thấy: “Tao học 1 ngôn ngữ đó 5 năm trời còn không thông mà đòi học 2-3 cái cùng 1 lúc!” , “Làm web thì tập trung web, làm mobile thì tập trung mobile thôi cho nó chuyên môn, biết nhiều mà không chuyên sâu cũng thất nghiệp à”, “Làm developer cần biết chi về design, code được là có ăn rồi”,… và vô vàn ý kiến khác.

Với mình, thật ra mình cũng vẫn tâm niệm: “Nhất nghệ tinh, nhất thân vinh”. Có nghĩa bạn cần tập trung vào 1 nghề cho tốt. Nhưng nãy giờ ở trên thấy tùm lum thứ mà? Không đâu bạn, dù bạn làm Android hay iOS hay Ruby on Rails, bạn cũng chỉ là làm 1 nghề – Developer. Hay chính xác hơn bạn là người làm ra sản phẩm Product Builder/Developer.

Cái khác nhau giữa 2 cách hiểu chính là: thế giới này thay đổi đủ nhanh để cuốn trôi bất kỳ 1 “nền tảng” vững chãi nào. Do đó nếu bạn chỉ biết 1 ngôn ngữ, biết 1 nền tảng nào đó, có thể hiện tại bạn vẫn có thể kiềm tiền ngon ăn với nó, nhưng liệu 1-2 năm nữa thì sao? (giống như Ruby và Python đang bắt đầu soán ngôi Java và .Net)

Full Stack Developer Là Gì Và Làm Sao Để Trở Thành Full Stack Developer

Do đó bạn có thể là 1 “super-code” hiện tại, nhưng chưa chắc điều đó sẽ đảm bảo cho bạn một tương lai chắc chắn cho những năm tới đâu.

Hơn nữa, xu hướng làm sản phẩm của thế giới cũng như những công nghệ hiện nay đều đòi hỏi sự tích hợp, hay chính xác hơn là sự hội tụ (convergent). Một sản phẩm công nghệ giờ có thể được làm ra bởi 1 team chỉ với 2-3 người, chứ không phải cả 1 team đông như trước nữa. Thậm chí cả những sản phẩm phức tạp, bạn không còn tiếp tục dựa vào 1 người gọi là Project Manager giao task cho bạn. Chính bạn phải hiểu toàn bộ các “stack” khác nhau của sản phẩm. Có thể bạn vẫn sẽ tập trung vào làm phần Back-End, nhưng bạn sẽ không ù ù cạc cạc khi nói chuyện với 1 bạn đang làm Mobile Front-End.

Lời kết

Vậy Full Stack Developer có phải là 1 hướng đi lâu dài bạn đang hướng đến không? Chia sẻ với mình nhé.
Tham khảo: Silicon Straits 

Baca juga

Đăng nhận xét