Lập trình viên và hội chứng tự kỷ

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

Khi tôi đọc bài viết của Wesner Moise về hội chứng Asperger (một dạng tự kỷ nhẹ), tôi đã không cảm thấy ngạc nhiên. Nhiều người trong số các nhà phát triển phần mềm giỏi nhất mà tôi từng biết đều có một vài đặc điểm đi kèm với hội chứng tự kỷ (Asperger):

Để thành công trong lập trình thì một chút tự kỷ là điều cần thiết!Để thành công trong lập trình thì một chút tự kỷ là điều cần thiết!

Đọc tiếp >>

Advertisements

Vì bạn muốn trở thành một nhà phát triển game

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

Tôi thường nói rằng phát triển game là dạng phát triển phần mềm khó nhất. Nó có xu hướng lập trình ở cấp độ rất thấp, trên những nền tảng phần cứng khác thường, và bạn phải liên tục tối ưu hóa hiệu suất và “niềm vui” — hay bất cứ điều gì mà bạn có thể. Hãy xem xét sự phức tạp của một khía cạnh nhỏ trong phát triển game, AI (trí tuệ nhân tạo): làm thế nào để bạn mô phỏng các đối thủ một cách hiệu quả? Nếu đem so sánh với việc phát triển game thì các ứng dụng doanh nghiệp nhỏ của tôi đang làm cũng giống như chỉ là cuộc đi dạo trong công viên vậy.

Bạn muốn trở thành một lập trình viên trong ngành công nghiệp game?Bạn muốn trở thành một lập trình viên trong ngành công nghiệp game?

Đọc tiếp >>

Thuyết vị lai trong lập trình.. năm 1994

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

Paul Heberli và Bruce Karsh đã đề xuất một cái gì đó mà họ gọi là lập trình vị lai vào năm 1994:

Chúng tôi tin rằng có một cơ hội tuyệt vời cho các nguyên tắc vị lai sẽ được áp dụng vào khoa học của lập trình máy tính. Chúng tôi phản ứng chống lại bầu không khí tôn giáo nặng nề bao trùm mọi khía cạnh của lập trình máy tính. Chúng tôi tin rằng đây là lúc để giải phóng khỏi những ràng buộc của quá khứ, và ăn mừng một sự phục hưng trong nghệ thuật lập trình máy tính.

Chúng tôi thấy nhiều hệ thống máy tính hiện nay là vô cùng lãng phí và không hiệu quả. Phần cứng máy tính đã tăng tốc độ thực thi hơn 200 lần trong 20 vừa năm qua, trong khi việc thiết kế phần mềm có rất ít tiến bộ được tạo ra kể từ sự phát minh ra chương trình con. Chúng tôi muốn nhìn thấy khoa học của lập trình phát triển một cách nhanh chóng như các lĩnh vực công nghệ khác.

Chúng tôi tin rằng giáo dục đại học đang dành quá nhiều thời gian để truyền đạt những giáo điều, thay vì nên dạy về lý thuyết của việc thiết kế phần mềm để giúp các lập trình viên tạo ra những chương trình tốt. Các trường đại học nên cung cấp cho sinh viên ít giáo lý hơn, và thêm nhiều kinh nghiệm thực tế trong việc tạo ra và phân tích các chương trình nhỏ, nhanh, hữu ích và hiệu quả.

Liệu tôi có nên theo trường phái lập trình vị lai?Liệu tôi có nên theo trường phái lập trình vị lai?

Đọc tiếp >>

Lập trình không có comment

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

Nếu việc gieo rắc vào code của bạn với nhiều comment là tốt, thì việc có vô số comment trong code của bạn sẽ là rất tuyệt vời, đúng không nào? Nhưng điều đó hoàn toàn không đúng. Vượt quá giới hạn là một cách để những comment tốt trở nên tồi:

Chúng ta phải viết comment trong code sao cho hiệu quả nhỉ?Chúng ta phải viết comment trong code sao cho hiệu quả nhỉ?

Đọc tiếp >>

Dự luật nhân quyền dành cho lập trình viên

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

Một điều không thể tin nổi đối với tôi đó là một công ty phần mềm sẵn sàng trả cho một lập trình viên mức lương từ $60-$100k đô-la mỗi năm (khoảng 1,2 tỷ-2,1 tỷ VNĐ/năm), tuy nhiên lại cung cấp cho anh ta hoặc cô ta một điều kiện làm việc rất tồi tệ với những máy móc phần cứng rẻ tiền. Điều đó thì không mang lại lợi ích kinh doanh chút nào cả. Và tôi đã nhìn thấy điều này ở khắp nơi. Thật là sốc khi có biết bao nhiêu công ty vẫn không cung cấp cho các nhà phát triển phần mềm những thứ cần thiết để họ có thể thành công.

Tôi đề xuất chúng ta nên lập ra một Bản Dự Luật Nhân Quyền Dành Cho Lập Trình Viên, nhằm bảo vệ những quyền lợi cho các lập trình viên bằng cách ngăn chặn các công ty đang từ chối cung cấp cho họ những công cụ cơ bản để thành công.

Dự luật về các quyền cơ bản dành cho lập trình viên.Dự luật về các quyền cơ bản dành cho lập trình viên.

Đọc tiếp >>

Con voi ở trong phòng: Google độc diễn

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

Tôi mới duyệt qua lịch trình các phiên thảo luận của một hội nghị về tìm kiếm (Search Conference) sắp diễn ra, cái mà đã mô tả bản thân nó như sau:

Cách để thành công trên mạng là thông qua việc trở nên dễ dàng được tìm thấy trên các bộ máy tìm kiếm như là Google, Yahoo!, và Microsoft Live Search. Trong khi các lập trình viên có những suy nghĩ rằng tìm kiếm là một hoạt động tiếp thị, thì kiến trúc kỹ thuật bây giờ trở thành một yếu tố quan trọng cho thành công thông qua tìm kiếm.

Có bất kỳ ai nhìn thấy một con voi ở trong phòng không? Không ư?

Google đang là tay chơi độc diễn trong lĩnh vực tìm kiếm.Google đang là tay chơi độc diễn trong lĩnh vực tìm kiếm.

Đọc tiếp >>

Lập trình viên nên thuộc lòng triết lý KISS và YAGNI

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

Những quan điểm của kỹ sư Rico (hiện đang làm việc cho Microsoft) về một chủ đề gần như rất thân thuộc đối với tôi:

Tôi không nghĩ rằng có ai đó lại có thể đưa bất kỳ kết luận nào về tốc độ thực thi của phần mềm trong bài viết của tôi trên blog Performance Tidbits. Nếu tôi có thể tóm tắt lại lời khuyên của mình trong bài viết đó trong chỉ một vài từ thì nó sẽ là “đừng sử dụng các đặc trưng OOP mà bạn không cần đến.”

Điều này không phải nói rằng bạn nên tránh xa các hàm ảo, kế thừa, hoặc những đặc trưng khác của các ngôn ngữ lập trình hiện đại. Mà thực ra chúng không những chỉ mang lại sự rõ ràng và khả năng bảo trì mà chúng cũng cải thiện cả về tốc độ thực thi nữa. Nhưng, cũng rất thường xuyên, tôi quan sát thấy rằng người ta viết code của họ theo một cách rối rắm trong khi có một mô hình đơn giản hơn rất nhiều mà vẫn mang lại hiệu quả tương đương và tốc độ thực thi còn nhanh hơn. Dù cho bạn có sùng bái phong cách lập trình nào đi chăng nữa thì tôi nghĩ bạn sẽ đồng ý rằng ngôn ngữ càng trừu tượng và phức tạp thì không giúp ích gì cho thiết kế của bạn – thay vì mỗi đặc trưng phức tạp sẽ tạo ra rất nhiều tiêu cực thì nên bằng một cách nào đó chuyển thành tích cực hơn với những lợi ích như là sự rõ ràng, dễ bảo trì, tốc độ thực thi nhanh, và nhiều vấn đề khác.

Vì vậy khi tôi nói những câu kiểu như “đừng sử dụng một delegate nếu tính đa hình thông thường đã có thể làm được” thì ý tôi không phải là bạn nên tránh xa các delegate, mà ý tôi là bạn nên không sử dụng chúng nếu không thấy cần thiết.

Khi bạn viết code thì hãy viết theo cách đơn giản nhất có thể.Khi bạn viết code thì hãy viết theo cách đơn giản nhất có thể.

Đọc tiếp >>

Nếu việc yêu máy tính là sai trái, thì tôi cũng chẳng muốn đúng đắn làm gì

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

Tôi tình cờ đọc cuốn sách Secret Guide to Computers (Cẩm nang bí mật dành cho máy tính) của tác giả Russ Walter khoảng năm 1993. Vào thời điểm đó thì nó đã lên tới tái bản lần thứ 18 rồi.

Cuốn sách Cẩm nang bí mật dành cho máy tínhCuốn sách Cẩm nang bí mật dành cho máy tính

Đọc tiếp >>

20 Lý do tại sao bạn nên hẹn hò với một lập trình viên

Bài viết được dịch từ blog Hongkiat.com

Lời bàn của Vinacode:

Nên cười hay nên mếu?

Nên cười hay nên mếu?

Thỉnh thoảng mình vẫn kiểm tra từ khóa để xem độc giả thường tìm kiếm trên Google cụm từ gì thì ra blog VinaCode. Hôm nay mình có kiểm tra thì bắt gặp một câu tìm kiếm mà không biết nên cười hay nên mếu. Cụm từ tìm kiếm của một vị độc giả nào đó là: “Có nên yêu một người làm nghề lập trình viên?” Thật không ngờ là nghề lập trình viên giờ rớt giá dữ vậy?

Không biết cụm từ “lập trình viên” có tự bao giờ, nhưng những người đang làm nghề này thì mình thấy đa phần đều là kỹ sư và cử nhân học 4-5 năm tại các trường đại học cả (chỉ có một số ít tay ngang, hoặc học các trung tâm APTECH, NIIT… phải không nhỉ?). Mình nhớ hồi mình học đại học thì nghề này “hot” lắm, như kiểu có phong trào “người người học CNTT, nhà nhà đào tạo CNTT” vậy. Nhưng sau đó là những năm kinh tế bùng nổ, và người ta lại chuyển sang “người người học Tài chính Ngân hàng, nhà nhà đào tạo Tài chính Ngân hàng” vì nghe nói nghề này lương cao, nếu làm bộ phận tín dụng thì thường được khách hàng lại quả nên mau giàu? Vài năm gần đây kinh tế suy thoái, các ngân hàng làm ăn thua lỗ rồi cắt giảm nhân sự, cắt giảm lương, nên thấy các bạn học ngành ngân hàng ra trường thất nghiệp nhiều vô kể.

Ngẫm đi ngẫm lại thì hóa ra chúng ta chọn ngành nghề là theo “tin đồn của mấy tờ báo lá cải”, nghe đồn là ngành này “hot” và ngành kia “cool” thì nhào vô, và có lẽ chúng ta vẫn chạy theo hội chứng đám đông. Chọn nghề học mà cũng giống như việc “vàng lên thì đổ xô đi bán, vàng xuống thì đổ xô đi mua” vậy.

Thôi thì hôm nay tiện thể có cụm từ tìm kiếm nói trên, nên mình cũng hơi lan man chút. Và cũng ngẫm lại cái nghiệp làm nghề lập trình. Đúng là những người làm nghề này vì đặc thù công việc nên họ thường phải ôm máy tính cả ngày, nên khả năng giao tiếp với xã hội cũng có phần hạn chế. Nhưng mà họ đều là những người thông minh, sống tình cảm và nội tâm. Sau đây mình xin gửi đến bạn bài viết nói về 20 tính cách nổi bật của một geek (thường là lập trình viên, hoặc người đam mê các hoạt động trí não) để ủng hộ các đồng nghiệp nhé! Và bạn hãy share bài viết này vì biết đâu có thể giúp đỡ cho một đồng nghiệp nào đó của chúng ta chăng? 🙄

Lập trình đang trở thành một nghề được ưa chuộng. Đó có thể là do lập trình viên đang tạo ra những ảnh hưởng quan trọng trong một thế giới mà đang ngày càng dựa vào công nghệ thông tin. Thế giới này đã thay đổi; và vì vậy chúng ta cũng có những thay đổi trong cách nhìn nhận về lập trình viên nói chung.

Tại sao các bạn gái nên hẹn hò với một lập trình viên?Tại sao các bạn gái nên hẹn hò với một lập trình viên?

Đọc tiếp >>