Modern Developer là gì? Vai trò của Modern Developer
Bài viết khẳng định vị thế quan trọng của lập trình viên trong bối cảnh công nghệ hiện đại, đồng thời giới thiệu khái niệm "Kỹ sư Công dân" - những người không chuyên về công nghệ nhưng có khả năng tạo ra các ứng dụng hữu ích.
Modern Developer - Một khái niệm rộng lớn
Nếu bạn đang đọc bài viết này, bạn là một lập trình viên. "Modern Developer" là một thuật ngữ bao hàm nhiều vai trò, trách nhiệm và kỹ năng khác nhau, từ việc sử dụng biểu mẫu đơn giản, viết mã máy cấp thấp, đến xây dựng các ứng dụng học máy đa tầng. Đối với một số người, điều này đến một cách tự nhiên; họ muốn giải quyết vấn đề, xây dựng giải pháp và không bao giờ phải làm thủ công cùng một việc hai lần.
Mong muốn đơn giản hóa cuộc sống, tự động hóa mọi thứ và giải quyết vấn đề là chìa khóa thúc đẩy nhiều Modern Developer. Nếu mong muốn này nghe quen thuộc, thì bạn là một lập trình viên. Trong tương lai gần, bạn có thể chỉ cần nghĩ về mã sẽ như thế nào và sau đó viết nó thành câu - hay còn gọi là kỹ sư gợi ý. Điều này đang đến rất nhanh chóng.
Tính chất không đồng nhất của dữ liệu, nhà sản xuất dữ liệu, ứng dụng và dịch vụ thúc đẩy mọi người trở thành nhà phát triển cũng làm nổi bật tầm quan trọng của các nhà phát triển. Chúng ta cần xây dựng các ứng dụng và những thứ khác vì có rất nhiều ứng dụng và hệ thống đa dạng cần được kết hợp với nhau để giải quyết toàn bộ yêu cầu trong thế giới thực. Ví dụ: tôi cần chia sẻ một ứng dụng mới mà tôi đã viết để trình bày cách sử dụng Apache NiFi để xử lý dữ liệu theo dõi máy bay.
Đây không phải là một nhiệm vụ duy nhất; có rất nhiều việc phải phối hợp và thực hiện trong thời gian ngắn. Tôi cần đăng một bài viết lên DZone, mã lên GitHub và thông báo lên Mastodon, Twitter, LinkedIn và những nơi khác. Tôi cũng cần đăng lại bài viết lên blog của mình và xây dựng một bài phát biểu tại hội nghị xung quanh nội dung đó. Điều này có thể mang lại nhiều tài sản hơn để tổ chức và phân phối. Tuy nhiên, tất cả những điều này đều là các hoạt động trực tuyến có thể được đưa vào một quy trình và được tổ chức. Đây là một nhu cầu phổ biến, có thật trong thế giới thực, trải dài trên nhiều thứ.
Vai trò và trách nhiệm của Modern Developer
Số lượng hoạt động mà một nhà phát triển phải làm trong phát triển hiện đại ngày nay vượt xa việc chỉ thiết kế, tạo, xây dựng, thử nghiệm và triển khai ứng dụng. Thông thường trong môi trường bị hạn chế về nguồn lực ngày nay, một vai trò bổ sung phổ biến là thu thập và chuyển đổi các yêu cầu của người dùng thành các tài sản có thể xây dựng. Trách nhiệm cũng bao gồm quốc tế hóa, giám sát, quản lý, trích xuất dữ liệu và hơn thế nữa.
Với danh sách lớn các hoạt động được yêu cầu của các nhà phát triển, rất nhiều kỹ năng kỹ thuật và kỹ năng mềm được yêu cầu để thành công. Những điều này có thể khác nhau rất nhiều dựa trên loại nhà phát triển bạn là gì. Tôi đã liệt kê một vài ví dụ về các loại nhà phát triển, nhưng tùy thuộc vào quy mô và tuổi đời của tổ chức của bạn, bạn có thể đang hoạt động với tư cách là nhiều hơn một trong những loại sau:
Nhà phát triển
Nhà phát triển full-stack
Nhà phát triển back-end
Nhà phát triển SQL
Kỹ sư phân tích
Kỹ sư dữ liệu
Kỹ sư streaming
Một số kỹ năng mềm quan trọng nhất đối với một nhà phát triển là có khả năng lắng nghe, thấu hiểu và ghi chú từ cuộc trò chuyện với (những) người cần ứng dụng. Bạn phải có khả năng hiểu những gì họ nói và những gì họ cần dựa trên kiến thức của bạn về thực tế kỹ thuật của tình huống. Họ có thể yêu cầu một thứ gì đó mạnh mẽ nhưng chỉ cần một ứng dụng notepad. Một kỹ năng mềm quan trọng khác là có khả năng khiến mọi người hiểu được thực tế của những gì có thể được xây dựng dựa trên các ràng buộc về thời gian, tài năng, khả thi kỹ thuật và chi phí.
Các kỹ năng kỹ thuật tối thiểu bao gồm có khả năng hiểu và sử dụng các ứng dụng web khác nhau, hiểu biết cơ bản về cách thức hoạt động của các trang web, một số kiến thức về SQL và một số kiến thức cơ bản về luồng chương trình. Nếu bạn tò mò và sẵn sàng trải qua thử nghiệm và sai sót, hãy yêu cầu trợ giúp và tìm hiểu cách gỡ lỗi những gì đang xảy ra sai, thì bạn có thể thành công trong hầu hết các loại hình phát triển.
Khó khăn của nghề lập trình và hội chứng "cháy" nghề
Ngày nay, không ai có thời gian để ghi chép đầy đủ hoặc mô hình hóa các ứng dụng nữa. Một nguyên mẫu phải được tạo ra nhanh chóng để đạt được sự đồng thuận xung quanh các yêu cầu đã thu thập được. Kỳ vọng đối với bất kỳ trang web và ứng dụng nào ngày nay là rất cao, vì mọi người liên tục sử dụng các ứng dụng và trang web từ các công ty internet lớn và mong đợi cùng một mức độ chất lượng và tính năng trong bất kỳ ứng dụng nào họ sử dụng. Điều này khó khăn đến kinh ngạc và thường đòi hỏi nhiều nhóm làm việc đồng bộ với hàng tấn phần mềm, dịch vụ, khuôn khổ và công cụ.
May mắn thay, các công cụ tiên tiến ngày nay giúp việc này trở nên dễ dàng hơn so với trước đây. Thông thường, các công cụ sẽ là các công cụ ứng dụng bật tức thì SaaS có thể xử lý rất nhiều tác vụ lặp đi lặp lại. Các môi trường low-code như Apache NiFi đang cho phép các nhà phát triển đơn lẻ hoàn thành nhiều công việc hơn bằng cách tự động hóa rất nhiều mã cơ sở hạ tầng soạn sẵn.
Bằng cách chỉ tập trung vào mã giải quyết vấn đề, rất quan trọng đối với giải pháp kinh doanh hoặc trả lời câu hỏi, các nhà phát triển đang đạt được nhiều hơn với ít hơn.
Tôi đã nói rằng bạn có thể thành công, nhưng thường thì cái giá của thành công là nhiều yêu cầu hơn, nhiều nhu cầu về thời gian hơn, nhiều ứng dụng hơn để xây dựng, nhiều tính năng hơn để thêm, nhiều hỗ trợ hơn được yêu cầu và chỉ là nhiều hơn nữa. Trong phần mềm, nâng cấp thường xuyên hơn và có thể yêu cầu thay đổi, cập nhật và phát hành lại mọi thứ bạn đã làm cũng như thay đổi công cụ của bạn. Điều này có thể xảy ra hàng tuần đối với một số công nghệ nhất định, nhưng hầu hết mọi thứ sẽ yêu cầu một vài nâng cấp mỗi năm. Điều này làm tăng thêm căng thẳng và khối lượng công việc thường khiến các nhà phát triển bị kiệt sức.
Kiệt sức của nhà phát triển xảy ra khi có quá nhiều nhu cầu, ứng dụng cần xây dựng, cuộc họp cần tham dự và mọi người cần trả lời. Điều này có xu hướng xảy ra khi không có đủ nhà phát triển và không thực sự hiểu rõ mức độ nỗ lực cần thiết, điều này có thể dẫn đến căng thẳng và khiến mọi thứ chậm lại. Đối với một số nhà phát triển, lối thoát duy nhất là nghỉ việc hoặc đảm nhận một vai trò khác.
Làm cách nào để bạn giảm bớt nó? Bạn sẽ cần phải có tự động hóa, ủy quyền, kỳ vọng thông minh hơn và có khả năng là nhiều công cụ hơn. Bạn sẽ cần ủy thác một số nhiệm vụ cho các nhà phát triển công dân và chính những người yêu cầu. Một số khuôn khổ, hệ thống low-code và ứng dụng đám mây cho phép điều này khá dễ dàng. Bạn có thể cần hướng dẫn mọi người hoặc thực hiện một số đào tạo cơ bản, nhưng nếu bạn có thể thêm một vài nhà phát triển công dân vào nhóm của mình, thì điều đó sẽ mang lại phần thưởng lớn.
Họ cũng liên tục cải tiến các công cụ và khuôn khổ đám mây, nguồn mở và AI có thể giúp mọi thứ dễ dàng hơn. Một lần nữa, một nhiệm vụ khác là cảnh giác liên tục đối với phần mềm mới hơn và tốt hơn. May mắn thay, có một số tài nguyên ngoài kia như DZone và bản tin có thể cải thiện tỷ lệ tín hiệu trên nhiễu cho điều đó.
Low-code và No-code vẫn cần đến lập trình viên
Các công cụ chỉ là: các công cụ. Chúng cần được hướng dẫn theo một cách nào đó. Đây là lý do tại sao các hệ thống phát triển low-code và no-code, ngay cả những hệ thống được hỗ trợ bởi AI mô hình ngôn ngữ lớn như ChatGPT, vẫn cần ai đó bắt đầu quy trình và vạch ra những gì mong muốn. Những nhà phát triển này cũng sẽ cần cung cấp sơ đồ cho dữ liệu, kiểm tra các ứng dụng và cung cấp các truy vấn và kiểm tra chấp nhận để xác thực rằng mã hoạt động theo đúng ý muốn.
Phát triển Công dân
Với sự gia tăng của các công cụ đám mây, ứng dụng và hệ thống nguồn mở mạnh mẽ hơn cũng như nền tảng và khuôn khổ, giờ đây chúng ta có thể dễ dàng tạo ra các công cụ phát triển mạnh mẽ, yêu cầu ít hoặc không cần mã hóa để xây dựng các ứng dụng chất lượng sản xuất có thể sử dụng được. Với chi phí gia nhập thấp và khả năng sử dụng rộng rãi của các công cụ này, giờ là lúc trao quyền cho tất cả những ai cần ứng dụng để bắt đầu xây dựng chúng. Những nhà phát triển mới này là những gì có thể được gọi là nhà phát triển công dân, vì họ có công việc hàng ngày và kiến thức về các lĩnh vực khác nhau. Đây là những người tốt nhất để hiểu những gì họ muốn và cần xây dựng.
Ví dụ: nếu người dùng cần một ứng dụng đọc từ trang web và lọc ra thông tin họ cần, họ có thể sử dụng một công cụ nguồn mở như Apache NiFi cho phép họ kéo và thả các thành phần để xây dựng luồng hành động hoàn thành nhiệm vụ mong muốn. Trong một trường hợp, người dùng có thể cần dự báo thời tiết được gửi dưới dạng email mỗi giờ. Điều này có thể được thực hiện bằng cách thêm một vài thành phần vào một trang và liên kết chúng theo thứ tự các thao tác được yêu cầu.
Đối với một số người, điều này có thể quá khó và trong trường hợp đó, có các công cụ Phần mềm dưới dạng Dịch vụ (SaaS) giúp việc này thậm chí dễ dàng hơn bằng cách cung cấp các trường hợp sử dụng được xây dựng sẵn, yêu cầu làm theo trình hướng dẫn và thiết lập một vài thông số. Một ví dụ về loại hệ thống này được thảo luận trong phần tiếp theo. Có rất nhiều công ty đang xây dựng các môi trường low-code trên đám mây để giúp công việc của các nhà phát triển công dân trở nên dễ dàng hơn nữa.
Kỹ sư Streaming Công dân: Một ví dụ
Kỹ sư streaming công dân là nhà phát triển không chuyên nghiệp, người xây dựng và triển khai các ứng dụng dữ liệu streaming. Họ sử dụng nền tảng low-code và no-code để tạo các ứng dụng thu thập, xử lý và phân tích dữ liệu thời gian thực. Các kỹ sư streaming công dân thường là người dùng doanh nghiệp, những người am hiểu sâu sắc về dữ liệu và nhu cầu kinh doanh. Họ có thể sử dụng nền tảng low-code và no-code để xây dựng các ứng dụng đáp ứng nhu cầu này mà không cần đến các nhà phát triển chuyên nghiệp.
Vai trò của một kỹ sư streaming công dân ngày càng trở nên quan trọng khi lượng dữ liệu mà các tổ chức thu thập được tiếp tục tăng lên. Các kỹ sư streaming công dân có thể giúp các tổ chức thu được giá trị từ dữ liệu này bằng cách xây dựng các ứng dụng có thể xử lý và phân tích dữ liệu đó trong thời gian thực.
Dưới đây là một số kỹ năng chính cần thiết cho một kỹ sư streaming công dân:
Kỹ năng phân tích dữ liệu
Sự nhạy bén trong kinh doanh
Kỹ năng giải quyết vấn đề
Kỹ năng tư duy phản biện
Khả năng làm việc với công nghệ
Kỹ năng giao tiếp
Đối với ví dụ này, một yếu tố cần xem xét trước khi giao ứng dụng này cho một nhà phát triển có kinh nghiệm hoặc chọn một kỹ sư công dân để thực hiện là dựa trên trường hợp sử dụng và dữ liệu của nó.
Tôi đã tập hợp một biểu đồ để dễ dàng quyết định ai nên làm việc đó và như thế nào. Cách dễ nhất để xác định xem một trường hợp sử dụng có thể được giải quyết bằng low-code hay không là xem xét các nguồn và đích liên quan đến dữ liệu. Như chúng ta có thể thấy, nếu bạn có thể giữ nó đơn giản và chỉ đến một nguồn duy nhất, thì low-code là con đường để đi.
Kết luận
Tóm lại, mọi người đều cần trở thành nhà phát triển để mọi thứ được vận hành, nhưng bằng cách làm việc cùng nhau như một cộng đồng, chúng ta có thể hoàn thành đúng việc mà không bị kiệt sức. Tương lai dành cho các nhà phát triển đang rất tươi sáng. Nhu cầu về các nhà phát triển đang tăng lên nhanh chóng mà không có hồi kết, bất kể sự suy thoái kinh tế tạm thời. Tuy nhiên, tương lai của sự phát triển cũng đang thay đổi. Sự gia tăng của điện toán đám mây, dữ liệu nhanh và AI đang tạo ra những cơ hội mới cho các nhà phát triển. Các nhà phát triển có thể thích ứng với những thay đổi này sẽ có nhu cầu cao ngay cả khi mọi người đều có thể phát triển; những người phát triển mạnh mẽ trong sự thay đổi và thử thách sẽ luôn cần thiết.