5 điều nên làm để trở thành lập trình viên giỏi!

Chúc mừng năm mới các bạn. Sau 2 tuần nghỉ Tết phũ phê, đây là bài viết đầu tiên trong năm 2020 Âm Lịch của Tôi Đi Code Dạo.

Đầu năm, nhận thưởng Tết xong là thời điểm chúng ta nên … nhảy việc, đòi tăng lương, hoặc phấn đấu trở thành người tốt hơn, giỏi hơn.

Do vậy, mình viết bài này để chia sẻ một số kinh nghiệm của bản thân và những bác lập trình viên giỏi xung quanh, chia sẻ cách để trở thành lập trình viên giỏi nha.

1. Cách viết code clean và code cứng

Phương châm của blog là: Lập trình viên không phải chỉ biết code. Tuy nhiên, phần lớn thời gian chúng ta bỏ ra khi đi làm là để … viết code.

Chúng ta viết code để hiện thực 1 features nào đó, để tạo ra sản phẩm. Code ít lỗi thì sản phẩm chúng ta làm ra mới tốt, code clean thì người khác mới dễ đọc, dễ bảo trì.

Chưa kể, đồng nghiệp, cấp trên sẽ đánh giá khả năng, trình độ của bạn dựa trên những dòng code mà bạn viết ra. Viết code tởm, code tạm bợ sẽ khiến bạn bị … người đời phỉ nhổ.

Do vậy, muốn thành 1 lập trình viên giỏi, trước tiên bạn phải học cách viết code cleancode cứng. Chi tiết thì dài lắm, mình đi làm 4-5 năm rồi nhưng vẫn phải học mỗi ngày nên khó chia sẻ hết trong bài này được.

Cuốn Clean Code ai cũng biết rồi nên nay mình giới thiệu cuốn The Art of Readable Code nha!

2. Hiểu biết sâu về 1 công nghệ/lĩnh vực nào đó

Tất nhiên, code giỏi là điều kiện cần chứ chưa phải là đủ. Để nâng cao giá trị bản thân, bạn cũng nên tập trung master (nôm na là làm trùn, lộn, làm “trùm”) một công nghệ, lĩnh vực nào đó.

Ví dụ, bạn thấy thích front-end. Đừng chỉ tập trung vào code, mà hãy nghĩ tới cách làm giao diện, cách thiết kế UI/UX, flow hợp với người dùng. Hoặc bạn có thể tìm hiểu cách optimize code, optimize performance của React/Angular.

Hoặc nếu bạn thích back-end, bạn có thể tập trung thêm vào thiết kế hệ thống, tìm hiểu sâu về database optimize, caching, infrastructure v…v.

Bên cạnh công nghệ, kiến thức về 1 lĩnh vực nào đó, kiến thức về qui trình cũng khá quan trọng!

Ví dụ, bạn từng làm dev cho các công ty liên quan tới trading, kiến thức trading đó sẽ rất có giá trị khi bạn nhảy qua các công ty liên quan đến tài chính, stock.

Những thứ này người ta gọi là Domain Knowledge

Những kiến thức này giúp bạn hiểu rõ hơn những về cách hệ thống hoạt động, cover được nhiều trường hợp hơn, tiếp nhận requirement từ user nhanh chóng hơn.

3. Tiếp cận vấn đề một cách có hệ thống

Làm một thời gian rồi, bạn sẽ luyện được cách tiếp cận vấn đề một cách bài bản, có hệ thống, có qui trình chứ không … mò mẫm nữa. Ví dụ:

  • Khi nghe thấy có bug front-end, thay vì mò mẫm thì ta có thể check bug đó ở browser nào, trang nào, sau đó thử reproduce. Sau khi reproduce ta mở Developer Tool lên để xem có lỗi gì không, sau đó mới check code xem đoạn nào gây lỗi.
  • Khi có lỗi back-end nhưng không reproduce được, thay vì vò đầu bức tai thì ta kiểm tra log, kiểm tra monitoring xem có alert hay notify gì không.
  • Khi làm 1 chức năng mới, thay vì cắm đầu code ngay thì ta thiết kế trước flow, UI, những module cần thiết; sau đó check lại xem cách nào có đáp ứng đủ yêu cầu hay không. Sau đó mới bắt đầu code.

Tiếp cận vấn đề có hệ thống sẽ giúp bạn tiết kiệm khá nhiều thời gian, công việc trơn tru hơn, chuyên nghiệp hơn!

Senior hơn junior là ở chỗ tiếp cận vấn đề có qui trình hơn!

4. Tiếp cận phần mềm dưới góc nhìn của user/business

Nếu chỉ biết cắm đầu vào code, giao task gì làm nấy, giá trị của bạn mang lại chỉ có hạn. Công việc của lập trình viên chúng ta không phải là code, mà là dùng khả năng code để đem lại giá trị cho sản phẩm, cho người dùng.

Thật vậy, khi code, bạn hãy thử đặt mình vào vị trí người dùng, vị trí của CEO hoặc team lead, tự hỏi mình những câu hỏi sau:

  • Chức năng này code ra cho ai dùng? UI/UX thế này đã thân thiện với người dùng chưa?
  • Chức năng này code ra có đem lại giá trị gì không? Có giúp người dùng vui hơn không? Có mang lại doanh thu/lợi nhuận thêm cho công ty không?
  • Task này mình làm tiết kiệm được thời gian cho anh em trong nhóm, cho các bạn operator và customer support hay không?

Khi làm vậy, bạn sẽ thấy được những task nào nên làm, không nên làm, công sức mình bỏ ra đã giúp được những ai.

Khi có performance reveiw, đòi tăng lương, bạn cũng có cơ sở mà đòi vì “Em đã làm cái A cái B này đem lại quá trời tiền cho công ty”.

Trước khi làm cái gì cũng nên hỏi “Code cái này có ra tiền không” nha :))

5. Kĩ năng mềm/thuyết trình/chém gió

Dù bạn có giỏi thế nào, thiết kế hệ thống xịn tới mấy, mà không giải thích được cái hay, cái giỏi đó cho đồng nghiệp, cho cấp trên; thì cái sự giỏi ấy cũng không có tác dụng nhiều.

Chưa kể, khi bạn lên những vị trí cao hơn như team lead, manager, thời gian dành cho việc code sẽ ít lại; thay vào, bạn sẽ phải bỏ ra thêm thời gian để thuyết phục member, trình bày cho cấp trên, chém gió cho các team khác.

Do vậy, muốn thành lập trình viên giỏi, có sức ảnh hưởng, bạn phải có chút kĩ năng mềm để thuyết phục người khác làm theo ý mình; có kĩ năng thuyết trình/chém gió để trình bày vấn đề với cấp trên.

Phần này thì mình cũng không biết rèn luyện ra sao! Bản thân mình chỉ quan sát mấy bác manager/team lead/CEO xung quanh, sau đó kiếm thêm sách về đọc thôi.

Mình khuyến khích các bạn nên đọc Đắc Nhân Tâm

Tạm kết

Trong ngành mình, khả năng quyết định tất cả, tiếp tới là may mắn. Nếu bạn có khả năng, nếu bạn đủ giỏi, bạn có rất nhiều cơ hội, thể dễ dàng nhảy việc, dễ dàng deal lương!

Do vậy, đừng quá tập trung vào vài đồng lương vụn vặt, mà hãy cố gắng biến mình giỏi hơn hàng ngày Nâng cao trình độ của mình, tiền bạc sẽ tự theo đuổi bạn nha.

Nếu bạn nào có kinh nghiệm, cách rèn luyện để trở thành lập trình viên giỏi thì cứ comment chia sẻ với mọi người nhé.

 

Bonus: Nếu không muốn đọc blog thì các bạn có thể xem vê lóc để nghe mình chém gió nhé

5 thoughts on “5 điều nên làm để trở thành lập trình viên giỏi!”

  1. Bài viết hay, thực tiễn. Năm mới thân chúc tác giả 1 năm an khang thịnh vượng và luôn gặp nhiều may mắn, thuận lợi trong projects. 5 đểm chính bạn nêu ra đều rất chính xác. Tôi chỉ xin phép “nhín” vô thêm 2 điểm này: nếu đi code dạo ở nước ngoài, kĩ năng ngoại ngữ cũng cần phải trau dồi liên tục vì ngoại ngữ là nền tảng quan trọng của kĩ năng mềm. Cuối cùng, đa số thành phần IT ở VN là tuổi trẻ… bạn chưa thấy tóc bạc. Khi cao tuổi, để bám nghề, việc siêng năng thể dục là điều vô cùng quan trọng. Chúng ta lao động bằng trí não, tim mạch cần tốt để đưa đủ dưỡng khí lên cho não tính toán, phân tích. Đầu năm xin chúc các dev chịu khó siêng năng bơi lội, chạy bộ, quýnh tennis (đừng quýnh vợ), đạp xe đạp, vv

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s