Chia sẻ kinh nghiệm khi học CNTT cùng Bà Na

30
2904

Ta thường có nhiều cách để học 1 điều mới , nhưng chung quy lại vẫn là tiếp thu bằng cách: nhìn nhận và lặp lại vấn đề.

Ngặt nỗi ta ngại tiếp thu – lại hay bỏ xó kiến thức khi không dùng tới, nên trong bài viết này, mình sẽ cố gắng truyền lửa cho anh em đam mê và chia sẻ anh em kinh nghiệm để giúp anh em bớt buồn phiền hơn khi học CNTT. Đã lâu rồi không type 1 dòng code nào từ khi chuyển qua làm Web bằng WordPress. Cũng khá là chăm xem Medium, Github Trends hay Kipalog như 1 thói quen, cũng ồ lên khi thấy 1 repo thú vị để rồi qua loa xem readme.md, nhanh tay Star để bookmark rồi lại bỏ xó.

Đây là list nhạc cho người hay xao nhãng, bấm play để nghe và xem hết bài. Nếu nản, đừng bookmark trên Chrome mà hãy note ra giấy hoặc note trên Stickynote. Bởi: bookmark trên Chrome là công cụ mình hay thêm, ít khi xoá và hem bao giờ xài.

Là 1 dev, kinh nghiệm của bạn là gì?

Tiện đây chia sẻ cách học cũng như làm việc của mình và nói luôn nó tỏ ra khá hữu ích – ít nhất là với mình:

1. Sách và cách đọc:

Chăm xem sách xíu, mình đang đọc quyển Everybody Lies: Big Data, New Data….. cũng khá cuốn. Mình chọn nó đơn giản vì review cao trên Amazon, không dày, tầm 200 trang. Lâu lâu cũng nên cho mình vài thú vui, với mình là đọc mấy quyển truyện, ngày 2 ván liên minh để đời nó sinh động.

Đọc tuts, document,…. bằng tiếng anh:

Trên máy tính rất dễ cài từ điển:

Sau khi cài từ điển, không hiểu từ nào thì double Click, tránh việc kéo cả đoạn để dịch.  Và mình không cố gắng để nhớ, vì mình chỉ cần em nó lúc đó, dịch hoài thì tự vô đầu. Nếu bài viết hoặc sách nào khó hiểu thì thường 6-8 dòng mình sẽ kéo 1 đoạn và dịch để hiểu tổng quát. Hãy để mọi thứ tự nhiên vô đầu bạn.

Trên Kindle: mình ít đọc sách IT trên này. Còn sách đọc cho biết với ngta thường mình sẽ đọc tiếng Việt trước. Do Kindle không có từ điển tiếng Việt nên mình dùng từ điển Oxford. Thường mình sẽ đọc bất chấp, không hiểu cũng kệ và đoán nghĩa. Cách này khá nản nếu chưa đọc bản Việt.

2. Tiện ích gối đầu cho anh em dev:

Github – tài nguyên vô hạn:

Có 1 thú vui là mỗi ngày mình đều lướt Github Trends nên hay bắt gặp nhiều repo thú vị, mình sẽ star và có 1 thói quen nhỏ là hay xem lại star của Github cũng như Bookmark của Medium. Repo JS hoặc PHP, Python mình clone trực tiếp về chạy test thử, và…… “biến nó thành của mình”. Kaka.

Bạn có thể thấy trong ảnh, star tận 1k1 nhưng repo chỉ có 67 vì đa số mình folk lại chứ cũng không đóng góp được gì. 

Một mẹo nhỏ khác: dùng từ khoá “awesome + điều bạn muốn tìm hiểu”. Ví dụ: awesome javascript trên thanh tìm kiếm của Github. Những repo này tổng hợp nhiều điều vui vẻ về công nghệ bạn muốn tìm hiểu.

Tìm hiểu về Stackoverflow: 

Nếu bạn mới bắt đầu, hãy hỏi thật nhiều bởi vì:

  • Bạn sẽ học được cách tạo nick mới mỗi ngày.
  • Làm quen với cách Stackoverflow hoạt động.

1 vài mẹo trong Editor của Stackoverflow nếu bạn là người mới:

  • Format code: chọn vùng code, nhấn Ctr+K nếu code >3 dòng.
  • Nếu <3 dòng, hãy dùng dấu ‘’

Ban đầu không được đăng ảnh cũng như vote, vì vậy hãy học cách trả lời, kiếm vote từ câu hỏi thì khó chứ từ việc trả lời khá là dễ dàng.

Xem: https://meta.stackexchange.com/questions/17204/six-simple-tips-to-get-stack-overflow-reputation-fast

Nếu được, hãy quay ảnh động gif vấn đề bạn đang mắc phải để người giúp hiểu vấn đề dễ hơn.

Sau khoảng 3 tháng kinh nghiệm, hãy trả lời kèm hỏi. Sau 6 tháng, hãy dành thời gian đọc những câu trả lời hay, thêm câu trả lời thú vị vào Favorite.

Mình đã thêm câu: Dùng curl để lấy file từ Google Drive vào mục Favorite của Stackoverflow và liên tục xài nó bởi mình hay upload source lên Google Drive và lên con VPS ghẻ để curl về VPS chứ xài FTP tới tết công gô cũng chưa upload xong.

Ứng dụng thú vị để học:

Mình cũng có thói quen nhỏ là đọc code trên iPad bởi tính tiện dụng của nó. Cái này chắc nhiều anh em chê cười, nhưng kệ, chia sẻ anh em 1 app rất thú vị tên là Working Copy.

Nhấn để cài đặt trên iOS.

Hạn chế việc tải, cất và bơ luôn, không bao giờ xem.

Thường ae lên J2Team hoặc lên sharengay get khoá học Udemy về xem. Mình cũng từng 1 thời cài cắm torrent hay tải nguyên đống video trên Youtube. Thời gian tải còn nhiều hơn thời gian bỏ ra để xem hoặc học. Đây là trái đắng thực tế mình đã trải qua, mình tải 1 đống khóa học về làm game trên Unity, asset, scene các kiểu nhưng chưa bao giờ đụng. Ổ hơn 256GB này tồn tại từ năm nhất tới ra trường, sau 2 năm ra trường thì ổ cứng tự hỏng. Trước đó mình có mở ra xem vài lần, do quá nhiều nên nản.

Cách research trên google:

  • Về 1 mã lỗi: copy nó và dán thẳng lên google, đừng quá dài.
  • Về 1 vấn đề: ghi thẳng vấn đề, nên thêm hậu tố ví dụ như tên công nghệ vào sau: Elixir, Rust, JS, Python, C#,…

Thói quen xem tin:

Tập làm quen với việc xem blog để học hỏi, danh sách website mình vẫn cuồng tới giờ:

  1. https://github.com/trending
  2. https://medium.com/top-stories
  3. https://kipalog.com/posts
  4. https://reddit.com/r/programming
  5. https://codepen.io

Trong 5 site này thì:

  • 2 site đầu ngày nào mình cũng ghé.
  • Kipalog tuần ghé 2 lần.
  • 2 site cuối thì tuỳ hứng.

Học cách chia nhỏ vấn đề và tìm giải pháp khác khi gặp khó.

Nếu làm chung với team thì có thể trao đổi cùng anh em. Mình thường tìm trước trên Stackoverflow, nếu không ra mình dành 20 phút để hỏi. Nếu không được mình mới hỏi anh em trong team.

Nên: tạo 1 blog nhỏ, ghi những điều vui vẻ và quảng bá nó.

Tuy nhỏ nhưng nó sẽ lớn trong tương lai. Kiến thức của bạn, kinh nghiệm của bạn, các bạn trẻ đọc, các bạn hem hiểu nhưng chắc thấm (:troll). Bạn không nhận được gì? Đúng rồi, bạn chẳng nhận được gì ngoài niềm vui nhỏ khi thấy có người xem hay comment. Mình làm trang sharengay.com vs mục đích là 1 trang web nhỏ như thời xtgem, nơi có quyetdaika,.. vui vẻ với ae là chính, nhưng mình rất hi vọng nó sẽ lớn lên.

Thêm 1 kinh nghiệm nữa, đó là hãy bắt tay làm 1 dự án thực tế vì bạn chỉ động não khi đụng việc mới tìm hiểu, việc bổ sung kiến thức là rất quan trọng.

Mình có vài repo trên github khá hay cho anh em.

(sẽ cập nhật khi có máy tính, mình đang ở quê không update được)

Hãy bắt tay vào làm cái gì đó, nếu dừng bạn mãi mãi ở đó thôi.

Dành thời gian 1 chút để tìm hiểu những công nghệ mới vui vẻ, Machine Learning là gì mà dân tình đồn rần rần hay làm sao để viết 1 ứng dụng nhỏ dùng GraphQL?

Khi hứng thú, hãy bắt tay vào làm, từ những cái nhỏ, khi làm sẽ phát sinh. Buộc bạn phải tìm hiểu. Nếu bạn nghĩ những cái bạn làm vô ích? Vậy hãy dành chút thời gian chọn cái mà bạn nghĩ rằng có ích trước khi làm. Thực tế những lợi ích trong tương lai mình có thể kể ra như:

  • Thêm vào CV xin việc.
  • Kiến thức bạn học được khi làm nó.

Sử dụng ghi chú: 

Mình hay dùng ghi chú build-in của trang web. Ngoài ra thường dùng StickyNote để note nhanh và xoá nhanh. Ghi chú quan trọng mình sẽ dùng Google Sheet cho cá nhân hoặc Trello với nhóm.

Mình sẽ kết thúc bài viết này bằng 1 ví dụ thực tế về 1 dự án vui vẻ và những điều mình học từ nó.

Công ty mình có cái framework để build những web app dạng quản lý như: vé máy bay, quản lý khách hàng. Công việc bọn mình là thiết kế database và viết query theo điều kiện khách hàng đưa ra.

Hôm đó nhận được 1 dự án bán hoa, khách hàng yêu cầu:

  • Web quản lý khách hàng, hoa hoè các kiểu.
  • Viết con app trên Android tương tác với web quản lý trên cho nhân viên ổng xài để ghi âm cuộc gọi và lưu lại thông tin khách hàng.

Mục đích là: ông muốn biết khách đó tên gì, mua gì, mua bao nhiêu lần trong tháng, thói quen mua hoa gì, địa chỉ ở đâu, có hay đặt để gửi tới địa chỉ nào,..

Yêu cầu là: khi ngta gọi tới, trên điện thoại lập tức send 1 request lên server gồm tên(nếu có), số điện thoại, thời gian bắt đầu. Lúc này server luôn luôn lắng nghe, luôn luôn kết nối sẽ nhận được request này và ngay lập tức trang web hiển thị popup có người gọi, khi nhân viên nghe thì app ghi âm làm nhiệm vụ chính là ghi âm. Sau khi ngắt cuộc gọi, mới kết nối được mạng và gửi file ghi âm lên server của trang web. Nhân viên sẽ update thêm thông tin. Cái này lúc đó với mình khá lạ vì mình nghĩ nhân viên có thể tự ghi được, đâu cần thiết. Mà kệ, cứ yêu cầu thì làm.

Mình đã học được gì?

Android là 1 thế giới phân mảnh, nơi bạn còng lưng ra fix hết mớ phân mảnh. Do nhân viên của ông khách dùng điện thoại Gionee nhòn giống mấy con Samsung Galaxy Y nhỏ xíu, mua hẳn 10 cái chắc cho rẻ, chạy Android 4.1 hay 4.4, không hỗ trợ hàm hay api gì đấy mình không nhớ rõ, nhưng lúc sau fix được. Còn ông khách dùng Android 6 trên con Galaxy S6 thì bị Google chặn việc ghi âm y chang trên iOS, nói chung mình mới lú đầu vô thế giới Android cũng không rành lắm và không fix được. Thật đau đầu khi mình test trên đống Android device của mấy ông anh trên công ty đều hoạt động hoàn hảo.

Học được việc tối ưu code của bạn và có 1 timeline rõ ràng về các thiết bị sẽ được hỗ trợ cũng như phiên bản Android. Code sẽ càng lúc càng phình to vì 1 đống phụ code để hỗ trợ nhiều Android device cũng như Android version.

Khi người dùng ghi âm <5s thì không send lên server.

Làm cái gì cũng phải check điều kiện, kiểm tra null, đặt try catch rõ ràng.

Bạn phải lưu file ghi âm cả trong app bởi dữ liệu gửi lên server không phải lúc nào cũng toàn vẹn.

Dữ liệu người dùng rất quan trọng, nên hãy cẩn thận khi xử lý hoặc xoá.

Tuỳ chọn không sync, khi nào về có mạng mới sync, vì ông sếp này cũng dùng app và thường ra ngoài, không phải lúc nào cũng có mạng như nhân viên trực nghe điện thoại. Ông yêu cầu tính năng này và khi sync lên thì dữ liệu bị conflic, trùng thì ghi đè. Khi sync thành công thì hiện icon nhỏ mỗi file tick xanh là hiểu.

Học được cách tăng trải nghiệm người dùng, vì mình code mấy cái kia tốn nhiều thời gian, nhưng tính năng thông báo icon màu xanh khi sync thành công tốn rất ít thời gian thì lại được ông khách bo thêm 500k. Lương tháng 4tr với mình đó là 1 số tiền lớn.

Mình không nói sâu về quá trình xây dựng vì đây là dự án Android đầu tiên của mình và cũng cách đây 3.5 năm rồi, hiện tại source và demo đã đi theo gió. Trước đó mình chỉ code C# và nhảy trực tiếp qua Java và thấy không khó lắm trong việc tiếp cận. 

Vì vậy việc research và tư duy rất quan trọng, mình không nói bạn học được ngôn ngữ này sẽ nhai được ngôn ngữ khác, nhưng nó là bước đệm rất tốt để bạn bắt đầu với 1 điều mới mẻ.

Hi vọng là bài viết của mình sẽ truyền “lửa” cho anh em dev cũng như hi vọng anh em dành chút thời gian ghé thăm website sharengay.com, comment gì đó vui vẻ cũng được để nhiều người biết tới website của mình hơn.

Chia sẻ kinh nghiệm khi học CNTT cùng Bà Na
4.9 (97.56%) 41 votes

30
Bình luận bài viết

avatar
12 Comment threads
18 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
13 Comment authors
K-2Phú Cường BloggerBùi Gia TiếnTrần cẩm châuNghĩa Võ Recent comment authors
mới nhất cũ nhất like nhiều nhất
K-2 | <span class="wpdiscuz-comment-count">1 comments</span>
Khách
K-2 | 1 comments

Mình biết đến bạn và blog từ những bài viết trên J2team và Kipalog . Phải nói là các bài viết của bạn rất hay về hình thức, chất lượng nội dung, lối hành văn cũng rất hài hước và hóm hỉnh. Mình đã học được khá nhiều điều từ những bài chia sẽ này của bạn nên mình nghĩ cần để lại 1 comment để cảm ơn và giúp bạn có thêm động lực cho ra những bài viết hay và chất lượng hơn nữa. Chúc bạn có 1 buổi tối vui vẻ 😀

Phú Cường Blogger | <span class="wpdiscuz-comment-count">10 comments</span>
Khách
Phú Cường Blogger | 10 comments

Bài viết rất hay ạ. E cũng đã chuyển hướng từ ĐTVT qua CNTT theo mảng Dev Front End. E thì hay tự học trên w3schools và thực hành luôn tại đó, cũng lướt codepen.io đều đều, còn mấy trang còn lại a kể e chưa có vô nhiều lắm :3 Stackoverflow thì là nơi e thường xuyên ghé thăm để hỏi rồi. Và có 1 điều rất giống a lúc trước đó là save quá nhiều bài trên J2Team rồi để đó chứ thực tình chưa động vào mấy luôn :((

Bùi Gia Tiến | <span class="wpdiscuz-comment-count">18 comments</span>
Khách
Bùi Gia Tiến | 18 comments

Những kinh nghiệm như này rất bổ ích và thú vị

Trần cẩm châu | <span class="wpdiscuz-comment-count">2 comments</span>
Khách
Trần cẩm châu | 2 comments

cám ơn những kinh nghiệm quý báu của anh. Vote bài anh 5 sao un :3 hehe

Nghĩa Võ | <span class="wpdiscuz-comment-count">6 comments</span>
Khách
Nghĩa Võ | 6 comments

bài viết tâm huyết quá 😀

Nguyen Long | <span class="wpdiscuz-comment-count">6 comments</span>
Khách
Nguyen Long | 6 comments

Cam on bac. Em doc ben kipalog to mo ghe qua site bac thu. Rat hay, gui 1 comment coi nhu dong vien tinh than bac. Hi vong bac ra nhieu bai viet hon nua

Thủy Tổ | <span class="wpdiscuz-comment-count">1 comments</span>
Khách
Thủy Tổ | 1 comments

Lập trình viên ai cũng trải qua 1 lần giống thớt. Kết mỗi câu:

“Thời gian tải còn nhiều hơn thời gian bỏ ra để xem hoặc học. ”

Đảm bảo nhiều anh em cũng đã từng.

Espfake | <span class="wpdiscuz-comment-count">2 comments</span>
Khách
Espfake | 2 comments

Mình nghe đâu bạn đọc sách tiếng anh. Vậy bạn có giao tiếp hay làm việc với ng nước ngoài k

Linh iT | <span class="wpdiscuz-comment-count">10 comments</span>
Khách
Linh iT | 10 comments

Có bao giờ YOU cảm thấy chán và muốn bỏ ngang dự án mình đang làm.

YOU có phải kiểu người bắt tay vào làm 1 cái gì đó (nhiều giai đoạn). Mặc kệ thời gian, ăn uống… bất chấp làm cho xong 1 giai đoạn đó rồi mới nghỉ đến việc khác.

Cảm ơn về bài viết

Bích Phượng | <span class="wpdiscuz-comment-count">11 comments</span>
Khách
Bích Phượng | 11 comments

Quyetdaik.wap.sh
1 thời đã xa

nghia | <span class="wpdiscuz-comment-count">9 comments</span>
Khách
nghia | 9 comments

có khi nào ad thấy áp lực hoặc chán nản ko ah? Nếu có thì những lúc như vậy ad thường làm gì?

manh | <span class="wpdiscuz-comment-count">15 comments</span>
Khách
manh | 15 comments

Cảm ơn về bài viết ạ. Nhân tiện cho em hỏi em hỏi liệu có phần mềm nào tra từ khi đoc truyện tranh online ko ạ. Em cảm ơn