Các quy tắc đọc mã ASCII cho lập trình viên

Bài viết được dịch từ blog Coding Horror

Là lập trình viên, chúng ta phải thường xuyên làm việc với rất nhiều ký tự bàn phím mà người bình thường hiếm khi phải dùng đến và họ không phải suy nghĩ nhiều về chúng:

$ # % {} * [] ~ &

Ngay cả những ký tự được sử dụng khá thường xuyên trong văn bản hàng ngày — như dấu gạch ngang, dấu ngoặc, dấu chấm, và dấu hỏi — có ý nghĩa hoàn toàn khác nhau trong các ngôn ngữ lập trình.

Đâu là quy tắc phát âm các ký tự ASCII cho lập trình viên?

Đọc tiếp >>

Advertisements

Tuổi thơ tôi lớn lên cùng máy vi tính

Bài viết được dịch từ blog Coding Horror

Tôi đọc cuốn sách Accidental Empires (Những đế chế tình cờ) của tác giả Robert X Cringley ngay sau khi nó được xuất bản vào năm 1992. Cuốn sách đó cung cấp một góc nhìn thú vị về những năm đầu khi mà Thung lũng Silicon mới được hình thành. Nó cũng là cuốn sách yêu thích của Doc Searls về ngành công nghiệp máy tính. Tôi đề xuất bạn nên đọc cuốn sách này.

Những đế chế công nghệ tình cờNhững đế chế công nghệ tình cờ

Đọc tiếp >>

Ngôn ngữ máy tính không phải là ngôn ngữ của con người

Bài viết được dịch từ blog Coding Horror

Mặc dù tôi đã trở thành một người không thể hiểu về sự hoàn toàn vô nghĩa trong việc lựa chọn giữa VB.NET và C#, theo quan điểm của tôi thì cú pháp được kế thừa từ ngôn ngữ C là một điểm mà nhiều người thèm muốn. Và không chỉ trong việc phân biệt chữa hoa – chữ thường khi viết code. Daniel Appleman, trong một cuốn sách e-book tuyệt vời của ông, VB.NET hay C#, Nên chọn ngôn ngữ nào?, cũng đồng tình:

Ở đây tôi đang mạo hiểm bước đi trên chỉ vài ngón chân của mình, bởi vì cú pháp ngôn ngữ giống như một vấn đề tôn giáo đối với nhiều lập trình viên. Chắc chắn là tất cả chúng ta có khuynh hướng thích cú pháp ngôn ngữ mà mình đã quen thuộc, các lập trình viên C++ và Java chắc chắn sẽ cảm thấy rất quen thuộc khi làm việc với C#.

Một điểm cũng nên cần làm rõ từ phần này đó là sự khác biệt giữa 2 ngôn ngữ VB.NET và C# là thực sự không đáng kể. Cả hai hầu như đều có cùng chức năng.

Tuy nhiên, về vấn đề cú pháp đối tượng (object), tôi phải trao giải thưởng chiến thắng cho VB.NET. Bạn chỉ cần nhìn vào những khai báo kế thừa sau đây:

public class BClass: AClass, Iint
Public Class BClass
Inherits AClass
Implements Iint

Hãy xem các từ được sử dụng để kiểm soát kế thừa:

abstract, sealed, virtual
MustInherit, NotInheritable, Overridable, Overrides, Shadows

Khi nói đến việc nhìn vào code và hiểu ngay đoạn code đó để làm gì — đặc biệt là sau khi nhà phát triển ban đầu đã nghỉ việc và một số lập trình viên trẻ vừa mới chân ướt chân ráo bước ra khỏi trường đại học phải tìm hiểu phần code đó một cách nhanh chóng để giải quyết một số bug khó hiểu hoặc bổ sung thêm một tính năng mới, thì ngôn ngữ nào sẽ dễ hiểu hơn? Xin thưa, đó là Visual Basic .NET.

Ngôn ngữ lập trình nào là tốt nhất?Ngôn ngữ lập trình nào là tốt nhất?

Đọc tiếp >>

Có phải Joel Spolsky đã trở thành một gã cực đoan?

Bài viết được dịch từ blog Coding Horror

Khi bạn là một blogger về kỹ thuật, thì có lẽ bạn đã tình cờ trượt chân qua blog Joel on Software. Anh ta đã viết blog từ những năm 2000, khi mà những chiếc máy tính được người ta đẽo bằng tay từ gỗ và dữ liệu internet thì được gửi qua những con chim bồ câu. Anh ta có một công ty phát triển phần mềm của riêng mình, và là tác giả của một số cuốn sách, và anh là một tay blogger nổi tiếng và thú vị dù dưới bất kỳ góc độ nào. Có thể nói rằng, Joel là một huyền thoại.

Liệu việc tự xây dựng cho mình một ngôn ngữ lập trình mà chỉ mỗi mình bạn và vài cộng sự biết viết code bằng ngôn ngữ đó thì có hiệu quả không?Liệu việc tự xây dựng cho mình một ngôn ngữ lập trình mà chỉ mỗi mình bạn và vài cộng sự biết viết code bằng ngôn ngữ đó thì có hiệu quả không?

Đọc tiếp >>

Vụ án về việc phân biệt chữ hoa chữ thường

Bài viết được dịch từ blog Coding Horror

Lời bàn của Vinacode:

Ở bài viết này thì mình cũng không bàn luận gì nhiều, mình chỉ xin làm rõ một chi tiết là trong bài này tác giả sử dụng tên Keanu Reeves làm ví dụ (đó là tên của một nam tài tử ở Hollywood).

Một trong những vấn đề nguy hại nhất của các ngôn ngữ lập trình dựa trên ngôn ngữ C đó là chúng phân biệt chữ hoa và chữ thường. Trong khi quyết định này có thể có ý nghĩa vào năm 1972 khi mà ngôn ngữ này được tạo ra, một điều kỳ lạ là tại sao sai lầm của Kernighan và Ritchie lại bị ghi nhớ mãi một cách mù quáng trong 30 năm vừa qua.

Sẽ là tốt hơn nếu các ngôn ngữ lập trình không phân biệt giữa chữ hoa và chữ thường.Sẽ là tốt hơn nếu các ngôn ngữ lập trình không phân biệt giữa chữ hoa và chữ thường.

Đọc tiếp >>

Lập trình viên chích chòe

Bài viết được dịch từ blog Coding Horror

Tôi thường nghĩ rằng các nhà phát triển phần mềm cũng gần giống như mấy con chim chích chòe, những con chim này có tiếng xấu là hay đi ăn cắp những đồ vật đẹp đẽ để về trang hoàng cho cái tổ phức tạp của chúng. Giống như những con chim chích chòe, các lập trình viên là những sinh vật cực kỳ thông minh và ham hiểu biết, điều này thực sự đã ngấm vào máu của họ. Nhưng chúng ta cũng rất dễ bị phân tâm bởi những thứ “đồ chơi” mới.

Lập trình viên thì cũng giống như con chim chích chòe vậy.Lập trình viên thì cũng giống như con chim chích chòe vậy.

Đọc tiếp >>

Tất cả các ngôn ngữ lập trình đều như nhau?

Bài viết được dịch từ blog Coding Horror

Có một biểu đồ trong cuốn sách kinh điển Code Complete về việc so sánh năng suất làm việc trong nhiều ngôn ngữ lập trình khác nhau:

Các lập trình viên đang làm việc với các ngôn ngữ lập trình bậc cao (high-level languages) thì thu được năng suất và chất lượng tốt hơn là những người làm việc với những ngôn ngữ lập trình bậc thấp hơn (lower-level languages). Các ngôn ngữ lập trình như C++, Java, Smalltalk, và Visual Basic có mức tín nhiệm cao hơn trong việc nâng cao năng suất, độ tin cậy và tính dễ hiểu gấp từ 5 đến 15 lần so với các ngôn ngữ lập trình cấp thấp như Assembly và C (theo 3 công trình nghiên cứu của các nhà khoa học Brooks vào năm 1987, Jones năm 1998, Boehm năm 2000). Bạn tiết kiệm được thời gian khi không cần phải có một bài diễn văn dài dòng mỗi lần một câu lệnh C làm công việc mà nó phải làm. Ngoài ra, các ngôn ngữ lập trình bậc cao hơn thì diễn đạt tốt hơn các ngôn ngữ lập trình bậc thấp. Mỗi dòng lệnh có ý nghĩa nhiều hơn. Bảng sau đây sẽ cho ta thấy tỷ lệ điển hình của các câu mã lệnh trong một vài ngôn ngữ lập trình bậc cao và sự tương đương trong mã lệnh được viết bằng ngôn ngữ C. Một tỷ lệ cao hơn nghĩa là mỗi dòng lệnh trong ngôn ngữ đó hoàn thành được nhiều hơn so với mỗi dòng mã lệnh viết trong ngôn ngữ C.

Liệu tất cả các ngôn ngữ lập trình cũng đều như nhau?Liệu tất cả các ngôn ngữ lập trình đều cũng như nhau?

Đọc tiếp >>

Tại sao tôi lại sử dụng ngôn ngữ Ruby để xây dựng Discourse?

Bài viết được dịch từ blog Coding Horror

Tính đến nay tôi đã là một nhà phát triển phần mềm trên nền tảng Microsoft trong nhiều thập kỷ. Tôi đã tận hưởng rất nhiều hương vị của Microsoft Basic, và tôi đã có công việc lập trình được trả lương đầu tiên của mình bằng Microsoft FoxPro, Microsoft Access và Microsoft Visual Basic. Tôi đã nhìn thấy tương lai của lập trình là những ứng dụng CRUD dễ sợ chạy trên những cái hộp Wintel (máy tính chạy hệ điều hành Windows + chíp Intel = Wintel).

Liệu ngôn ngữ lập trình Ruby có phù hợp cho một dự án mã nguồn mở?Liệu ngôn ngữ lập trình Ruby có phù hợp cho một dự án mã nguồn mở?

Đọc tiếp >>

Ngôn ngữ lập trình nào nên học để lập trình web

Bài viết được dịch từ Makeuseof

Hôm nay chúng ta sẽ cùng xem qua một số ngôn ngữ lập trình web đã tạo nên sức mạnh cho thế giới Internet ngày nay. Đây là phần 2 trong loạt bài viết giới thiệu các ngôn ngữ lập trình cho người mới bắt đầu. Trong phần 1, chúng ta đã xem qua một số ngôn ngữ lập trình dùng để phát triển phần mềm. Cũng giống như lần trước, tôi sẽ đưa ra một đoạn code nhỏ để bạn có thể hình dung xem ngôn ngữ đó trông như thế nào, tôi tin rằng với một cái nhìn thoáng qua như vậy cũng sẽ giúp bạn nhận ra rằng liệu mình có phù hợp với ngôn ngữ lập trình đó hay không.

Ngôn ngữ lập trình nào được sử dụng phổ biến trong lập trình web?Ngôn ngữ lập trình nào được sử dụng phổ biến trong lập trình web?

Đọc tiếp >>