JavaRush /Blog Java /Random-VI /Cả người Thụy Điển và Reaper. Ai là nhà phát triển Full S...

Cả người Thụy Điển và Reaper. Ai là nhà phát triển Full Stack và làm thế nào để trở thành một nhà phát triển?

Xuất bản trong nhóm
Cả người Thụy Điển và Reaper.  Ai là nhà phát triển Full Stack và làm thế nào để trở thành một nhà phát triển?  - 1Có một vị trí trong lĩnh vực phát triển máy tính tuy bí ẩn và ít người biết đến nhưng đồng thời cũng rất hấp dẫn. Có thể bạn đã hiểu đây là vị trí của nhà phát triển Full Stack. Nó đã đạt được danh tiếng gây tranh cãi này vì một số lý do, sẽ được thảo luận dưới đây, nhưng tóm lại, tất cả là do các nhà phát triển và các chuyên gia kỹ thuật khác không thể đi đến thống nhất về thế nào là một nhà phát triển Full Stack thực sự. Cả người Thụy Điển và Reaper.  Ai là nhà phát triển Full Stack và làm thế nào để trở thành một nhà phát triển?  - 2

“Nhà phát triển full stack là một chuyên gia kỹ thuật, người biết tất cả các ngôn ngữ và công nghệ lập trình, đồng thời hát và nhảy rất đẹp.”

Ian Peters-Campbell là
nhà phát triển và người sáng lập giàu kinh nghiệm của công ty phần mềm Stickbuild.

Nhà phát triển Full Stack là ai?

Vậy lập trình viên Full Stack theo nghĩa truyền thống là gì? Định nghĩa phổ biến nhất cho chúng ta biết rằng đây là chuyên gia chịu trách nhiệm phát triển tất cả các phần chức năng của hệ thống, bao gồm cả phía người dùng của sản phẩm (frontend) và mã nội bộ chạy trên các máy chủ phân tán (phụ trợ). Theo quy định, nếu cụm từ “full stack” xuất hiện trong quảng cáo tuyển dụng đang mở, điều đó có nghĩa là nhà phát triển phải có kiến ​​thức và kỹ năng phát triển backend và frontend cùng một lúc. Tuy nhiên, nhiều công ty còn đi xa hơn, và khi nói “Nhà phát triển Full Stack”, họ muốn nói đến một người lính toàn năng không chỉ có khả năng phát triển tất cả các thành phần của một sản phẩm phần mềm mà còn có thể đảm nhận mọi việc khác, từ quản lý sản phẩm đến thiết lập hệ điều hành. hệ thống trên máy chủ và sửa chữa máy in văn phòng. Trên thực tế, trong hầu hết các trường hợp, một nhà phát triển full stack được yêu cầu phải có trình độ kiến ​​thức khá về bộ công nghệ cần thiết để hoàn thành dự án thành công. Do đó, trong trường hợp này, “ngăn xếp” có nghĩa là tập hợp các mô-đun và thành phần phần mềm được kết hợp với nhau để đạt được chức năng cần thiết. Cả người Thụy Điển và Reaper.  Ai là nhà phát triển Full Stack và làm thế nào để trở thành một nhà phát triển?  - 3

Tại sao chủ đề này lại gây tranh cãi như vậy?

Cuộc tranh luận về việc một nhà phát triển Full Stack thực sự nên như thế nào và liệu một con quái vật như vậy có tồn tại với số lượng đủ để tách những chuyên gia đó thành một nhóm riêng biệt hay không, đã diễn ra khá lâu. Như các lập trình viên giàu kinh nghiệm lưu ý, nó bùng lên với sức sống mới sau khi đại diện của Facebook, vào buổi bình minh của sự hình thành vào những năm 2000, trong bài phát biểu tại một trong những hội nghị chuyên ngành dành cho các nhà phát triển, tuyên bố rằng họ chỉ thuê và độc quyền các nhà phát triển Full Stack. “Nếu những định nghĩa truyền thống về nhà phát triển Full Stack khiến bạn bối rối thì mọi thứ đều đúng. Điều này là do nhà phát triển Full Stack là một thứ gì đó phù du. Không có mô hình khoa học nào mô tả “full stack” là gì. Không có cách nào rõ ràng để đo lường trình độ của một nhà phát triển full stack so với các nhà phát triển tương tự khác. Sự đồng thuận duy nhất về Full Stack là không ai đồng ý về một định nghĩa duy nhất về bản chất của hiện tượng này. Đó là lý do tại sao mọi thứ bạn đọc về chủ đề này không gì khác hơn là ý kiến ​​chủ quan”, Ryland Goldstein, một kiến ​​trúc sư và nhà phát triển phần mềm giàu kinh nghiệm cho biết. Cả người Thụy Điển và Reaper.  Ai là nhà phát triển Full Stack và làm thế nào để trở thành một nhà phát triển?  - 4

Bốn trụ cột của phát triển Full Stack

Tuy nhiên, mặc dù nhiều chuyên gia cho rằng lập trình viên Full Stack là một khái niệm gây tranh cãi nhưng số lượng vị trí tuyển dụng vẫn không ít, hoàn toàn ngược lại. Vì vậy, chúng ta hãy xem xét kiến ​​​​thức trong lĩnh vực nào, theo nguyên tắc, bạn cần phải có để ứng tuyển vào loại vị trí này.
  1. Phát triển giao diện người dùng.

    Thông thường, front-end đề cập đến các công nghệ phát triển web và ngôn ngữ lập trình như HTML, CSS và JavaScript. Nó cũng bao gồm các khung JavaScript như React và tất cả các công nghệ khác liên quan đến phía “khách hàng” của sản phẩm.

    Bắt đầu học từ đâu:

    Bạn có thể bắt đầu với các khung Tạo ứng dụng React hoặc Gatsby , khá dễ dàng để tạo một ứng dụng React chính thức. Bạn nên tìm hiểu các bộ tiền xử lý CSS, các công cụ CSS cơ bản như CSS-in-JS và các công cụ như Sass .

  2. Phát triển phụ trợ.

    Phần phụ trợ bao gồm tất cả mã chạy trên máy chủ, bao gồm cả các ứng dụng và API giúp trang web hoạt động. Các ngôn ngữ lập trình chính cho phần phụ trợ là Java, Python, Ruby và các ngôn ngữ khác. Ngoài ra, phát triển backend còn bao gồm quản lý cơ sở dữ liệu, đòi hỏi kiến ​​thức về SQL.

    Bắt đầu học từ đâu:

    Trước hết, bạn nên bắt đầu bằng cách đào sâu kiến ​​thức về JavaScript, như một loại cầu nối giữa giao diện người dùng và phụ trợ trong nhiều trường hợp. Đặc biệt, bạn nên tìm hiểu NodeJS , một nền tảng phần mềm dựa trên công cụ V8 để biến JavaScript từ một ngôn ngữ có tính chuyên môn cao thành ngôn ngữ có mục đích chung.

    Также для того, чтобы иметь максимально полную квалификацию в бэкенде, рекомендуется, помимо Java, постепенно осваивать такие языки программирования, How Python (в первую очередь), PHP и Ruby.

  3. Проджект-менеджмент.

    От проджект-менеджера, если вкратце, требуется управлять проектом, что включает множество задач, среди которых взаимодействие с клиентами, коллегами, сторонними подрядчиками и т.д. Словом все, что нужно для успешной реализации проекта. Сюда также входит планирование, принятие стратегических решений по работе над продуктом и т.д.

    С чего начать изучение:

    Для успешного развития в качестве проджект-менеджера не помешает изучить наиболее популярные инструменты в этой сфере. Основными можно назвать: GanttPRO (сервис для планирования и управления проектами с помощью диаграммы Ганта), Jira Software (популярная система для планирования и отслеживания agile-проектов), LiquidPlanner (инструмент для проджект-менеджмента в реальном времени), Basecamp (еще одна система управления проектами и совместной работы) и т.д.

  4. DevOps.

    Ну и, наконец, четвертым столпом фуллстек-девелопмента является знание DevOps. Обязанности DevOps-а могут сильно отличаться в зависимости от проекта, но How правило к ним относится все, что касается запуска программного codeа в продакшн, включая, например, настройку serverов, на которых будет функционировать приложение, и обеспечение слаженной работы специалистов команды вместе с техническими решениями, которые они используют.

    С чего начать изучение:

    Сфера DevOps также включает в себя довольно много всяких инструментов. Вот те, с изучения которых имеет смысл начинать: инструменты управления исходным codeом (GitLab, GitHub, Bitbucket), CI/CD-инструменты (Ansible, Jenkins, Chef), тулзы для коммуникации и коллаборации (Slack и Microsoft Teams), а также сервисы облачных вычислений и хранения данных (AWS, Azure и GCP).

    Cả người Thụy Điển và Reaper.  Ai là nhà phát triển Full Stack và làm thế nào để trở thành một nhà phát triển?  - 5

    Помимо вышеперечисленных четырех базовых составляющих “полного стека,” он не был бы действительно полным, если бы не включал в себя также мобильную разработку, базы данных и QA автоматизацию — истинный Full Stack разработчик разбирается и в этих технологиях тоже.

Зарплаты Full Stack разработчиков

Đối với mức lương của các nhà phát triển full stack, mức trung bình của họ không cao hơn nhiều so với các đồng nghiệp có chuyên môn phát triển cụ thể hơn. Theo PayScale , ở Mỹ, mức lương trung bình của các nhà phát triển full-stack là gần 75 nghìn USD mỗi năm . Đồng thời, mức lương tối thiểu (đối với lập trình viên ở vị trí full-stack) là khoảng 46 nghìn USD mỗi năm và mức lương tối đa là khoảng 114 nghìn USD mỗi năm. Đối với các quốc gia thuộc Liên Xô cũ, ở Ukraine, theo nguồn Work.ua , mức lương trung bình của các nhà phát triển full stack là 35 nghìn hryvnia (khoảng 1300 USD) mỗi tháng, trong khi ở Kiev là 45 nghìn (khoảng 1650 USD). Ở Nga, theo những dữ liệu này , mức lương trung bình của các nhà phát triển full-stack dao động từ 40 nghìn rúp (530 USD) đến 150 nghìn rúp. ($2000). Nếu chúng ta nói về mức trung bình của toàn thế giới, thì các chuyên gia làm việc ở vị trí mà chúng ta đang xem xét ngày nay kiếm được khoảng 45 nghìn đô la mỗi năm. Và ở Châu Âu, các nhà phát triển full stack nhận được mức lương cao nhất ở Đan Mạch và Thụy Điển. Cả người Thụy Điển và Reaper.  Ai là nhà phát triển Full Stack và làm thế nào để trở thành một nhà phát triển?  - 6

Làm thế nào để trở thành nhà phát triển Full Stack?

Bây giờ, hãy điểm qua ngắn gọn các kỹ năng, khả năng và công nghệ mà bạn cần thành thạo để tự gọi mình là nhà phát triển full stack với sự tự tin hoàn toàn và không có một chút mỉa mai nào.
  1. Ngôn ngữ lập trình.

    Một nhà phát triển full stack phải thông thạo một số ngôn ngữ lập trình. Tất nhiên, trước hết phải có những cái chính: Java, PHP, C#, Python, Ruby, Perl, v.v. Nói một cách dễ hiểu, những ngôn ngữ phổ biến nhất trong đó rất có thể sẽ được viết các quy trình kinh doanh chính của sản phẩm. Tất nhiên, sẽ vô cùng khó khăn để học một cách hoàn hảo toàn bộ các ngôn ngữ như vậy. Nhưng ít nhất bạn cần phải nắm vững ngữ pháp của ngôn ngữ sẽ đóng vai trò quan trọng trong quá trình phát triển và cũng có kiến ​​​​thức tốt về cách cấu trúc, thiết kế, triển khai và thử nghiệm một dự án dựa trên một hoặc nhiều ngôn ngữ.

  2. Khung và thư viện mã.

    Chà, kiến ​​thức tốt về các ngôn ngữ lập trình chính trong hầu hết các trường hợp bao gồm khả năng sử dụng các khung và thư viện phổ biến, chẳng hạn như Java Spring, Hibernate, Python Django, PHP thinkphp, MyBatis và các ngôn ngữ khác.

  3. Công nghệ giao diện người dùng.

    Tầm quan trọng của kiến ​​thức về công nghệ front-end đối với các nhà phát triển full-stack cũng rất lớn và tăng lên theo thời gian. Ngày nay, khi sự tiện lợi và “bao bọc” tổng thể của một sản phẩm trở nên quan trọng không kém chức năng, thì một phần quan trọng trong thành công chung của dự án nằm ở vai trò của giao diện người dùng. Đối với Full stack, ít nhất bạn cần phải biết các công nghệ front-end cơ bản, đó là HTML5, CSS3 và JavaScript, cũng như nắm vững các khung và thư viện front-end chính, cụ thể là JQuery, LESS, SASS, AngularJS và đã đề cập trước đó Phản ứng.

  4. Cơ sở dữ liệu.

    Cơ sở dữ liệu là một thành phần quan trọng khác của “full stack”, bởi vì bất kỳ sản phẩm hoặc dịch vụ nào cũng cần lưu trữ thông tin ở đâu đó. Theo đó, một nhà phát triển full stack nên biết ít nhất một số hệ thống cơ sở dữ liệu phổ biến nhất và cách làm việc với chúng. Các hệ thống cơ sở dữ liệu phổ biến nhất hiện nay là MySQL, MongoDB, Redis, Oracle, SQLServer và các hệ thống khác. Trong số đó, MongoDB phổ biến nhất làm cơ sở dữ liệu cho các dự án Internet khác nhau, MySQL và Oracle phổ biến nhất cho phần phụ trợ trong lĩnh vực sản phẩm doanh nghiệp và Redis thường được sử dụng để lưu vào bộ nhớ đệm và cải thiện hiệu suất hệ thống.

  5. Quản lý và kỹ năng mềm.

    Nhưng để đạt được kết quả tốt trong lĩnh vực này, chỉ học một số công nghệ hoặc ngôn ngữ lập trình là không đủ. Quản lý dự án thành công bao gồm nhiều thành phần, bao gồm quản lý thời gian, lập kế hoạch, kỹ năng giao tiếp tốt và nhiều hơn thế nữa. Và tất cả điều này có được chủ yếu thông qua thực hành.

  6. Kiến thức cơ bản về thiết kế.

    Và cuối cùng, kiến ​​thức về thiết kế, cụ thể là thiết kế UX/UI, mặc dù ở mức cơ bản, cũng nằm trong khả năng của một nhà phát triển full stack.

    Nhân tiện, đây là một lộ trình được soạn thảo kỹ lưỡng được thiết kế để hiển thị bằng đồ họa tất cả sự đa dạng của các công nghệ trên.

Kết luận và triển vọng

Như bạn có thể kết luận từ tất cả những điều trên, để trở thành một nhà phát triển full-stack chính thức và thậm chí có thể là một nhà phát triển full-stack tiêu chuẩn, bạn sẽ phải tốn rất nhiều thời gian và công sức. Tuy nhiên, thực hành liên tục và thường xuyên cho phép bạn thành thạo các nguyên tắc phức tạp hơn nhiều theo thời gian. Điều quan trọng là phải hiểu mình phải đi đâu, rèn luyện các kỹ năng chính và không ngừng tự học. Nhưng liệu bạn có cần nỗ lực như vậy để trở thành nhà phát triển Full stack thành công hay không lại là một câu hỏi khác. Nếu chúng ta nói về ưu và nhược điểm của công việc như vậy thì nhược điểm là rõ ràng - bạn cần phải nghiên cứu rất nhiều và hiểu nhiều thứ khác nhau. Điểm cộng phức tạp hơn. Một nhà phát triển full stack thường có cơ hội tạo ra tác động lớn hơn đến toàn bộ dự án so với các lập trình viên có chuyên môn cao. Đối với đa số, điều này làm tăng sự hài lòng trong công việc, và một lần nữa, ChSV lại phát triển mạnh mẽ. Trong khi đó, việc hiểu biết đầy đủ các công nghệ và kỹ năng cần thiết để phát triển thành công đôi khi mở ra những khả năng thực sự không giới hạn. Người ta tin rằng các nhà phát triển full stack thường trở thành doanh nhân CNTT thành công. Và nói chung, một người có bộ kỹ năng như vậy chắc chắn sẽ không bị thất nghiệp , bất chấp mọi khủng hoảng.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION