Tag Archives: senior developer

Lightning Talk Kì 12 – Lập trình viên thì kiếm tiền kiểu gì?

Lâu lâu Code Dạo đổi style Lightning Talk cho đỡ nhàm chán nha. Quý vị thích style này hơn hay style bình thường hơn nào.

Bốn con đường kiếm tiền từ nghề lập trình:

  1. Làm freelance
  2. Tạo sản phẩm để bán
  3. Đi làm và lãnh lương
  4. Mở công ty hoặc khởi nghiệp

Channel Tôi Đi Code Dạo là nơi mình chia sẻ những kiến thức, kinh nghiệm về ngành lập trình mà mình đạt được trong quá trình làm việc.

Những kiến thức này sẽ biến các bạn từ một coder trở thành developer – lập trình viên thứ thiệt.

Nhớ ghé thăm và subscrible channel để xem clip mới vào tối t3 và t6 hàng tuần nha: https://www.youtube.com/c/toidicodedaoblog

Bài viết gốc: https://toidicodedao.com/2017/07/11/kiem-tien-tu-lap-trinh

Advertisements

Lightning Talk Kì 11 – Học thuật toán để làm cái vẹo gì??

Mình thường nghe các bạn sinh viên hỏi về tầm quan trọng của việc học thuật toán. Ý kiến của các bạn được chia làm hai luồng trái chiều là:

  1. Thần thánh hoá thuật toán
  2. Coi thường thuật toán

Vlog này sẽ giúp các bạn trả lời câu hỏi “Học thuật toán để làm cái vẹo gì?”, cũng như có cái nhìn khách quan hơn về thuật toán và những kinh nghiệm học nhé!

Các link liên quan:
– Sách Cracking the Coding Interview: https://toidicodedao.com/2015/07/14/mot-so-cau-phong-van-thu-vi-ve-lap-trinh/
– Học thuật toán để làm gì: https://toidicodedao.com/2016/10/06/hoc-thuat-toan-de-lam-gi/

Các bạn nhớ ghé thăm và subscribe channel của Tôi Đi Code Dạo để xem nhiều clip thú vị hơn nhé: bit.ly/codedaotube

Đừng chỉ hỏi Làm Sao (How), mà hãy hỏi Tại Sao (Why)?

Hôm trước, mình có viết một bài để “chửi nhẹ” những bạn lười học, lúc nào cũng hỏi “Có nên học cái này cái kia không?”

Tuy vậy, mình cũng biết những bạn rất thích công nghệ, ham học hỏi, thích tìm hiểu công nghệ mới.

Tuy vậy, các bạn này lại dễ sa đà vào tình trạng biết rộng mà không sâu, chỉ học và biết toàn những kiến thức bề mặt. (Thấy khổ chưa, lười học cũng bị chửi, mà học nhiều thứ quá cũng bị thằng Code Dạo nhắc nhở!)

Học ít học nhiều thì thằng Code Dạo cũng chửi được

Nguyên nhân dẫn đến chuyện này là các bạn chỉ biết hỏi Làm sao để làm (How), mà quên hỏi Tại sao phải làm (Why).

Do vậy, hôm nay chúng ta cùng nói về tầm quan trọng của việc đặt câu hỏi nhé!

Continue reading Đừng chỉ hỏi Làm Sao (How), mà hãy hỏi Tại Sao (Why)?

Lightning Talk Kì 10 – Những khó khăn thường gặp khi mới học lập trình

Lần trước có bạn hỏi mình về những khó khăn mà các bạn sinh viên mới học lập trình hay gặp phải, cùng với cách vượt qua chúng.

Do vậy hôm nay mình sẽ làm vlog chia sẻ nhé, những khó khăn này là:

  1. Viết code chậm, lỗi nhiều, code sai
  2. Cảm thấy nản vì chương trình học quá mệt và nặng
  3. Mất phương hướng vì có quá nhiều lựa chọn
  4. Tẩu hoả nhập ma vì có quá nhiều thứ để học
  5. Tự ti vì sợ thua kém bạn bè

Các bạn nhớ xem vlog để biết cách vượt qua chúng nhé.

 

Mình đăng trên Channel Youtube trước blog và fanpage khoảng vài hôm. Bạn nào muốn xem trước tiên thì subscribe channel của mình nhé: https://www.youtube.com/c/toidicodedaoblog

Công cụ đơn giản, bá đạo mà 69.96% sinh viên IT không biết – Phần 2 : Profiler và Command Line

Nối tiếp phần 1, mình sẽ tiếp tục giới thiệu về những công cụ đơn giản, bá đạo mà truờng không hề dạy, làm đồ án cũng không bao giờ dùng. Tuy nhiên, chúng lại đuợc áp dụng trong 96.69% dự án thực tế.

Thông qua những câu chuyện ngắn gọn, mình sẽ giới thiệu và giải thích về các công cụ này nhé. Chúng lần lượt là:

  • Phần 1: Unit Test và Logging
  • Phần 2: Profiler và Command Line

Nhắc lại một tí, hai nhân vật chính trong câu chuyện này là:

  • Tùng, một sinh viên Ép Tao Dê mới ra trường, gia nhập công ty phần mềm Ép Dê Tao với vị trí junior.
  • Sơn, một anh senior dev kì cựu cao to sáu múi.

Profiler – Code chậm thành nhanh, không còn memory leak

Chuyện thứ 3: Mấy tháng sau, Tùng đã không còn là junior developer nữa mà đã… lên chức thành developer. Anh Sơn cũng từ vị trí senior developer leo lên techinical lead.

Duyên trời run rủi, hai người lại bị điều vào chung 1 dự án. Đây là một dự án C#, công việc chính cũng là bảo trì và thêm chức năng mới.

Vì dự án đã được phát triển từ 5,6 năm trước nên code rất nhiều, cấu trúc vô cùng rắc rối và phức tạp. Hồi trước chỉ có khoảng 100-200 user nên không sao, bây giờ hệ thống đã lên tầm 50-100k user nên hệ thống bắt đầu bị chậm, lâu lâu lại crash vì thiếu RAM.

Nhận trọng trách mới, Tùng bắt tay vào optimize code để hệ thống chạy nhanh hơn, ít tốn RAM hơn. Tùng cắm đầu cắm cổ áp dụng đủ mọi kiến thức từ đổi thuật toán, thêm caching, thay ORM. Thế nhưng, sau một tuần, hiệu suất chỉ tăng mỗi … 5-10%.

Thấy tội nghiệp, anh Sơn liền ra tay, hướng dẫn Tùng cách dùng profiler.

Profiler là một công cụ cho phép ta đo đạc thời gian hoạt động, tài nguyên mà các đoạn code sử dụng, từ đó optimize cho hợp lý.

C# Profiler trong Visual Studio
Tùng lần luợt làm theo 4 bước:

  1. Chạy code cùng với profiler một thời gian
  2. Dựa theo profiler tìm, các đoạn code chạy chậm nhất, tốn tài nguyên nhất
  3. Optimize các đoạn code đó
  4. Chạy lại profiler để check kết quả

Đêm đó, hai anh em Sơn Tùng thức suốt đêm tại công ty để tình thương mến thương,… nhầm, để optimize code.

Hoá ra do mỗi lần truy cập, chương trình lại đọc thông tin từ một file text vài trăm MB trên ổ cứng, sau đó không close connection nên bị memory leak.

Anh Sơn chỉ việc load toàn bộ thông tin này lên RAM làm cache, hệ thống chạy nhanh gấp… 5 lần, hết tràn RAM chỉ nhờ 10 dòng code và profiler.

Nhờ profiler, Tùng và anh Sơn nhanh chóng optimize code và fix đuợc memory leak
Bài học rút ra: Profiler là một công cụ rất mạnh mẽ nhưng ít bạn biết vì … làm bài tập và dự án trên trường có bao giờ phải optimize code đâu.

Mỗi ngôn ngữ thường đi kèm với profiler, có khi tích hợp sẵn trong IDE luôn. Do vậy, khi cần optimize code, các bạn hãy nhớ đến profiler nhé.

Command Line – Cảnh giới “thần thánh” không cần chuột

Chuyện thứ tư: Một hôm nọ, Tùng may mắn được ngồi cạnh pair programming với anh Sơn. Tùng để ý anh rất ít khi dùng chuột mà chỉ toàn dùng bàn phím gõ gõ, trên màn hình đen thui nhấp nháy.

Thắc mắc, Tùng hỏi: Sau anh không dùng giao diện cho dễ mà gõ gõ chi vậy anh?

Anh Sơn trả lời: Hở? Em vẫn còn dùng giao điện àh? Chuyển qua dùng Terminal và Vim đi! Tăng ít nhất 50% năng suất làm việc đấy!

Bán tín bán nghi, Tùng cũng bắt đầu tập sử dụng command line và Vim trong các công việc thường ngày: Sửa file, build code, chạy code.

Sau một thời gian, Tùng nhận thấy mình bắt đầu viết code nhanh hơn, thực hiện công việc nhanh hơn, năng suất tăng còn hơn 50% mà anh Sơn đã quảng cáo.

Nhờ làm việc chung với anh Sơn, Tùng cảm thấy trình độ của mình ngày một tăng, tình cảm “chong xáng” dành cho anh cũng tăng theo.

Sự bá đạo của Command Line. Ảnh chôm của codeaholicguy
Command Line là một công cụ vô cùng mạnh mẽ mà nhiều bạn sinh viên/lập trình viên bỏ qua, do đã quá quen thuộc với Windows và IDE.

Ta có thể build code từ command line, sử dụng Git từ command line, thậm chí upload file hoặc deploy code từ command line nốt.

Command Line còn được những bạn làm về mạng hoặc sysadmin ưu dùng. Khi quản lý các server Ubuntu, bạn sẽ không thể dùng giao diện và click như Window mà phải SSH để kết nối tới server, sau đó dùng command line để quản lý.

Hoặc nếu bạn làm Front-end developer, command line càng là người bạn không thể thiếu. Hầu như các tool của mảng front-end (Babel, Webpack, npm) đều dựa trên nền NodeJS, chạy trên command line. Thành thạo command line là nền tảng để sử dụng các tool này.

Do đó, mình khuyến khích các bạn nên học và làm quen cách dùng command line nhé! Ví dụ như trong clip dưới, mình và Codeaholicguy có huớng dẫn cách dùng Git trên command line.

Bạn có thể cài Bash trên Windows 10, hoặc kiếm một con VPS Ubuntu để tập nghịch command line nhé. Ngoài ra, bạn có thể đọc cuốn này để nhập môn cách dùng command line: Learn Enough Command Line to Be Dangerous.

Nếu bạn có hứng thú thì cứ để lại comment nhé. Nếu có nhiều người quan tâm thì sau này mình sẽ có một series riêng về cách dùng command line nha!

Chuyện cuối cùng

Sau đó, anh Sơn và Tùng nhận ra tình cảm của mình dành cho nhau. Hai người sống hạnh phúc bên nhau đến cuối đời. Họ có với nhau một đứa con xinh xắn tên là Sơn Tùng MTP.

Từ đó Tùng và anh Sơn sống hạnh phúc bên nhau đến cuối đời
Các bạn có thể sẽ thắc mắc: Tại sao ngay từ đầu anh Sơn không vô giúp đỡ Tùng mẹ nó đi, chờ nó te tua rồi mới nhảy vô vậy?? Đương nhiên anh Sơn có thể làm vậy, nhưng để Tùng tự va chạm, tự trải nghiệm sẽ giúp Tùng học được nhiều hơn, nhớ lâu hơn.

Do vậy, khi gặp khó khăn, các bạn có thể hỏi người có kinh nghiệm hơn. Tuy nhiên, hãy tự mình tìm hiểu trước, vừa để cho bản thân mình, vừa tiết kiệm thời gian của người khác nhé!

Kết

Đấy, trong 2 phần của bài viết, mình đã chia sẻ về bốn công cụ đơn giản, mạnh mẽ nhưng rất hữu ích bao gồm:

  1. Unit Test
  2. Logging
  3. Profiler
  4. Command Line

Bạn còn biết công cụ nào nữa không? Hãy chia sẻ và thảo luận trong phần comment nhé ;).

Lightning Talk Kì 8 – Kinh nghiệm viết CV và phỏng vấn xin việc

Ở kì này, mình sẽ chia sẻ những kinh nghiệm viết CV và quá trình phỏng vấn xin việc cho các bạn sinh viên IT nhé. Những kinh nghiệm quí giá này trong trường họ không dạy đâu.

Các bạn có thể xem thêm những bài viết liên quan:

 

Mình đăng trên Channel Youtube trước blog và fanpage khoảng vài hôm. Bạn nào muốn xem trước tiên thì subscribe channel của mình nhé: https://www.youtube.com/c/toidicodedaoblog

Hiện tại đã được gần 4000 sub, nếu lượng subscribe được 5000 mình sẽ cố gắng livestream trên Youtube thường xuyên hơn để tri ân nhe, cảm ơn mọi người 😉.

Lightning Talk Kì 7 – Ba bước “đơn giản” để học công nghệ mới

Ở kì này, mình sẽ chia sẻ 3 bước “đơn giản” mà mình hay áp dụng để học một công nghệ mới nhé.

Mình đăng trên Channel Youtube trước blog và fanpage khoảng vài hôm cho đến một tuần. Bạn nào muốn xem trước tiên thì nhớ vào subscribe channel của mình nhé: https://www.youtube.com/c/toidicodedaoblog

Channel hiện đã đạt được 2700 subscribe nên mình sẽ ra vlog Lightining Talk vào tối thứ 3 hàng tuần để tri ân nhe. Cảm ơn bà con cô bác đã ủng hộ thiệt nhiều!