Lập trình viên từ A đến Z

Lập trình viên từ A đến Z

Trong bài viết này, tôi muốn chia sẻ một số khái niệm vui vui với các bạn về nghề lập trình. Các khái niệm này được tôi đúc rút từ quãng thời gian hơn một thập kỷ làm lập trình viên. Hy vọng bài viết có thể mang lại cho các bạn một số niềm vui vào những ngày đầu xuân.

Các keyword về lập trình viên từ A đến Z theo quan điểm cá nhân, thông tin mang tính chất chia sẻ kinh nghiệm và là các thông tin tham khảo với các bạn lập trình viên.


A. Automation – Tự động hóa công việc

Thần tượng của tôi trong giới công nghệ thông tin là Bill Gate, và câu nói mà tôi thích nhất từ ông là: “I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.”

Câu quote trên và “tự động hóa” có gì liên quan đến nhau ? Những người “lười” sẽ luôn tìm ra những cách thông minh để thực hiện “tự động hóa” những công việc đang diễn ra hàng ngày.

Ví dự như các bạn lập trình viên khi thực hiện lập trình các dòng lệnh để tương tác vào bảng dữ liệu, chúng ta sẽ lặp đi lặp lại các câu lệnh CRUD với mỗi bảng dữ liệu. Nếu mới học, bạn sẽ thấy hào hứng nhưng làm lâu rồi, chắc chắn các bạn sẽ thực hiện viết một script/application để thực hiện nhận cấu trúc bảng dữ liệu và sau đó sẽ tự động sinh ra đủ các loại file/scripts, thậm chí là cả… phần code giao diện web hoặc app cho việc CRUD luôn.

B. BLOG – Viết blog cá nhân

Blog cá nhân là nơi chia sẻ những gì bạn có, bạn hiểu, bạn mới tìm hiểu được. Blog cá nhân là “nhà” của bạn trên mạng internet. Hãy tập viết blog càng sớm càng tốt, tương lai bạn sẽ thấy có nhiều bất ngờ chờ đón bạn.

Lúc đầu, các bạn có thể viết khá ngô nghê, nếu có ai bình luận gì trái chiều là sẵn sàng thể hiện “cái tôi” cá nhân bằng cách “bật” lại ngay. Dần dần, tay nghề viết blog sẽ khá hơn, câu văn sẽ chau chuốt hơn, bản lĩnh của các bạn cũng hoàn thiện theo số lượng bài viết, nếu thấy cái gì không phù hợp với suy nghĩ, các bạn sẽ biết cách lắng nghe, suy nghĩ thấu đáo trước khi tìm cách phản biện.

Blog cá nhân cũng là nơi các bạn lưu trữ những kiến thức của cá nhân các bạn, nó sẽ như một cái “ghi chú dự phòng” để bạn có thể nhanh chóng truy xuất dữ liệu trong trường hợp cần thiết. Ví dụ bạn đang đi phỏng vấn, khi làm bài test hoặc phỏng vấn trực tiếp, các bạn mở blog của mình ra để tham khảo thông tin một đoạn code xử lý vấn đề nào đó, nhà tuyển dụng chắc chắn sẽ đánh giá bạn cao hơn là việc bạn sẽ phải lục tìm trong danh sách tìm kiếm của google.

Nói đến tuyển dụng thì blog cá nhân chính là điểm nhấn cá nhân của các bạn trong CV, nhà tuyển dụng có thể sẽ không cần yêu cầu bạn trả lời một số câu hỏi liên quan đến thuật toán hoặc thiết kế hệ thống nếu như trong blog của bạn đã có các article/post về nó hoặc nếu hứng thú, họ sẽ hỏi sâu liên quan đến bài viết mà bạn đã đăng lên.

C. Clean Code – Code sạch code đẹp 😀

Là lập trình viên chuyên nghiệp (đi làm thuê chuyên nghiệp), chúng ta đều phải biết clean code, nếu như không muốn ăn “hành” từ những người đồng nghiệp hoặc ăn hành từ chính chúng ta ở “quá khứ”.

Lý thuyết về Clean code, thường thì chúng ta sẽ được giới thiệu cuốn sách: Clean Code: A Handbook of Agile Software Craftsmanship của tác giá Robert C. Martin.

Nếu các bạn mới vào nghề, hãy cứ đọc và chọn lọc một số khái niệm cơ bản về clean code để làm theo. Còn muốn thực sự code sạch, code đẹp thì phải code nhiều mới dần dần ngấm và thực hiện nhuần nhuyễn được.


D. Debug – Tìm kiếm lỗi ứng dụng bằng chức năng DEBUG

Debug đơn giản là đi tìm xem “con bọ” tiềm ẩn, nó đang ở đâu trong, và xuất hiện trong ngữ cảnh nào.
Với các bạn mới học lập trình, thường thì hay đặt các câu lệnh in ra màn hình ở từng đoạn để xem trạng thái các biến dữ liệu, các tình huống rẽ nhánh…

Nếu đang dùng cách như vậy, các bạn nên bỏ qua và học cách sử dụng chức năng debug mà các ngôn ngữ lập trình và IDE cung cấp cho lập trình viên. Cách làm vô cùng đơn giản, chỉ đặt checkpoint tại các vị trí mà ta muốn “quan sát” trạng thái, thực hiện “add watch” các biến muốn theo dõi, sau đó dùng các phím tắt để điều hướng dữ liệu đi qua các function. Dữ liệu trong chương trình sẽ lần lượt hiện ra cho chúng ta xem.

Ví dụ: Tôi đang dùng Python3 để lập trình ứng dụng. Bản thân Python3 cung cấp 1 công cụ để debug trên màn hình commandline là package pdb. Khi dùng IDE để debug, tôi sẽ sử dụng các công cụ sẵn có của VSC, Pycharm,…


E. Enjoy – Enjoy your life

Tận hượng cuộc sống của mình theo cách làm mình vui.
Để có thể làm việc lâu dài bằng 10 đầu ngón tay thì nên đầu tư một bàn phím cơ xịn sò (cũng nên chú ý đến tiếng động có thể làm ảnh hưởng người xung quanh), một con chuột có độ nhạy cao, pad kê cổ tay khi dùng bàn phím, chuột…

Cũng nên quan tâm đến cái cột sống của mình chút bằng việc đầu tư một cái ghế ngồi êm ái (nếu như công ty cho phép tự trang bị)….
Quan trọng nhất là… hãy tập thể dục đều đặn để có thể sẵn sàng OT sấp mặt và có chế độ ăn uống hợp lý để không bụng phệ.


F. Freelance – Làm thêm một công việc gì đó

Ngoài việc nhận thu nhập chính thức bằng công việc 8h mỗi ngày. Các lập trình viên cũng nên tự kiếm cho mình thêm một vài công việc phụ để gia tăng thu nhập hoặc đơn giản hơn…được làm những thứ mình muốn.

Nếu việc làm thêm đúng sở trường công việc sẽ giúp các bạn tăng nhanh các skill của mình. Với việc làm thêm, đừng đặt nặng việc thu nhập nhận được và cũng đừng đặt nó lên ngang bằng với công việc chính của mình để tránh làm ảnh hưởng đến thu nhập chính hàng tháng.

P/S: Nếu bạn đang là một freelaner chuyên nghiệp, vui lòng bỏ qua ý phía trên.

G. GraphQL – Học các khái niệm về GraphQL

Rest-api đã và đang làm mưa làm gió trong việc trao đổi dữ liệu giữa các side khác nhau. Sau khi Facebook .Inc đưa ra chuẩn mới GraphQL, đã có rất nhiều ứng dụng chuyển sang dùng GraphQL, để không bỏ lỡ các cơ hội cho tương lai thì việc học thêm một công nghệ mới là việc nên làm.


H. Help – Giúp đỡ người khác

“Cho đi để nhận lại”, nguyên lý này chắc các lập trình viên đã xem trên tiktok, facebook nhiều rồi. Ý nghĩa của việc giúp đỡ, tự bản thân chúng ta cũng biết và chắc hẳn là luôn vô tư giúp đỡ mọi người thôi nhỉ vì biết đâu khi chúng ta gặp khó khăn sẽ lại có người giúp đỡ lại chúng ta.


I. IDE – Lựa chọn một công cụ lập trình phù hợp với công việc

IDE là bộ công cụ tích hợp sẵn trình dịch cho từng ngôn ngữ lập trình. Việc sử dụng thuần thục một loại IDE và biết cách sử dụng các IDE khác là việc các lập trình viên nên biết.

Ví dụ: Tôi dùng Python như một ngôn ngữ lập trình chính, IDE yêu thích của tôi là Pycharm, nhưng tôi cũng biết cách sử dụng VSC để lập trình, debug,… giống như dùng Pycharm.
Tương tự khi chuyển qua lập trình bằng Java, tôi sử dụng IntelliJ IDEA nhưng cũng có thể dùng Eclipse,…

Với mỗi IDE, bạn cũng cần biết cách tối ưu nó để có thể phát huy hết sức mạnh của nó, ví dụ như dark theme, vim mode, compare plugin…
J. JavaScript 

Học các kiến thức JavaScript cơ bản và học một framework JavaScript lớn.

Javascript giờ ở khắp mọi nơi từ front-end cho đến back-end. Việc biết Javascript như một yêu cầu bắt buộc với các lập trình viên, kể cả back-end vì nếu biết JS, back-end developer mới có thể build được demo cho ứng dụng back-end của mình.

Biết JS syntax thôi chưa đủ, để có thể tự tin mang sản phẩm ra giới thiệu, có lẽ cần phải có một framework để chống lưng. Các lập trình viên nên biết thêm về một trong những JS framework/library lớn như ReactJS, AngularJS, VueJS,…

K. Keep it simple – Giữ mọi thứ đơn giản

Đây là một nguyên tắc sống và làm việc khá thú vị, có thể áp dụng vào công việc của một lập trình viên.
Khi đứng trước một đầu bài lớn hay một công nghệ mới cần chinh phục, đừng vội vã và hoảng sợ rồi phóng đại các khó khăn lên, hãy chia nhỏ nó ra và làm từng phần từng phần nhỏ một. Mọi thứ rồi sẽ được giải quyết xong xuôi.

L. Learn – Học tập trọn đời

Đã lỡ chọn nghề công nghệ thông tin thì tôi và cả các bạn đều phải xác định một việc là phải liên tục “học”, liên tục cập nhật các công nghệ mới, không cho phép mình bị tụt lại phía sau về công nghệ.

Ngoài việc học cái mới thì có một thứ mà chúng ta ít để ý đó là học từ chính các thất bại của bản thân và đồng nghiệp. Một số công ty lớn, họ có cả một hạng mục là “Bài học kinh nghiệm”, ở đó tập hợp các lần hệ thống có vấn đề, nguyên nhân và cách thức khắc phục như thế nào….

Ví dụ: Bạn muốn thực hiện crawl thông tin của nhiều website chẳng hạn, bạn đặt một cái job/task mà “quên” không giới hạn số request được làm tại một thời điểm.

Vô tình, các job của bạn cùng khởi chạy và …. chiếm toàn bộ băng thông mạng internet của công ty. Lỗi tưởng chừng như rất đơn giản đúng không ?

M. Mentor – Chỉ dẫn cho người đi sau

Ai cũng có lúc là junior, là newcomer,… Nếu bạn là người đến trước ở công ty hoặc là một senior, đừng tiếc công sức mà đào tạo, chỉ dẫn cho những người đi sau, biết đâu sau này bạn và những người được bản chỉ dẫn sẽ lập thành một team lớn mạnh.

N. News – Liên tục cập nhật các tin tức mới

Hãy chịu khó tham gia các cộng đồng mở trên mạng internet như medium, reddit,… hoặc follow các trang tin lớn của Microsofts, Oracle và cập nhật các thông tin về chuyên ngành bạn đang theo đuổi.
O. Open-source – Đóng góp cho một dự án mã nguồn mở nào đó.

Dự án mã nguồn mở đang có rất nhiều trên github, nếu có thời gian, bạn hãy tham gia làm một contributor cho các dự án này nhé.
Nó cũng là một điểm nhấn trong CV của bạn khi đem ra giới thiệu cho các nhà tuyển dụng.

P. Problem-solving – Giải quyết vấn đề một cách thông minh.

Nếu bạn là một lập trình viên, thay vì chỉ chăm chăm vào việc viết code theo như thói quen, theo như những khuôn mẫu đã có. Bạn hãy thử thực hiện thử thách bản thân bằng cách tăng độ khó trong công việc lên (nếu có đủ thời gian nhé) bằng cách dùng những technique mới để giải quyết bài toán.

Ví dụ: thay vì truy vấn trực tiếp vào database để lấy dữ liệu thì lưu bớt một phần dữ liệu thường dùng trên redis hoặc memcache chẳng hạn.
Hoặc đơn giản hơn, bạn có thể tham gia cùng BA để thực hiện phân tích yêu cầu phần mềm, hoặc thuyết phục khách hàng.

Q. Question & Answer

Hỏi và trả lời các câu hỏi trên cộng đồng chia sẻ.

Bạn có tài khoản stackoverflow chưa ? Nếu chưa có thì nên tạo một cái và join vào cộng đồng này càng sớm càng tốt nhé.

Thay vì chỉ tìm kiếm câu trả lời, tại sao bạn không phải là người chủ động tìm kiếm các câu hỏi và thực hiện trả lời những câu hỏi mà bạn có thể làm được?

Một tài khoản stackoverflow có nhiều response cũng làm CV của bạn tốt hơn nhiều đấy.

R. Read more books – Đọc nhiều sách

Đọc sách để cập nhật công nghệ là một việc không thể thiếu với các lập trình viên.

Ngoài sách chuyên ngành, các bạn nên mở rộng thêm các loại sách … không liên quan đến chuyên ngành, việc này sẽ rút các bạn thêm nhiều hiểu biết, thêm nhiều kỹ năng. Thành một người hiểu biết cũng thú vị lắm đấy.

S. Security – Bảo mật

Là một lập trình viên, các bạn cần nắm được các một số các kiến thức cơ bản về bảo mật để thực hiện “bảo vệ” các ứng dụng do các bạn đã làm.

Để làm được điều này thì các bạn phải biết một số issue cơ bản mà hacker thường nhắm vào, các issue này được cung cấp và cập nhật tại trang web của tổ chức The Open Web Application Security Project (OWASP), nổi bật là https://owasp.org/www-project-top-ten/


T. Tutorial 

Tạo các hướng dẫn cho mọi người tham khảo

Bạn nghĩ thế nào về một lập trình viên sở hữu một kênh Youtube/blog cá nhân nhiều lượt xem?

Thành người nổi tiếng cũng vui lắm chứ.

U. Utility library 

Xây dựng những thư viện tiện ích cho riêng mình

Là một lập trình viên, trong quá trình làm việc, chúng ta sẽ có những đoạn code dùng nhiều lần (ví dụ như các đoạn code xử lý thời gian, xử lý file,….). Chúng ta nên tích lũy dần dần để có thể xây dựng những thư viện tiện ích để dùng đi dùng lại.

Tuy nhiên, cần lưu ý là các đoạn code này cần được tối ưu về hiệu năng, thuật toán để cho kết quả tốt nhất có thể nhé.

V. VIM

Học cách sử dụng Vim editor.

Vim editor là một công cụ gần như tích hợp sẵn trên các server chạy hệ điều hành Linux. Để không bỡ ngỡ khi được giao một server cho phép tự cấu hình hoặc đọc log file, các lập trình viên cần trang bị một số hiểu biết nhất định về cách sử dụng Vim editor.

Tất nhiên, nếu các bạn sử dụng Vim mode như một cách typing hàng ngày thì xin chúc mừng các bạn, tốc độ làm việc của bạn có lẽ đã tăng lên rất nhiều.

W. Write useful comments/documents 

Viết những chỉ dẫn, tài liệu có ích.

Là một lập trình viên, đôi khi chúng ta sẽ có tư tưởng tác trách,…lười viết comment trong code. Một số thành phần cực hữu, cuồng cuốn sách Clean Code còn cho rằng … không cần comment cũng được, chỉ cần đặt tên variables, functions có ý nghĩa là được.

Các bạn có thể lười thực hiện comment code nếu như dự án đã có “good documents”. Người tiếp quản dự án của các bạn có thể tham chiếu 1 – 1 từ documents sang code là được.

Nếu không có tài liệu dự án tốt, mà các bạn phải đọc lại code của chính bản thân mình cách đây khoảng 1,2 năm mà không có một dòng ghi chú nào,… lúc đó, các bạn mới thấy việc ghi chú trong code quan trọng như thế nào.

X. eXpert 

Trở thành chuyên gia trong lĩnh vực nào đó.

Nếu bạn đang quan tâm đến một lĩnh vực (domain) nào đó như big-data, cloud,…. Hãy dành nhiều thời gian hơn cho sự quan tâm đó của bạn. Đừng thấy có chút khó khăn là nản chí, hãy cố gắng trở thành chuyên gia trong một lĩnh vực “hẹp” nào đó. Danh tiếng và thu nhập của bạn sẽ tăng lên rất nhiều đấy.

Y. Yourself – Đầu tư vào bản thân

Giống như ở “Enjoy your life”, các lập trình viên nên biết cách đầu tư vào bản thân, đầu tư cho sở thích cá nhân.

Ngoài các thiết bị công nghệ thì một bộ vest đẹp, một đôi giày tây là thứ nên có trong tủ quần áo để chúng ta luôn sẵn sàng cho một bữa tiệc trang trọng.

Đầu tư cho bản thân là đầu tư sinh lời nhất nên đừng tiếc tiền nhé.

Z. zzzz

Hãy ngủ đủ giấc nhé các lập trình viên, vì một cơ thể khỏe mạnh và bộ não tinh anh.

Bài viết trên được tôi viết dựa trên quan điểm cá nhân, nếu các bạn thấy có gì đó hay ho hơn, vui lòng chia sẻ với tôi nhé. Cảm ơn các bạn đã đọc bài viết.

Nguồn: https://codelearn.io/sharing/lap-trinh-vien-tu-a-den-z

Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bình luận