ChatGPT liệu có làm lập trình viên mất việc? – Phần 1

Mới đầu năm 2023, sự ra đời của ChatGPT làm khuấy đảo không chỉ các ngành quan trọng như vận tải, chứng khoán, văn phòng. Bản thân ChatGPT cũng đang ảnh hưởng trực tiếp tới ngành công nghệ thông tin. Mọi người tin rằng với ChatGPT, rất nhiều lập trình viên sẽ mất việc bởi trí tuệ nhân tạo (Artifical Intelligence) sẽ thay thế lập trình viên để viết code.

Vậy có chăng ChatGPT sẽ khiến cho anh em lập trình viên bay luôn công việc? Nếu không, anh em lập trình viên cần chuẩn bị những gì để sống sót. Biến mình trở nên khác biệt, và còn có giá trị (valuable) hơn cả ChatGPT?

ChatGPT
Mới ra ChatGPT thôi đã sợ kỷ nguyên Robot giết chóc rùi. Huhu

Bài viết này xin mạn phép chia sẻ cùng anh em. Đầu tiên là lướt qua một số ví dụ mang tính kĩ thuật bên ngành, xem ChatGPT làm được gì, từ đó phân tích anh em lập trình nên làm gì để sống sót kỷ nguyên AI.

Dựa trên quan điểm cá nhân, có gì không phải anh em vui lòng comment. Mọi người thoải mái nêu lên quan điểm.

1. ChatGPT làm được gì như lập trình viên

Từ lúc có ChatGPT, không ít các anh em đã thử đặt các câu hỏi về lập trình cho ChatGPT. Câu trả lời từ ChatGPT là vô cùng ấn tượng. Vậy cụ thể ChatGPT làm được gì?

Bài viết này sẽ dẫn anh em đi qua một số câu hỏi. Các câu hỏi đó liên quan tới các phase trong quá trình phát triển phần mềm. Cụ thể như sau:

  • Nghiệp vụ BA (phân tích hệ thống, hiểu requirements, suggest requirements)
  • Nghiệp vụ thiết kế hệ cơ sở dữ liệu
  • Kiến thức cơ bản (kiểu như định nghĩa liên quan tới ngành phần mềm)
  • Câu hỏi về hệ thống đặc biệt (có ít thông tin để ChatGPT học)

Ok, gét gô thôi anh em.

2. Câu hỏi về kiến thức cơ bản

Ví dụ như apply design pattern vào source code. Nếu anh em chưa biết về singleton pattern. Đặt ngay câu hỏi cho ChatGPT.

Không chỉ nêu ra code như nào, ChatGPT còn cẩn thận chu đáo nói cho anh em biết về khái niệm của Singleton.

ChatGPT

Có code rồi, ChatGPT còn tỉ mẩn giải thích từng đoạn code trong đó. Nào là đảm bảo chỉ có instance duy nhất. getInstance() là gì. Rồi tại sao với đoạn code đó lại cho ra được một instance duy nhất.

ChatGPT

Rõ ràng mà nói, ở góc độ tra cứu thông tin hoặc tìm kiếm các thông tin chung chung về lập trình ChatGPT làm rất tốt. Bản thân một câu trả lời của ChatGPT tiết kiệm thời gian cho anh em tìm kiếm.

Thay vì bộ 3 câu hỏi với 3 lần tìm kiếm:

  • Singleton pattern là gì?
  • Ví dụ về singleton pattern trong Java?
  • Giải thích code singleton trong Java?

Giờ với ChatGPT, chỉ một câu hỏi thôi là có đầy đủ câu trả lời.

  Facebook giới thiệu LLaMA tạo siêu AI cạnh tranh với ChatGPT
  Fuzzy search là gì? Những điều cần biết về thuật toán fuzzy

3. Câu hỏi về thiết kế hệ thống đã có nhiều bên phát triển

Ở đây mình hỏi về thiết kế hệ thống bán vé cho rạp phim đi ha. Cái này đã có rất rất nhiều bên phát triển. Về concept và những thành phần phải phát triển cũng khá là rõ ràng.

ChatGPT

ChatGPT

Ú oà, ChatGPT cho câu trả lời không khác một BA (Business Analytics) có trình độ cao. Từng gạch đầu dòng có thể xem như một Epics. Nếu không có yêu cầu gì đặc biệt từ hệ thống, danh sách Epic được liệt kê ở ChatGPT không hề thiếu. Thậm chí còn có cả QR code scan, khách đặt lại vé đó nhiều lần.

Chu đáo hơn, ChatGPT còn quan tâm tới security, analytics cho system. Phải nói là cực kì chu đáo, đóng vai trò BA có kinh nghiệm nữa cơ.

Việc làm AI lương thưởng hấp dẫn, mới nhất dành cho bạn!

4. Thiết kế Database

Thiết kế database đòi hỏi kinh nghiệm và được xem là công việc có tính chuyên môn cao. Cùng xem ChatGPT làm được gì nha anh em.

Phía dưới đây là câu trả lời thiết kế Database cho hệ thống bán vé.

ChatGPT

Movies
- movie_id (PK)
- title
- description
- duration
- rating
- poster_url

Theaters
- theater_id (PK)
- name
- location

Shows
- show_id (PK)
- movie_id (FK)
- theater_id (FK)
- start_time
- end_time
- price

Users
- user_id (PK)
- name
- email
- password
- phone

Bookings
- booking_id (PK)
- user_id (FK)
- show_id (FK)
- timestamp
- total_price

Seats
- seat_id (PK)
- theater_id (FK)
- row_number
- seat_number
- status

Booking_Seats
- booking_id (PK, FK)
- seat_id (PK, FK)

Ghê thiệt, không những define rõ ràng tất cả các table, khoá chính khoá ngoại liên kết như nào. ChatGPT còn giải thích cụ thể mục đích từng table, mục đích các khoá trong đó.

ChatGPT

Sau khi đã qua các bước chung chung phát triển hệ thống. Về cơ bản ChatGPT có thể cung cấp thông tin khá đầy đủ nếu những thông tin đó đã có đủ để ChatGPT có thể học.

Thử đi vào chi tiết hơn.

5. Code react component

Câu hỏi tiếp theo cho ChatGPT là thử code một react component sử dụng để lấy lên toàn bộ danh sách ticket.

ChatGPT

Dưới đây là đoạn code có được từ ChatGPT, bất ngờ là ChatGPT gợi ý một số field cần mapping lên list. Cần gọi API để lấy danh sách các ticket.

import React, { useState, useEffect } from 'react';
import axios from 'axios';

function TicketList() {
  const [tickets, setTickets] = useState([]);

  useEffect(() => {
    // Make an API call to fetch the list of tickets
    axios.get('/api/tickets')
      .then(response => {
        setTickets(response.data);
      })
      .catch(error => {
        console.error(error);
      });
  }, []);

  return (
    <div>
      <h2>Ticket List</h2>
      <table>
        <thead>
          <tr>
            <th>ID</th>
            <th>Movie</th>
            <th>Theater</th>
            <th>Show Time</th>
            <th>Price</th>
          </tr>
        </thead>
        <tbody>
          {tickets.map(ticket => (
            <tr key={ticket.id}>
              <td>{ticket.id}</td>
              <td>{ticket.movie}</td>
              <td>{ticket.theater}</td>
              <td>{ticket.showTime}</td>
              <td>{ticket.price}</td>
            </tr>
          ))}
        </tbody>
      </table>
    </div>
  );
}

export default TicketList;

Không những mapping id, movie, theater, showTime và price của vé. ChatGPT còn gợi ý về format JSON của API để mapping.

[  {    "id": 1,    "movie": "Avengers: Endgame",    "theater": "Cineplex 1",    "showTime": "2023-03-05 14:30",    "price": 10.99  },  {    "id": 2,    "movie": "Spider-Man: No Way Home",    "theater": "Cineplex 2",    "showTime": "2023-03-05 15:00",    "price": 8.99  },  ...]

Ví dụ về API thì khỏi bàn, anh em có thể dùng luôn làm mockdata để test.

ChatGPT

Về code thì ChatGPT trả lời như này là hơi run run rồi á anh em.

Ôi vãi thánh thần thiên địa

6. Hệ thống có business đặc biệt, ít biết

Được rồi, qua vài ví dụ trên thì một số anh em cũng nổi da gà vì giờ chỉ cần mix lại nữa thôi là khéo anh em thất nghiệp. Ra đường ngồi. Viễn cảnh nói thì xa vời chứ gần ngay trước mắt.

Thử lại tí nữa với hệ thống quản lý phòng khám đông y. Đông Y là tinh hoa của Y học phương Đông. Ít có ai phát triển. Hệ thống đông y cũng không phổ biến lắm.

Gòi, căng, nghĩ hơi lâu rồi á.

ChatGPT

Vẫn có kết quả về thiết kế hệ cơ sở dữ liệu nhưng khá chung chung và giống với tây y. Nguyên nhân là đông y có khá ít thứ để học. Phù, nhẹ hơn tí. Vậy cái gì đặc biệt hơn thì ChatGPT vẫn chưa làm tốt.

Dưới đây là DB thiết kế cho phòng khám đông y. Vẫn khá đầy đủ nhưng ChatGPT chưa thể hiểu được nghiệp vụ hệ thống để thiết kế DB chính xác hơn

Patients
- patient_id (PK)
- first_name
- last_name
- date_of_birth
- gender
- phone_number
- email
- address

Visits
- visit_id (PK)
- patient_id (FK)
- visit_date
- visit_reason
- visit_description
- visit_result

Prescriptions
- prescription_id (PK)
- visit_id (FK)
- prescription_date
- prescription_description
- prescription_quantity

Medicines
- medicine_id (PK)
- medicine_name
- medicine_description
- medicine_category

Suppliers
- supplier_id (PK)
- supplier_name
- supplier_address
- supplier_phone
- supplier_email

Medicine_Suppliers
- medicine_id (PK, FK)
- supplier_id (PK, FK)
- price
- in_stock

7. Tổng kết

Qua một số ví dụ ở trên, ChatGPT show up cho anh em thấy bản thân nó là một công cụ mạnh. Lập trình là công việc đòi hỏi tính chuyên môn cao, nhưng cá nhân mình đánh giá ChatGPT có thể hỗ trợ gần 60% khối lượng công việc.

Nếu công việc có tính chất đặc thù và đòi hỏi quan tâm vào chi tiết, ChatGPT có thể đóng vai trò như người hỗ trợ.

Với anh em coder chắc anh em sẽ nhận ra ngay, như component ticket list kia, ChatGPT đã hỗ trợ anh em khá nhiều rồi. Giờ chỉ có component theo style nào, frontend anh em có yêu cầu gì khác về UI hoặc về business thì code thêm thôi. Thời gian tìm kiếm thông tin giảm đi hơn một nửa.

Vậy anh em lập trình cần làm gì để không bị trí tuệ nhân tạo thay thế. Xin phép được viết bài nữa cho anh em nha. Bài này dài quá rồi.

Anh em có gì cứ feel free comment.

Cảm ơn anh em đã đọc bài – Thank you for your time – Happy coding!

Tác giả: Kiên Nguyễn 

Xem thêm:

Tìm kiếm việc làm IT mới nhất tại TopDev!