[Chia sẻ] [Mày mò lập trình và cái kết] - Mail tự động đã thay đổi việc dạy học của mình như thế nào

10/3/2021 6:31Phản hồi: 158
[Chia sẻ] [Mày mò lập trình và cái kết] - Mail tự động đã thay đổi việc dạy học của mình như thế nào

Kéo đến 2:34 để xem phần hướng dẫn chính nhé

1. Mình là ai, vấn đề mình gặp phải trong công việc

Mình hiện là một giáo viên tiếng Anh và rất yêu thích lập trình (chuyên ngành chính của mình là Sư phạm, mình chưa tham gia khóa học IT nào, chỉ mày mò và học hỏi qua mạng). Mình có đọc được bài của @Duy Luân về việc theo đuổi lập trình nên viết bài này để chia sẻ cùng mọi người lập trình đã hỗ trợ mình trong công việc như thế nào.

Trong quá trình giảng dạy, mình nhận thấy nhiều học viên của mình học thời gian dài nhưng không tiến bộ, dễ nảy sinh tâm lý chán nản và thậm chí có bạn bỏ ngang khóa học. Nguyên nhân chính của việc này là các bạn không đảm bảo tiến bộ làm bài được giao.

2. Đặt vấn đề và tìm giải pháp

Vấn đề mình gặp phải cũng là vấn đề chung của nhiều giáo viên và trung tâm dạy ngoại ngữ:
  1. Làm sao để học viên đảm bảo tiến độ làm bài?
  2. Làm sao tăng sự tự giác của người học?
  3. Giải pháp đặt ra phải có hiệu quả lâu dài, ít tốn chi phí và sức người nhất có thể.

Mình nảy ra ý tưởng gửi báo bài cho học viên mỗi ngày. Có báo bài sẽ giúp họ biết phải làm gì mỗi ngày, không bị thụ động và tăng sự tự giác. Lúc này có 2 phương án mình nghĩ đến:
  1. Thuê trợ giảng để gửi mail
  2. Email tự động
Mình không chọn giải pháp thuê trợ giảng vì việc này sẽ tốn thêm chi phí và sẽ không có hiệu quả lâu dài về sau. Mình nghiên về việc thiết lập Email tự động, tuy nhiên với một người bập bẹ tự học lập trình như mình thì việc này gần như là bất khả thi!

3. Thiết lập Email tự động

Mình search trên mạng, các forum và group lập trình để tìm cách làm Email tự động, và đây là những gì mình đã thực hiện:
  • Công cụ: Google sheets và Google Apps Script
(Mình xin phép che những liên kết trong hình phía dưới nhé)
Screen Shot 2021-03-10 at 2.17.56 PM.png
Mình tạo một file Google Sheet và thiết lập Tab với những nội dung như hình:
  1. Cột B: thời gian, B2 sẽ là ngày bắt đầu gửi, khóa học mình là 3 tháng nên mình sẽ thiết lập đến B31.
  2. Cột D, E, F sẽ là nội dung bài cần làm tương ứng với từng ngày, mình thiết lập là mỗi ngày sẽ nghe 2 bài Listening, làm 1 bài Reading và luyện 1 bài Speaking.
  3. Cột C: mình dùng hàm CONCATENATE để nối những nội dung của các cột D, E, F lại.
  4. Ô H2: mình thiết lập =vlookup(today();$B:$D;2;false) để hiện nội dung bài làm của ngày hiện tại.

Screen Shot 2021-03-10 at 2.31.39 PM.png
Trong Tab Email mình sẽ lưu Email cần gửi, vd ô C36 sẽ chứa email là nguyenvana@gmail.com

Screen Shot 2021-03-10 at 2.35.17 PM.png
Trong menu công cụ sẽ có nút Trình chỉnh sửa tập lệnh

Screen Shot 2021-03-10 at 2.36.54 PM.png
Giao diện sẽ hiện như sau, bấm dấu + để tạo một tệp lệnh mới, phần code mình Copy lại từ một bài hướng dẫn Email tự động (mọi người search từ khóa “Cách làm Email tự động” là ra), mình chỉnh sửa lại một chút:

Quảng cáo


  1. function Han - tên của tệp chức năng (tệp này gửi mail cho bạn tên Hân).
  2. getSheetByName("Emails").getRange("C32"); - “Emails” là tên của tab Emails mình dùng lưu email cần gửi, “C32" là ô chứa email muốn gửi, có thể gửi nhiều mail (vd C32:C40).
  3. getSheetByName("Han").getRange("H2"); - “Han” là tên tab của người/ lớp cần gửi, H2 là ô chứa nội dung email mình có giải thích ở hình trên.
  4. subject = ‘Thầy giáo Vuive gửi bạn Hân’; - Tiêu đề email

Screen Shot 2021-03-10 at 2.46.02 PM.png
Khi bấm chạy và không có lỗi gì thì người nhận sẽ nhận được email như thế này

Screen Shot 2021-03-10 at 2.48.39 PM.png
Giờ ta sẽ vào menu Kích hoạt để tự động hóa việc gửi mail

Screen Shot 2021-03-10 at 2.49.35 PM.png
Trên hình là những tệp lệnh đã được tự động hóa, để thêm trình kích hoạt mới ta nhấn nút +

Screen Shot 2021-03-10 at 2.50.43 PM.png
Mình thiết lập để gửi cho bạn mỗi ngày, trong khoảng 6-7h sáng, bấm Lưu là hoàn thành.

Quảng cáo



4. Thành quả

App Email trong điện thoại của học viên sẽ hiện thông báo mỗi ngày, họ chỉ cần mở mail và hoàn thành những liên kết (link) mình đã thiết lập sẵn. Việc này giúp tạo thói quen và cho các bạn động lực để hoàn thành tiến độ.

Kết hợp cùng hệ thống theo dõi tiến độ học tập (mình sẽ chia sẻ trong bài viết sau).
Screen Shot 2021-03-10 at 2.54.27 PM.png
Dữ liệu làm bài của học viên sẽ được ghi nhận và hiển thị dưới dạng biểu đồ:
  • Học viên có thể tự theo dõi quá trình học và đánh giá được năng lực của bản thân
  • Mình có thể theo dõi, đưa ra lời khuyên và hướng dẫn cho từng học viên dựa trên dữ liệu của từng bạn
Qua 1 năm áp dụng, dữ liệu chuyên cần của học viên tăng rõ rệt, số lượng bạn hoàn thành trọn vẹn khóa học cũng tăng lên, ít có xu hướng bỏ ngang.

Tóm lại, kiến thức lập trình đã giúp mình giải quyết vấn đề trong việc dạy học hiệu quả, không tốn chi phí và mang lại hiệu quả dài lâu. Mình đang tự học lập trình Front-end qua các nguồn miễn phí, mình không theo đuổi lập trình như một nghề, mình xem đây là một kỹ năng hữu ích và thú vị trong cuộc sống. Mong là bài viết sẽ giúp mọi người có thêm cảm hứng với việc học lập trình.

Cảm ơn đã đọc bài chia sẻ của mình ạ!
158 bình luận
Chia sẻ

Xu hướng

ui có năng khiếu thế này thì anh em coder thất nghiệp hết
__D@rk_VIP__
ĐẠI BÀNG
3 năm
@Nguoi tinh nguyen ông giỏi thế, thế ông trả lời cho tôi frontend họ được sinh ra để làm gì và backend được sỉnh ra để làm gì? Một ứng dụng tốt phải tối ưu được tốc độ và bộ nhớ cũng như chức năng thực thi được function mà đề ra trước đã, ông mà là dev thật thì ngồi viết cái chỗ thực thi được không đã là cả vấn đề rồi, sau đó làm xong còn tìm đống bug sinh ra trong quá trình làm, còn hơi đâu mà ngồi vẽ vời như ông. Tôi thấy ông đang làm designer nhưng chém gió làm dev thì đúng hơn
@__D@rk_VIP__ Xin lỗi bạn nếu bạn cũng cảm thấy bị ảnh hưởng trong comment của mình. Có thể góc nhìn của bạn khác nhau, hoặc bạn đang làm các mảng khác. Trong công ty, với team Mobile và team Web, mình luôn yêu cầu các em đọc hiểu yêu cầu của khách hàng, sau đó sketch trước trên giấy. Nhờ vào việc sketch trên giấy, các em có thể:
- hiểu yêu cầu một cách rõ ràng nhất có thể --> hướng đến đảm bảo yêu cầu của khách hàng
- hình dung sơ bộ về kiến trúc của code và các thông tin cần thiết lúc viết code, ví dụ trong class có gì, thông tin nào được sử dụng nhiều lần trong các trang khác nhau thì có thể đưa vào store để dùng kèm cơ chế invalidate cache... Những thông tin nào thường xuyên sử dụng, thông tin nào đi kèm, nhưng ít được sử dụng hơn, có nên tách 2 loại này API riêng để tối ưu băng thông không?...
- nâng cao kỹ năng thiết kế, từ front-end đến architecture cho các bạn ==> nếu các bạn không làm trong công ty nữa thì có thể tự làm độc lập cho mình, hoặc ít nhất là có thể bổ trợ thêm kiến thức, mặc dù đó không phải là công việc chính của các bạn. Nếu các bạn back-end có thiết kế xấu thì cũng không sao, nhưng cần phải luyện tập để thiết kế "đủ" và trực quan. Ít ra khi các bạn rời công ty, các bạn có thể thấy là mình đã học được & phát triển được nhiều kỹ năng phụ trợ chứ không phải chỉ có công việc code nhàm chán mà các bạn đang làm mỗi ngày.


Việc bạn nói cũng không sai, ngồi code xong là lo debug, tìm lỗi các kiểu thì thời gian đâu mà vẽ vời. Đúng vậy. Nên khi công ty hoạt động đã tương đối ổn, mình luôn có QA, cũng chính là dev, nhưng các em sẽ thay phiên đảm nhận vai trò QA trong 3 tháng. Khi làm QA thì chỉ lo thiết kế test case mà không code để tránh bị bias. Riêng dev phải có unit test cho hầu hết các function mà họ viết. Khi tạo Pull Request, phải có ít nhất 1 QA và 1 dev review PR đó. Nếu không có unit test thì không Approve, và đương nhiên là không Merge (tự động bằng CD/CI).
Đây là cơ chế giúp các team hạn chế và giảm thiểu bug rất rất nhiều. Lúc đầu nhìn có vẻ lằng nhằng, nhưng thực ra là tiết kiệm thời gian cho các bạn rất nhiều. Giờ khi các bạn đã quen, thì mặc định có tư tưởng là sẽ viết unittest trước.

Mình chỉ muốn động viên chủ thớt là bạn ấy đang làm rất tốt, điều mà không nhiều người làm được. Không hiểu sao lại đụng chạm đến các bạn khác. Khổ ghê.
echconlun
ĐẠI BÀNG
3 năm
@Nguoi tinh nguyen Những thứ thớt làm là công việc họ cần và là việc của office không phải lập đâu nha chú em. 10 năm trong nghề mà không phân biệt đâu là lập trình đâu là giao diện công thức ứng dụng à.
Thớt ra được bộ giao diện như trên là do học có logic tốt họ biết ứng dụng công nghệ vào công việc của họ.
Nên nhớ bất cứ nghề nào cũng cần phải có tư duy tốt và kỹ năng ứng dụng.
@echconlun Một năm sau đọc lại comment này vẫn thấy tư duy thiển cận. Lập trình là gì hả bạn?
Với lại mình cũng chưa bao giờ nói viết công thức Excel là lập trình trong các bình luận của mình, mặc dù nó gần giống vậy. Cái này mình ko biết gọi từ tiếng Việt là gì cho hợp lý, nhưng tiếng Anh có lẽ là coding (khác với programming). Được bao nhiêu bạn làm nghề IT ở đây làm programming? Đa phần là coding, viết lệnh bằng các cú pháp khác nhau mà máy tính có thể hiểu. Để máy tính hiểu thì phải cần có compiler hoặc đại loại vậy (giống runtime env). Đó có thể là gcc, javac, hoặc bản thân excel... Có thể bạn cho là viết C++, Rust, Go, Ts...mới là coding còn excel thì không. Nếu vậy thì bạn sai rồi. Viết công thức excel cũng là coding. Miễn cái gì bạn viết ra mà máy tính hiểu và làm theo yêu cầu của bạn thì đều là coding. Trong excel, bạn có thể sử dụng các function đã viết sẵn hoặc tự định nghĩa thêm. Khác gì so với bạn dùng lib trong các ngôn ngữ lập trình đâu? Chẳng qua là nó ở cấp cao hơn, và dùng giao diện thôi. Theo bạn thì code với google sheet (tương tự excel) là coding hay không? Viết query SQL có phải coding không? Viết gitflow với file YAML có phải coding không? Nếu bạn vẫn cho là không thì không cần tranh luận làm gì ;)
Gấu quá, chúc thầy ngày càng nhiều trò nhé
@Nam Air Dạ em cảm ơn anh @Nam Air ạ!
@Nam Air Tưởng cái kết anh Nam muốn xin làm học trò của thầy 😆
@kedote Nếu có học từ xa mình cũng xin theo
Cười vô mặt
VuTa..
TÍCH CỰC
3 năm
Ui, bác giỏi quá ạ. Tiện lợi nữa 👍
@VuTa.. Cảm ơn bác nha, cái khó ló cái khôn ạ
khâm phục 😁
đỉnh thế 😁
tohaitrieu
TÍCH CỰC
3 năm
Setup luôn 1 hệ thống Email bằng Sendy, Dùng VPS 5$/month + AMAZON SES $1 gửi được 10.000 Email sau đó thiết lập Lịch gửi theo ngày, tháng, tuần, tha hồ!
@tohaitrieu bác này lên đời hơi nhanh nhé, đã bo ruộng chưa?
@tohaitrieu Có cần thiết phải dùng đại bác bắn chim sẻ ko nhỉ ? :eek:
tohaitrieu
TÍCH CỰC
3 năm
@TheShinichi Vấn đề không nằm ở đó bạn. Vấn đề ở chỗ nếu học viên mà nhiều lên, mỗi lần bạn làm bạn lại phải copy Code và làm 1 file script cho một bạn học viên mới như thế thì tưởng là tự động, hoá ra lại phải động vào cho nó tự làm.

Nếu bạn Setup 1 lần trên Bằng Sendy, bạn chỉ cần tạo List, Setup lịch gửi mỗi ngày và thiết lập Auto gửi thì mỗi khi bạn Add 1 User vào List, nó sé tự gửi bạn không cần làm gì thêm.

Nếu cảm thấy như vậy là khó quá, thì xài Mailchimp gói Free 2000 users trong List, mỗi tháng đc gửi mấy chục ngàn email miễn phí sẽ đỡ tốn thời gian quản lý hơn là cách làm trên.

Mình nghĩ mê công nghệ thì đúng, nhưng lựa chọn cách làm này chưa được tối ưu thời gian
mjhungvit
TÍCH CỰC
3 năm
Bạn cho mình hỏi hệ thống theo dõi tiến độ học tập này tên gì vậy ạ
@mjhungvit Bác ấy tự làm bằng gg sheet hay sao đó bác
@mjhungvit Bài sau mình sẽ chia sẻ về món này ạ
HTC206
TÍCH CỰC
3 năm
Giỏi đó thầy
Hay nhỉ,
Tầm này năm ngoái mình cũng đang dùng hệ thống kiểu này cho đào tạo nội bộ. Giờ nâng cấp lên LMS
ductech0
TÍCH CỰC
3 năm
Hay quá
zaconha
ĐẠI BÀNG
3 năm
Mình cũng như bạn, cần chút kiến thức lập trình để giải quyết công việc nhưng chẳng có tý kiến thức nào nên đang loay hoay chưa biết bắt đầu từ đâu.
Dimita
ĐẠI BÀNG
3 năm
@zaconha Bạn thử nêu bài toán cần giải quyết, biết đâu có người đã gặp phải và có giải pháp rồi.
@zaconha Cái này kiến thức cơ bản mà. Bạn chịu khó học 3 tháng là xong
HungDB
TÍCH CỰC
3 năm
Rất hay bạn, đây mới gọi là áp dụng CNTT trong giảng dạy chứ không phải là mấy thầy cô làm cái slide rồi lên lớp next và next và nói mình đã áp dụng CNTT trong giảng dạy. Cái hay của cái này là mục thống kê, có thể có cái nhìn tổng quát kết quả của học viên mình. Học thêm lập trình thích nhất là thấy kết quả trong chính công việc chính hằng ngày của mình, càng làm càng thấy có động lực 😁 .
xboxvn
TÍCH CỰC
3 năm
@HungDB Làm slide và ứng dụng vào giảng dạy thì cũng đc gọi là áp dụng công nghệ thông tin rồi bác ạ.
Áp dụng thì nhiều mức độ, nhiều cách áp dụng, miễn sao nó phục vụ cho công việc của mình đc tiện lợi hơn là ok.
Như các thầy cô thay vì ngày xưa viết bảng, nói miệng thì nay biết dùng app (powerpoint) để soạn bài giảng, vậy là ok rồi
Bác thớt thì ở mức độ trên, bác ý tìm tòi để custom, thêm bớt để cái app cho nó chạy theo ý mình.
PHUGARY
ĐẠI BÀNG
3 năm
@HungDB chưa khai thoát hết sức mạnh của powerpoin thì đừng có phán, chiếu slide chỉ là cơ bản thôi.
HungDB
TÍCH CỰC
3 năm
Bác viết có mấy chữ cũng sai lên sai xuống chán bác thật, Powerpoint nó cũng chỉ là công cụ trình chiếu, hỗ trợ cho việc giảng dạy thôi chứ chưa có gì gọi là áp dụng CNTT, ngày nay việc sử dụng được powerpoint đối với giáo viên coi như là bắt buộc rồi. Không rõ bác định khai thác thêm gì ở powerpoint (làm hình ảnh động mô phỏng?..v...v)
Giỏi quá bạn!
Yêu quá
@nampd
CAO CẤP
3 năm
thầy hay quá vậy, cho em xin thông tin tham khảo về khoá học với ạ
tuanviet_hp
ĐẠI BÀNG
3 năm
Bác dạy tiếng Anh có những khoá nào thế bro? E cũng cần tư vấn học Eng :d
@tuanviet_hp Mình cũng cùng câu hỏi !!!
chu0tjnh
TÍCH CỰC
3 năm
@tuanviet_hp Chấm
Cjnemax
TÍCH CỰC
3 năm
đỉnh quá đỉnh bác ơi, nể bác luôn

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019