Tag Archives: java

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

Code trên “chín tầng mây” cùng Cloud 9 IDE

Tại sao phải dùng IDE trên mây???

Đã bao giờ các bạn gặp trường hợp muốn code mà… không code được chưa? Để có thể code đàng hoàng, ta cần một máy tính bàn (hoặc laptop) code cài đầy đủ tool và có code. Bạn nghĩ rằng để code được cần cài gì? Xin thưa, máy của một developer thường có các đủ thứ hầm bà lằng sau: IDE (Eclipse, Visual Studio), SVN, Notepad++, Git, Node.js, Database (SQL, MongoDB), ….

Đấy mới chỉ là IDE, chưa nói đến code! Code để trong máy thì đi đâu cũng phải cầm máy theo. Bạn nào cẩn thận thì code xong commit lên github rồi mượn máy khác code. Tuy nhiên, khi có máy mới, ta cũng phải ráng cài đặt đầy đủ mấy thứ hầm bà lằng phía trên, rồi mới lấy code về code tiếp được.

Continue reading Code trên “chín tầng mây” cùng Cloud 9 IDE

Series Phản Phác Quy Chân – Điều gì ngăn cản bạn đạt cảnh giới tối cao trong “code học”?

Chuyện ngày xưa

Đã từng có thời, code là một việc cực kỳ mệt nhọc và nhàm chán.

Đã từng có thời, lập trình việc phải làm việc với từng byte từng bit một.

Đã từng có thời, code phải được viết ra giấy, đóng thành thẻ rồi đút vào máy.

Đã từng có thời, ta phải mất cả năm trời để tạo giao diện, quản lý bộ nhớ, viết một chương trình đơn giản.

FortranCardPROJ039.agr
Ngày xưa, mấy bác lập trình viên code bằng cách “đóng lỗ” lên mấy tấm thẻ như thế này

Continue reading Series Phản Phác Quy Chân – Điều gì ngăn cản bạn đạt cảnh giới tối cao trong “code học”?

Series Phản Phác Quy Chân – Chuyện về những “ổ gà” trên con đường lập trình

Hôm nay, trước khi nói về ngành lập trình, ta hãy nói về ngành cầu đường.

Trên đời này làm gì có đường, người ta đi mãi cũng thành đường thôi. – Lỗ Tấn

Từ chuyện xây đường…

Thưở xưa, để đến nơi, người ta phải đi chân trần, trèo đèo lội suối, đập đá băng rừng. Dần dần người ta chặt cây, nhổ cỏ, làm đường đất để mà đi. Đường đất vừa bẩn vừa nhiều bụi, người ta lại lát đá, lát gạch cho đường sạch đẹp, dễ đi hơn. Thế rồi khoa học tiến bộ, người ta không lát đá nữa mà ủi phẳng, trải nhựa, trải bê tông. Trên đường nhựa, người ta xây cầu vượt, xây vòng xoay, xe cộ băng băng qua lại, nhanh chóng và tiện lợi hơn nhiều so với ngày xưa.

go-your-own-road-by-erik-johansson

Continue reading Series Phản Phác Quy Chân – Chuyện về những “ổ gà” trên con đường lập trình

Chuyện ngày xưa – tôi đã viết sách như thế nào?

Đêm nay mưa rả rích, gió xì xào, ngoài hè văng văng tiếng dế kêu da diết, làm mình bỗng nhớ nhà, nhớ trường, nhớ quê. Lục đống hình ngày xưa ra xem bỗng thấy một cuốn sách bìa xanh xanh vàng vàng. Bao nhiêu kỉ niệm xưa ùa về, đành kể lại cho mọi người nghe để trải lòng vậy.

13

Bạn nào từng đọc phần About me chắc cũng thấy mình từng đề cập đến cuốn này. Đây là một cuốn sách mình viết vào năm 2013, khoảng năm 3 Đại học. Có thể xem nó là tiền thân hoặc ông cố nội của blog toidicodedao bây giờ. Để mình kể cho các bạn nghe, đằng sau 2 tấm bìa xanh xanh vàng vàng là 1 tháng trời công sức và mồ hôi và nước mắt của bao nhiêu thế hệ sinh viên FPT.

Continue reading Chuyện ngày xưa – tôi đã viết sách như thế nào?

Series Phản Phác Quy Chân – Tại sao cộng string lại chậm

Lý giải chút về tên series

返璞归真 – Phản phác quy chân: Nghĩa là điểm cao nhất cũng chính là điểm xuất phát, được ứng dụng trong rất nhiều lĩnh vực. 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, 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 đến mấy cũng dịch được ra bytecode. Đô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 đề).

01_s_by_darkdamage-d5yo32c

Ở bài viết đầu, mình sẽ nhắc sơ lại về string, cũng như giải thích lý do vì sao việc cộng string sẽ ảnh hưởng tới bộ nhớ và performance của hệ thống (Hình minh họa và bài viết méo liên quan với nhau đâu, vì tác giả thích thế :v).

Continue reading Series Phản Phác Quy Chân – Tại sao cộng string lại chậm

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 máy tính từ năm 10 tuổi,  K vô cùng ngạc nhiên trước sức mạnh của cỗ máy vô tri vô giác ấy, và nuôi mơ ước trở thành một lập trình viên. Lên cấp 3, nhờ giỏi Toán, K được vào lớp chuyên Toán của trường. Với niềm đam mê lập trình, K nhanh chóng tiếp cận và thành thạo Pascal, C, giật được vài giải Olympic tin học.

Nhờ điểm cao, K đậu vào một trường đại học công khá danh tiếng. Vào trường, được học thêm Ngôn ngữ lập trình, về Cấu trúc dữ liệu và thuật toán, K càng ngày càng thích code hơn. K code ngày code đêm, cắm đầu vào luyện thuật toán cho thành guru, lúc rảnh rỗi K lại kiếm sách bài tập làm… cho đã thèm. K luôn nộp bài sớm hơn các bạn để thể hiện sự hơn người của mình. Do suốt ngày chỉ biết cắm mặt vào máy tính, K trải qua 4 năm đại học mà vẫn FA…

FSOFT-GST

Continue reading 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 đề 

Series JavaScript sida – Object trong JavaScript

Như đã chia sẻ ở bài viết trước, trong năm 2016 mình sẽ dành thời gian trau dồi kĩ năng front-end, do đó số lượng các bài viết về front-end trên blog sẽ nhiều hơn một chút.  Sau series C# hay ho được nhiều người đón nhận, năm nay blog sẽ có thêm series Javascript sida. Lý do là: càng học sẽ càng thấy C# nó hay ho, trong khi đó càng học lại càng thấy Javascript nó sida, bạn nào không tin cứ theo dõi series sẽ biết.

Bạn nào theo dõi blog lâu cũng biết mình có một số tình cảm khá phức tạp cả yêu lẫn ghét dành cho javascript. Về bản thân ngôn ngữ, cá nhân mình thấy nó là một ngôn ngữ trời đánh, khá sida, làm bao nhiêu lần mình phải thốt lên đ.m hay WTF khi học.

Javascript vốn được thiết kế một cách tạm bợ thô sơ, dùng để validate ở client side (Bạn nào tò mò muốn biết thêm về lịch sử của js có thể đọc thêm cuốn Professional JavaScript for Web Developers). Song chẳng hiểu duyên trời đưa đẩy thế nào, JavaScript cùng với PHP lại trở thành hai ngôn ngữ được sử dụng ở khắp mọi nơi, dù hứng chịu biết bao gạch đá.

c19be8898d6f097228295a6408ef3911c896257b035a120922865af69b92e4d4

Continue reading Series JavaScript sida – Object trong JavaScript

Nhìn lại năm 2015, mừng blog thêm tuổi mới

Mình bắt đầu đặt bút … nhầm, đặt phím viết bài đầu tiên cho blog vào ngày 31/12/2014. Hôm nay ngày 31/12/2015, mình viết bài này mừng blog tròn 1 năm tuổi. Thấy Facebook có chức năng “một năm nhìn lại”, mình cũng “nhìn lại” hoạt động của blog trong thời gian một năm vừa qua.

12 tháng – Những chuyện ngày xửa ngày xưa

Vào thuở mới viết blog, mình đã xác định hướng đi là viết về technical và “một số thứ khác nữa”. Thuở đó, kiến thức technical của mình còn hạn hẹp, còn “một số thứ khác” cũng chỉ là một khái niệm khá mơ hồ. Ở những bài đầu, mình tập trung viết về C#, javascript, cũng như một số kiến thức và định hướng trong ngành lập trình.

Continue reading Nhìn lại năm 2015, mừng blog thêm tuổi mới

Những mánh khóe “không bao giờ tiết lộ” của các lập trình viên vĩ đại

Mánh khóe thứ nhất: Không bao giờ truyền dạy các “mánh khóe” này cho người khác. Hết bài.

Đùa đấy, các bạn đừng gạch đá mình tội nghiệp, mình buồn. Chẳng là dạo này mình chán stackoverflow, chuyển qua quora nghịch ngợm đôi chút. Đây cũng là một trang web hỏi đáp tương tự như stackoverflow, nhưng phạm vi rộng hơn rất nhiều, bao gồm toàn bộ mọi lĩnh vựa đời sống.

Một điểm đặc biệt nữa là nó cho phép hỏi những câu chung chung hoặc “nhảm nhí”, do đó có rất nhiều câu hỏi – trả lời thú vị và “bá đạo” như: Mac Zuckerberg có giỏi PHP hay không? Tại sao người đời lại ghét sản phẩm của Apple? Làm sao nghe lén điện thoại bạn gái?… đủ thứ trên trời dưới đất =))).

Mình khuyên các bạn nên bỏ đi ít thời gian cho facebook, rảnh rỗi thì lên đây xem các câu hỏi về Computer Science/Computer Programming, sẽ học được nhiều điều thú vị lắm, giải trí cũng tốt nữa. Bài viết này là tổng hợp và chọn lọc những ý tưởng, câu trả lời hay của câu hỏi: What are the best-kept secrets of great programmers? – Những mánh khóe “không bao giờ tiết lộ” của các lập trình viên vĩ đại.

quora-logo

Continue reading Những mánh khóe “không bao giờ tiết lộ” của các lập trình viên vĩ đại