All posts by Phạm Huy Hoàng

Tôi là Phạm Huy Hoàng, một developer. Thuở còn là sinh viên, tôi từng có những thắc mắc, trăn trở về technical, về con đường nghề nghiệp, nhưng không có ai giải đáp. Blog này là nơi tôi chia sẻ những kiến thức, kinh nghiệm mà mình đạt được trong quá trình làm việc và trải nghiệm. Mong rằng nó sẽ giải đáp phần nào những khúc mắc, trăn trở cho những bạn sinh viên như tôi ngày xưa. Cảm ơn bạn đã bỏ thời gian đọc những dòng tôi chia sẻ.

Series Phản Phác Qui Chân – Học thuật toán để làm 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 như sau:

  • Thần thánh hoá thuật toán: Muốn lập trình giỏi phải giỏi thuật toán. Các công ty lập trình lớn toàn phỏng vấn về thuật toán còn gì.
  • Coi thường thuật toán: Thuật toán là cái thứ vô dụng, mấy anh đi làm nói là có dùng bao giờ đâu.

Bài viết 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.

Continue reading Series Phản Phác Qui Chân – Học thuật toán để làm vẹo gì???

Series Bảo Mật Nhập Môn – Giao thức HTTP “bảo mật” đến mức nào?

Sau một khoảng thời gian vật vã thì mình cũng hoàn thành bài đầu tiên trong series Bảo Mật Nhập Môn. Bài viết này sẽ bàn về sự “bảo mật” của giao thức HTTP.

Website của Lazada và Ngân hàng ACB sẽ bị lôi ra làm ví dụ. Vì bài viết khá dài nên các bạn cứ từ từ đọc nhé.

Ôn lại về HTTP

HTTP là một giao thức dùng để truyền nhận dữ liệu (Xem thêm ở đây). Hiện tại, phần lớn dữ liệu trên Internet đều được truyền thông qua giao thức HTTP. Các ứng dụng Web hoặc Mobile cũng gọi Restful API thông qua giao thức HTTP.

Tuy nhiên, nhược điểm của HTTP là dữ liệu được truyền dưới dạng plain text, không hề được mã hoá hay bảo mật. Điều này dẫn đến việc hacker có thể dễ dàng nghe lén, chôm chỉa và chỉnh sửa dữ liệu. Người ta gọi kiểu tấn công này là Man-in-the-middle attack, viết tắt là MITM.

Continue reading Series Bảo Mật Nhập Môn – Giao thức HTTP “bảo mật” đến mức nào?

Đừng để mình trở thành coder “siêu nhân”

Từ chuyện ngày xưa

Ngày xửa ngày xưa, à thật ra cũng không xưa lắm, khoảng những năm 75-90, có một số lão lập trình viên rảnh hơi, thực hiện một số nghiên cứu rảnh hơi để … đo năng suất làm việc của developer.

Kết quả thu được thật đáng ngạc nhiên! Chênh lệch về năng suất làm việc của 2 developer là rất lớn. Một developer giỏi có thế có năng suất gấp 10 lần một developer khác.

Người đời gọi những developer giỏi này là rockstar developer, 10x developer. Huyền thoại về các developer “siêu nhân”, “thần thánh” cũng ra đời từ đó.

rock-star-developer-or-programmer

Continue reading Đừng để mình trở thành coder “siêu nhân”

Series Phản Phác Qui Chân – Luận về Optimize Code

Đa số các bạn newbie thường phạm phải một sai lầm cơ bản: Quá mức quan tâm về tốc độ thực thi của code,  của ngôn ngữ lập trình. Đây là một thói quen nên bỏ!

Trong bài viết hôm nay, mình sẽ giải thích về việc tối ưu code: Optimize code một cách pro nhất! Khi nào cần optimize, khi nào không nên optimize code?

Continue reading Series Phản Phác Qui Chân – Luận về Optimize Code

Lập trình viên có cần học đại học hay không?

Dạo gần đây mình hay gặp một số topic kiểu “Cảm thấy mất định hướng khi học Đại học”, “Liệu em có nên bỏ Đại Học hay không?”, “Kiến thức Đại học toàn thứ vô bổ!”. Các topic này cho thấy nhiều bạn sinh viên đang cảm thấy hoang mang về giá trị của việc học đại học.

Do vậy, mình viết bài này để phân tích những cái lợi của việc học Đại Học, giúp các bạn trẻ vững tin hơn trên con đường đã chọn.

Continue reading Lập trình viên có cần học đại học hay không?

Review sách: SQL Antipatterns – Những sai lầm chết người khi làm việc với SQL

Giới thiệu

Mấy hôm trước, khi mình lên stackoverflow hỏi một số câu liên quan tới SQL thì nghe nhắc tới khái niệm SQL Antipattern. Khác với design pattern, anti pattern là những cách thiết kế để giải quyết vấn đề, nhưng sử dụng nó lại… gây ra nhiều vấn đề hơn. Một antipattern được nhiều người biết đó là hút thuốc lào thay cho thuốc lá, cách này cai được thuốc lá nhưng sẽ gây ra nhiều vấn đề vệ sinh và môi trường hơn.

Từ hồi dùng thứ này bố bỏ hẳn thuốc lá nhá
Từ hồi dùng thứ này bố bỏ hẳn thuốc lá nhá

Tìm hiểu sâu hơn, mình tìm thấy cuốn sách “SQL Antipattern” này. Cuốn này được đánh giá rất cao trên amazon, nói về những sai lầm dễ mắc phải khi thiết kế và sử dụng SQL Database. Nội dung rất hữu dụng với các bạn database administator hoặc back-end developer nhé.

Screen Shot 2016-08-14 at 12.54.58

Continue reading Review sách: SQL Antipatterns – Những sai lầm chết người khi làm việc với SQL

Năm điều lập trình viên nên học hỏi từ Sơn Tùng MTP

Nhân dịp sếp Tùng đang hot, hôm nay mình lôi tên tuổi sếp Tùng vào bài viết để câu view và câu like.

Đùa đấy, dạo gần đây viết nhiều bài về technical căng thẳng quá nên viết bài này để đổi không khí một tí. Bài viết theo phong cách nhẹ nhàng hài hước nhưng nội dung hoàn toàn nghiêm túc, các bạn nhớ đọc kĩ nhé.

Chia sẻ luôn là mình không phải Sky, cũng không phải fan của Tùng. Chẳng qua là mỗi mỗi code thì mình hay để nhạc không lời hoặc nhạc Tùng làm background cho nhẹ đầu óc thôi. Nghe các thể loại nhạc sâu sắc khác mình không tập trung được.

son-tung-mtp-blogtamsuvn-52

Continue reading Năm điều lập trình viên nên học hỏi từ Sơn Tùng MTP

Series Bảo Mật Nhập Môn – Bảo mật cơ bản cho developer

Giới thiệu

Bảo mật là một vấn đề rất tốn kém và phức tạp. Gần như hệ thống nào cũng có lỗ hổng (cả phần mềm lẫn phần cứng), các hacker có thể thông qua các lỗ hổng này để tấn công hệ thống.

Việc đảm bảo hệ thống bảo mật là trách nhiệm của rất nhiều bên: Sys admin, network, manager và developer. Do mình không chuyên về bảo mật nên mình không rành về việc config hệ thống mạng, setup tường lửa v…v, do đó mình sẽ không chém gió lung tung về mảng này. Thay vào đó, mình sẽ cùng các bạn tiếp cận khía cạnh bảo mật dưới góc nhìn của một developer.

Internet Security System

Những kiến thức trong series này rất cơ bản, dễ học, nhưng chúng sẽ vô cùng hữu ích, giúp bạn tránh phải những sai lầm bảo mật “ngớ ngẩn, cơ bản” khi code. Dù cho bạn code C hay C++, Java C# hay PHP, bạn cũng sẽ học được vài điều bổ ích qua series này.

Continue reading Series Bảo Mật Nhập Môn – Bảo mật cơ bản cho developer

Danh ngôn lập trình – Giải thích và bình luận

Danh ngôn là những câu nói đơn giản, ngắn gọn nhưng chất chứa bên trong cả một bầu trời chân lý. Danh ngôn dễ nhớ, dễ thuộc, đọc ít hiểu nhiều. Vì lẽ đó, hôm nay mình sẽ giới thiệu và phân tích một số câu danh ngôn … để đời của ngành lập trình.

Các bạn có thể thoải mái share mấy câu danh ngôn này để thể hiện mình “so deep”, hoặc ghi nhớ để lòe mấy đứa cùng lớp/cùng team khi nói chuyện nhé.

Phần bình luận là ý kiến cá nhân theo cách hiểu của tác giả, các bạn có thể bình luận chia sẻ cách hiểu của các bạn, hoặc góp thêm danh ngôn cho vui.
Continue reading Danh ngôn lập trình – Giải thích và bình luận

Tạm biệt Lancaster ISS – Tạm kết thúc kiếp code dạo nơi xứ người

Đầu tháng 9 này, mình sẽ tạm kết thúc năm đầu tiên của chương trình học Master, về Việt Nam vi vu đú đởn khoảng 1 tháng. Đầu tháng 10 mình lại phải qua Trung Quốc bán thận,… nhầm, bán thân khoảng 6 tháng trước khi quay lại UK kết thúc chương trình học.

Vì lẽ đó, mình phải ngậm ngùi nói lời chia tay với team hiện tại. Lần này, mình viết một bài review nho nhỏ về những trải nghiệm bản thân trong thời gian gần đây.

Continue reading Tạm biệt Lancaster ISS – Tạm kết thúc kiếp code dạo nơi xứ người