Tag Archives: phản phác qui chân

Series Phản Phác Quy Chân – Luận về nguyên lý Separation of Concerns (Chia Để Trị)

Đôi lời lý giải chút về tên series

返璞归真 – Phản phác quy chân: Lúc đạt đến điểm cao nhất, cũng chính là lúc quay lại điểm xuất phát. 
Trong võ học, nó có nghĩa là đạt tới cảnh giới “tối thượng” trong truyền thuyết, quay lại như lúc ban đầu, quên đi tất cả võ học trong thiên hạ, bản thân đã không còn chiêu thức cụ thể, chỉ dựa vào ý cảnh mà đơn giản xử lý.

Võ học được thành lập từ các chiêu thức cơ bản, tuyệt thế võ công cũng từ các chiêu thức cơ bản mà ra. Code học cũng tạo thành từ bit/byte cơ bản, chương trình phức tạp cũng được viết thành từ nhiều module, từ từng dòng code.

Đôi khi, ta đã quá quen với việc dùng thư viện, dùng framework mà quên thì những thứ nằm sâu bên dưới, không nắm được bản chất. Có những vấn đề mà phải nắm rõ bản chất của nó ta mới có thể giải quyết được.

Như cái tên “Phản Phác Quy Chân”, series này không giới thiệu công nghệ hay ngôn ngữ mới, mà sẽ tập trung quay lại những cái bản chất, đơn giản, tinh túy nhất mà ít người quan tâm để ý (Bên tiếng Anh có một từ tương tự : Back to Basic, bỏ qua những cái phức tạp, quay lại những cái cơ bản để hiểu tận gốc vấn đề).

 

Đây là một series khá xưa nhưng rất hay của Code Dạo, nay có hứng thú lại nên mình viết tiếp season 2 của series nha.

Hôm nay, chúng ta cùng tìm hiểu về Separation of Concerns, một nguyên lý thiết kế đã có hơn 35 năm tuổi đời; nhưng vẫn có sức ảnh hưởng rất lớn, và được áp dụng rất nhiều trong thiết kế hệ thống, trong viết code và design các library.

Continue reading Series Phản Phác Quy Chân – Luận về nguyên lý Separation of Concerns (Chia Để Trị)

Phản Phác Quy Chân – Từ chuyện luyện võ cho tới chuyện học code

Lâu qua không viết bài style kiếm hiệp. Hôm nay, sau một hồi trà dư tửu hậu, Code Dạo quyết định đối style, mượn chuyện kiếm hiệp để nói chuyện code.

Chuyện nửa thật nửa đùa nhưng lại… hơi hơi sâu sắc. Các bạn sinh viên, lập trình viên đã đi làm cứ đọc thử xem, biết đâu lại thấy bóng dáng mình trong đó, tự rút ra cho mình bài học gì hay ho thì sao.

Continue reading Phản Phác Quy Chân – Từ chuyện luyện võ cho tới chuyện học code

Series Phản Phác Quy Chân – Đừng cắm mặt vào dùng công nghệ, hãy hiểu nó!

Xin bắt đầu bài viết bằng một câu chuyện nho nhỏ về hai thanh niên tên K và tên H.

Ngày xửa ngày xưa, K và H là đôi bạn thân học cùng Đại Học. Thuở ra trường, do có khả năng, cả hai được nhận vào một công ty làm C#, sử dụng ASP.NET MVC. Câu chuyện bắt đầu từ đó.

Continue reading Series Phản Phác Quy Chân – Đừng cắm mặt vào dùng công nghệ, hãy hiểu nó!

Kĩ năng “Back of The Envelope” của các developer thần thánh

Kì này, chúng ta tìm hiểu về một kĩ năng “bá đạo” mang tên Back of the Envelope. Tại sao lại gọi nó là kĩ năng của các developer “thần thánh”?

  • Phỏng vấn tuyển dụng tại cái công ty Google, Facebook, Amazon đều đòi hỏi developer có kĩ năng này.
  • Kĩ năng này không bao giờ lỗi thời, đến tầm Project Manager hay Software Architect vẫn cần. Đại ca Bob Martin – Chú Bob (Tác giả Clean Code) rất trùm sò trong kĩ năng này.
  • Kĩ năng này không chỉ hữu dụng trong lập trình, mà còn rất bổ ích trong cuộc sống.
  • Tuy đơn giản nhưng rất lại có rất ít developer biết, luyện tập và áp dụng nó

Đến đây bạn cũng tò mò kĩ năng này là gì mà sao lại ghê gớm như vậy phải không nào? Đọc hết bài viết để tìm hiểu nhé!

Continue reading Kĩ năng “Back of The Envelope” của các developer thần thánh

Series Phản Phác Quy Chân – Thuật toán sort nào nhanh nhất??

Mình rất ít khi viết bài về thuật toán. Lý do không phải vì mình …. dốt thuật toán mà vì bản thân mình thấy nó hơi khô khan. Vả lại, phần lớn thuật toán đã được dạy kĩ càng trong trường đại học nên mình cũng không muốn dạy lại những thứ các bạn đã biết rồi.

Tuy nhiên, hôm nay mình nổi hứng phá lệ một bữa, chúng ta sẽ cùng “phản phác quy chân”, bàn luận về một trong những thuật toán phổ biến nhất: thuật toán sắp xếp!

Chuyện thanh niên lập trình viên FA

Hãy tưởng tượng, bạn phải lòng một em gái mặt xinh ngực khủng chân dài cùng lớp lập trình (Tất nhiên điều này là hư cấu vì ngành này gái đã hiếm, gái ngực khủng chân dài lại càng hiếm).

Sau một hồi thả thính qua lại, bạn quyết định tỏ tình thì nàng bảo “Anh trả lời đúng câu hỏi thì này em sẽ đồng ý”. Vốn tự tin, bạn vỗ ngực bảo “Ok, em cứ hỏi đi!”.

Nàng nhẹ hỏi một câu hỏi đơn giản: “Thuật toán sắp xếp nào là nhanh nhất vậy anh?”. Trả lời đúng thì cuộc sống nở hoa, trả lời sai là vạn kiếp bất phục!

Ảnh minh hoạ bạn nữ cùng lớp (Gốc: Jade Raymond – Một trong các nữ lập trình viên sexy hiếm hoi ngành game)

Liệu bạn sẽ trả lời thế nào? Xem hết bài viết sẽ rõ.

Continue reading Series Phản Phác Quy Chân – Thuật toán sort nào nhanh nhất??

Series Phản Phác Quy Chân – Lý thuyết hay thực hành quan trọng hơn?

Gần đây, mình có thấy một cuộc tranh cãi, lộn,… tranh luận khá thú vị giữa các bạn sinh viên về chuyện “Lý thuyết hay thực hành quan trọng hơn?”.

Có bạn bảo “Phải vững lý thuyết thì mới giỏi được”, có bạn đáp lại “Code nhiều là giỏi chứ cần vẹo gì lý thuyết”, có người quăng gạch “anh tự học code, tự làm theo tutorial chứ có cần học lý thuyết gì đâu, vẫn có lương nghìn đô!!”.

Vì nhiều bạn cũng email cho mình hỏi vấn đề tương tự, mình viết bài này để chia sẻ cái nhìn của bản thân. Rốt cuộc lý thuyết hay thực hành quan trọng hơn?? Đọc hết bài sẽ biết!

Continue reading Series Phản Phác Quy Chân – Lý thuyết hay thực hành quan trọng hơn?

Series Phản Phác Quy Chân – Tránh over-engineering

Over-engineering có thể tạm hiểu là “làm phức tạp hóa vấn đề”, một lỗi mà các bạn lập trình viên vừa đi làm hay gặp phải. Bài viết này sẽ làm rõ sai lầm này và đưa ra một số lời khuyên cho các bạn.

Ngày xửa ngày xưa

Xin mở đầu bài viết bằng một câu chuyện nhỏ nhỏ về bạn H. Thuở mới vào trường Đại Học, H được học Java để viết Hello World. Đây là cảnh giới đầu tiên của code học, không biết chiêu thức, chỉ chú tâm viết code cho chạy được.

1

Continue reading Series Phản Phác Quy Chân – Tránh over-engineering

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 Phản Phác Quy Chân – Luận về Technical Debt – Nợ kiếp này, duyên kiếp trước

Technical Debt (Nợ kĩ thuật) là một món nợ mà hầu như lập trình viên nào cũng phải gánh trong quá trình làm việc. Hẳn bạn sẽ thắc mắc: Hầu hết lập trình viên chúng mình đều là những con người siêng năng chăm chỉ, không cờ bạc gái gú, hết giờ làm là đi nhậu, mát xa … nhầm, về nhà với vợ con. Chúng ta không vay mượn ai bao giờ thì làm sao có nợ???

Muốn biết câu trả lời, hãy đọc bài viết để tìm hiểu thêm về Technical Debt nhé! Đây là một khái niệm khá quan trọng và bổ ích đấy.

2708226548_b80e14f366_b

Continue reading Series Phản Phác Quy Chân – Luận về Technical Debt – Nợ kiếp này, duyên kiếp trước

Series Phản Phác Quy Chân – Bí kíp để trở thành “cao thủ” trong việc fix bug

Cách đây vài tháng, mình có viết 1 bài để chửi thực trạng học lập trình của các thanh niên hiện nay. Ngoại trừ một số câu hỏi bài tập, hoặc vấn đề công nghệ, phần nhiều các câu hỏi là “gặp lỗi không biết sửa”. Qua đó, có thể thấy các bạn sinh viên năm 2 năm 3 hoặc mới ra trường vẫn còn thiếu kĩ năng debug.
Thôi, các cụ có câu là “vừa đấm vừa xoa”, chửi sướng mồm rồi thì bây giờ viết một bài chia sẻ những kinh nghiệm để debug và đặt câu hỏi hiệu quả hơn đây. Mỗi khi thấy ai hỏi bài, nhờ sửa lỗi các bạn cứ share bài viết này để giúp ích cho người ta nhé.

land first job as front end developer
Đến con nít nó còn biết lật sách ra xem trước khi hỏi này

Continue reading Series Phản Phác Quy Chân – Bí kíp để trở thành “cao thủ” trong việc fix bug