Trở thành một nhà phát triển phần mềm đồng nghĩa bạn sẽ học suốt đời. Vì xu hướng và công nghệ thay đổi thường xuyên trong lĩnh vực phần mềm, chúng ta nên sẵn sàng để đối mặt với sự thay đổi đột ngột. Công việc này đòi hỏi liên tục vận động bộ não, nơi thư giãn hiếm khi là một sự lựa chọn.
Công việc liên quan phát triển phần mềm và kỹ thuật đang tràn ngập trên thị trường việc làm hiện tại. Nếu chúng ta phân tích xu hướng, chỉ có một vài lĩnh vực sẽ được đánh dấu có tác động mạnh trong khi những cái khác có tác động rất ít hoặc ít quan trọng. Mặc dù nhu cầu của các chuyên gia dữ liệu và phân tích, các chuyên gia Big Data, AI đã tăng lên trong suốt ba năm qua, nhưng chúng vẫn không bằng như cầu về một nhà phát triển full stack hoặc một kỹ sư full stack. Có vài lý do cho việc này.
Trước đây, tất cả chúng ta đều biết những vai trò này tồn tại trong thế giới phần mềm từ một thời kỳ xưa xa và một số những cái mới đây:
- System Analyst
- Software Developer
- Software Engineer
- Database Analyst/ Admin
- Data Analyst/ Scientist
- Big Data Developer
- Game developer
- Network Security Professional
- Operations Engineer
- Front-end Developer
- Web Developer
- Full Stack Developer
- Back-end Developer
- DevOps Engineer
Trong số những chuyên ngành này, chỉ một số rất hot ngay từ đầu năm 2017. Lý do là gì? Đó là do sự bão hòa của một số công nghệ và phát hiện ra các doanh nghiệp mới dưới hình thức start-up. Sự bùng nổ của các doanh nghiệp mới thành lập và doanh nghiệp nhỏ đã hình thành một loạt các kỹ năng cần thiết để làm điểm chuẩn. Trong đó, full stack web development là một.
Nếu bạn xem xét các vị trí trong ngành công nghệ được yêu cầu trước đây ở các tiểu bang khác nhau của Hoa Kỳ:
Vì sao Full Stack Development nổi bật trong nhóm?
Định nghĩa thông thường của full stack developer là
“Thuật ngữ full-stack nghĩa là các lập trình viên có thể làm việc thuận tay với cả back-end và front-end”
Nói một cách chuyên môn thì nó không phải là một yêu cầu tiêu chuẩn của ngành công nghiệp. Đây là một khía cạnh tiến hóa về kỹ năng. Một lập trình viên full stack luôn luôn cố gắng để tìm hiểu các công nghệ mã nguồn mở để áp dụng chúng trong công việc của mình. Theo tôi, full stack development là một sự kết hợp tối thiểu (ít nhất) của những điều sau đây
Front-end Development + Back-end Development + DevOps + Thiết kế
Ngoài việc xây dựng ứng dụng web dễ dàng, một lập trình viên full stack nên biết làm thế nào để deploy, tối ưu hóa, tự động hóa ứng dụng.
Full Stack Development là Tìm kiếm theo chiều rộng ( Breadth First Search – BFS )
Nếu bạn nghiên cứu lý thuyết đồ thị, có bạn có thể đã gặp đồ thị giải thuật duyệt. Tất cả sinh viên ngành khoa học máy tính đều biết chúng rất rõ.
- BFS (Breadth First Search)
- DFS (Depth First Search)
Tôi ở đây sẽ so sánh điểm giống nhau giữa full stack development với các chuyên ngành khác trong thế giới công nghệ và các lĩnh vực.
BFS là một giải thuật duyệt mà trong lần lượt lượt truy cập tất cả các điểm giao lân cận đến một điểm giao gốc và sau đó bắt đầu nghiên cứu sâu hơn.
DFS là một giải thuật duyệt mà việc đầu tiên là chạm vào đáy của chiều sâu tối đa của điểm giao child đầu tiên và sau đó trả về phía sau và bắt đầu quá trình từ một child thứ hai.
Cái bạn nên học là gì? DFS hay BFS?
Trả lời cho điều này là tuỳ theo sự lựa chọn bản thân. Dr.D sinh viên thích học Depth First bởi vì họ muốn thu hẹp công việc của mình cho một unit cùng một lúc. Nhưng như mô hình phát triển phần mềm chuyên nghiệp vào năm 2017, bạn không có thời gian để build, test và fix mọi thứ. Tìm người quản lý là một sự lựa chọn bình thường cho các doanh nghiệp nhưng đối với những người mới thành lập, họ không thể tạo ra hàng trăm vị trí cho hàng trăm thứ.
Full stack development là tìm hiểu Breadth First, đầu tiên bạn phải cố gắng biết cách điều hành mọi thứ và sau đó cố gắng nghiên cứu sâu hơn bằng cách làm việc liên tục. Thời đi học, chúng tôi thực hiện BFS này bằng cách học các môn học khác nhau cùng một lúc. Không có gì mới trong kỹ thuật này.
Hình ảnh cho thấy sự đa dạng của các lĩnh vực mà một lập trình viên full stack hoạt động và đạt được kinh nghiệm. Vì họ cần chăm sóc mọi thứ từ đầu đến cuối của một ứng dụng web, lập trình viên thường tự tay làm tại những điểm cao nhất trước tiên và sau đó nghiên cứu sâu hơn. Càng học nhiều hơn, càng trở nên mạnh mẽ và hữu ích hơn cho bạn.
Năm 2017, các công ty cần những người có nhiều kỹ năng. Họ không tìm kiếm ứng cử viên bảo thủ có kinh nghiệm trong một công cụ hoặc công nghệ mà không ai biết. Nắm bắt kiến thức về nguồn mở sẽ giúp các nhà tuyển dụng xếp hàng để tuyển bạn (sau đó sử dụng dịch vụ của bạn).
Bạn có đam mê học hỏi?
Nếu bạn là một lập trình viên những người học nhanh chóng và luôn luôn sốt sắng để thử những điều mới lạ bằng cách nào đó, thì hướng đi này phù hợp nhất với bạn. Full stack development là thực hiện mọi thứ, hiểu chúng và cải thiện chúng.
Công việc này liên tục cho bạn nhiều sự hiểu biết sâu sắc hơn về lập trình. Là một lập trình viên full stack, để giải quyết một vấn đề bạn sẽ biết bắt đầu từ đâu, những gì để sử dụng và làm thế nào để phản ứng với yêu cầu mới.
Đẩy mạnh các giới hạn của một lập trình viên web
Trong tennis, tốc độ di chuyển và sức mạnh từng cú đánh được cải thiện. Sự phát triển đang tăng gấp đôi mỗi thập kỷ, làm cho môn thể thao trở nên thú vị hơn. Tất cả các ngành nghề đang phát triển quá nhanh. Khoa học máy tính và phát triển phần mềm không phải là ngoại lệ. Trong những năm trước, người ta thường thuê một chuyên gia để thực hiện một nhiệm vụ. Nhưng bây giờ, trong thời đại điện toán đám mây, sự phát triển trong học tập và thay đổi là chuyện bình thường.
Giống như trong Pokémon, làm thế nào một Pikachu tiến hóa thành một Raichu, một lập trình viên web bình thường đang phát triển thành một lập trình viên full stack.
Ai là lập trình viên full stack?
Full stack development là một thuật ngữ tương đối “tù”. Các kỹ năng cần có của lập trình viên full stack có thể khác nhau tùy theo yêu cầu. Nhưng theo tôi một lập trình viên có thể trở thành một lập trình viên full stack nếu họ là:
- Có khả năng làm việc với CSS & JS tốt (Truy vấn media, Ứng dụng trang đơn và DOM, ES6). Biết các công cụ như Grunt, Gulp & Browserify
- Biết các framework web (ít nhất một). Ví dụ: Django hoặc Node JS
- Làm việc với SQL và NoSQL trong một khoảng thời gian đáng kể (MySQL, Mongo DB). Có thể thiết kế mô hình relation tốt. Có thể thực hiện các truy vấn tiên tiến và SQL Joins
- Biết cách deploy code của mình trên AWS EC2 bằng Apache2 hoặc Nginx như web server. Nên có kiến thức làm việc với Docker và Virtualization.
- Có thể thiết kế một ứng dụng web hoàn chỉnh với nhiều thành phần dễ thay đổi. Nên dũng cảm để đề xuất những thay đổi kiến trúc nếu bạn có một lý do chính đáng để làm như vậy.
- Chọn các giải pháp đơn giản hiệu quả và cải thiện nó trong suốt thời gian
- Có thể tạo chu kỳ tự động với kiến thức về Chef hoặc Ansible. Tự động logging và truy xuất lỗi.
- Thích chuyển đổi context từ domain này sang cái khác, một công nghệ khác và nhanh chóng hoàn thành công việc trong thời gian đó.
- Có kiến thức từ cơ bản đến trung bình về phát triển ứng dụng di động cùng với JS, tiện ích mở rộng Chrome và ứng dụng web hiện đại.
Tham khảo thêm các việc làm Full stack:
- [HCM]Full-stack Developer (.NET) – ISB vietnam tuyển dụng
- [HCM] Full-stack Developer 600 -1200 USD – Âu Việt Soft tuyển dụng IT
- [HCM] Full Stack WordPress Developer (ReactJS, JavaScript) – ASW tuyển dụng
- [HCM] Full-stack Developer (ReactJS/NodeJS) 1*** – 3*** USD – Silentium tuyển dụng
- [HN] Mid/ Senior Fullstack Web Developer 1000 – 4000 USD – YOPAZ tuyển dụng
Tại sao bạn nên hướng tới Full Stack Development?
Khi có rất nhiều lựa chọn nghề nghiệp sẵn có, tại sao chúng ta nên bắt tay của mình vào full stack development. Thứ nhất, nó làm cho bạn học những điều mới mọi lúc. Công nghệ đang thay đổi nhanh chóng nên gắn bó với cùng một công việc không phải là lựa chọn cho sự nghiệp của bạn. Bạn giá trị hơn cho một nhóm và có thể tự đánh giá các quyết định liên quan đến bất kỳ khía cạnh nào.
Thứ hai, vị trí này mang lại cho bạn nhiều tiền hơn. Nếu bạn là một lập trình viên full stack, rất có thể là tiền lương của bạn là ngất ngưỡng. Một nghiên cứu về mức lương từ Indeed.com cho biết rằng một lập trình viên full stack trung bình tại San Francisco, CA kiếm được gần $ 1,30,576 một năm, trong khi một lập trình viên web thông thường là khoảng $ 94,614
Ngay cả ở Ấn Độ, những người có kỹ năng full stack development đang có nhu cầu cao vào năm 2017. Thị trường startup Ấn Độ nhận ra tầm quan trọng của việc full stack development gần đây. Các công ty phần mềm từ các thành phố lớn như Delhi, Mumbai, Chennai, Bengaluru đang đăng tuyển vị trí lập trình viên full stack trong linkedIn.
Điểm tiêu cực đáng để suy ngẫm một cách rõ ràng
Full stack development cũng có thể mang lại một số hạn chế và có thể không phù hợp với mọi loại người. Nó có những nhược điểm sau:
- Mọi người có thể gọi bạn là “Biết mọi thứ” nhưng “Không chuyên sâu”. Mặc dù nó là một phần của sự thật, bạn cũng có thể theo kịp với những kiến thức bạn có được. Chia sẻ một kỹ thuật đã biết trong một blog, ghi chép có thể giúp bạn nhớ các thủ thuật của công việc hiện tại của bạn cho giai đoạn sau.
- Công việc hiện tại của bạn có thể chưa thể áp dụng kiểu “làm từ A tới Z” này.
- Đối với người mới, họ cần phải làm việc và chứng minh trong startups là một lập trình viên full stack. Chỉ một số ít được tự do làm những gì họ thích trong giai đoạn đầu. Vì vậy, công ty của bạn sẽ quyết định những gì bạn sẽ làm khi mới bắt đầu sự nghiệp. Vì vậy, lên một kế hoạch rõ ràng trước khi tốt nghiệp.
Tham khảo thêm các vị trí tuyển lập trình viên Full Stack lương cao
Nguồn: Techtalk via Medium