Sự thật đắng lòng: Đôi khi cắm đầu ngồi CODE là cách … ngu nhất để giải quyết vấn đề
Qua bài viết về button trị giá 300 triệu đô, mình thấy các bạn có vẻ hào hứng với những bài viết theo phong cách kể chuyện. Vì vậy, ở bài viết này, mình sẽ bắt đầu bằng cách kể một câu chuyện nho nhỏ về 1 chàng coder nghèo tên K (Gọi là Khoa Khoe Khoang hay Khải gì đó tuỳ bạn). Tiếp xúc với ...
Tìm hiểu Higher-Order Function (HOF) và Currying qua một số ví dụ
Bài viết khá dài và có nhiều chi tiết rất bình thường, hãy cân nhắc trước khi đọc :D HOF và Currying là hai kỹ thuật không khó, thậm chí có thể bạn đang dùng nó hàng ngày mà không để ý. Cùng tìm hiểu chúng thông qua một số ví dụ. Background Tôi cho rằng một kỹ sư phần mềm pro không phải ...
Tự tìm hiểu Web Development, tại sao không?
Với xu hướng hiện nay, rất nhiều các bạn developer chọn con đường Web development để phát triển bản thân, tuy nhiên trong trường đại học các bạn thường ít được tìm hiểu về mảng này, các khóa học bên ngoài thì có vẻ đắt đỏ. Vậy tại sao không tự học Web development? Nhiều bạn sẽ trả lời với những lý ...
Finite state machine trong lập trình - Elixir
1. Tìm hiểu về FSM FSM(Finite state machine) - Máy trạng thái hữu hạn là một mô hình toán học biểu diễn trạng thái của hệ, trong đó số trạng thái là hữu hạn. Từ mỗi trạng thái, máy có thể chuyển đổi qua 1 số trạng thái cố định khác, dựa trên các sự kiện, input. Fsm được biểu diễn như 1 đồ ...
C# đã tiến hóa như thế nào (Những thay đổi của C# từ 1.0 cho tới 5.0)
Chẳng là gần đây, công ty mình vưa tuyển thêm 1 anh Technical Lead. Đợt mình hỏi ông leader phỏng vấn thế nào, ổng nhận xét "Kiến thức base C# khá vững, nói được những thay đổi của C# từ 1.0 tới 5.0". Mặc dù mình chỉ là junior dev nhưng mình thấy phần này không khó, do lỡ tìm hiểu rồi nên post bài ...
Lập trình viên “trình cao” thì nên đọc sách gì? - Phần 1
Đầu tiên, xin hứng chịu gạch đá từ nhiều bạn rằng: developer thì cần gì phải đọc sách, code nhiều là giỏi thôi. Vâng, các cậu có cu, nhầm, các cụ đã có câu là "practice make perfect", cứ làm hoài là giỏi. Tuy nhiên, phải làm đúng cách thì mới giỏi được, code dở mà không chịu tìm cách cải thiện kĩ ...
Haskell's laziness
Trong bài viết này, tôi sẽ trình bày về một đặc tính của Haskell khá khác biệt so với các ngôn ngữ lập trình khác, đó là laziness (dịch tiếng việt nôm na là "luời biếng", nhưng tôi xin đuợc giữ nguyên từ gốc tiếng anh). Chúng ta hiểu laziness như thế naò? Lazy evaluation nghĩa là, việc evaluate ...
Giới thiệu về thread từ phần cứng ra phần mềm.
Không gì đẹp bằng nụ cười khi đôi mắt e lệ nhìn xuống. -- Victor Hugo Các bạn có thể đọc bài viết gốc tại đây Tò mò khi tìm hiểu hoạt động của thread như thế nào trong lập trình single thread và multi thread, mình tranh thủ tìm hiểu luôn các thread này hoạt động như thế nào trong CPU. ...
Mở đầu về Haskell
Chúc mừng năm mới 2015 tới tất cả bạn đọc ktmt blog :) Chúc các bạn một năm mới coding thật productive! ^^ Năm mới chắc hẳn hầu hết mọi người đều có resolution của riêng mình. Một trong những resolution của tôi năm nay là học một ngôn ngữ lập trình mới, đến level có thể viết một chương trình ...
Ngôn ngữ lập trình lưu trữ biến như thế nào? pointer, reference và address?
Link gốc bài viết tại đây Có lẽ khi lập trình không nhiều người quan tâm tới cách bộ nhớ tổ chức lưu trữ và thao tác với biến như thế nào (vì nó hơi khó) nhưng khi nắm được nó bạn sẽ thấy được nhiều vấn đề rất tường minh, nó liên quan tới phần cứng của máy tính nên nắm được nó cũng giúp ...
Một số câu phỏng vấn thú vị về lập trình
Mấy hôm gần đây. tình cờ mình đọc được cuốn sách: Cracking the Coding Interview: 150 Programming Questions and Solutions. Đây là một cuốn sách khá hay; sách viết về những câu hỏi thường gặp trong các cuộc phỏng vấn, qui trình phỏng vấn của Yahoo, Google, Amazon, Facebook. Trong cuốn sách có rất ...
Tổng quan về lập trình ứng dụng di động – Phần 1
Trong khoảng thời gian gần đây, lập trình di động đang là một ngành hot. Các mẩu tin tuyển dụng gần nhất mình đọc thường tuyển Android developer, iOS developer, … với mức lương khá cao, không thua kém gì lập trình web hay lập trình hệ thống nhúng. Ngoài ra, nếu biết cách lập trình ứng dụng, ...
Thế giới của abstraction và khi abstraction bị rò rỉ
Abstraction là gì? Thế giới của chúng ta đang sống được xây dựng dựa trên các abstraction. Khi Honda bán một chiếc xe máy, họ sẽ bảo bạn rằng chỉ cần leo lên xe, khởi động và rồ ga thì xe sẽ chạy, bạn không cần phải biết nó sử dụng động cơ đốt trong hay đốt phông lông, hai thì hay bốn thì, ...
Binary Index Tree trong Cơ sở dữ liệu
Một trong những điểm thú vị nhất khi phát triển các hệ thống Business là lập báo cáo doanh thu. Mình đã từng maintain hệ thống cảnh báo sớm của Cục quản lý cạnh tranh, hệ thống do đối tác nào đó viết không phải mình. Trong bài viết này mình sẽ lấy hệ thống trên làm ví dụ và cách xử lý của mình ...
Memoization and Decorator
What is memoization Trước hết chúng ta làm quen với khái niệm memoization. Ngôn ngữ ở đây là Python, bài toán là viết hàm tính giai thừa (n!) Hàm giai thừa thông thường sẽ được viết đệ quy như sau: def fac(n): if n < 2: return 1 return n * fac(n - 1) Có gì không ổn ở đoạn ...
Thử cài đặt môi trường docker cho laravel
Tạo project Laravel với Docker Hiện nay mình thấy đã có nhiều bài viết về tạo project laravel với docker trên kipalog rồi. Mọi người có thể search tại đây : [https://kipalog.com/search?q=laravel+docker] Mục đích của bài viết này chỉ là chia sẻ và lưu lại kinh nghiệm mình đã thực hiện, hi vọng ...
Tự học lập trình trong 10 năm
Đây là bản dịch bài viết Teach Yourself Programming in Ten Years của Peter Norvig thực hiện bởi Nguyễn Đức Giang. Tại sao mọi người đều vội vã như vậy? Bước vào một cửa hàng sách bất kì, bạn sẽ thấy làm thế nào để Tự học Java trong 24 giờ (Teach Yourself Java in 24 Hours) bên cạnh vô số ...
Do-it-Yourself or looking for a Ready-for-Use package?
Hi After 2 years with different IT fora my impression about Vietnamese IT Development community is ambiguous. It's like standing in the twilight -neither dark, nor bright. Even when I look into some "more professional" sites such as Kipalog.com I mostly found contributions that deal more with ...
Tiếng việt trong Laravel + SQL Server trên Ubuntu
Cài đặt FreeTDS $ apt-get install libsybdb5 freetds-common php5-sybase Thêm cấu hình trong config/database.php trong Laravel 5 'sqlsrv' => [ 'driver' => 'sqlsrv', 'host' => env('DB_HOST', 'localhost'), 'database' => ...
Tại sao phải viết code thật đẹp?
Là lập trình viên, chắc hẳn ai cũng hiểu khi làm việc với bất kì một ngôn ngữ, một framework, hay một thư viện nào đó chúng ta đều được nhắc nhở về những “best practices” và “bad practices” (chơi chữ đó). Và chúng ta cũng thường tự lừa dối bản thân rằng cho dù lâu lâu ...