THE FULL STACK OVERFLOW DEVELOPER
Bài viết này được dựa trên bài viết The Full Stack Overflow Developer trên SitePoint, một bài viết khá thú vị về thực trạng của giới lập trình viên hiện nay, và tôi nghĩ Việt Nam cũng không hề ngoại lệ. Full Stack Overflow developer, họ là ai? Những Full Stack Overflow developer làm việc gần ...
Bài viết này được dựa trên bài viết The Full Stack Overflow Developer trên SitePoint, một bài viết khá thú vị về thực trạng của giới lập trình viên hiện nay, và tôi nghĩ Việt Nam cũng không hề ngoại lệ.
Full Stack Overflow developer, họ là ai?
Những Full Stack Overflow developer làm việc gần như hoàn toàn bằng cách sao chép và dán những đoạn mã từ Stack Overflow thay vì hiểu những gì họ đang làm. Thay vì nghiên cứu về một chủ đề nào đó, họ đi thẳng vào vấn đề bằng cách đầu tiên là đặt câu hỏi và hy vọng vào một ai đó trên cộng đồng đưa cho họ kết quả của vấn đề.
Trong nhiều trường hợp, cách làm này có kết quả. Thật ngạc nhiên rằng bạn có thể đạt được mục tiêu chỉ bằng cách sao chép những thứ bạn không hề hiểu.
Tôi không hề có ý chỉ trích Stack Overflow ở đây. Đó là một nguồn tài nguyên tuyệt vời, thật sự rất khó để tạo ra một cộng đồng như thế.
Chúng ta đã gặp vấn đề này trong một thời gian khá dài.
Tôi thách bất cứ ai học lập trình cho rằng mình không sao chép bất cứ đoạn mã nào từ internet. Nhiều năm qua, những trang web về các đoạn code ví dụ, dùng để tham khảo đã cho chúng ta câu trả lời, chúng ta muốn nhưng sự thật chúng ra không cần phải làm như thế.
Tôi cũng vậy, tuy nhiên hành vi này khá là tràn lan. Tất nhiên, nó khá là dễ hiểu.
Việc tạo ra một thứ gì đó thì vui hơn là phải đọc hàng tá thứ về việc tạo ra nó như thế nào.
Sử dụng một thứ gì đó hoạt động ngay tức thì, ngay cả khi bạn không hiểu làm thế nào nó có thể hoạt động, thì bạn vẫn sẽ cảm thấy tốt hơn việc thất vọng vì không thể sửa được một thứ gì đó.
Bạn cảm thấy bạn đánh lừa được hệ thống, đường tắt thì luôn vui, và làm cho bạn cảm thấy bạn thông minh hơn tất cả những thằng dành hầu hết thời gian để học, thật là ngớ ngẩn.
Công việc thì cần có tốc độ hoàn thành nhanh chóng thành ra người ta quan trọng việc làm nhanh hơn là làm một cách sạch sẽ, gọn gẽ.
Vậy tại sao lại nảy sinh vấn đề khi người ta vừa mong muốn làm nhanh hơn, vừa mong muốn hiệu quả hơn trong việc phát triển sản phẩm?
Sự phức tạp của các sản phẩm ngày nay làm cho việc hiểu mọi thứ trở nên khó khăn hoặc thậm chí là không thể, vì môi trường phát triển tốt thường dựa trên việc sử dụng rất nhiều các gói hoặc các thư viện.
Và vì thế nảy sinh một số vấn đề với quy trình phát triển trong đó sử dụng những Full Stack Overflow developer.
Luôn giả định rằng câu trả lời đơn giản nhất là tốt nhất. Điều này vô cùng nguy hiểm vì những đoạn code đó có thể chứa đựng những vấn đề mà không ai để ý đến từ năm này qua tháng nọ trên internet. Và khi bạn sao chép nó, hoàn toàn có thể tạo ra lỗ hổng cho sản phẩm của bạn.
Câu trả lời dễ sao chép nhất thường được sử dụng, bỏ qua việc những câu trả lời khác có nhiều bình chọn hơn, hay được liên kết với những giải pháp tốt hơn để giả quyết vấn đề, chỉ đơn giản là sao chép và dán mà không có bất kì sự đào sâu nào.
Bất kì cộng đồng nào cũng mang trong mình rất nhiều giả định về việc tạo ra một môi trường chuyên nghiệp. Điều này có nghĩa là việc đưa ra câu trả lời trong những cộng đồng là giống như là tạo ra một điều gì đó tuyệt vời, mới mẻ và phức tạp để developer có thể cài đặt mà nó có thể hoàn toàn không hề hữu dụng. Điều này dẫn đến việc developer dễ dàng thêm một thư viện, hay một gói nào đó vào trong dự án của mình mà không hề hay biết bạn đang thêm một thứ đã lỗi thời người ta chẳng còn sử dụng, và biến cái mình đang làm thành một mớ rác hỗn độn không hơn không kém.
Lại nói về các câu trả lời, các developer có xu hướng chọn những giải pháp ngắn gọn nhưng đôi khi lại khó có thể đọc được. Sao chép chúng mà không cần phải hiểu vì lý do duy nhất là gắn vào thì nó chạy. Tốt thôi, nó sẽ tốt cho bạn lúc này, nhưng đến lúc debug hay bảo trì code, chắc chắn nó sẽ thành thảm hoạ. Ngắn không phải lúc nào cũng tốt, chỉ đơn giản là phải gõ code ít hơn thôi.
Và quả thật nó là một sự thiếu tôn trọng người khác, bạn chỉ đơn giản đặt mọi thứ vào chung với nhau và thấy nó hoạt động. Và chắc hẳn, chẳng ngạc nhiên gì khi những người khác nhìn vào bạn và chả thấy bất cứ sự chuyên nghiệp nào.
Nói cho cùng, vấn đề lớn nhất đó là một điều không tốt, hay nặng hơn nó là một điều vô cùng tồi tệ cho việc phát triển bản thân của chính các bạn, developer à.
Tìm ra giá trị của công việc chính là phần thưởng lớn nhất.
Đi lên mạng, tìm ra một giải pháp và sao chép là một việc vô cùng đơn giản trong các việc đơn giản. Quá dễ dàng để làm, không tốn bất kì nỗ lực nào và nó không phải là công việc của bạn mà là của một người nào đó làm cho bạn. Thay vì tự hào về kết quả, bạn thường phải nơm nớp về việc bị người khác phát hiện ra là bạn chỉ đơn giản là sử dụng lại tác phẩm của người ta và bán nó dưới danh nghĩa của mình.
Việc lặp đi lặp lại điều gì đó là điều mà developer ghét cay ghét đắng. Nhưng chúng ta cần phải lặp đi lặp lại một số việc để xây dựng, cũng như rèn luyện kĩ năng của bạn. Bạn càng luyện tập càng nhiều, thì bạn càng làm công việc đó dễ dàng hơn mà không cần phải suy nghĩ nhiều. Đây chính là kinh nghiệm, cái mà Nhà tuyển dụng luôn cần ở bạn.
Khi bạn tập lái xe, bạn ngồi xuống ghế hoàn toàn bị choáng ngợp với những cần gạt, bàn đạp mà bạn cần chú ý đến. Sau một thời gian, bạn thậm chí hoàn toàn không nghĩ về nó, thậm chí việc chuyển tay lái từ bên trái sang bên phải cũng không phải là vấn đề. Việc học và rèn luyện một thứ gì đó thì luôn luôn tốt hơn việc chỉ sử dụng nó. Càng nhiều nỗ lực bạn bỏ ra, thì bạn sẽ càng thấy việc đó xứng đáng.
Sự công nhận của mọi người luôn là thứ mà ta khao khát. Và chúng ta không thể có được sự công nhận đó nếu chúng ta không phải là người sở hữu thứ mà chúng ta làm. Bạn hoàn toàn có thể sao chép để hoàn thành công việc. Nhưng sớm hay muộn, bạn sẽ cảm thấy bạn không đạt được bất cứ thứ gì. Đừng đánh lừa bản thân bạn. Đừng là một Full Stack Overflow developer. Bạn xứng đáng được nhiều hơn thế!
Bài gốc: Codeaholicguy