Hoá ra để trở thành lập trình viên đâu chỉ mỗi "copy and paste"


Xin chào các bạn, mình là Copy n Paste Developer đang làm việc trong ngành phần mềm ở vị trí lập trình web, và đây

Là câu chuyện của mình

Mình tốt nghiệp đại học năm 2017 và may mắn tìm được việc làm ngay sau đó. Mình nói may mắn là bởi tại thời điểm đó, vốn kiến thức về lập trình của mình chỉ gói gọn trong vài ba cái cấu trúc dữ liệu cơ bản, 2 ngón tay, và 3 phím Ctrl, C / V. Mình thật sự bất ngờ vì có người sẵn sàng trả lương hàng tháng cho mình chỉ để copy code từ chỗ này sang chỗ nọ.

Tuy mình ít kinh nghiệm về lập trình, nhưng vốn hiểu biết của mình về các nguyên lý, khái niệm trong ngành phần mềm cũng bằng 0 nốt. Mình chỉ biết code, code, và code để có thể hoàn thành công việc, và hoàn toàn không biết về những khía cạnh khác trong ngành phần mềm.

Đôi khi, bây giờ khi ngẫm lại mình “ước gì hồi đó có người nói với mình sớm hơn” về những điều sau.

Giao tiếp thực sự rất quan trọng

Thông thường tại các buổi phỏng vấn sẽ có một phiếu đánh giá ứng viên, và mình tin chắc phần không thể thiếu trong đó là giao tiếp. Nhà tuyển dụng sẽ ngầm đánh giá khả năng giao tiếp của bạn trong buổi phỏng vấn, qua cách bạn trả lời câu hỏi và trao đổi với họ. Mình tin đây là một trong những yếu tố quan trọng để họ đánh giá, lựa chọn ứng viên phù hợp cho công ty.

Người ta hay nói, “muốn đi nhanh thì đi một mình, muốn đi xa thì đi cùng nhau” - và trong ngành phần mềm cũng vậy. Bạn sẽ đối diện với rất nhiều khó khăn khi thảo luận với đồng nghiệp, trao đổi code học trong những buổi code review, hay trình bày ý tưởng của mình cho mọi người khi kỹ năng giao tiếp của bạn chưa thật sự tốt. Mình cũng đã rơi vào trường hợp tương tự.

Khi còn đi học, mình thích làm việc cá nhân hơn làm việc nhóm, vì mọi thứ do mình quyết định và dễ kiểm soát hơn. Mình nghĩ, khi đi làm cứ như vậy thì mọi việc vẫn ổn (hoặc không). Và thực tế là không, ngay trong tuần đầu tiên đi làm mình đã phải thay đổi suy nghĩ về vấn đề này. Mình đã gặp rất nhiều khó khăn và đôi khi không biết phải trao đổi như thế nào với Designers, hay PM về các vấn đề liên quan đến kỹ thuật do kỹ năng giao tiếp của mình. Mình không thể tìm được những từ ngữ phù hợp để diễn tả về những vấn đề mà mình đang gặp phải. Theo thời gian, mình đã cải thiện và trở nên tốt hơn trong giao tiếp.

Mình ước rằng có thể chuẩn bị những kỹ năng mềm tốt hơn.

communication.png 201 KB


Đừng ngại đặt câu hỏi khi bạn chưa nắm rõ vấn đề

Ngoài việc hỏi để học hỏi và tránh sai lầm, việc hỏi còn giúp bạn tăng cơ hội kết nối và giao tiếp với người khác. Khi bạn đặt câu hỏi, đôi khi bạn có thể kích thích cuộc trò chuyện và tạo ra một không khí trao đổi ý tưởng sôi nổi hơn. Việc này không chỉ giúp bạn mở rộng mạng lưới quan hệ mà còn giúp bạn phát triển kỹ năng giao tiếp và xây dựng mối quan hệ tốt với đồng nghiệp và cấp trên.
Mình tin chắc một điều là nếu bạn không biết hoặc chưa hiểu rõ về một vấn đề gì đó, bạn nên đặt câu hỏi. Đây là cách nhanh nhất để bạn có thể học thêm được nhiều kiến thức mới, học hỏi kinh nghiệm của người khác và tránh những sai lầm đắt giá, đặc biệt tại thời điểm mới bắt đầu đi làm. Thật may mắn khi mình được làm việc chung với nhiều đồng nghiệp giỏi, luôn tận tình chia sẻ kiến thức, và nhờ đó, trình độ của mình cũng được tiến bộ rất nhanh.

Mình ước ngày xưa có thể hỏi thêm được nhiều hơn nữa.

Học, học nữa, học mãi

Ngành phần mềm là một lĩnh vực không ngừng phát triển, vì vậy, điều quan trọng là bạn phải luôn học hỏi và cải thiện các kỹ năng của mình. Hãy tận dụng các khóa học, buổi workshop, và các cơ hội khác để nâng cao kiến thức của bản thân. Bằng cách liên tục nạp vip bộ kỹ năng của mình, bạn có thể trở thành một lập trình viên linh hoạt và hiệu quả hơn, điều này có thể giúp bạn nổi bật trong thị trường việc làm đầy cạnh tranh.

Thuở mới dấn thân vào ngành, mình dành rất ít thời gian để bổ sung các kiến thức mới ngoài chuyên môn, hầu như chỉ research khi cần làm task gì đó. Mãi đến sau này, khi vào làm ở công ty hiện tại, một đồng nghiệp, cũng là người bạn, người anh đã làm thay đổi hoàn toàn suy nghĩ của mình. Anh ấy luôn khuyến khích toàn bộ team cập nhật kiến thức mới và thậm chí chi tiền túi để mua sách kỹ thuật cho cả team. Mình luôn bị ấn tượng bởi câu nói của Nelson Mandela:

“Education is the most powerful weapon we can use to change the world” - Nelson Mandela
Mình ước rằng có người truyền cảm hứng cho mình trong việc tự cập nhật kiến thức như vậy sớm hơn.

Học cách debug sớm hơn

Thành thật mà nói thì mình đã từng sợ phải nhìn thấy stack trace còn hơn sợ vợ vào những năm tháng tuổi trẻ đầy ngu ngơ ấy. Mình không biết làm thế nào để đọc và hiểu chúng, và thậm chí nhìn thấy chúng, có nghĩa đó là dấu hiệu của việc giành hàng giờ ngồi lướt internet tìm cách sửa lỗi thay vì code.

Cũng tại thời điểm mới dấn thân làm ngành, mình không chuẩn bị kỹ lưỡng về cách debug các vấn đề phổ biến. Mình đã lãng phí hàng giờ để tra cứu các lỗi trên google thay vì lần theo dấu vết trong log để tìm ra nguyên nhân gốc rễ của vấn đề (nhưng công nhận đôi khi các lỗi quá vô nghĩa, google là cách duy nhất để giải quyết). Sau khoảng thời gian dài đi theo lối mòn và cực kì mệt mỏi với hướng tiếp cận đó, mình quyết định tìm hiểu những cách debug hiệu quả hơn:

  1. Luôn cố gắng tái hiện lỗi trước khi thay đổi code
  2. Phải hiểu được stack traces trước khi sang bước 3
  3. Google, Stackoverflow, ...
  4. Sửa lỗi theo cách của bạn
  5. Ăn mừng thôi

Nếu có thể, mình sẽ đi về ngược quá khứ và hét vào mặt anh bạn Copy n Paste Developer ngày đó câu “stop doing that, please”.

stop.jpg 29.9 KB

Lời kết

Nếu mình có một người cố vấn khi bắt đầu theo đuổi con đường làm phần mềm, thì đây là những điều mình mong họ sẽ nói với mình. Mình tin những điều này sẽ giúp mình có những bước đệm vững chãi hơn ngay từ khi bắt đầu.

Xin chân thành cảm ơn các bạn đã đọc bài viết,
Copy n Paste Developer