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?Đâu là quy tắc phát âm các ký tự ASCII cho lập trình viên?

Đọc tiếp >>

Advertisements

Con dao của quân đội Thụy Sĩ hay chuyên gia tổng quát

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

Trong bài viết “Liệu việc viết code có quan trọng?”, tôi đã đề nghị các lập trình viên dành ít thời gian hơn với các công việc kỹ thuật, vì đó là thứ mà họ đã tương đối giỏi, và dành nhiều thời gian hơn để trau dồi các kỹ năng phi kỹ thuật khác mà các lập trình viên có xu hướng thiếu hụt. Một độc giả đã đặt vấn đề với cách tiếp cận như sau:

Tôi không đồng ý với quan điểm về việc nên cải thiện những điểm yếu. Tôi thích quan điểm về việc phát triển tài năng và nhận thức được những điểm yếu của mình. “Biết rõ bản thân mình” không có nghĩa là đi học tất cả mọi thứ và trở thành một Con dao của quân đội Thụy Sĩ (Swiss Army Knife).

Rất dễ để biến đề nghị khiêm tốn của tôi trở thành một ý kiến cực kỳ ngớ ngẩn: hoặc là bạn ngồi viết code suốt ngày, hoặc bạn trở thành một người hoàn toàn không có kỹ năng về kỹ thuật và không bao giờ chạm vào một trình biên dịch nữa. Hoặc có thể bạn dành quá nhiều thời gian để theo đuổi những thú vui liên quan để bạn trở thành một người cái gì cũng biết một tí, nhưng chẳng tinh thông món nào cả. Hay nói cách khác, sẽ trở thành một Con dao của quân đội Thụy Sĩ (Swiss Army Knife).

Hãy trở thành một chuyên gia tổng quát chứ đừng là một Swiss Army Knife.Hãy trở thành một chuyên gia tổng quát chứ đừng là một Swiss Army Knife.

Đọc tiếp >>

Học nghề lập trình phần mềm

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

Trong bài viết “Dạy lập trình hiện nay rất tệ: Tại sao chúng ta cần quay lại cách đào tạo 1.000 năm về trước”, Rob Walling đã đưa ra một lý lẽ để thuyết phục ngành giáo dục nên từ bỏ kiểu đào tạo truyền thống thiên về lý thuyết và chuyển qua đào tạo theo hình thức học nghề.

Học lập trình phải kết hợp giữa lý thuyết và thực hànhHọc lập trình phải kết hợp giữa lý thuyết và thực hành

Đọc tiếp >>

Phát minh vĩ đại nhất trong ngành khoa học máy tính

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

Theo bạn thì phát minh vĩ đại nhất trong ngành khoa học máy tính là gì? Ý tôi là ngoài bản thân máy tính ra.

Trước khi đọc tiếp, bạn hãy tạm dừng một lúc và ngồi suy nghĩ nghiêm túc về câu hỏi đó.

Phát minh vĩ đại nhất trong ngành khoa học máy tínhPhát minh vĩ đại nhất trong ngành khoa học máy tính là gì?

Đọc tiếp >>

Lập trình viên giỏi cần có “năng khiếu toán học”?

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

Một trong những trích dẫn nổi tiếng của nhà khoa máy tính Edsger Dijkstra là từ bài giảng nhận giải thưởng Turing vào năm 1972 của ông, Làm thế nào để chúng ta nói ra sự thật mà có thể làm tổn thương?

Bên cạnh một năng khiếu toán học, thì việc đặc biệt thông thạo tiếng mẹ đẻ là tài sản quan trọng nhất của một lập trình viên giỏi.

Lưu ý rằng ông chính xác nói là tiếng mẹ đẻ, không phải tiếng Anh. Điều này khiến tôi tự hỏi tại sao tất cả các công trình nghiên cứu quan trọng nhất của Dijkstra lại bằng tiếng Anh, chứ không phải tiếng Hà Lan quê hương ông.

Lập trình viên có cần phải giỏi toán học?Lập trình viên có cần phải giỏi toán học?

Đọc tiếp >>

Làm thế nào để không viết một cuốn sách lập trình

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

Nếu tôi yêu cầu bạn lựa chọn giữa 2 cuốn sách lập trình, một cuốn được viết bởi tác giả chuyên viết về lập trình Windows nổi tiếng Charles Petzold, và cuốn kia được viết bởi một gã mà có thể bạn chưa bao giờ nghe tên, bạn sẽ chọn cuốn nào?

Tôi sẽ chọn cuốn sách lập trình nào đây?Tôi sẽ chọn cuốn sách lập trình nào đây?

Đọc tiếp >>

Bạn đang đọc blog lập trình nguy hiểm nhất thế giới

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

Bạn đã bao giờ nhận thấy rằng các blog chứa đầy rẫy những thông tin sai lạc và dối trá? Đặc biệt, tôi đang đề cập đến chính blog này. Cái blog mà bạn đang ngồi đọc vào lúc này đây. Ví dụ, bài viết ngày hôm qua có nội dung cực tồi, và đó chính là bằng chứng thuyết phục nhất cho thấy tôi đã trở thành một gã cực đoan.

Hãy cẩn thận vì bạn đang đọc blog lập trình nguy hiểm nhất thế giới!Hãy cẩn thận vì bạn đang đọc blog lập trình nguy hiểm nhất thế giới!

Đọc tiếp >>

Hãy coi “năng lực tự học suốt đời” là cốt lõi nhất của mọi người trong thế giới ngày nay – Phỏng vấn Dương Trọng Tấn

“Tôi coi “năng lực tự học suốt đời” là cốt lõi nhất của mọi người trong thế giới ngày nay. Làm nghề IT thì năng lực ấy lại càng quan trọng, mang tính sống còn. Không trang bị đủ khả năng tự học liên tục, thì có thể sẽ phải tính trước ngày mình bị đào thải.” ~ Dương Trọng Tấn

Anh Dương Trọng Tấn

Anh Dương Trọng Tấn

Đọc bài phỏng vấn của blog Vinacode với anh Dương Trọng Tấn, là một giảng viên dày dạn kinh nghiệm tại Trung tâm đào tạo lập trình viên Aptech và Đại học FPT. Anh cũng là đồng sáng lập và biên tập viên chuyên viết bài tại các trang HanoiScrum.net, TapChiLapTrinh.vnDaDien.net về vấn đề dạy, học, agile|Scrum và những chủ đề “nóng” trong lĩnh vực giáo dục tại Việt Nam; để nghe anh chia sẻ về:

  • Những kiến thức và kỹ năng mà một lập trình viên cần trang bị
  • Thông tin về các tổ chức và sự kiện liên quan đến phương pháp phát triển phần mềm Agile cũng như mức độ ứng dụng Agile tại Việt Nam
  • Xu hướng phát triển của mô hình học tập trực tuyến MOOC và cơ hội với lập trình viên
  • Thông tin về trang tạp chí uy tín dành cho lập trình viên Việt Nam là Tạp Chí Lập Trình (http://tapchilaptrinh.vn/)
  • Quan điểm về việc học tập suốt đời đối với mọi người nói chung và lập trình viên nói riêng

Đọc tiếp >>

9 Lý do tại sao bạn nên tham gia diễn đàn Dạy Nhau Học

Như chúng ta đều đã biết việc trao đổi và thảo luận trong học tập là vô cùng quan trọng, bởi thông qua thảo luận thì sẽ giúp những người tham gia có thể hiểu rõ được về vấn đề mà nhóm đang tìm hiểu.

Trong việc học lập trình thì cộng đồng developer Việt Nam hiện vẫn đang sử dụng những diễn đàn kiểu cũ, những diễn đàn này thường được xây dựng từ hơn 10 năm trước và đến nay về mặt tính năng vẫn không có sự thay đổi gì. Có thể nói rằng các diễn đàn kiểu cũ đã bị lỗi thời và không thể đáp ứng được nhu cầu học tập, trao đổi trong thời đại công nghệ phát triển chóng mặt như hiện nay. Trong một bài viết trước thì blog Vinacode có đề cập về “cái chết” của diễn đàn hacker lớn nhất Việt Nam là Hvaonline.net, và nó đã báo hiệu cho sự suy tàn của các loại diễn đàn kiểu cũ.

Trong bối cảnh đó thì diễn đàn Dạy Nhau Học ra đời, và vì được xây dựng trên nền tảng diễn đàn kiểu mới là Discourse nên Dạy Nhau Học có những ưu điểm vượt trội hơn so với các loại diễn đàn kiểu cũ. Sau đây chúng ta hãy cùng điểm qua 9 ưu điểm của diễn đàn kiểu mới Dạy Nhau Học nhé!

Diễn đàn thảo luận dành cho lập trình viên Dạy Nhau HọcDiễn đàn thảo luận dành cho lập trình viên Dạy Nhau Học

Đọc tiếp >>

Lập trình cặp vs. Code Reviews

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

Tom Dommett đã viết ra những kinh nghiệm tích cực của anh về phương pháp lập trình cặp như sau:

Ý tưởng lập trình cặp là hai lập trình viên làm việc trên cùng một cái máy tính. Cả hai đều có bàn phím và chuột. Tại mỗi thời điểm thì một người đảm nhiệm vai trò driver (code chính) và người kia đóng vai trò navigator (hoa tiêu). Vai trò của họ chuyển đổi qua lại cho nhau mỗi giờ, hoặc bất cứ khi nào thực sự thấy cần thiết. Người driver đảm nhiệm việc code, người navigator thì ngồi đọc, kiểm tra và sửa lỗi chính tả và rà soát code, trong lúc đó anh này sẽ nghĩ xuyên suốt về các vấn đề và nên làm gì tiếp theo. Nếu người driver gặp phải một vấn đề, thì sẽ có hai người để tìm ra một giải pháp, và một trong hai người thường có một ý tưởng rất hay.

Những thuận lợi khác bao gồm một thực tế rằng ở đây hai người có những chuyên môn khác nhau, vì vậy những kỹ năng này được trao đổi cho nhau. Lợi ích rất nhiều khi người này chỉ cho người kia một số mẹo, những giải pháp khắc phục tốt, v.v…

Kết quả cuối cùng là cả hai lập trình viên đều hiểu rõ code một cách hoàn toàn, code đó làm việc ra sao, và tại sao nó lại được thực thi theo cách đó. Và phương pháp này mang lại kết quả tốt hơn là khi lập trình viên làm việc một mình. Nó ít bug và những sai sót cùng nhiều thứ linh tinh khác mà sẽ là nguyên nhân của những vấn đề trong quá trình hoạt động sau này.

Trong một nhóm lớn hơn, thì các cặp có thể thay đổi mỗi tuần để cho mỗi một thành viên trong nhóm được làm bạn code với một ai đó hoàn toàn khác. Điều này mang lại lợi ích rất lớn, vì nó tạo điều kiện cho các lập trình viên có thể nói chuyện và trao đổi những ý tưởng trong một ngôn ngữ chung là code.

Chúng tôi nhận thấy cách này có kết quả nhanh như là hình thức làm việc độc lập. Code được viết ra nhanh hơn và không yêu cầu phải rà soát lại. Và khi mà phần code đã viết cần phải thay đổi, thì có nhiều hơn một người nắm rõ phần code đó.

Lập trình cặp đang là một phương pháp mới mẻ hiện đại trong dạy và học lập trình?Lập trình cặp đang là một phương pháp mới mẻ hiện đại trong dạy và học lập trình?

Đọc tiếp >>