Uncategorized

Một số chia sẻ về tác giả Bảo Huy

Xin chào các bạn đọc của EitGuide. Như các bạn đã nhận thấy khi theo dõi các bài viết, tôi là một “bàn phím” chủ lực của trang và đảm nhận công tác viết bài khi bạn Giám đốc Nghĩa đi vắng. Sau một thời gian dài chia sẻ kinh nghiệm, chúng tôi quyết định sẽ chia sẻ một chút về bản thân mình. Sau bài viết của bạn Nghĩa, lần này là sân khấu của tôi.

Tính cho tới thời điểm bài viết này vào tháng 6 năm 2019, thì tôi đã nấu được 27 nồi bánh téc. “Bánh téc” vì tôi sinh ra ở miền Nam, cụ thể hơn là ở ngoại thành TPHCM. Bản thân tôi có xuất thân là sinh viên của Học viện Hành chính Quốc gia Hồ Chí Minh khoá 11 (2010-2014), một chuyên ngành chẳng hề liên quan tới code hay toán. Do đó, trước khi nói tiếp, nếu bạn không phải là dân có bằng cấp đại học về CNTT thì cũng chẳng ảnh hưởng gì đến khả năng viết code. Quan trọng là khả năng tự học và đam mê của bạn mà thôi, tất nhiên trình độ tiếng Anh là không thể không kể tới. Và tôi hiện là Giám đốc kiêm nhân viên lập trình kiêm nhân viên thiết kế kiêm bảo vệ và kiêm luôn lao công tại YUH APPS (https://yuhapps.github.io).

Để trở thành một amateur coder như hiện tại, thì phần tuổi thơ dữ dội của tôi là một yếu tố quan trọng bậc nhất. Cá nhân tôi được tiếp xúc với máy tính từ năm 2003. Dẫu vậy, cho tới tận năm 2009 thì tôi mới thực sự được kết nối với internet với đường cáp ADSL. Còn trong thời gian 6 năm trước đó, tôi chỉ có điều kiện mò mẫm vọc vạch với các settings này nọ của Windows XP, và việc cài mới Windows đối với tôi là một công việc còn đơn giản hơn cả chiên trứng. Chính vì tính phá phách như vậy, mà kinh nghiệm xử lí các tình huống của tôi không hề tồi. Và những điều đó giúp tôi rèn dũa tinh thần không sợ mình làm sai, mà chỉ sợ mình không dám làm và không dám sửa chữa.

Cái duyên với lập trình của tôi xuất phát từ khi ông anh tôi học tập và thi chứng chỉ A tin học, mà cụ thể hơn là Excel. Và nhờ đó tôi được dịp học lớm. Bạn đừng nghĩ Excel chỉ là một công cụ văn phòng. Thực chất, tư duy dùng hàm trong Excel không khác gì bạn gọi các Sdk APIs khi viết một hàm trong lập trình để thực hiện một tác vụ nào đó. Chẳng hạn, với Excel, bạn phải biết và thuộc được tên hàm và thứ tự các biến phải truyền vào cặp ngoặc tròn và do đó ít nhiều cũng tạo cho bạn những kinh nghiệm trong việc gọi hàm trong lập trình, chẳng hạn như cấu trúc IF(logical_test, value_if_true, value_if_false) rất tương đồng với if trong bất kì ngôn ngữ lập trình nào.

Chính vì vậy, khi học lấy chứng chỉ nghề Tin học vào năm lớp 8, sau khi làm bài tập xong sớm nhất lớp, tôi còn đóng vai “trợ giảng” cho ông thầy trong nhiều trường hợp. Mỗi lần giúp đỡ bạn bè là mỗi lần kiến thức của tôi thêm chắc chắn. Nhưng cuộc vui không kéo dài, khi một năm sau đó, tôi phải chào từ biệt bộ máy tính Pentium IV với vỏn vẹn 256MB RAM và modem 56K chỉ được dùng tới có 5 lần.

Sang tới năm lớp 11, tôi biết mình thích lập trình với bộ môn Tin học lớp 11. Một lần nữa, tôi luôn được điểm tối đa trong các bài kiểm tra. Nguyên cả năm học, tôi chỉ có được “diễm phúc” được code trên máy thật có 4 lần. Còn lại toàn phải code trên giấy. Nhưng với tư duy nhạy bén của mình có được khi làm Excel, tôi không hề bôi xoá dù chỉ một lần khi viết các dòng code trong các bài kiểm tra.

Cho đến năm 2009 thì gia đình tôi mới có dịp sắm sửa cho hai anh em tôi bộ máy tính mới. Tuy nhiên, chiếc máy chạy Vista chỉ sử dụng offline cho tới đầu năm 2010 khi VNPT ở nơi chúng tôi bắt đầu phổ biến hoá internet với việc giảm giá cước cùng đơn giản hoá các thủ tục. Lần đầu tiên, tôi truy cập Google từ nhà mình. Cánh cửa internet mở toang trước đôi mắt của tôi.

Dẫu là vậy nhưng tôi lại thi vào Học viện Hành chínhĐại học Y dược TPHCM với chuyên ngành Dược sĩ mã 303, hai chuyên ngành chẳng liên quan gì với máy tính ngoài hai việc: Google tìm tài liệu và sử dụng PowerPoint để thuyết trình.

Tuy nhiên, trong quá trình học đại học thì tôi trở thành một trong những “thợ cài Win dạo“. Ngoài ra, vô tình tôi cũng trở thành tay sửa điện thoại, tất nhiên là với các vấn đề về phần mềm. Tất cả đã giúp cho tôi có kinh nghiệm sử dụng iOS và Android dù bản thân tôi không sở hữu chúng cho tới sau này vì do lúc đó tôi đang “bệnh Nokia + Symbian”.

Một bước ngoặt nữa đến với tôi khi phát hiện WordPress. Và tôi đã bắt đầu viết blog bằng tiếng Anh với nền tảng phổ biến này. Điều đặc biệt là các bài viết là về các tin tức và nhận xét về phần mềm thay vì chuyên ngành Hành chính của mình. Thậm chí, tôi còn “hi sinh” kì thi Cuối kì năm II để chỉ đạt đủ điểm vượt qua tránh thi lại ở hầu hết các môn, tới nỗi mấy thằng bạn thân của tôi lâu lâu vẫn còn nhắc tới sau câu hỏi quen thuộc “Tại sao mày không học CNTT mà lại vào đây?”.

Nhưng bước ngoặt quan trọng bậc nhất xảy ra với tôi là Linux. Hôm đó là vào những ngày cuối của năm 2012, một người bạn cùng lớp (cũng tương tự như tôi là thích phần mềm hơn Hành chính) boot Ubuntu vào máy tính của anh ấy với LiveUSB và điều này kích thích tôi ghê gớm. Vậy là sau khi thi cuối kì xong, tôi quyết định xem Ubuntu nó là “cái hệ thống sinh sản” gì. Và chỉ sau chưa tới một giờ chạy thử Ubuntu 13.04 Raring Ringtail trên LiveUSB, tôi đã quyết định cài luôn vào máy thật. Và từ đó, tôi “nghiện” Terminal tới phát cuồng, cảm thấy “kích thích vồn” khi nhìn từng dòng Terminal chạy khi compile một phần mềm từ mã nguồn với gcc hay vala. Và cũng cùng thời điểm đó, lần đầu tiên tôi được sở hữu một chiếc máy Android là Galaxy S III, để tạo dựng “bộ đôi” Linux + Android mà tôi vẫn duy trì sử dụng cho tới gần đây. Chỉ đúng một tháng rưỡi sau, tôi đã root thành công chiếc i9300 và chính sự kiện này đã làm tôi không ngại tìm tòi về những thứ chuyên sâu như kernel.

Một lần nữa, cuộc đời tôi lại chuyển sang một lối đi khác trước khi tôi tốt nghiệp. Đó là sự tổng hợp của hai “cú đấm”: Một là WordPress tự dưng khoá trang blog của tôi lại với lí do mơ hồ mà chỉ có họ và Chúa mới biết, và Hai là Ubuntu của tôi trở chứng sau khi update. Vậy là tôi phải buộc bụng quay về với Windows với nỗi đau ghê gớm tới mức không muốn dính dáng tới ai-ti nữa. Dẫu sau này tôi vẫn tiếp tục sử dụng Ubuntu (và rồi chuyển sang Fedora rồi lại vòng lại Ubuntu), nhưng do “nỗi đau” vẫn còn âm ỷ nên tôi chỉ dừng lại ở mức độ người dùng mà thôi.

Nhưng có ai biết được chữ ngờ. Vào năm 2016 thì tự dưng tôi “hứng chí” muốn làm startup với nguyên do là cáp AAG cứ liên tục đứt như cơm bữa nên tôi có ý nghĩ là làm về đám mây, cũng như thêm một ý tưởng khác chịu ảnh hưởng từ LINE Webtoon. Chính vì vậy mà tôi bắt đầu học về lập trình Android và Web. Xin thú thật là ngoài những kiến thức Java ở mức độ cơ bản nhất như tạo hàm, tham số, if và for, v.v… vốn tương tự như C++, tôi không hề biết bất kì điều gì khác, như List hay Calendar. Hướng học tập của tôi khá “ngược đời” khi lấy Android để học Java. Nhưng dẫu sao với kĩ năng tiếng Anh khá tốt, tôi không hề gặp bất kì khó khăn nào trong việc Google và cày nát Stackoverflow cũng như các kênh YouTube dạy lập trình bằng tiếng Anh, và quan trọng hơn hết là chưa bao giờ chụp ảnh app Android với cái bảng dừng huyền thoại mà đem đi khắp xóm khắp chợ hỏi toàn thiên hạ rằng “Tại sao nó lại như này?”. Đơn giản, là vì code mình sai, và lúc đó, tôi “ngáo” tới mức không biết NullPointerException có nghĩa là gì, mà việc tìm lỗi được thực hiện với việc chính tôi ngồi dò và chạy tay từng dòng code với kinh nghiệm ở lớp 11 ngày trước. Mãi tới cả tháng sau đó tôi mới biết xem logcat và tìm hiểu về Exception.

Tuy nhiên, cá nhân tôi muốn gửi lời cảm ơn chân thành tới Thầy Khoa Phạm vì khoá học Android của thầy trên YouTube chính là thứ đã đưa tôi đến những dòng code Android đầu tiên. Không có thầy thì có lẽ tôi đã không trở thành một coder như hiện tại. Và cũng nhờ thầy mà tôi với quen biết bạn Giám đốc Nghĩa và trở thành một thành viên của EitGuide và nhờ vào đó mà tôi mới có dịp “tung hoành dọc ngang” với các bạn.

Tất nhiên, tôi không chỉ dừng lại ở Android, mà từ “bệ phóng” đó, tôi “bò” sang Web, Server, Flutter, iOS, macOS và Electron nữa, đủ để tôi có thể làm được những sản phẩm “mì ăn liền” trên mọi địa hình thường gặp. Vì thời gian khá rảnh rỗi, nên tôi “thích” món nào là học ngay món đó. Do đó, bạn thấy tôi có kiến thức tương đối rộng về các lĩnh vực lập trình phổ biến. Mặc dù vậy, tôi cũng không phải là thần thánh gì, khi kiến thức chỉ có độ rộng, mà không có độ sâu. Và những lĩnh vực “hạng nặng” như ML thì tôi không có khả năng theo đuổi tới cùng.

Do đó, khi bạn hỏi tôi muốn thành coder (chí ít là amateur như tôi) thì bạn cần phải có những kĩ năng sau:

  • Tiếng Anh: Đây là điều quan trọng nhất, và nếu bạn thấy tiếng Anh của bạn kém, bạn vui lòng học tiếng Anh trước, chí ít ở mức đọc-viết để hiểu các tài liệu và biết viết ý tưởng của mình bằng tiếng Anh vào khung tìm kiếm Google.
  • Code mình sai thì mình nên đọc lại, và chạy tay lại, và sau này đọc logcat để hiểu “cái máy nó chạy code mình như thế nào?”.
  • Nói về logcat hay console, bạn phải hiểu được ở đâu là output do app mình print ra, và output nào là của hệ thống. Có rất nhiều bạn, cóp cái output lỗi của hệ thống, chẳng hạn như BluetoothAdapter, ra và nói app của bạn bị lỗi ở dòng đó!
  • Bạn phải giải thích được ý tưởng của mình một cách dễ hiểu nhất để ai cũng có thể hiểu được và tuyệt đối “cấm” không bao giờ mô tả theo kiểu người đang được nhờ đang đi guốc trong bụng bạn, biết được từng dòng code của bạn. Điều này là vô cùng tối kị. Sau này, nếu kiến thức của bạn đã kha khá và bạn bắt đầu giúp đỡ những người khác, bạn có giúp được người khác nếu không hiểu họ đang nói gì hay không? Theo Thầy Khoa (và tôi cảm thấy đúng vô cùng), người code giỏi không phải là người code những thứ trên trời, mà là người viết code ra sao mà ai cũng đọc và hiểu được. Nếu lời và code của bạn chỉ có mỗi bạn hiểu, thì không ai giúp bạn được.

Với vài lời “tự bạch” như trên, tôi hi vọng các bạn hiểu về quá khứ của mình. Và nếu bạn không được đào tạo chính quy, thì bạn vẫn có thể code máu me như thường. Quan trọng là bạn có muốn tự học hay không. Thậm chí, những sinh viên đại học ngành CNTT mà không tự nghiên cứu học hỏi, để khi đi thi thì chụp ảnh đề thi post lên các group cầu khẩn sự bố thí của các thành viên khác cho đủ điểm qua môn, những người đó còn thua kém bản thân bạn nữa. Vì vậy, bạn thích code và có khả năng tự học, muốn học cho chính bản thân bạn, thì không có lí do gì mà bạn không học. Everybody can, you can.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.