thảo luận Python - cần những gì để có thể làm việc trong môi trường chuyên nghiệp?

Chào tất cả các thím,
bIwUde2.gif

Em xin phép lập thread đầu tiên trong box Lập trình bằng một thread thảo luận về Python.

Trước khi đưa ra ý kiến của mình về chủ đề thảo luận, em xin phép chia sẻ ngắn gọn về câu chuyện của mình. Chuyên ngành của em là xử lý tín hiệu (đại học) và machin learning (cao học). Cách đây hơn một tháng em có một buổi phỏng vấn với một công ty làm trong lĩnh vực trí tuệ nhân tạo, ngôn ngữ lập trình chính là Python. Ban tuyển dụng đánh giá tư duy và kiến thức của em tương đối ổn nhưng phần lập trình của em chưa thực sự tốt để có thể làm việc ngay trong môi trường chuyên nghiệp.
N55SwVA.gif
Điều này em thừa nhận vì trước nay em chỉ viết code mới mục tiêu chạy được ổn định là chính, ít mang tính khoa học và chia sẻ với người khác. Dù so với cách đây 2 năm thì cũng có một số tiến bộ do em có đọc qua cuốn Clean Code, nhưng như thế là chưa đủ.

Em lập thread này với mong muốn thảo luận cùng tất cả mọi người xem có những thứ gì cần có để có thể trở thành một người làm việc chuyên nghiệp với Python. Theo ý kiến cá nhân của em, có 3 thứ cần học:
  1. Ngôn ngữ Python. Cái này có thể học trên Coursera, Datacamp rất đơn giản và miễn phí. Các trang này đều cung cấp môi trường tương tác, bài tập để có thể vừa học vừa thực hành rất trực quan. Tham khảo "Programming for Everybody (Getting Started with Python)" on Coursera, "Introduction to Python" on Datacamp.

  2. Cách format, tổ chức code Python theo một chuẩn (ví dụ PEP8). Mục đích của việc này là làm cho code dễ đọc hơn bởi chính người viết và người khác. Ngay cả khi bạn không chia sẻ mã nguồn với ai, thì sau này kho đọc lại code bạn cũng sẽ quên gần hết những gì mình viết, do đó đặt tên và tổ chức các phần một cách khoa học là cực kì quan trọng. Tham khảo PEP8 style guide. Trên thực tế các editor mạnh mẽ hiện nay (Vim, Emacs) đều hỗ trợ định dạng (cách dòng, thò thụt, xuống dòng, cảnh báo, báo lỗi... tự động), việc của người viết code chủ yếu là chọn cách đặt tên làm sao cho chuẩn và viết chú thích code một cách hợp lý.

  3. Quy trình làm việc nhóm với mã nguồn dựa trên Git. Cái này áp dụng cho tất cả các ngôn ngữ lập trình nhằm mục đích quản lý việc phát triển mã nguồn một cách khoa học nhất, cũng như tạo môi trường tốt để các thành viên trong một nhóm có thể làm việc với nhau trong cùng một dự án. Cũng có thể nói kĩ năng này là việc sử dụng Git hiệu quả. Tham khảo Comparing workflows.
Em rất mong nhận được nhiều ý kiến thảo luận của mọi người để thread này có thể làm nơi bắt đầu cho những bạn không chuyên về lập biết mình nên tìm hiểu gì để có thể làm việc với Python. Cảm ơn mọi người.
sRXmqcb.gif

Ba phần em nêu phía trên chỉ là những kĩ năng cơ bản nhất, em sẽ tìm hiểu thêm các kĩ năng cần có dựa theo comment của mọi người ở bên dưới để bổ sung thêm.
 
Last edited:
gjsyyNk.gif
em mới sinh viên năm 2 thôi cũng muốn đặt ghế học hỏi :go::go:
Tôi cũng năm 2 đây bro, đang học tự học ML mà chưa đến đâu :(
Bạn học trường nào thế? Sao chương trình đào tạo có luôn cả cao học thế kia. Đại học học xử lý tín hiệu là của bên Computer Engineering đúng không, sao cao học lại học bên Computer Science :oops:
Edit: Sorry mình quote nhầm :D
 
Tôi cũng năm 2 đây bro, đang học tự học ML mà chưa đến đâu :(
Bạn học trường nào thế? Sao chương trình đào tạo có luôn cả cao học thế kia. Đại học học xử lý tín hiệu là của bên Computer Engineering đúng không, sao cao học lại học bên Computer Science :oops:
Tôi học Bách Khoa tphcm :go::go::go: ML thấy cao học mới học lận ở đại học hình như học sương sương thôi bác.
Dự định tương lai vô học hỏi thôi bác :surrender::surrender:
 
Tôi học Bách Khoa tphcm :go::go::go: ML thấy cao học mới học lận ở đại học hình như học sương sương thôi bác.
Dự định tương lai vô học hỏi thôi bác :surrender::surrender:
Nếu muốn học thì học xong đại học đi du học thôi bạn
53Vd285.gif

Tôi cũng năm 2 đây bro, đang học tự học ML mà chưa đến đâu :(
Bạn học trường nào thế? Sao chương trình đào tạo có luôn cả cao học thế kia. Đại học học xử lý tín hiệu là của bên Computer Engineering đúng không, sao cao học lại học bên Computer Science :oops:
Edit: Sorry mình quote nhầm :D
Mấy cái kia đáng lẽ gọi là kĩ năng chứ ko phải chuyên ngành
afqDFC2.gif
 
Tôi học Bách Khoa tphcm :go::go::go: ML thấy cao học mới học lận ở đại học hình như học sương sương thôi bác.
Dự định tương lai vô học hỏi thôi bác :surrender::surrender:
oh, người anh em Bách Khoa :D Tôi BKHN, chương trình đào tạo xem qua thì cũng dạy về ML, mình thì đã xin vào lab nghiên cứu về học máy, làm phụ bài toán của thầy cô. Sau học lên master hay không thì chưa biết :D
1585984671845.png
 
Đã cập nhật một số link hữu ích cho các kĩ năng căn bản của Python phía trên. Sẽ tìm hiểu và cập nhật thêm các kiến thức mới/nâng cao dựa theo comment của mọi người.
MsUqZqL.gif
Làm luôn cái thread về Python cho anh em ML, data analyst thảo luận cũng ngon :D
guide tạo cài đặt môi trường, IDE, dùng google colab, google cloud platform .
Em thì dùng Anaconda và chủ yếu dùng Jupyter notebook để test và code :D
 
ai hướng dẫn làm cài đặt mấy thứ này với.
Làm luôn cái thread về Python cho anh em ML, data analyst thảo luận cũng ngon :D
guide tạo cài đặt môi trường, IDE, dùng google colab, google cloud platform .
Em thì dùng Anaconda và chủ yếu dùng Jupyter notebook để test và code :D
 
giờ trên mạng có mấy bài kiểu nhận diện khuân mặt hay biển số, giờ mình muốn thử chạy 1 chương trình như thế thì phải làm những gì từ a-z, mình dân kinh tế trái ngành

Jr2It3s.gif
về cơ bản có 4 bước lớn mà chắc bạn đã biết. Giả sử bạn đã có phần cứng phù hợp (GPU Nvidia, TPU...) và muốn chạy code từ một repo công khai trên Github:
  1. Chuẩn bị dữ liệu. Thông thường, các repo đều ghi rõ bộ dữ liệu họ đã sử dụng và cách họ chuẩn bị (preprocess). Nếu bạn muốn chạy với dữ liệu của bạn thì bạn cũng nên chuẩn bị theo các bộ dữ liệu mà code hỗ trợ trực tiếp để tránh phát sinh lỗi và có kết quả tốt nhất.
  2. Thiết lập môi trường phù hợp theo code. Bạn cần tạo một môi trường Python có phiên bản phù hợp với code cùng với các gói thư viện để chạy Numpy, Pandas, Tensorflow, Pytorch, Matplotlib... Các gói này cũng phải có phiên bản phù hợp với code. Anaconda chính là một công cụ rất tốt giúp bạn quản lý môi trường Python cùng với các gói.
  3. Tải code từ trên mạng về cùng với model checkpoint (nếu có) để chạy. Ở bước này bạn cũng có thể phải sửa một số đường dẫn đến dữ liệu, đường dẫn đến model hay là đầu ra cho phù hợp với cấu trúc thư mục của bạn. Ngoài ra khả năng khá cao là bạn cũng phải compile lại vài thứ trong trong code nếu những thứ đó không phải viết trực tiếp bằng Python.
  4. Tất nhiên là chạy và chờ kết quả đầu ra.
Jr2It3s.gif
nghe hơi rối nếu bạn ko biết về Python hay Anaconda nhưng nếu đã quen một tí thì cũng tương đối nhanh
N55SwVA.gif
 
Back
Top