7 sự thật trong ngành lập trình mà dân “ngoại đạo” không hề biết

Hôm nay, mình chia sẻ những điều “thú vị” trong ngành mình, ai ở trong ngành cũng biết nhưng người thân, bạn bè, những người “ngoại đạo” lại không hề hay biết nhé.

0. “Phía sau một ứng dụng” phần lớn là bug, code đểu code lỗi

Khi được đọc code của 1 ứng dụng, bạn sẽ vô cùng ngạc nhiên vì phía sau một ứng dụng trông “hoàn hảo” là vô số những bug ngầm, những dòng code đểu, code tạm, workaround để giải quyết vấn đề. (Lý do thì các bạn xem lại bài Tại sao code của dự án hiện tại lại tởm quá vậy nhé!)

Bạn không tin à? Đây là những dòng code tạm của module Lunar, một module trọng yếu của trong Apollo – tàu vụ trụ đầu tiên đặt chân lên mặt trăng.

Còn đây là mã nguồn đầy “hack” của Hệ Điều Hành MS-DOS. “Hack” là từ lóng để chỉ việc chúng ta “code đểu”, dùng cách không chính thống để giải quyết vấn đề.

Mã nguồn đầy những “hack”

1. Hơn 25% phát triển phần mềm được dành ra để .. chặn lỗi do người dùng gây ra

Thật đấy! Một phần không nhỏ thời gian phát triển phần mềm được dùng để hiện thực những tính năng như: kiểm tra thông tin người dùng đưa vào, hiện tutorial hướng dẫn cách dùng, ngừng chạy khi dữ liệu nhập vào bị sai, báo lỗi cho người dùng khi họ chỉnh lung tung (xóa file hệ thống…).

Đây là những tính năng nhàm chán nhưng lại cực kì quan trọng. Nếu không làm những chức năng này, chỉ cần bạn nhập sai thông tin, sử dụng phần mềm sai sách (nhập tuổi là abc, xóa file này file kia ..), phần mềm sẽ bị crash hoặc lỗi ngay lập tức.

2. Hệ điều hành phổ biến nhất không phải là Windows, mà là … Linux

Đa phần người dùng đều biết đến Windows và sử dụng Windows cho công việc hàng ngày của mình. Do đó, chúng ta thường tưởng rằng Windows là hệ điều hành phổ biến nhất.

Tuy nhiên, điều này hoàn toàn sai lầm.  Có thể nói rằng phần lớn mạng Internet được chạy trên … máy chủ Linux! Nghe có vẻ hơi khó tin nhỉ? Cùng tìm hiểu sơ xem những ứng dụng nào dùng Linux nha:

  • Gần 96.69% những trang web sử dụng PHP, Joomla, WordPress đều sử dụng LAMP stack, chạy trên máy chủ Linux.
  • Những ứng dụng viết bằng Java, Python, NodeJS, PHP cũng đều được deploy trên máy chủ Linux vì… rẻ hơn, ít tốn tài nguyên hơn (do không có GUI như Window) đỡ tốn tiền bản quyền
  • Hệ thống server của Google, Facebook đều sử dụng Linux Server (Nguồn: Facebook, Google)
  • Mạng lưới máy chủ của các trung tâm hosting, các nhà cung cấp dịch vụ cloud hầu như đều cung cấp hosting hoặc VPS Linux (Hoặc họ hàng của nó như CentOS, Ubuntu)
Linus Torvalds – cha đẻ của HDH Linux

3. Lập trình viên không phải là thợ sửa máy tính!

Developer là người làm việc với máy tính hàng ngày, đương nhiên họ phải hiểu cấu tạo của máy tính, cũng như cách máy tính hoặc động.

Tuy vậy, developer là người tạo ra phần mềm chứ không phải là người sửa mạng, sửa máy in hay laptop nha! Tại sao mọi người cứ mặc định là IT = biết sửa máy tính vậy. Nhờ cài lại Win thì còn cài được chứ còn hư phần cứng v…v thì developer bó tay nha!

4. Phần lớn thời gian code là dành cho việc đọc và suy nghĩ, không phải để gõ code

Thật vậy! Khi đi làm, các bạn sẽ thấy thời gian gõ code chỉ chiếm một phần rất ít trong tổng số thời gian code.

Khi cần giải quyết một vấn đề, thêm một tính năng mới, người developer phải chịu khó đọc code cũ của dự án, xem hướng dẫn trên mạng, sau đó suy nghĩ hướng giải quyết rồi mới bắt tay vào viết code.

Quá trình viết code cũng vậy, bạn sẽ không ngồi gõ tù tì 2-3 tiếng như gõ văn bản, mà sẽ gõ code 5 phút, sau đó mất 10 phút suy nghĩ, sửa lại code mình đã gõ, chuyển chúng vào đâu cho hợp lý.

Mấy trò lập trình gõ code ảo diệu như thế này chỉ có trên phim thôi nhé

5. Bắt đầu đếm từ số 0, không phải 1

Giả sử ta có một danh sách (mảng) các phần tử. Khi muốn truy cập phần tử đầu tiên, ta sẽ không dùng a[1] mà sẽ dùng a[0].

Đây là một thứ khiến nhiều sinh viên IT sức đầu mẻ trán vì lẫn lộn. Nhiều bạn mới học lập trình (mình hồi xưa cũng vậy) thường hay nhầm lẫn về chuyện này!

Muốn biết nguyên nhân tại sao lại bắt đầu đếm thừ số 0 chứ không phải 1, các bạn có thể tìm hiểu tại đây nhé: https://stackoverflow.com/questions/7320686/why-does-the-indexing-start-with-zero-in-c

Con với cái kiểu này là không theo ngành lập trình được rồi

6. Lập trình là công việc đòi hỏi sự tập trung cao độ

Lập trình là một công việc tư duy, đòi hỏi sự tập trung cao độ. Bạn có thể vừa lái xe vừa ăn, vừa đánh răng vừa hát nhưng vừa lập trình vừa hát sẽ rất khó.

Do vậy, dân lập trình thích môi trường làm việc yên tĩnh, cực ghét khi đang làm việc mà bị hú hay làm phiền. Vì lẽ đó, lập trình viên thường làm “cú đêm”. Code buổi tối vừa yên tĩnh, thư thái lại ít bị làm phiền.

Lập trình viên đa phần thích cà phê, bò húc, thức đêm để tập trung code

Kết

Qua bài này, các bạn biết thêm 1 số điều để khoe khoang cho người thân, bạn bè về những thứ mà họ không biết về ngành lập trình rồi đấy.

Còn điều gì dân lập trình tụi mình biết mà dân “ngoại đạo” không biết không nhỉ? Các bạn cứ góp ý trong mục comment để mình bổ sung nha.

Nguồn tham khảo

3 thoughts on “7 sự thật trong ngành lập trình mà dân “ngoại đạo” không hề biết”

  1. Đi qua đi lại bao nhiêu con đường, cuối cùng lập trình làm mình thấy dễ chịu nhất. Hi vọng không quá trễ để bắt đầu lại.

    Like

  2. 1. Lúc vất vả nhất không phải là lúc ngồi gõ gõ, mà là lúc ngồi yên nhìn màn hình, không nói, không cười, vẻ mặt lạnh tanh như một sát thủ =))

    2. LTV cũng có “Ngày Kinh” đó là lúc mà họ tìm mãi không biết bug được đẻ từ đâu ra. Lúc đó đừng đụng vào nó, nó sẽ giết bạn đấy 😀

    Like

Leave a comment