Những việc nên làm khi mới gia nhập công ty, đi thực tập

Mấy tháng sắp tới là giai đoạn nhiều bạn sẽ đi thực tập, hoặc trở thành fresher/junior developer, bắt đầu công việc đầu tiên trong ngành lập trình.

Do nhiều bạn nhờ tư vấn, hỏi cần chuẩn bị gì nên hôm nay mình viết blog chia sẻ về những điều các bạn nên chuẩn bị, nên làm khi mới gia nhập công ty (mà hồi xưa không ai chỉ cho mình) nhé.

Ấn tượng ban đầu là rất quan trọng, nếu bạn làm tốt ở giai đoạn này thì sẽ dễ ghi điểm trong mắt đồng nghiệp/cấp trên nha!

Continue reading Những việc nên làm khi mới gia nhập công ty, đi thực tập

Chuyện về cái hộp đen trong máy bay, và những “hộp đen” trong ngành lập trình

Có thể bạn chưa biết: Cách đây tầm 5-60 năm, đi máy bay là một hình thức di chuyển cực kì nguy hiểm. Thời đấy, máy bay rơi hoặc tai nạn là chuyện … như cơm bữa, nhiều hãng hàng không bị tận 4-5 vụ tai nạn trong 1-2 năm.

Thế nhưng, nhờ 1 thiết bị nho nhỏ mà vô cùng quan trọng, ngành hàng không có thể tìm hiểu lý do máy bay rơi, từ đó cải thiện dần sau mỗi tai nạn. Sau hơn 60 năm, cho đến nay, đi máy bay đã trở thành 1 trong những phương pháp di chuyển an toàn nhất.

Muốn biết thiết bị nho nhỏ này là gì, nó có dính dáng gì đến ngành lập trình, bạn hãy đọc bài viết nhé!

Continue reading Chuyện về cái hộp đen trong máy bay, và những “hộp đen” trong ngành lập trình

Làm nghề nào trong ngành IT mà không cần code?

Đôi khi, có nhiều bạn “lỡ” theo học ngành IT, ngành lập trình (do bố mẹ bắt buộc, do báo đài bơm thổi), xong lại nhận ra mình … không thích code, không phù hợp với ngành này.

Do vậy, các bạn nhờ mình tư vấn không thích code thì có theo ngành được được không, có cách nào theo ngành mà không phải code nhiều không?

Câu trả lời đương nhiên là … CÓ. Thật ra, ngành IT nói chung rất rộng, để tạo ra 1 phần mềm tốt không phải chỉ cần ông developer ngồi code, mà còn rất nhiều vị trí liên quan khác nữa.

Do vậy, trong bài viết này mình sẽ tư vấn cho các bạn những vị trí, ngành nghề không code trong ngành IT (với mức lương không hề thua kém) nhé!

Continue reading Làm nghề nào trong ngành IT mà không cần code?

Brad Traversy – Ông chú vừa có tâm vừa có tầm, đứng sau kênh Youtube lập trình 1.2 triệu sub

Bạn nào học lập trình, nhất là học lập trình web sẽ biết kênh Travesy Media (youtube.com/c/TraversyMedia). Đây là 1 kênh chuyên dạy lập trình, với hơn 800 video cực kì chất chơi người dơi.

Các video thường có độ dài tầm 1 tiếng, giới thiệu nhập môn một công nghệ nào đó (React, Angular, MongoDB), không dài dòng lê thê, tóm gọn vấn đề trong 60 phút.

Các clip của ông cũng rất dễ hiểu, từ tốn (không chém gió ào ào như thằng Code Dạo). Người mới nhập môn, chưa biết gì biết gì cũng có thể học được. Điển hình như các clip dưới:

Người đứng sau kênh Traversy Media là Brad Traversy, thần tượng của mình. Ông là 1 ông chú mập mập, hiền lành, vừa có tâm vừa có tầm, gây dựng được 1 đế chế Udemy vài trăm ngàn học viên, kênh Youtube hơn 1 triệu sub.

Tìm hiểu về ông, mình mới thấy câu chuyện thành công của ông khá là hay ho, đáng tự hào, đáng học hỏi. Do vậy mình chia sẻ với các bạn nhé!

Continue reading Brad Traversy – Ông chú vừa có tâm vừa có tầm, đứng sau kênh Youtube lập trình 1.2 triệu sub

12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor – Phần 3

Như đã giới thiệu ở bài trước, mình sẽ giới thiệu về twlve-factor app. Đây là 12 yếu tố cần thiết để xây dựng 1 ứng dụng “xịn xò”, ổn định, dễ mở rộng, dễ deploy.

Trong bài này, mình sẽ giải thích các yếu tố từ 8 tới 12 nhé:

  • 8. Concurrency: Một app nên được chia tách thành nhiều process nhỏ để tăng concurrency
  • 9. Disposability: Process của web app nên sống nhanh, chết nhẹ nhàng, để có thể dễ dàng chạy/kill process nhanh chóng
  • 10. Dev/prod parity: Các môi trường dev/staging/production nên giống nhau hết sức có thể
  • 11. Logs: Logs nên được viết ra dạng stream ở stdout
  • 12. Admin Processes: Một số task dạng admin (tạo database, fix dữ liệu) nên được chạy trong cùng môi trường với app đang chạy

 

Đây là phần 3 trong series 3 phần về Twelve-Factor App:

  1. Lược dịch và giải thích Twelve-Factor. Giải thích Codebase và Dependencies
  2. Giải thích Config, Backing Service, Build -> Release -> Run, Processes, Port Binding
  3. Giải thích Concurrency, Disposability, Dev/Prod Parity, Logs, Admin Processes

Continue reading 12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor – Phần 3

Chuyện bi hài về cây cầu Chó Lu Té Ca – Bài học về những thay đổi méo thể lường trước được?

Đây là một câu chuyện bi hài dở khóc dở cười về một cây cầu mang tên Chó Lu Té Ca (Choluteca) ở Honduras (Trung Mỹ).

Vào những năm 90, chính quyền Honduras muốn xây dựng 1 cây cầu băng qua con sông Choluteca. Khu vực này vốn có nhiều thiên tai, nên cây cầu phải có sức chống chịu tốt trước giông bão.

Trong vòng 3 năm (từ 1996 tới 1998),  cây cầu được công ty Nhật Hazama Ando xây dựng, bằng công nghệ Nhựt Bổn hiện đại, chấp luôn mọi thể loại giông bão thiên tai.

Thế rồi, cầu vừa xây xong, vài tháng sau đó, cơn bão nhiệt đới Mitch ập tới, gây thiệt hại hơn 7000 nhân mạng ở nước Honduras.

Số phận cây cầu ra sao, các bạn xem tiếp sẽ rõ!

Continue reading Chuyện bi hài về cây cầu Chó Lu Té Ca – Bài học về những thay đổi méo thể lường trước được?

12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor – Phần 2

Như đã giới thiệu ở bài trước, mình sẽ giới thiệu về twlve-factor app. Đây là 12 yếu tố cần thiết để xây dựng 1 ứng dụng “xịn xò”, ổn định, dễ mở rộng, dễ deploy.

Trong bài này, mình sẽ giải thích các yếu tố từ 3 tới 7 nhé:

  • 3. Config: Lưu trữ thiết lập vào biến môi trường (environment variable)
  • 4. Backing services: Xem các service đi kèm (database, API, …) như là resource của app
  • 5. Build, release, run: Tách riêng quá trình release, build và run
  • 6. Processes: App nên chạy dưới dạng 1 (hoặc nhiều) stateless processes
  • 7. Port binding: Mỗi service có thể được truy cập thông qua 1 port cố định

 

Đây là phần 2 trong series 3 phần về Twelve-Factor App:

  1. Lược dịch và giải thích Twelve-Factor. Giải thích Codebase và Dependencies
  2. Giải thích Config, Backing Service, Build -> Release -> Run, Processes, Port Binding
  3. Giải thích Concurrency, Disposability, Dev/Prod Parity, Logs, Admin Processes

Continue reading 12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor – Phần 2

12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor

Sau một thời gian lập trình, bạn sẽ dần nhận ra một điều: Build một ứng dụng là một chuyện khá khó.

Thế nhưng, khi ứng dụng đã bắt đầu có người sử dụng (lên production), ta sẽ gặp phải nhiều vấn đề còn … khó hơn nữa:

  • Làm sao thêm tính năng, sửa lỗi mà không ảnh hưởng đến ứng dụng đang chạy
  • Làm sao để những tính năng mới, bug fix có thể được release nhanh chóng đến tay người dùng
  • Khi lượng người dùng tăng gấp 5, gấp 10 lần, làm sao để có thể nhanh chóng scale hệ thống
  • Làm sao để mấy bạn developer mới gia nhập có thể dễ dàng chạy ứng dụng ở local, test và push code

Đây là những vấn đề làm đau đầu nhiều team, vì nó đòi hỏi không chỉ kiến thức lập trình, mà còn là kiến thức về system architecture, operation, qui trình….

Do vậy, trong bài này, mình sẽ chia sẻ về Twelve-Factor App (12factor.net). Đây là 12 yếu tố cần thiết để xây dựng 1 ứng dụng “xịn xò”, ổn định, dễ mở rộng, dễ deploy nhé.

 

Đây là phần 1 trong series 3 phần về Twelve-Factor App:

  1. Lược dịch và giải thích Twelve-Factor. Giải thích Codebase và Dependencies
  2. Giải thích Config, Backing Service, Build -> Release -> Run, Processes, Port Binding
  3. Giải thích Concurrency, Disposability, Dev/Prod Parity, Logs, Admin Processes

Continue reading 12 yếu tố tạo nên 1 web app xịn xò – Lược dịch và giải thích Twelve-Factor

Lập trình web liệu có “chết” hay hết thời không?

Lập trình web liệu có "chết" hay hết thời không? Nếu ai cũng có thể kéo/thả để làm web bằng Wix/Shopify, liệu làm web developer tương lai có thất nghiệp không?

Đây là một câu hỏi mình đã nghe không dưới … chục lần, người hỏi thường là những bạn đang học Đại Học hoặc sắp đi làm. Gần đây, do có nhiều bạn sắp theo ngành này, muốn học web/làm web developer, do vậy mình biết bài trả lời, chia sẻ 1 lần và duy nhất luôn nhe.

Continue reading Lập trình web liệu có “chết” hay hết thời không?

Không giỏi cái này, không biết cái kia thì có theo lập trình được không?

Lâu lâu, dạo quanh mấy forum và group, mình lại thấy vài câu hỏi ngộ ngộ dạng thế này:

  • Em không giỏi tiếng Anh thì có theo lập trình được không?
  • Em code không giỏi sau này có theo nghề được không?
  • Tư duy logic em không tốt chắc không vào FPT được huhu?

Người hỏi cũng nhiều, mà chắc anh em trong ngành đọc xong chỉ cười cho qua, hoặc chán méo thèm trả lời.

Vì thế, mình viết bài này để trả lời luôn 1 lượt những câu hỏi như thế. Nếu anh em  thấy ai hỏi câu tương tự cứ share bài này ra là được nha :3.

 

Continue reading Không giỏi cái này, không biết cái kia thì có theo lập trình được không?

Lập trình viên giỏi không phải chỉ biết code