05/10/2018, 11:20

8 sự thật mà tất cả lập trình viên đều nên biết

Lần đầu tiên được biết đến từ “máy tính” là năm 1613 trong một cuốn sách có tên The Yong Mans Gleanings của nhà văn người Anh Richard Braithwaite. Máy tính ngày xưa thật sự rất đơn giản, cồng kềnh và ít chức năng. Vậy như thế nào mà những “chiếc hộp” đó lại ...

Animated GIF  - Find & Share on GIPHY

Lần đầu tiên được biết đến từ “máy tính” là năm 1613 trong một cuốn sách có tên The Yong Mans Gleanings của nhà văn người Anh Richard Braithwaite. Máy tính ngày xưa thật sự rất đơn giản, cồng kềnh và ít chức năng. Vậy như thế nào mà những “chiếc hộp” đó lại trở nên thông minh vượt bậc? Và hôm nay, chúng ta sẽ lược qua các biên niên sử và nhìn vào những góc độ ít được biết đến của việc lập trình máy tính để tìm ra 8 “mánh” ngon mọi lập trình viên nên biết.

  1. Chiếc “máy tính” đầu tiên được chạy bằng hơi nước

Năm 1801, một thợ dệt và thương gia người Pháp, Joseph Marie Jacquard, đã phát minh ra một chiếc máy dệt có thể dệt thành hình bằng các miếng gỗ có lỗ nhỏ

Đến những năm 1830, cả thế giới ngạc nhiên trước một thiết bị lớn như một ngôi nhà và được cung cấp bởi sáu động cơ hơi nước. Nó được phát minh bởi Charles Babbage, cha đẻ của máy tính – và ông gọi nó là Analytic Engine (Công cụ phân tích).

Nguồn: Sydney Padua

Babbage sử dụng thẻ được đục lỗ để giúp máy tính khổng lồ có thể lập trình được. Máy bao gồm bốn phần: Máy nghiền (tương tự như CPU), kho (tương tự như bộ nhớ và lưu trữ), đầu đọc (input) và máy in (output).

Babbage buồn bã khi không bao giờ có thể xây dựng một phiên bản thực tiễn, vì những xung đột đang diễn ra với kỹ sư trưởng của mình. Và có vẻ như ngay cả sau đó một khoảng thời gian dài, CEO và devs cũng không nhận được.

2. Lập trình viên đầu tiên trên thế giới là phụ nữ

Năm 1843, Ada Lovelace, một nhà toán học người Anh, đã phát hành một bản dịch tiếng Anh của bài viết về Analytical Engine (Công cụ Phân tích) được viết bởi Luigi Menabrea, một kỹ sư người Ý. Cô còn thêm các ghi chú của riêng mình vào bản dịch.

Nguồn: Curious Expedition

Trong một trong những ghi chú của mình, cô đã mô tả một thuật toán cho Analytical Engine khả năng tính toán theo công thức Bernoulli. Kể từ khi thuật toán lần đầu tiên được viết cụ thể và có thể thực hiện trên máy tính, cô được công nhận là lập trình viên máy tính đầu tiên trên thế giới.

Cuộc đời của Lovelace được vinh danh tại Ted Talks (hoặc bất cứ điều gì tương xứng với một người vĩ đại)? Đáng buồn thay, cô ấy đã chết ở tuổi 36, nhưng may mắn là di sản của cô vẫn còn sống mãi.

Cùng tham gia cuộc chiến nào

3. “Bug” đầu tiên của máy tính được đặt theo một con bọ :3

Mặc dù thuật ngữ “bug” theo nghĩa là lỗi kỹ thuật lần đầu tiên được Thomas Edison đặt ra vào năm 1878, phải mất 6 năm nữa để mọi người biết đến thuật ngữ này.

Vào năm 1947, Grace Hopper, một đô đốc Hải quân Hoa Kỳ, đã ghi lại “bug” máy tính đầu tiên trong sổ ghi chép của cô ấy khi đang làm việc trên máy tính Mark II.

Một con sâu bướm được tìm thấy bị mắc kẹt trong relay (Rơ le) và do đó cản trở máy hoạt động. Trước khi nó được ghi lại trong lưu ý của nó, con sâu bướm này đã được “debug” khỏi hệ thống.

Theo lưu ý của cô, cô đã viết, “Trường hợp đầu tiên phát hiện một con bug thật sự.”

Nguồn: Computer History Museum

4. Game máy tính đầu tiên không kiếm ra tiền

Những gì được coi là tiên phong của các trò chơi video hành động ngày hôm nay là trò chơi máy tính đầu tiên không có thành công đặc biệt.

Năm 1962, một lập trình viên máy tính từ Học viện Công nghệ Massachusetts (MIT), Steve Russel và đội của ông bỏ ra 200 giờ làm việc để tạo ra phiên bản đầu tiên của Spacewar.

Sử dụng các cần điều khiển, trò chơi cho phép hai người chơi kiểm soát hai tàu vũ trụ nhỏ. Và sứ mệnh của bạn là tiêu diệt tàu vũ trụ của đối phương trước khi nó tiêu diệt bạn.

Ngoài việc tránh đạn của đối phương, bạn cũng phải tránh những chấm nhỏ màu trắng ở giữa màn hình, tượng trưng cho một ngôi sao. Nếu bạn va vào nó, tàu bạn sẽ nổ! Và bạn thua cuộc.

Russell đã viết Spacewar trên PDP-1, một máy tính mini của Digital Equipment Corporation (DEC) đầu tiên sử dụng màn hình CRT và bàn phím. Những cải tiến đáng kể được thực hiện vào cuối mùa xuân năm 1962 bởi Peter Samson, Dan Edwards và Martin Graetz.

Nguồn: Computer History Museum Dan Edwards (bên trái) và Peter Samson (bên phải) đang chơi Spacewar! trên PDP-1

Mặc dù trò chơi là một hit lớn trong nội bộ MIT, tuy nhiên Russell và đội của ông không hưởng lợi từ trò chơi. Họ chưa bao giờ có bản quyền. Bên cạnh đó, họ là những hacker muốn làm điều đó để cho bạn bè của họ biết. Vì vậy, họ chia sẻ code với bất cứ ai yêu cầu nó.

5. Virus máy tính đã được thiết kế lần đầu tiên không phải với mục đích gây hại

Năm 1983, Fred Cohen, hay được biết đến như là người phát minh ra các kỹ thuật phòng chống virus máy tính, đã thiết kế một ứng dụng ký sinh có thể “infect” (làm hư) máy tính. Ông định nghĩa nó như là virus máy tính.

Vi rút này có thể chiếm máy tính, nhân bản chính nó và lây lan từ máy này sang máy khác thông qua đĩa mềm. Bản thân virus này tốt và chỉ được tạo ra để chứng minh rằng nó có thể lây lan.

Sau đó, ông tạo ra một loại virus có lợi gọi là virus nén. Virus này được viết để tìm các tập tin không bị nhiễm virus, rồi nén chúng theo sự cho phép của người dùng và đính kèm nó với chúng.

6. Cơ hội xảy ra va chạm SHA-1 ở Git rất thấp

Kiểm soát phân loại phiên bản phổ biến, Git, đang sử dụng Security Hash Algorithm 1 (SHA-1) để xác định các phiên bản và phát hiện sự hư hỏng dữ liệu hoặc giả mạo.

Trong quản lý dữ liệu, commit thực hiện một set các thay đổi tạm thời thường xuyên. Một trong những cách Git cho phép người dùng xác định commit bằng cách sử dụng một đoạn ngắn SHA-1.

Trong một lưu ý ngắn về SHA-1, Git đã thông báo rất nhiều người lo ngại rằng tại một thời điểm nào đó, họ sẽ có hai đối tượng trong kho lưu trữ của họ có cùng giá trị SHA-1. Trường hợp này là cái mà họ gọi là vụ va chạm SHA-1.

Dưới đây là ghi chú của Git, liên quan đến vụ va chạm SHA-1:

Nguồn: Git

7. Nếu chương trình máy tính là một quốc gia, nó sẽ là đất nước nhiều ngôn ngữ thứ 3 thế giới

Papua New Guinea có khoảng 836 ngôn ngữ bản địa được sử dụng, trở thành quốc gia số một khi nói về sự đa dạng ngôn ngữ. Thứ hai trong danh sách này là Indonesia với hơn 700 và Nigeria với hơn 500 ngôn ngữ bản địa.

Tất cả các ngôn ngữ lập trình nổi tiếng được con người biết đến, cả trong sử dụng hiện tại và lịch sử, khoảng 698 ngôn ngữ. Nếu đó là một quốc gia,chương trình máy tính sẽ có đạt huy chương đồng. Tuy nhiên, chúng tôi không khuyến khích bạn nên thử và tìm hiểu tất cả.

Cùng tham gia cuộc chiến nào

8. Các thuật toán xử lý hình ảnh lấy được thử nghiệm trên một bức ảnh của tạp chí Playboy

Tấm hình của Lena Söderberg được dùng làm ảnh thử nghiệm chuẩn sử dụng rộng rãi trong lĩnh vực xử lý hình ảnh từ năm 1973. Hình này được lấy từ tâm đỉnh của tạp chí Playboy tháng 11 năm 1972.

Nguồn: Dwight Hooker/Playboy Magazine

Tổng biên tập của Institute of Electrical and Electronics Engineers (IEEE) về xử lý hình ảnh, David Munson, đưa ra hai lý do tại sao hình ảnh này rất phổ biến:

  1. Nó chứa tổng hợp các chi tiết, vùng phẳng, bóng và kết cấu tốt để kiểm tra khả năng của bất kỳ phần mềm xử lý hình ảnh nào.
  2. Lý do chính Lena là hình ảnh của một phụ nữ hấp dẫn. Không có gì ngạc nhiên khi cộng đồng nghiên cứu chế tạo hình ảnh (chủ yếu là nam giới) có khuynh hướng sử dụng hình ảnh.
0