Là 1 lập trình viên, kinh nghiệm của bạn là gì?
kinh nghiệm
3
White

Hà Văn Lộc viết ngày 15/06/2018

Cập nhật: mình đang viết seri xây dựng web app dựa trên 1 bài viết tại Medium. Nếu quan tâm các bạn có thể ghé blog của mình để xem nhé.

Link đến bài viết: Xây dựng web app thời tiết đẹp với Angular 6 (Phần 1: thiết kế)
Link đến bài viết: Xây dựng web app thời tiết đẹp với Angular 6 (Phần 2: những dòng code đầu tiên)

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:

  • Chrome = Google Translate
  • Pdf, ebook text: QTranslate.

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 repo: 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.

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.

App: 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 đề, tránh dùng từ ‘how to’ và 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.

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)
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 GraphSQL?

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.

Bài viết này được trích lại từ blog của mình, hi vọng anh em xem vì mình dự định sẽ viết thêm nhiều bài vui vẻ hơn nữa. :)

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Hà Văn Lộc

3 bài viết.
62 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
26 8
Bài dịch còn nhiều sạn và theo sự hiểu biết ngôn từ hạn hẹp của mềnh, có thêm thắt và bỏ bớt 1 vài câu với mục đích giúp người đọc dễ hiểu hơn mà k...
Hà Văn Lộc viết 24 ngày trước
26 8
White
12 1
Website tui: https://sharengay.com , hi vọng các đồng chí đã đọc bài thì vào sharengay comment bài viết hộ nha. Vì cho đi là nhận lại.... Gửi các ...
Hà Văn Lộc viết 2 tháng trước
12 1
Bài viết liên quan
White
26 2
Khi các ban cố gắng học bất cứ ngôn ngữ cũng như coding skill nào, họ thường gặp một số thách thức tương tự như: Một số khái niệm có thể gây nhầm...
Hoàng Nguyễn viết hơn 2 năm trước
26 2
White
19 6
Cột mốc 1000 rep trên stackoverflow – Khoe khoang thành quả và chia sẻ kinh nghiệm LƯU Ý: ĐÂY LÀ MỘT BÀI VIẾT KHÔNG MANG TÍNH CHẤT TECHNICAL, CHỈ ...
Huy Hoàng Phạm viết gần 3 năm trước
19 6
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
3 bài viết.
62 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!