paint-brush
GPT-3 Đào tạo Lập trình viên cho Hiện tại (và Tương lai)by@mcsee
3,304
3,304

GPT-3 Đào tạo Lập trình viên cho Hiện tại (và Tương lai)

Thị trường hiện tại đang tìm kiếm các lập trình viên xếp gạch bằng các ngôn ngữ thời thượng. Những chuyên gia như vậy được đào tạo về các công cụ cụ thể có vòng đời rất ngắn và sau đó trở nên lỗi thời. Đến năm 2021, đã có rất nhiều lựa chọn thay thế cho trí tuệ nhân tạo và học máy, có khả năng thực hiện các tác vụ lập trình và thuật toán cấp thấp. Chúng ta phải tập trung vào việc hình thành các khái niệm này để các chuyên gia có thể dễ dàng di chuyển từ công nghệ này sang công nghệ khác (cũng ngẫu nhiên và do đó, nhanh chóng lỗi thời). Mối đe dọa của trí tuệ nhân tạo vẫn giống như mối đe dọa của các ngành nghề có thể tự động hóa và lỗi thời.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - GPT-3 Đào tạo Lập trình viên cho Hiện tại (và Tương lai)
Maximiliano Contieri HackerNoon profile picture

Tôi đã viết một bài báo bằng tiếng Tây Ban Nha và nhờ "người khác" viết lại nó


Năm ngoái, tôi đã viết một bài báo bằng tiếng Tây Ban Nha về tương lai của các lập trình viên.


TL; DR: Thay vì dịch bài báo của mình theo cách thủ công, tôi quyết định viết lại hoàn toàn bằng GPT-3 .


Theo cách tương tự, The Guardian đã hỏi GPT-3 khi nó ở phiên bản beta riêng tư.


Khi tôi yêu cầu dịch bài báo, nó quyết định tiêu đề không đủ hay.

Vì vậy, nó đã thay đổi nó thành hiện tại VÀ tương lai

😱Scary, phải không?


Tiếp tục nào.


Vì vậy, đây là bài báo gốc được viết lại bởi GPT-3:


Giấy

// Dịch bài báo này sang tiếng Anh và chuyển nó thành một bài báo kỹ thuật:

Bản tóm tắt

Thị trường hiện tại đang tìm kiếm các lập trình viên xếp các viên gạch (1) bằng cách sử dụng các ngôn ngữ thời thượng của họ. Những chuyên gia như vậy được đào tạo về các công cụ cụ thể có vòng đời rất ngắn và sau đó trở nên lỗi thời.


Hiện có những giải pháp thay thế để thực hiện phát triển máy tính bằng cách sử dụng những người thông minh, có khả năng tự quyết định và tham gia vào quá trình sáng tạo.


Các lập trình viên của tương lai sẽ phải xuất sắc và có tính khai báo (2). Các chuyên gia hiểu biết về thuật toán và độ phức tạp cũng như bí quyết

Giới thiệu

Hầu hết các nhà phát triển trên thế giới đang thực hiện các thay đổi đối với các hệ thống cũ hoặc phải sử dụng các thư viện hoặc khuôn khổ phức tạp có sẵn từ trước mà họ có ít quyền kiểm soát và ít cơ hội để sửa đổi. (3)


Trong ngành công nghiệp phần mềm ngày nay, rất khó để tìm thấy nhu cầu phát triển từ đầu, với một trang hoàn toàn trống.


Tuổi thọ cụ thể của độ tuổi lập trình viên cùng với ngôn ngữ thời thượng. Khoảng thời gian này thường ít hơn một thập kỷ, vì vậy ngành công nghiệp loại bỏ các chuyên gia là lỗi thời trước mười năm đào tạo. (4)


Trong những thập kỷ trước, chúng được coi là thời trang như những viên đạn bạc (5), các ngôn ngữ như Visual Basic, C ++, Java, Php, Perl, Javascript, Ruby, Python và GoLang.

Một số trong số chúng đã không còn được sử dụng, để lại vị trí của chúng cho các kiểu dáng mới. (6)


Các khái niệm chung (mà Frederick Brooks gọi là thiết yếu (7)) được tiếp thu tốt hơn trong giai đoạn học tập đầu tiên của chúng tôi. Chúng ta phải tập trung vào việc hình thành những khái niệm này để các chuyên gia có thể dễ dàng di chuyển từ một công nghệ (mà Brooks gọi là ngẫu nhiên) sang một công nghệ khác (cũng ngẫu nhiên và do đó, nhanh chóng lỗi thời).

Các mối đe dọa

Đến năm 2021, đã có nhiều lựa chọn thay thế cho trí tuệ nhân tạo và máy học, có khả năng thực hiện các tác vụ lập trình và thuật toán cấp thấp (8) (9).

Các máy ảo hiện đại (những máy thông dịch ngôn ngữ cấp cao mà chúng tôi lập trình và tồn tại, chẳng hạn như trong trình duyệt web) tối ưu hóa mã cho chúng tôi. (10)


Khi công nghệ tiến bộ, các lập trình viên cấp thấp sẽ không còn được yêu cầu theo cách mà ngày nay không ai tìm kiếm thủ thư nữa (11). Tương tự như những gì xảy ra với các ngành nghề có thể tự động hóa và lỗi thời khác. (12)


Nghề của chúng tôi vẫn dựa trên việc dạy lập trình mệnh lệnh cấp thấp như thể chúng tôi đang đối mặt với những vấn đề của những năm 1960 hoặc 1970 khi phần cứng chuyên dụng là thẻ đục lỗ và máy băng mở.


Chúng tôi giáo dục sinh viên của mình thực hiện các tối ưu hóa thuật toán vô lý và lỗi thời, rất gần với ngôn ngữ của máy móc và rất xa với mô hình hóa các thực thể của vấn đề mà chúng tôi đang đại diện trong giải pháp máy tính của mình.


Chúng tôi đào tạo các chuyên gia để hiểu cách máy tính hoạt động và hạ thấp bản thân để nói bằng ngôn ngữ của nó, hình thành các mô hình tinh thần cấp thấp và cố gắng suy luận theo cách thuật toán mà máy Turing xử lý.


Tuy nhiên, ngày nay chúng ta có thể phát triển các mô hình ngữ nghĩa với một số lớp trừu tượng ở trên khi chúng ta tiếp cận các mô hình tinh thần khai báo, chúng ta đồng thời loại bỏ các mô hình trừu tượng có thể tính toán được của máy móc. Các ngôn ngữ lập trình khai báo nhất cho phép chúng tôi suy luận và suy ra các quy tắc về các mô hình của chúng tôi. Để chống lại xu hướng này, sinh viên của chúng tôi viết hướng dẫn của họ dựa trên các số một và số không.


Định luật Moore (14) cho chúng ta biết về tốc độ thay đổi của phần cứng và tốc độ tăng trưởng theo cấp số nhân của nó trong sức mạnh xử lý. Đối với phần mềm, chúng tôi phát triển bị giới hạn tuyến tính bởi thực tế của nhiều thập kỷ trước và sức ì của các nhà đào tạo. Tương tự với lý thuyết kinh tế Malthusian (15), chúng ta cần bắt kịp với đường cong phần cứng để có thể giải phóng tất cả tiềm năng của mình trước khi máy móc làm điều đó cho chúng ta.


Việc thiếu tính trừu tượng và hiểu biết về thực tế là một triệu chứng của tâm lý quán tính, dựa trên sự hạn chế về thời gian của các bộ xử lý và lưu trữ của những năm 60 và 70. Ngày nay, những hạn chế này được giới hạn cho các miền rất cụ thể và không đại diện cho các vấn đề mà chúng tôi phải giải quyết ngày nay với tư cách là kỹ sư phần mềm trong hầu hết các công việc của chúng tôi. (16)

Thay thế

Chúng ta cần đào tạo những nhà khái quát, nhưng không phải những nhà lý thuyết. Những người hiểu kiến ​​thức cơ bản và nền tảng của kỹ thuật phần mềm và có thể thích ứng với các triển khai ngẫu nhiên dựa trên các công cụ hiện tại, cũng như các công cụ trong tương lai mà chúng ta chưa biết ngày nay.


Các khái niệm như thiết kế phần mềm, mô hình vòng đời, làm việc nhóm và xây dựng lý thuyết chia sẻ (17), tích hợp và triển khai liên tục hoặc kiến ​​trúc, quan trọng hơn nhiều so với việc học cách giảm thiểu việc sử dụng CPU, sử dụng React, khung Vue hoặc thư viện Keta .


"Rất khó để đưa ra dự đoán, đặc biệt là về tương lai". Cụm từ này, được gán cho Niels Bohr vĩ đại, nói với chúng ta rằng chúng ta nên cẩn thận khi cố gắng dự đoán tương lai.

Diễn giải Giải thưởng Turing năm 2004 (18) Alan Key, nói: "Cách tốt nhất để dự đoán tương lai là phát minh ra nó".


Chúng tôi không biết chắc chắn con đường của tự động hóa máy móc sẽ như thế nào, nhưng chúng tôi có thể dự đoán rằng phần kỹ thuật và sáng tạo nhất trong nghề của chúng tôi phải là một trong những nền tảng cuối cùng trước khi tự động hóa.


Thế hệ tiếp theo của các nhà phát triển phần mềm sẽ phải tập trung các kỹ năng của họ vào thiết kế, mô hình hóa thế giới thực và tạo ra những phần trừu tượng phát triển cùng với miền vấn đề để tránh xây dựng phần mềm cũ và lỗi thời (19).


Cách tiếp cận chiến lược này không chỉ giới hạn trong các sự nghiệp phát triển. Trong khoa học dữ liệu cũng có những vấn đề tương tự: các nhà khoa học dữ liệu tập trung vào việc tối ưu hóa các thuật toán hiện có thay vì đào tạo các chuyên gia chung chung, có thể hiểu các vấn đề học thuật và thương mại của đất nước chúng ta với một loạt các giải pháp và các tiêu chí tốt để xác định nên chọn cái nào trong mỗi tình huống. Họ nên được đào tạo để mô hình hóa vấn đề thực tế và đánh giá các giải pháp khả thi khác nhau.


Các chuyên gia khoa học dữ liệu có nhiều công cụ đáng kinh ngạc để điều chỉnh mô hình của họ. Chúng ta vẫn còn lâu mới tìm ra "siêu thuật toán" thứ hai (20) có khả năng giải quyết các vấn đề cụ thể bằng một giải pháp chung chung. Các chuyên gia tương lai của chúng ta có một chiếc máy tính đa năng duy nhất có thể giải quyết một cách hợp lý các vấn đề cụ thể khác nhau: Bộ óc tuyệt vời của họ.


Trách nhiệm của chúng tôi là nuôi dưỡng và kích thích những bộ não đó bằng các vấn đề thực sự chứ không phải bằng các giải pháp đồ chơi mà máy tính giải quyết (đã có vào năm 2020) hiệu quả hơn nhiều.


Nghịch lý thay, lãng phí bộ não của chúng ta bằng cách yêu cầu chúng thực hiện tối ưu hóa cấp độ thấp cho máy móc là cách tồi tệ nhất để tối ưu hóa tài nguyên đắt tiền nhất của chúng ta.


Về mặt lịch sử, chúng ta có đặc quyền phát triển các công cụ lý thuyết và rất cụ thể. Điều này rất phổ biến và đáng mong đợi trong khoa học vì những tiến bộ lý thuyết thường đi trước việc triển khai và sử dụng cụ thể hàng thập kỷ.


Tuy nhiên, trong phát triển phần mềm, các khám phá và phát hiện chủ yếu được tìm thấy ở khu vực tư nhân trước khi có giới hàn lâm. Các chuyên gia của chúng tôi phải được đào tạo về phương pháp luận và các khái niệm trên các công nghệ và ngôn ngữ thời thượng ngẫu nhiên. Điều này tạo ra căng thẳng giữa thị trường muốn "những người thực hiện là chuyên gia trong một công cụ" loại bỏ chúng khi nó hoàn thành chu kỳ thời trang 5 hoặc 10 năm.


Các chuyên gia của chúng tôi không nên dùng một lần hoặc có thể tái chế. Chúng ta phải đào tạo họ về kỹ thuật và họ phải cập nhật liên tục, như xảy ra trong các ngành nghề khác như y học, vật lý hoặc công nghệ sinh học.

Chúng ta cần dạy những gì?

Ngoài các kỹ năng "mềm" như xây dựng và làm việc theo nhóm (vì phần mềm phát sinh từ một hoạt động tập thể) (17), chúng tôi phải dạy các kỹ thuật thiết kế và tạo mẫu để xác nhận các giải pháp cấp cao của chúng tôi.


Đối với phần mềm, bắt buộc phải dạy thiết kế giải pháp, tập trung vào hành vi của các mô hình của chúng tôi và diễn giải Donald Knuth (21 tuổi), tác giả lịch sử của hầu hết các thuật toán chúng tôi sử dụng ngày nay, tránh tối ưu hóa quá sớm vì chúng tôi muốn chơi một trò chơi rằng máy móc thống trị tốt hơn chúng ta nhiều.

Cơ hội

Đào tạo nhân tài là một lựa chọn dễ tiếp cận đối với bất kỳ quốc gia nào có trình độ học vấn tốt, chẳng hạn như Argentina.


Đầu tư vào đào tạo các kỹ sư phần mềm xuất sắc là một quyết định chiến lược và là cơ hội để cất cánh đã được nhiều quốc gia khác như Estonia, Ireland, Israel và Ấn Độ khai thác. Quỹ Sadosky hiện đang làm việc theo hướng này. (22)


Ở Argentina, chúng tôi có những giáo viên xuất sắc, trình độ tiếng Anh tốt, múi giờ tốt nhất để đối thoại với Hoa Kỳ và Châu Âu, và một nền văn hóa tương thích với các quốc gia phát triển nhất. Chúng ta cần ưu tiên các công nghệ thông tin và bên trong chúng, đào tạo các kỹ sư thông minh và có khả năng khai báo hơn là các lập trình viên được cơ giới hóa và các nhà tối ưu hóa cấp thấp.

Chúng ta nên dạy gì cho các kỹ sư của mình?

Các chuyên gia của chúng tôi phải có kiến ​​thức cơ bản về lập trình, thuật toán, độ phức tạp và cơ sở dữ liệu.


Trên hết, họ phải học cách thiết kế dựa trên các mô hình tích hợp liên tục và triển khai liên tục, với các bài kiểm tra tự động, sử dụng các kỹ thuật nhanh nhẹn như Test-Driven Development. (23)


Phần mềm được tạo ra phải được khai báo và dựa trên hành vi mong muốn (và được chỉ định trong các bài kiểm tra chức năng tự động); chúng ta phải ngừng suy nghĩ theo mô hình thống trị của những năm 60 và 70, dựa trên các kiểu dữ liệu và thao tác tệp và chuỗi, để tập trung vào các mô hình cấp cao đi kèm với việc mô phỏng bất kỳ khía cạnh nào của thế giới thực mà chúng ta muốn đại diện để giải quyết vấn đề vấn đề nhất định. (24)


Các kỹ thuật thiết kế dựa trên hành vi là bất khả tri đối với công nghệ ngẫu nhiên của thời trang và điều này cho phép một kỹ sư được đào tạo với những khái niệm này cách đây 30 năm có thể tạo ra những phát triển cụ thể ngay cả ngày nay.


Thật không may, tình huống như vậy không được lặp lại bởi các lập trình viên đã thống trị một số ngôn ngữ thời thượng, mà thực tế không có giá trị sử dụng và điều đó khiến họ không tìm thấy các lựa chọn tốt trên thị trường lao động. Điều nghịch lý là giao dịch với toàn bộ việc làm lại loại bỏ những chuyên gia này vì không có khả năng thích ứng. (25)


Hiện tại, sự thay đổi thậm chí còn gay gắt hơn. Công nghệ tồn tại ít hơn nhiều và sự lỗi thời rình rập chúng ta, trừ khi chúng ta thông minh và rộng rãi, và được đào tạo thích hợp.

Công việc tương lai

Đây là một phần ý kiến. Là công việc trong tương lai để hỗ trợ cho luận án hiện tại, chúng ta nên thực hiện một nghiên cứu định lượng bao gồm các số liệu về sự thay đổi của nhân viên (25), thời gian trung bình trong mỗi công việc theo độ tuổi và các nghiên cứu đã hoàn thành, v.v.

Để làm được điều này, chúng ta phải sử dụng các kỹ thuật liên quan đến khoa học xã hội theo cách tiếp cận đa ngành.

Kết luận

Tương lai đã đến. Chúng tôi không có nhiều ý tưởng về công việc của một lập trình viên sẽ như thế nào trong 5 hoặc 10 năm nữa, nhưng chúng tôi có những dấu hiệu mạnh mẽ rằng nó sẽ không liên quan đến việc viết các thuật toán dựa trên cấu trúc dữ liệu. Chúng ta phải đào tạo các chuyên gia hiểu nhanh một vấn đề trong đời thực và biết cách xây dựng các trình mô phỏng với những bước nhảy vọt về khái niệm rất nhỏ, để chúng có thể phát triển cùng với các vấn đề mà chúng ta đang giải quyết ngày nay.

Sự nhìn nhận

Một phần của các ý tưởng trong bài viết này được hình thành từ công việc giảng dạy trong khóa học Kỹ thuật phần mềm trong chương trình Khoa học Máy tính tại Khoa Khoa học Chính xác, Đại học Buenos Aires.

  1. GoLang
  2. Lập trình khai báo
  3. Mã kế thừa
  4. Lập trình viên lỗi thời
  5. Không có viên đạn bạc
  6. Ngôn ngữ thời thượng
  7. Không có viên đạn bạc
  8. Bộ mã hóa sâu
  9. Mã hóa tăng cường
  10. Xử lý máy ảo
  11. Thủ thư lỗi thời
  12. Tương lai của công việc ở Argentina
  13. Máy turing
  14. Định luật Moore
  15. Mô hình tăng trưởng Malthusian
  16. Phần mềm kinh doanh
  17. Xây dựng lý thuyết
  18. Giải Turing
  19. Phần mềm kế thừa
  20. AI chung
  21. Knuth - Nghệ thuật lập trình máy tính
  22. Tổ chức Sadosky
  23. Hướng phát triển thử nghiệm
  24. Tư duy đối tượng
  25. Ngôn ngữ chết
  26. Doanh thu của lập trình viên

Bản dịch chính xác và đẹp.


Tôi đã kiểm tra nó bằng ứng dụng Grammarly và Hemmingway và chỉ tìm thấy một vài lỗi ngữ pháp.


Ví dụ:

Trabajo Futuro (Tiếng Tây Ban Nha cho Công việc Tương lai)

Este es un artículo de Región. Como trabajo futuro para apoyar la presente tesis deberíamos realizar un trabajo cuantitativo incluyendo cifras de rotación de empleados (25), tiempo promedio en cada trabajo según la edad y los estudios realizados vv đa ngành.



Dịch trong GPT-3 dưới dạng:


Đây là một phần ý kiến. Là công việc trong tương lai để hỗ trợ cho luận án hiện tại, chúng ta nên thực hiện một nghiên cứu định lượng bao gồm các số liệu về sự thay đổi của nhân viên (25), thời gian trung bình trong mỗi công việc theo độ tuổi và các nghiên cứu đã thực hiện, v.v. Để làm được điều này, chúng ta phải sử dụng các kỹ thuật liên quan đến khoa học xã hội từ quan điểm đa ngành.



Trong khi Google Dịch mang lại:


Công việc tương lai

Đây là một bài báo ý kiến. Là công việc trong tương lai để hỗ trợ luận án này, chúng tôi nên thực hiện công việc định lượng bao gồm số liệu về luân chuyển của nhân viên (25), thời gian trung bình trong mỗi công việc theo độ tuổi và các nghiên cứu đã thực hiện, v.v. Để làm được điều này, chúng tôi phải sử dụng các kỹ thuật liên quan đến khoa học xã hội theo a phương pháp tiếp cận đa ngành.

Hiệu chuẩn mô hình

Tôi đã sử dụng mô hình text-davinci-002 với các mã thông báo Nhiệt độ 0 (Độ ngẫu nhiên) và Độ dài Tối đa 2000

Ý kiến ​​GPT-3

Ý kiến ​​của bạn về bài viết này là gì?


Tôi nghĩ rằng bài viết này đưa ra một số quan điểm xác đáng về tương lai của lập trình và sự cần thiết của các lập trình viên để có thể thích nghi với sự thay đổi. Tôi đồng ý rằng ngành đang hướng tới các giải pháp tự động hơn và điều này cuối cùng sẽ dẫn đến việc giảm nhu cầu về lập trình viên. Tuy nhiên, tôi nghĩ rằng sẽ luôn cần những lập trình viên có khả năng hiểu và giải quyết các vấn đề phức tạp.


😱 (Lại đáng sợ !!)

Kết luận meta

Tôi chắc chắn sẽ tiếp tục sử dụng GPT-3 để viết các bài báo kỹ thuật nhằm cải thiện chúng.