Cùng tìm hiểu về Lập trình viên Full-Stack

Có nhiều khái niệm về Lập trình viên Full Stack, nhưng có một góc nhìn rõ ràng nhất, thì Full Stack chính là Full-stack developer (FSD) là người có thể làm các công việc liên quan tới databases, servers, systems engineering và client work. Họ có thể là một FSD về di động (mobile stack), web (web stack) hoặc phần mềm (native applications).

Full stack developer, lập trình viên full stack
Photo: packtpub.com

Full-stack Developer = Mr. Do It All! (Hãy tự mình làm tất cả đi hỡi chàng Full Stack)

Anh chàng FSD lắm bắt được tất cả các hạng mục trong quá trình phát triển phần mềm. Anh ta có kiến thức bao quát về Mạng, CSDL, User Interface, API, Security, … Mr Full stack không nhất thiết phải thông thạo mọi công nghệ của Front-end và back-end nhưng có thể học và ứng dụng vào dự án một cách nhanh chóng khi họ cần. Các công ty và start-up với nguồn lực giới hạn luôn tìm kiếm những “Siêu anh hùng” như thế này. Tuy nhiên, cơ hội tìm được họ là rất thấp.
Nói một cách cụ thể hơn, Siêu anh hùng FSD có thể đảm nhiệm các công việc liên quan đến:
  • Máy chủ, mạng, và hosting. Họ hiểu biết về các yêu cầu về phần cứng, hệ điều hành, thiết lập môi trường hệ thống để triển khai ứng dụng.
  • CSDL. Họ có thể phân tích và thiết kế CSDL, sử dụng các hệ quản trị CSDL (MySQL, SQLServer, NoSQL, …) và viết được các câu truy vấn.
  • API/ Back-end code. Họ có thể sử dụng một hay nhiều ngôn ngữ server-side như Ruby, Python, PHP, Java, … để viết các ứng dụng, dịch vụ web (web service).
  • Front-end code. HTML5, CSS3, Javascript và các frameworks như Bootstraps, Jquery, AngualarJS, …
  • UI/UX.
  • Client work. Họ có thể giao tiếp và lấy yêu cầu (requirement) từ khách hàng. Họ viết ra các tài liệu kĩ thuật (technical specs, architecture documents) và documentation.
Nếu bạn muốn tìm kiểu về khái niệm FSD một cách đầy đủ và hệ thống hơn, bạn có thể tìm xem các bài viết sau:
  • Being a Full-stack Developer
  • What is a Full-stack Developer
  • What does the term Full-stack programmer mean

Các bạn trẻ có muốn thành một Siêu anh hùng Full-stack Developer không?

Nếu bạn muốn bước chân trên con đường để trở thành một FSD thì chúc mừng bạn vì bạn đang bước đi trên con đường gian nan, tiêu tốn nhiều thời gian nhưng kết quả thì rất có nhiều hy vọng đấy.
Thế này nhé, bạn hãy bình tĩnh và nghiên cứu trước mảng Front-end. bao gồm HTML5, CSS3, và Javascript, thậm chí cả Photoshop hay Corel….. Mục tiêu bạn cần đặt ra là có thể tạo được một website tĩnh.
Sau đó, bạn hãy bắt đầu học một ngôn ngữ lập trình phía Back-end. Vì bản thân mình là một ASP.NET Developer và mình thấy rằng ASP.NET là một ngôn ngữ dễ học nên mình sẽ hướng các bạn học và làm việc với ASP.NET. Khi đã nắm vững được một ngôn ngữ lập trình rồi thì bạn có thể học các ngôn ngữ mới dễ dàng hơn. Kết hợp với kiến thức phía Front-end, lúc này bạn đã có thể xây dựng được một website giống như các lập trình viên tại Bizsoft Global  rồi đấy!
Trong quá trình phát triển, bạn cũng cần có các công cụ để quản lý code của mình. Có khá nhiều công cụ phục cho việc này như Git, SVN, Mercury. Mình khuyên các bạn nên học sử dụng Git.
Tiếp theo đó, bạn hãy học về CSDL để có thể lưu trữ nội dung cho website của mình.
Hoặc các bạn cũng có thể không làm website, mà sử dụng thuần ngôn ngữ Visual Studio để tự tạo cho mình một ứng dụng phần mềm hoặc một trò chơi đơn giản, có kết nối và truy xuất CSDL.
Khi đã xây dựng xong sản phẩm bên dưới máy của bạn rồi, điều bạn cần làm tiếp theo là học các kiến thức về tên miền cho website, hosting hoặc server để chứa source-code. Nếu bạn có server riêng (hoặc VPS), bạn cần học các kiến thức về quản trị server, bao gồm cài đặt hệ điều hành, cài đặt web server, …
Xong các bước ở trên rồi, bạn cũng cần phải nghiên cứu làm sao cho website của mình được người dùng tìm thấy qua Google, Bing, Yahoo. Quá trình được gọi là Tối ưu hóa công cụ tìm kiếm (Search Engine Optimization, SEO).

Ái Chà, như thế cũng sướng phết rồi đấy, bạn cần phải học thêm nữa để sướng hơn nhé!

Có người đã nói rằng: “Để một bạn dev có thể được gọi là 1 Full Stack Developer thì cần:Kiên trì  Dũng cảm. Còn về kỹ năng, tất cả đều có thể tự học được! Sợ chưa nào?
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 để 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.”Còn bạn thì sao? Bạn đã sẵn sàng để trở thành một Full-stack Developer?

Techtalk via geekboy.in

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *