Khó ăn cát bê tông

Menu

Danh mục: To mồm chém gió

Bàn những thứ dạng “triết lý”

Tại sao IT, lập trình không dễ ăn, lắm mơ mộng

Bài này đăng lại comment từ một status Facebook do chính tác giả comment trên group Facebook mang tên Học lập trình web (F8 – Fullstack.edu.vn). Tại sao đăng lại? Tại vì thấy có vẻ như nhiều bạn trẻ (và không còn quá trẻ nữa khi ở tuổi 26 đến 32) mà lại hay hỏi những câu rất lơ ngơ. Có thể một trong số đó vô tình vào KACBT để học HTML, sẵn đọc luôn cho bớt mơ mộng.

Vấn đề của những bạn mơ bước chân vào lập trình là gì?

Vấn đề lớn nhất của những người không đủ tiêu chuẩn để gia nhập nghề mới dù loay hoay nhiều năm, học lung tung cả lên hết trung tâm nọ, trung tâm kia, mua hàng chục khóa học online với giá khoảng 9 đến 99 đô la. Mấy cái KHÔNG sau cần giải quyết hoặc khắc phục phần lớn thì tiêu chuẩn nghề mới nâng cao lên được, mới có thể đi làm.

  • Tiếng Anh yếu kém: cái này đánh rớt hết 80% những người mơ mộng muốn chuyển sang làm trong lĩnh vực lập trình, hay nói đúng hơn, chưa tới được bãi gửi xe lấy gì mà tham dự sự kiện?
  • Người học không chịu kết bạn ngoài đời, không đi chơi giao lưu với dân trong nghề để học hỏi, không mò đến các event về ngành định chuyển qua để được tắm trong không khí của nó, để hít thở, ngửi mùi, kích thích sự hứng thú với nghề mới. Trong khi đó toàn lên mạng tám với dân ngoại đạo, showbiz của nghề hơn là dân trong nghề. Dân trong nghề thực thụ lại ít tám trên mạng, có tám họ toàn vô những chỗ khá chuyên sâu.
  • Tạp chí chuyên ngành là “vũ khí” rất quan trọng để tìm hiểu, học hỏi, nghiên cứu một chuyên môn mới nhưng hầu hết thanh niên Việt Nam (trừ những HS, SV từng làm nghiên cứu khoa học ở trường/ đại học hoặc bị thầy cô giáo bắt tìm đọc tạp chí để làm bài tập/ đề tài nghiên cứu) KHÔNG biết tạp chí chuyên ngành là gì, ngay cả dân đang trong nghề còn chưa biết đến có sự tồn tại của chúng, mà lại cho rằng chúng kém hữu ích, và hẳn họ chỉ ở mức thợ code là hết mức.
  • Người học sợ, ngại đọc sách và cũng sợ tham gia các khóa học dạng MOOC đủ chuẩn SCORM hoặc AICC mà chỉ thích xem clip, đọc các tut, xem video clip, học mót các course dạng bootcamp mà người hướng dẫn không có chứng chỉ về sư phạm giảng dạy.

Đặc điểm của nghề mang tính kỹ thuật/ ứng dụng như IT, lập trình

Ngành kỹ thuật khác nhiều so với các ngành xã hội đó là phải đề cao tính chất làm để học chứ không phải học để làm. Cho nên, người học phải nhúng tay vào làm mới học được. Ai có tư tưởng học lý thuyết cho nhuyễn rồi mới thực hành là hỏng, hỏng bét, hoặc chỉ học thực hành, xao nhãng lý thuyết cũng hỏng. Hai món này phải đan xen, cài vào nhau trong mỗi buổi học thì mới là cách học đúng.

Ví dụ như để làm được giao diện trang web thì phải lôi “đồ nghề” là trình soạn thảo văn bản thô, thu thập các file hình ảnh (được thiết kế trên Photoshop trước đó) rồi ngồi mà lắp chúng lại, trong quá trình lắp sẽ phải thì đọc “tài liệu hướng dẫn”, không khác so với lấy bộ đồ chơi lắp ghép Lego ra chơi.

Để học được vào, được thấm, khi học người học cần phải ép bản thân mình vào tư thế không thoải mái tránh rơi vào giấc ngủ hoặc dễ bị xao nhãng.

Ví dụ: kiếm một cái màn hình mà 25 phút nó tắt một lần, 5 phút sau mới lại bật lên được thì ta sẽ thấy 25 phút rất quý báu, tranh thủ mà cày cho xong đoạn code nào đó tránh để màn hình làm cho mất hứng. Bàn phím thì nên mua một cái second-hand tiếng Nhật để buộc phải thuộc cách gõ code, bởi việc nhìn mặt phím là vô dụng. Tất nhiên, bạn đừng ngây thờ nghĩ rằng có cái màn hình nào mua mới ngoài tiệm có sẵn chức năng 25 phút tắt một lần, cách học là bạn phải suy nghĩ vấn đề, tìm kiếm phần mềm trên máy tính để thực hiện chức năng đó cho bạn.

Kết: Khắc phục được các vấn đề trên, việc chuyển sang nghề viết code là trong tầm tay các bạn.

Gặp thảm hoạ cũng có cái hay

Bài viết đầu tiên cho chuyên mục này, lẽ ra gọi mục là blog cho dễ chịu, với tên “to mồm chém gió” hơi kinh dị ấy nhỉ? Kể về thảm hoạ với máy tính xảy ra cách đây mấy ngày như tự an ủi, cũng để thấy rằng chỉ một phút lơ mơ, xuống hố cả nút.

À, mà nhất là các bạn có thái độ phân biệt vùng miền, tui xin được nói trước là tui là một kẻ xét trên bình diện địa lý văn hoá, ngôn ngữ học, là người sử dụng một thứ tiếng trộn lẫn. Tui nhiều lúc sử dụng giọng chua ngoa, gây khó chịu, lúc khác lại sử dụng phương ngữ của các “người anh em” trong cộng đồng 54 dân tộc… Những điều này là không chủ ý, nó là một thứ tui không lý giải được tại sao như vậy.

Một buổi sáng đẹp trời

Đó là một ngày đẹp trời, trời Nha Trang mưa ơi là mưa, mỗi ngày có nhiều đợt mưa khác nhau, mưa rồi tạnh, tạnh rồi mưa.

Buổi sáng như mọi ngày, lên văn phòng đâu đó tầm 7:30. Việc đầu tiên: bật máy tính; việc tiếp theo: nấu nước pha cà phê.

Trong lúc chờ đợi cà phê vừa pha đủ nguội để làm một tợp như mọi ngày, hắn bật máy tính lên kiểm tra lại code kiếc hôm qua chạy ra sao. Bỗng cảm thấy ngạc nhiên đến bất ngờ khi hiện lỗi lên, trong khi tối hôm qua vẫn chạy tốt. Sau khi đọc thông báo lỗi đã được bật error_reporting(E_ALL); trong php.ini, xác định vấn đề là hỏng chức năng Memcached.

Hoá ra là thư viện liên kết động của một mô-đun PHP cách sao đó hôm qua chạy tốt, hôm nay bỗng không nạp được.

Có lẽ việc tương thích kém, vì thế, hắn lấy mã nguồn về để build lại luôn các thứ, rồi ghép vào, mất hơn hai giờ. Trong lúc gom các thứ, đàng nào cũng mất công build from source, sẵn tiện, nâng cấp lên phiên bản mới nhất của bộ 3 AMP của máy chủ LAMP luôn thể.

Thảm hoạ đã được gieo mầm

Vì cấu trúc thư mục dài dòng nên mỗi lần gõ lệnh phức tạp, vậy là làm vài cái soft link để rút gọi lại, đỡ vất vả phải gõ. Như vậy, có đến 3 cửa sổ Terminal trên Ubuntu được mở ra để gõ lệnh.

Sau một hồi gõ lệnh nọ lệnh kia, lúc này xong xuôi. Mới nghĩ dọn dẹp bớt cái mớ bùng nhùng chuẩn bị cho build trước đó cần gỡ bỏ. Vậy là gõ lệnh rm để dọn dẹp. Đã rất cẩn thận là thường chuyển vào thư mục mới gõ để xoá sạch bên trong, tránh nhầm ra bên ngoài. Thế quái nào trong các cửa sổ Terminal lại có cái cửa sổ đang đứng ở thư mục gốc của user mặc định mà dấu nhắc trông như đang ở thư mục cần dọn dẹp. Khi gõ lệnh xong, chuyển ngay qua cửa sổ khác để xem việc download một mã nguồn khác bằng wget tới đâu rồi, và dời qua bàn bên để bưng cà phê uống.

Khi quay lại máy tính, nhìn vào một cửa sổ Terminal tim tím, thấy download vẫn đang nửa chừng, chuyển qua cửa sổ gõ lệnh xoá vừa nãy vẫn chưa thấy dấu nhắc lệnh xuất hiện trở lại. Dựng tóc gáy, nhận thấy có gì đó sai sai. Lẽ nào xoá có vài thư mục mỗi thư mục chừng vài chục MB mà lâu đến như vậy. Vội vàng Ctrl + C để ngắt lệnh.

Nhìn lại mới thấy lần cuối partition dành cho /home dung lượng 367GB chiếm 97%, giờ chỉ còn chiếm 41%. Như vậy đi tong một lượng dữ liệu tính theo MB lớn hơn số còn lại.

Thiếu kinh nghiệm trong việc giữ nguyên hiện trường trên Linux

Lẽ ra lúc này dừng tất cả những gì đang chạy trên máy tính lại, để yên máy vẫn bật đó để ngồi sang máy khác tra cứu trên mạng Internet xem nên làm gì tiếp theo.

Lúc bấy giờ, hoảng loạn quá nên tui đã shutdown máy theo đúng chức năng của hệ điều hành. Cái này tưởng đâu giữ nguyên hiện trường nhưng thật tai hại làm sao.

Sau khi shutdown, lẽ ra là lấy ổ cứng mang sang máy khác để xử lý ngay còn được. Đàng này dại dột boot lại máy để chạy USB cứu hộ nhằm xử lý. Khởi động UEFI nó nạp nhanh quá, lóng ngóng bấm phím để chuyển sang ưu tiên khởi động USB không kịp, Ubuntu trên ổ cứng lại khởi động như bình thường.

Đây là lúc mà các phần mềm chạy nền đã ghi đè lên những file, thư mục đã bị xoá bởi lệnh rm gây ra thảm hoạ kia khiến cho việc phục hồi bất khả thi.

Bản sao lưu trong ổ cứng ngoài?

Cứ mỗi một tuần tui đều sao lưu một lần. Hài hước thay, trong tình huống này việc sao lưu lại chẳng có ích gì. Mọi thứ hay ho làm trong tuần vừa rồi đều bay sạch. Những tập tin, thư mục vừa tạo ra mới là cái cần vì source code được viết ròng rã mấy tháng gần đây được tinh chỉnh, di chuyển qua lại, có nhiều thay đổi lớn so với các tuần trước đây.

Vậy là bản sao lưu ở ổ cứng ngoài gần như chỉ để yên tâm rằng những thứ xưa cũ còn đó, chứ không ích gì cho công việc tuần này.

Tốn mớ tiền chứ không đùa

Gỡ ổ cứng qua gắn qua máy khác, chép lại một file image dạng RAW để vọc.

Chép nguyên ổ cứng ra thành Raw Image

Ổ cứng sau đó được gửi đi Sài Gòn để người ta phục hồi. Có hỏi qua điện thoại, chỗ phục hồi có nói rằng hồi giờ chủ yếu phục hồi với file dạng NTFS chứ còn ext4 trên hệ GPT là họ cũng chưa từng làm nhưng họ làm ở cấp thấp hơn, hy vọng vớt vát được phần nào.

Với bản RAW chép lại từ ổ cứng, tui đã mount lên thành ổ cứng ảo và dùng Live USB để boot máy lên thử cứu xem sao. Tình hình ngày hôm nay đang như hình:

Đang vớt vát lại chút file còn sót lại

Ba ngày đã trôi qua, bây giờ máy vẫn đang chạy như này:

Đang chép vài file phục hồi ra ổ cứng ngoài

Có cái hay là hay chỗ nào?

Chuyển sang ngồi máy mới dùng tạm, cũng phải tiếp tục công việc chứ không thì nhiều thứ không kịp bàn giao cho khách.

Lâu ngày không dùng máy tính chạy Windows, ngồi vào máy Windows cảm thấy lạ lẫm gì đâu. Gõ lệnh cứ phải cố nhớ lại các lệnh ngày xưa (lần cuối dùng Windows là năm 2011, nếu không kể việc thỉnh thoảng dùng Windows chỉ để in file PDF mà không đụng gì khác) mình từng biết là gì, kiểu như ls gì lại phải dir, rồi muốn xem file, bên Linux có cat, bên Windows bó tay, tra cứu PowerShell cũng muốn… vỡ mật.

Trong lúc đang vò đầu bứt tai vì công việc đình trệ, loay hoay với cái máy tính Windows cà khổ thì có lúc phải ngồi dựa ngửa ra mà thở… và có đứa bạn rủ tối hôm đó đi ăn xả xui.

Nghe đi ăn cảm thấy có lý thiệt đó, thật hay nữa là khác. Tối đến, đi ngay và luôn, vậy là tối 2 đứa đi ăn, lúc tạnh lúc mưa. Ăn xong lại mò về văn phòng xem thử liệu có thử tự cứu được quái gì không? Hỏng bét, mặc dùng là thư mục home đã nằm ở partition riêng nhưng vì đã khởi động máy lên, các ứng dụng chạy ngầm ghi be bét vào thư mục .config khiến cho mọi thứ loạn cả lên, không chắc cứu được gì nhiều.

Bài học lịch sử được rút ra

Tất nhiên là nếu gặp lại một lần nữa như hiện nay sẽ cứ để cho lệnh rm chạy cho xong luôn. Trong lúc đó không làm gì khác, cũng không shutdown máy luôn. Sau khi lệnh chạy xong sẽ:

  • Trích xuất journal ra
  • Dùng ext4magic để chép file bị xoá được phục hồi ra ổ cứng gắn ngoài

Nhưng bài học phụ trợ cho kinh nghiệm này đó là cuối mỗi ngày phải bỏ thời gian sao lưu “thành quả” của ngày hôm trước cho chắc ăn. Nhỡ có thảm hoạ xảy ra như lần này cũng không đau thương cho lắm.