- Điện toán thời thơ ấu bắt đầu vào năm 1992 khi tác giả chuyển đến một ngôi trường mới lúc tám tuổi, và bản thân việc một trường học ở thị trấn công nghiệp nhỏ có phòng máy tính đã là điều đặc biệt
- Những máy IBM PC tương thích trong phòng máy là các thiết bị cũ được chuyển lại từ nhà máy silica, và mỗi tháng chỉ có thể dùng khoảng hai giờ để chạy MS-DOS và Logo bằng đĩa mềm 5¼ inch
- Không có ổ cứng và không gian lưu trữ rất khan hiếm, nên công việc sẽ biến mất khi tắt nguồn, và việc lưu chương trình gần như đồng nghĩa với chép mã bằng tay vào vở
- Vì thời gian dùng máy thực tế rất ít, phần lớn việc lập trình Logo được thực hiện ở nhà bằng bút và giấy kẻ ô, còn bạn bè thì chép rồi chỉnh sửa mã trước khi nhập lại
- Những trò chơi như Moon Bugs, Space Invaders, Digger và Grand Prix Circuit để lại khao khát muốn tự làm ra chúng, và ngay cả sau 30 năm, âm thanh và mùi khi ấy vẫn còn hiện rõ
Điện toán thời thơ ấu bắt đầu từ phòng máy tính
- Điện toán thời thơ ấu của Susam Pal bắt đầu vào năm 1992 khi tác giả chuyển đến một ngôi trường mới lúc tám tuổi, và vào thời điểm đó, bản thân việc một trường học ở thị trấn công nghiệp nhỏ có phòng máy tính đã là điều đặc biệt
- Các máy trong phòng máy là những chiếc IBM PC tương thích cũ được chuyển lại từ nhà máy silica vốn là trung tâm của thị trấn, và chỉ có thể sử dụng khoảng hai giờ mỗi tháng
- Trước khi vào phòng máy, học sinh phải cởi giày, và giáo viên giải thích rằng cần giữ những cỗ máy đắt tiền này không bị bụi bám
- Hầu hết máy tính đều gắn màn hình CRT đen trắng, không có ổ cứng, và RAM chỉ ở mức vài trăm KB
- Mỗi lần sử dụng, học sinh phải nạp MS-DOS vào bộ nhớ bằng đĩa mềm 5¼ inch, rồi dùng một đĩa khác để chạy
LOGO.COM, viết các chương trình Logo nhỏ và điều khiển con rùa di chuyển
- Vì không có ổ cứng và dung lượng lưu trữ rất khan hiếm, công việc không được lưu lại, và mọi thứ sẽ biến mất khi tắt máy
- Cách để giữ lại chương trình là chép mã bằng tay vào vở, và một ghi chép riêng về việc lập trình Logo thời kỳ đầu còn được lưu tại FD 100
Lập trình trên giấy và ký ức về trò chơi
- Vì thời gian dùng máy thực tế quá ít, phần lớn việc lập trình Logo được thực hiện ở nhà bằng bút và giấy, và tác giả “kiểm thử” chương trình bằng cách vẽ theo kết quả trên giấy kẻ ô
- Những chương trình được chuẩn bị theo cách này có thể được chạy thực tế trong phòng máy khoảng 30 phút
- Chương trình Logo đáng nhớ nhất vẽ một đường gạch động di chuyển theo đường viền của hình ngôi nhà, và bạn bè thì chép lại mã rồi thay đổi chi tiết để tạo ra biến thể của riêng mình
- Trên thực tế, chương trình này được đón nhận gần như “phần mềm tự do mã nguồn mở” đầu tiên, với một giấy phép không chính thức kiểu như “cứ làm gì tùy thích, nhưng nếu có sửa đổi thú vị thì hãy cho tôi xem”
- Cách phân phối hoàn toàn là analog, khi bạn bè chép mã vào vở bằng bút chì rồi nhập lại trong phòng máy
- Khi hoàn thành tốt bài tập Logo, giáo viên sẽ cho học sinh chơi game trên máy tính, và trò đầu tiên tác giả chơi là Moon Bugs
- Những trò chơi yêu thích bao gồm Space Invaders, Bricks và Grand Prix Circuit
- Space Invaders khiến tác giả muốn tự làm game, nhưng với GW-BASIC khi đó và khả năng tiếp cận máy tính hạn chế, rất khó tạo ra thứ gì phức tạp hơn các chương trình nhập xuất văn bản đơn giản
- Mãi đến năm 2022 khi đã trưởng thành, tác giả mới làm ra Andromeda Invaders, một trò chơi mang phong cách Invaders, và còn có cả chế độ tự chơi sau khi chờ 5 giây
- Digger do Windmill Software phát triển được phát hành dưới dạng đĩa tự khởi động, nên có thể boot và chạy trực tiếp mà không cần đưa đĩa DOS vào trước
- Grand Prix Circuit của Accolade Inc. được chạy bằng lệnh
GPEGA, và là trò chơi khiến tác giả háo hức chờ phần nhạc mở đầu
- Vào thời chỉ mới vẽ được các hình 2D cơ bản bằng Logo và GW-BASIC, việc một chương trình máy tính có thể tạo ra phép chiếu của thế giới ảo 3D có thể khám phá bằng bàn phím là điều vô cùng đáng kinh ngạc
- Hơn 30 năm sau, tiếng ồn của máy móc, tiếng bíp POST và mùi đặc trưng của căn phòng điều hòa kín vẫn còn hiện rõ
- Khi tình cờ bắt gặp mùi tương tự ở một nơi không ngờ tới, tác giả lại quay về với những ký ức đầu tiên về điện toán thời thơ ấu, và trải nghiệm ấy vẫn là một trong những ký ức mạnh mẽ, sống động nhất, đầy ắp sự kinh ngạc và khám phá
1 bình luận
Ý kiến trên Hacker News
Tôi mua C64 vào năm 1985, và giờ dù vẫn có thể xem lại đồ họa và âm thanh qua emulator hay YouTube, tôi luôn nhớ mùi bảng mạch ấm lên thoát ra từ vỏ máy ngay sau khi bật nguồn
Chiếc cassette player đi kèm bị lệch chỉnh đầu từ, nhưng thời đó chưa có Internet nên chẳng ai biết vì sao phần lớn game không tải được. Dù vậy vẫn lưu và nạp chương trình được, và tôi bắt đầu nhập các chương trình BASIC theo sách hướng dẫn và những cuốn sách lập trình mượn từ thư viện rồi lưu vào băng cassette của mình
Trong sách hướng dẫn không chỉ có tutorial BASIC mà còn có cả các tính năng phần cứng như đồ họa, sprite và âm thanh, nên tôi biết rằng chỉ cần
POKEmột con số nhất định vào một địa chỉ nhất định là có thể đưa sprite lên màn hình và làm nó di chuyển. Đến khi sửa được cassette player và có thể nạp các game đi kèm thì tôi đã mê lập trình sâu rồi, và nếu những game đó cũng là do ai đó ngồi làm ra thì tôi cũng có thể học được. Từ đó đến nay tôi vẫn tiếp tục lập trìnhLOAD "*",8,1Dù vậy, so với các máy cạnh tranh như Apple II, Sinclair hay Ti99 thì tôi nghĩ nó vẫn khá rẻ so với tính năng
Ở trường có những chiếc máy tính cũ cài Windows 3.1, và chỉ được dùng chương trình luyện gõ mười ngón
Máy tính gia đình đầu tiên được mua vào năm 1995, nếu nhớ không nhầm là 166MHz Pentium / 16MB RAM / Windows 95, và lúc đó giá khoảng 3.500~4.000 USD. Ba năm sau, ngay sau khi Half-Life ra mắt, tôi kiếm được một bản sao, nhưng ngay cả với chiếc máy có card đồ họa rời đó thì cũng chỉ chạy vừa đủ. Là gamer thời ấy, chạy theo đồ họa mới nhất thực sự rất tốn kém
Trước đó nhà tôi có máy đánh chữ điện, và công dụng chính của máy tính cũng là soạn văn bản và làm việc. Trải nghiệm lập trình đầu tiên của tôi là sửa file HTML, và tôi có tìm sách lập trình ở thư viện, nhưng ở một vùng quê chỉ có 3.000 dân thì chỉ có đúng một cuốn về Pascal hoặc Delphi
Tôi nghe nói trong vùng có một cậu thiên tài hơn tôi vài tuổi, kiểu “rất giỏi máy tính”, nên tôi tìm đến thì thấy trên kệ phòng cậu ấy có hộp Borland C++ rất to, rồi cậu ấy cho tôi xem bản clone mô phỏng bay 3D đang tự làm và một thứ giống Doom, khiến tôi choáng ngợp. Cậu ấy rất thành công trong thời dot-com boom và đi làm ngay mà không học đại học
Vài năm sau khi vào cấp ba, có một lập trình viên bán nghỉ hưu chuyển về thị trấn, hợp tác với trường để mở lớp lập trình Java, và vì ông là một người thầy tuyệt vời nên từ lúc đó tôi quyết tâm muốn làm nghề máy tính
Lần đầu là đầu những năm 1990, cha tôi mua PC để giúp công việc xuất bản tự doanh của ông, và như nhiều PC thời đó, máy có sẵn QBasic cùng mã nguồn game như GORILLA.BAS để một đứa trẻ hướng nội, thường xuyên ở một mình như tôi có thể thoải mái vọc vạch
Lần thứ hai là tôi học ở một trường cấp ba có phòng máy tính ngân sách khá ổn và một giáo viên tin học cực kỳ cởi mở. Chỉ cần chứng minh bạn đáng tin là gần như được làm điều mình muốn, và dù trường chủ yếu dùng Mac, tôi lại thích hệ Microsoft khi học cấp ba nên đến gần lúc tốt nghiệp đã có thể dựng và vận hành máy chủ file và web Windows NT cho báo trường. Một người bạn khác thì mê Linux và được cho phép làm điều tương tự ở phòng vẽ kỹ thuật bằng RedHat
Tính cách và cơ hội khớp với nhau, và từ đó tôi làm trong ngành công nghệ suốt 25 năm sau
Điều tôi lo bây giờ là có quá nhiều công nghệ bị khóa kín. Ngày nay hiếm có trường nào cho kiểu tự do như vậy, điện thoại không có sẵn IDE, và ngay cả việc cài app “không được phê duyệt” cũng bị tấn công
Vì bọn trẻ, ngành công nghiệp, công cụ và hệ điều hành cần phải mở hơn. Phải được chạm vào và sửa được thì những đứa trẻ có động lực nhất mới học được. Chúng ta đang bỏ lỡ việc tạo ra những tài năng xuất chúng chỉ để tối đa hóa lợi suất cho một quỹ hedge fund nào đó, và quá trình tài chính hóa ở Mỹ là một sai lầm lớn
Tất nhiên là buồn cười theo tiêu chuẩn của một đứa đang tuổi dậy thì như tôi
Tôi nhớ khoảnh khắc khoảng 9 tuổi khi bất ngờ hiểu ra biến số trong RPG Maker. Trước đó tôi cũng từng đụng vào những thứ như HTML, nhưng khi hiểu được biến số thì cả thế giới mở ra, VB6 cũng trở nên khả thi, và mọi thứ đột nhiên ăn khớp
Tôi cảm thấy một khi đã hiểu nền tảng về cách mọi thứ vận hành thì trẻ em hay thiếu niên sau đó thường tiến bộ rất nhanh. Tôi cũng muốn con mình hiểu những nền tảng của điện toán càng sớm càng tốt, vì như vậy mới hiểu được thế giới kết nối với nhau ra sao
Tất nhiên sau này tôi lại ngộ ra lần nữa, nên giờ thì tôi tránh dùng class
Chính Tandy 1000 SX vào giữa thập niên 1980 đã khiến cả cuộc đời mình xoay quanh công nghệ
Mình không nhớ chính xác lúc đó mấy tuổi, chỉ biết là còn chưa đến 10 khi bố mang nó về nhà, và bố mình quản lý hệ thống điểm bán hàng trên máy tính đời đầu của một chuỗi bán lẻ địa phương cùng với mainframe ở văn phòng
Trước cả khi học viết chữ thảo, mình đã học cách tạo các file batch để cấu hình ngắt IRQ cho card âm thanh và đồ họa để chơi game, rồi khoảng 8~9 tuổi thì học làm game bằng BASIC ở trại hè máy tính. Mình lần đầu lên mạng qua TandyNet, và đến giữa thập niên 90 thì làm website đầu tiên bằng HTML 0.9. Đó là một giai đoạn hỗn loạn, nhưng đã dẫn tới sự nghiệp IT kéo dài khoảng 30 năm của mình hôm nay
Điều mình phàn nàn lớn nhất về máy tính ngày nay là việc “học” viết code ngày càng khó hơn. Với Commodore chẳng hạn, chính giao diện của nó đã là một ngôn ngữ lập trình, và theo một nghĩa nào đó, muốn dùng được thì cũng phải học chút lập trình. Thiết bị iOS trong thời gian dài không thể phát triển cục bộ, giờ có khá hơn ban đầu một chút nhưng vẫn chưa cho phép JIT
Với mình, điểm khởi đầu là thời đại View Source. Khoảng năm 2001, mình sao chép HTML từ các trang Geocities rồi chỉnh sửa trong Notepad; mình không biết ngôn ngữ lập trình là gì, nhưng biết cách đổi màu nền và thêm marquee
Chỉ riêng vòng phản hồi tức thì của việc lưu lại, Alt-Tab sang cửa sổ khác rồi nhấn làm mới cũng đã đủ khiến mình mê mẩn
Đoạn nói về mùi hương thực sự chạm tới mình. Vì là con của một giáo sư đại học nên mình có chút quyền tiếp cận phòng máy của trường, và mùi ở phòng làm việc của các giáo sư là mùi nhựa, bụi và chút cao su cháy khét
Mùi đó với mình là cả một thế giới, không chỉ là những trò chơi hay mà còn là cánh cửa bước vào thế giới phép màu của những người lớn biết cách điều khiển những cỗ máy ấy
Khoảng 12~13 tuổi, bố đưa cho mình bản in một chương trình Turbo Pascal tính phương trình căn bậc hai và bảo mình nhập vào rồi chạy thử, và đó là khởi đầu cho sự nghiệp lập trình của mình
Mình không may mắn được tiếp xúc với máy tính từ nhỏ, nhưng những bài như thế này vẫn gợi mạnh cảm giác hoài niệm, đặc biệt là vì âm thanh. Trong điều kiện tài nguyên hạn chế, người ta thời đó vẫn tạo ra được những thứ rất hay
Không biết còn ai nhớ cái kỹ năng tối ưu cấu hình khởi động MS-DOS để vét thêm bộ nhớ khả dụng cho game chạy không. Mình cũng nhớ cả việc lục lọi
gorillas.basVới mình, đó có lẽ là thứ đã khiến mình muốn học thêm và thử nghiệm nhiều hơn. Mình cũng muốn khuyến khích con trai có kiểu khám phá sáng tạo tương tự, nhưng không biết làm sao trong môi trường mà game và video của thế hệ này quá cuốn hút
DEVICE(HIGH), chỉnhFILES=vàBUFFERS=, rồi chạy đi chạy lạiMEMMAKER.EXEnhư thể lần này sẽ có gì đó khác đi. Nhưng cốt lõi thật sự là khiến cỗ máy làm điều mình muốn, chứ không phải điều nhà sản xuất muốnVới một đứa trẻ thời nay, mình có lẽ sẽ tìm các game có API mod hợp lý, ví dụ dùng được script như Lua và có thể khoe thứ mình làm với bạn bè trong multiplayer
Sau đó có thể chuyển sang một gói như LÖVE, nơi vẫn tiếp tục dùng Lua nhưng có thể điều khiển cả trò chơi, để giúp chúng khám phá và xử lý những gì cần có để thực sự tạo ra phần mềm. Nếu chúng hứng thú với tầng thấp hơn thì mình sẽ giúp đào sâu thêm, nhưng để bắt đầu thì modding và scripting có vẻ là tốt nhất
Himem.sysconfig.sys,autoexec.bat, EMS, HIGHMEM, driver Sound Blaster đời đầu, driver chuột, driver mạng, tất cả đều là nguồn cơn đau đầuCó lẽ thứ khó chạy nhất là Quarantine, nhưng chắc chắn đó cũng là một trong những game hay nhất. Với thời đó thì trí tưởng tượng của nó thật đáng kinh ngạc, lại còn là game của Úc, và có cả nhạc của những ban nhạc sau này trở nên nổi tiếng
https://www.youtube.com/watch?v=QwO8XWbB1Pk&list=PLA5hK1g6CN... https://www.playdosgames.com/play/quarantine
Mình cũng bắt đầu dùng máy tính từ nhỏ và rất thích, lại còn có cả Nintendo, nhưng mình có cảm xúc khá lẫn lộn về xu hướng phản màn hình hiện nay
Con trai mình vẫn còn rất nhỏ và vợ mình muốn hoàn toàn không cho dùng màn hình. Mình không muốn để con dùng TikTok hay Facebook, nhưng đang nghĩ có lẽ sẽ mua một chiếc Apple II hoặc chuẩn bị một bộ giả lập Raspberry Pi để cùng chơi những game nhỏ ngày xưa, thời còn chưa có online
Mình thấy tư duy cứng nhắc kiểu “cấm màn hình” là một đòn bẩy quét quá rộng mà các lãnh đạo phi kỹ thuật trong lĩnh vực phúc lợi trẻ em đang nắm lấy, và mình hiểu bối cảnh đằng sau nó
Nhưng là người đang kiếm sống nhờ việc từng được sớm đụng vào và thử nghiệm với công nghệ, mình nhìn thấy một cách tiếp cận cân bằng hơn. Bạn hoàn toàn có thể chuẩn bị một máy Linux tách biệt khỏi Internet để bọn trẻ tha hồ nghịch. Windows đã tiến bộ nhiều kể từ thời XP, nhưng theo mình nó đã đi chệch hẳn hướng
Làm vậy sẽ giúp tránh bị mắc vào các vòng lặp tâm lý của Big Tech hay cái máy dopamine sặc sỡ của YouTube, và thật ra mình nghĩ đó mới là động cơ phía sau chuyện “cấm màn hình”. Tiếp xúc có kiểm soát là điều thiết yếu
Điểm hay của lập trình đồ họa thời đó là khi vẽ gì đó lên màn hình, nó sẽ giữ nguyên ở đó cho đến khi chương trình tự xóa đi
Nhờ vậy có thể dễ dàng tạo ra đồ họa đẹp. Ví dụ, nếu tính các điểm của một đường tròn rồi chấm từng điểm một, trên màn hình sẽ hiện nguyên quá trình đường tròn được vẽ ra
Các thư viện đồ họa “hiện đại”, có lẽ cả SDL, khiến cách làm này trở nên khó hơn vì chúng buộc phải vẽ lại toàn bộ màn hình ở mỗi frame, và để tạo cùng hiệu ứng thì chương trình phải nhớ mọi điểm đã vẽ trước đó
Quy trình làm việc ngày xưa khiến lập trình đồ họa thực sự rất thú vị, nhưng pipeline render nhanh hiện đại thì tẻ nhạt và kém vui hơn. Những thứ như vậy đã dần hút mất niềm vui của việc làm máy tính
Khi IBM PC xuất hiện vào đầu những năm 1980, card đồ họa Hercules là một món tuyệt vời vượt trội hơn CGA. Tôi từng sang nhà bạn của bố và thử vẽ những thứ như hình tròn bằng nó, và trên chiếc máy đó đồ họa đã được giữ nguyên. Tôi phải tìm cách xóa màn hình, nhưng máy của tôi không có card Hercules nên không giữ được như vậy. Đến giờ tôi mới hiểu rốt cuộc khi đó chuyện gì đã xảy ra