Ở bài viết trước trong series Nhập Môn Lập Trình Không Code, mình đã chia sẻ về công việc thường ngày của mỗi lập trình viên. Nhiều bạn có hỏi mình là “Muốn làm lập trình viên cần có những tư chất gì? Làm sao để biết mình có phù hợp với ngành này hay không?”
Bài viết này sẽ giải đáp những thắc mắc nói trên, đồng thời dẫn ra những sai lầm mà nhiều người thường nghĩ về lập trình viên nhé.
Hiểu lầm thường gặp về lập trình viên
Do hậu quả của báo chí và phim ảnh (Tấm gương Bill Gates, Mark Zuckerberg hoặc phim Mr. Robot, The Social Network, …), một số bạn học sinh sinh viên thường có những lầm tưởng sau về lập trình viên:
- Muốn làm lập trình viên thì phải cực kỳ thông minh cỡ… thiên tài: Sai! Bạn không cần phải giỏi như Bill Gates hay Mark Zuckerberg để có thể làm lập trình viên, chỉ cần có một số tố chất là được (xem phần dưới).
- Muốn làm lập trình viên phải giỏi Toán: Không hẳn là đúng! Giỏi toán sẽ giúp bạn suy nghĩ logic tốt hơn, code tốt hơn. Tuy vậy, công việc lập trình thường rất ít khi sử dụng các kiến thức toán cấp cao (tích phân, đạo hàm, ma trận…), chỉ cần cộng trừ nhân chia và logic. Tuy viên, cũng có một số lĩnh vực chuyên biệt cần sử dụng nhiều Toán như developer game, data mining, machine learning, ứng dụng giả lập v…v
- Lập trình viên thường ù lì, ít nói, thích làm việc một mình: Sai! Lập trình là một công việc tập thể, đòi hỏi giao tiếp nhiều nên không có chuyện lập trình viên chỉ cắm đầu vào máy code một mình là xong việc.
Tố chất cần có để theo đuổi ngành lập trình
Không cần phải là thiên tài, cũng không cần phải giỏi toán, vậy bạn cần những gì để có thể thành một lập trình viên? Bạn cần những tố chất sau đây:
- Khả năng suy nghĩ logic, giải quyết vấn đề: Công việc lập trình đa phần giống như giải đố, và người lập trình viên viết code hoặc sử dụng thư viện/framework có sẵn để giải quyết vấn đề đó. Các bạn có thể thử một bài test khả năng logic ở đây: Test logic (Đề thi tuyển vào ĐH FPT cũng bao gồm 105 câu hỏi logic dạng này).
- Tính kiên nhẫn: Việc học lập trình đòi hỏi tính kiên nhẫn rất cao. Việc code cũng thế, đôi khi bạn sẽ mất cả buổi trời để tìm 1 con bug hoặc sửa 1 lỗi nhỏ. Nếu không đủ kiên nhẫn bạn sẽ rất dễ bỏ cuộc.
- Khả năng hoà đồng, kĩ năng giao tiếp: Lập trình là một công việc tập thể, bạn sẽ phải làm việc chung với các thành viên khác (từ trưởng nhóm, developer cho tới tester). Do đó kĩ năng giao tiếp, làm việc nhóm là không thể thiếu.
- Tinh thần tự giác: Khi đi làm, thông thường trưởng nhóm sẽ không cầm tay chỉ việc mà chỉ giao việc, bạn sẽ phải tự giác sắp xếp thời gian, tìm hiểu công nghệ để thực hiện. Công nghệ mới liên tục thay đổi nên phải có tinh thần tự giác và đam mê thì bạn mới có thể cập nhật kiến thức cho bản thân, giữ cho mình không lạc hậu.
- Tính tỉ mẩn, để ý tiểu tiết: Để viết ra chương trình tốt, ít lỗi, người ltv phải để ý đến những tiểu tiết khi code, không bỏ dỡ những trường hợp ít gặp. Việc để ý tiểu tiết sẽ giúp bạn viết code ít lỗi hơn, thiết kế tổ chức code tốt hơn.
- Lười biếng: Tuy khó tin nhưng đây là một phẩm chất mà developer nên có. Thay vì bỏ thời gian công sức ra cày cuốc OT, viết code nhiều, lập trình viên cần phải hơi “làm biếng” để tìm ra hướng giải quyết nhanh chóng và ít tốn công sức hơn.
Tất nhiên, để trở thành một lập trình viên, bạn không cần toàn bộ những tố chất phía trên mà chỉ cần phần lớn. Có những coder code và thiết kế giỏi nhưng rất ngại giao tiếp; hoặc có những bạn dev giải quyết vấn đề rất nhanh nhưng lại hơi ẩu, thiếu tỉ mẩn nên code hay mắc lỗi.
Nếu bạn có một vài đức tính trong danh sách này, cộng với đam mê với ngành phần mềm thì cứ dấn thân thôi, đừng ngại ngần gì nhé!
Những thái độ không phù hợp với ngành lập trình
Nếu có một số thái độ hoặc cách nghĩ dưới đây, bạn không nên theo đuổi ngành lập trình mà hãy chọn ngành khác phù hợp với bản thân mình hơn:
- Thiếu tự giác, muốn được hướng dẫn công việc cũ thể
- Thiếu kiên nhẫn, không thích tự tìm tòi cái mới
- Thích làm việc cá nhân, ghét giao tiếp và làm việc nhóm
- Muốn ngày làm 8 tiếng, giờ giấc ổn định: Trong ngành lập trình, việc OT (overtime tức làm thêm giờ) khá phổ biến. Những khi dự án vào giao đoạn khẩn cấp, cả đội ngũ phải làm thêm tới 8-9h tối hoặc T7-CN nên giờ giấc cũng khá thất thường.
- Muốn làm giàu nhanh: Lương của ltv cao hơn mặt bằng chung một chút nhưng cũng chỉ đủ sống. Các trường hợp giàu có bất ngờ như Nguyễn Hà Đông hoặc giàu có nhờ startup cũng có nhưng rất hiếm. Đa phần ltv vẫn phải đi làm 8 tiếng một ngày, cuối tháng nhận lương như bao ngành nghề bình thường khác.
Kết
Bài viết này chia sẻ mỗi số sai lầm thường gặp khi nói về lập trình viên, những tố chất cần có và không nên có nếu muốn theo đuổi ngành lập trình. Nếu muốn bổ sung điều gì các bạn cứ thảo mái comment nhé!
Ở bài viết sau, mình sẽ nói chuyện “Học lập trình có thể làm được những gì?”, đồng thời chia sẻ một số điều về triển vọng nghề nghiệp và lương bổng trong ngành lập trình. Các bạn nhớ follow fanpage và đón xem nha.
Một số link tham khảo:
- https://www.quora.com/Can-I-become-a-good-programmer-without-math-and-algorithms-knowledge Không giỏi toán có thành developer giỏi được không?”. Đa phần trả lời CÓ.
- https://www.brazen.com/blog/archive/career-growth/want-to-become-a-programmer-the-truth-behind-10-common-myths/
- https://learntocodewith.me/posts/5-computer-programmer-personality-traits/
- https://www.makeuseof.com/tag/6-signs-meant-programmer/
- https://www.cprogramming.com/whatdoesittake.html
- https://www.techrepublic.com/blog/10-things/10-signs-that-you-arent-cut-out-to-be-a-developer/