Là một lập trình viên Java và nhà phát triển phần mềm, tôi đã học được rất nhiều điều từ nhiều bài viết có tựa đề Điều mà mọi lập trình viên nên biết về..... , chúng có xu hướng cung cấp nhiều thông tin hữu ích và toàn diện về một chủ đề cụ thể mà khó có thể hiểu được. phát hiện. Trong quá trình tìm kiếm kiến thức, tôi tình cờ gặp được một số bài viết rất hữu ích mà tôi đánh dấu làm thông tin tham khảo để đọc lại. Ý tưởng rằng nhiều lập trình viên có thể được hưởng lợi từ việc đọc bộ sưu tập này đã thôi thúc tôi viết bài này và chia sẻ với bạn tất cả các bài viết "Điều mọi lập trình viên nên biết". Trong bài viết này, bạn sẽ làm quen với bộ kiến thức cổ điển mà mọi lập trình viên cần có, trong các chủ đề như bộ nhớ , Unicode , số học dấu phẩy động , mạng , thiết kế hướng đối tượng), thời gian , Mã hóa URL , Chuỗi và nhiều chủ đề khác. Danh sách này rất quan trọng đối với người mới bắt đầu và người mới học vì họ thường thiếu kiến thức thực tế. Vì hầu hết các bài viết đều dựa trên các ví dụ thực tế nên các lập trình viên trình độ sơ cấp và trung cấp có thể học hỏi được nhiều điều từ chúng. Ngoài ra, việc học những kiến thức cơ bản ngay từ đầu trong sự nghiệp sẽ giúp bạn tránh được những sai lầm mà các lập trình viên và nhà phát triển phần mềm khác đã mắc phải trong quá trình học tập của họ. Thật không may, không phải tất cả thông tin từ các bài viết được mô tả đều có thể dễ dàng tiếp thu ngay từ lần đọc đầu tiên. Rất có thể, bạn có thể không hiểu ngay một số chi tiết về số dấu phẩy động hoặc bạn có thể bị nhầm lẫn bởi sự phức tạp của bộ nhớ, nhưng điều quan trọng là bạn phải giữ bộ sưu tập này trong tầm tay và thỉnh thoảng tham khảo nó để làm rõ. Vì vậy tôi chúc bạn may mắn và thích đọc những bài viết tuyệt vời này. Nhân tiện, đừng quên chia sẻ bất kỳ bài viết "Mọi lập trình viên nên biết" nào khác nếu chúng chưa có trong danh sách của chúng tôi.
Những điều mọi lập trình viên nên biết về bộ nhớ
dịch sang tiếng Nga Đây là một trong những bài viết kinh điển sẽ hướng dẫn bạn về các đặc điểm của trí nhớ, một số cũ, một số mới, một số nổi tiếng và một số không quá nhiều. Mặc dù giữ vai trò quản lý và có mặt khắp nơi nhưng không phải lập trình viên nào cũng có đủ kiến thức về Bộ nhớ. Tầm quan trọng của việc làm quen với bộ nhớ trong các hệ thống hiện đại sẽ tăng lên nếu bạn đang viết các ứng dụng hiệu năng cao. Các nhà thiết kế phần cứng đang đưa ra các mô hình quản lý bộ nhớ phức tạp hơn và các kỹ thuật tăng tốc, chẳng hạn như bộ đệm CPU, nhưng chúng không thể hoạt động tối ưu nếu không có sự trợ giúp từ các lập trình viên. Tôi vẫn đang đọc bài viết này và tôi không thể cho bạn biết tôi đã học được bao nhiêu từ nó về RAM, bộ đệm CPU như bộ đệm L1 và L2, các loại bộ nhớ khác nhau, truy cập bộ nhớ trực tiếp, thiết kế bộ điều khiển bộ nhớ và bộ nhớ nói chung . Nói tóm lại, đây là một cuốn sách phải đọc đối với các lập trình viên ở mọi cấp độ.Điều mọi nhà khoa học nên biết về số học dấu phẩy động
Chủ đề số học dấu phẩy động rất phức tạp và không dễ nắm vững. Nhiều lập trình viên Java thậm chí không biết điều gì có thể sai khi so sánh các giá trị với kiểufloat
/ double
toán tử ==
. Nhiều người trong chúng ta thường mắc sai lầm khi thực hiện các phép tính tiền tệ dạng float
và double
. Bài viết này là một viên ngọc quý khác của loạt bài này và là bài viết phải đọc đối với tất cả các nhà phát triển và lập trình viên phần mềm. Khi tích lũy được kinh nghiệm, bạn nên đi sâu vào những vấn đề phức tạp của các chủ đề chung và số học dấu phẩy động là một trong số đó. Là một nhà phát triển Java cấp cao, bạn nên biết cách thực hiện các phép tính tiền tệ, khi nào nên sử dụng hoặc float
cách làm tròn số dấu phẩy động, v.v. Ngay cả khi bạn có kiến thức vững chắc về chủ đề này, sau khi đọc bài viết, bạn có thể khám phá ra điều gì đó mới mẻ về các phép toán dấu phẩy động. double
BigDecimal
Những điều mọi nhà phát triển nên biết về Unicode
Mã hóa ký tự là một lĩnh vực khác mà nhiều lập trình viên gặp khó khăn và "Mức tối thiểu tuyệt đối mà mọi nhà phát triển phần mềm nên biết về Unicode và Bộ ký tự (Không có lý do gì!)" nhằm mục đích lấp đầy khoảng trống đó. Xin lưu ý rằng: Có, đây là tiêu đề đầy đủ của bài viết này. Tác giả của nó là Joel Spolsky, một trong những người sáng lập https://stackoverflow.com . Joel đã viết bài viết này trên blog của mình gần 10 năm trước, nhưng nó vẫn không mất đi sự liên quan trong thế giới hiện đại. Bài viết giải thích Unicode là gì, mã hóa là gì, cách các ký tự được biểu diễn bằng byte và hơn thế nữa. Một trong những điều hay nhất của bài viết này là ngôn ngữ và phương pháp trình bày, ngay cả khi bạn không biết gì về Unicode, bạn sẽ không gặp vấn đề gì khi hiểu nó. Nói tóm lại, một cuốn khác phải đọc dành cho tất cả các lập trình viên, lập trình viên và kỹ sư phần mềm.Điều mọi lập trình viên nên biết về thời gian
Bên cạnh mã hóa ký tự, thời gian và ngày tháng (Time
và Date
) là một lĩnh vực khác mà nhiều lập trình viên, trong đó có tôi, gặp khó khăn. Ngay cả các nhà phát triển cấp cao cũng bị lạc trong GMT, UTC, giờ tiết kiệm ánh sáng ban ngày và giây nhuận. Thành thật mà nói, không dễ để xử lý các múi giờ mà không mắc một số sai sót và việc sử dụng Giờ tiết kiệm ánh sáng ban ngày càng khiến việc này trở nên khó khăn hơn. Vấn đề sẽ trở nên tồi tệ hơn nếu bạn áp dụng phương pháp thử và sai vì bạn sẽ không bao giờ có thể giải quyết được vấn đề của mình bằng cách làm này. Có rất nhiều điều có thể xảy ra sai sót và cũng có một số lượng quan niệm sai lầm tương đương. Những vấn đề như liệu một ngày có chứa múi giờ hay không có thể khiến bạn bối rối, việc chuyển đổi thời gian UNIX sang các múi giờ khác có thể khiến bạn khó chịu và bạn có thể dễ dàng quên đi việc đồng bộ hóa đồng hồ và độ trễ. Tôi hy vọng rằng sau khi đọc bài viết này, nhiều quan niệm sai lầm của bạn về thời gian sẽ biến mất và bạn sẽ có được sự hiểu biết đầy đủ về thời gian.
Những điều mọi nhà phát triển web nên biết về mã hóa URL
Bài viết này mô tả những quan niệm sai lầm phổ biến về mã hóa Bộ định vị tài nguyên thống nhất (URL), sau đó cố gắng làm rõ mã hóa URL cho HTTP, sau đó trình bày các vấn đề và giải pháp phổ biến. Mặc dù bài viết này không dành riêng cho bất kỳ ngôn ngữ lập trình nào nhưng nó minh họa các vấn đề trong Java) và kết thúc bằng các giải thích cách khắc phục các vấn đề về mã hóa URL trong Java và trong các ứng dụng web ở nhiều cấp độ. Bạn sẽ học ngữ pháp URL cơ bản, cú pháp URL chung trong HTTP và các giao thức khác. Bài viết này cũng đề cập đến các lỗi URL phổ biến như mã hóa ký tự, ký tự đặc biệt ở các phần khác nhau của URL và các vấn đề về mã hóa/giải mã URL. Nếu bạn là lập trình viên Java thì bạn cũng sẽ học cách quản lý URL đúng cách trong ứng dụng Java. Cách xây dựng URL và sử dụng thư viện máy khách Apache Commons HTTP. Cuối cùng, nó cũng cung cấp các phương pháp hay nhất và đề xuất để làm việc với URL, chẳng hạn như cách bạn nên mã hóa URL khi xây dựng URL, đảm bảo bộ lọc viết lại URL xử lý URL của bạn một cách chính xác, v.v. Tóm lại, đây là một cuốn sách phải đọc đối với bất kỳ nhà phát triển và lập trình viên web nào.Mọi lập trình viên đều biết gì về phát triển web?
Bài viết thú vị này của lập trình viênStackExchange nói về những điều mà mọi lập trình viên triển khai các chi tiết kỹ thuật của ứng dụng web nên cân nhắc trước khi mở một trang web ra công chúng. Nó bao gồm những thứ từ các lĩnh vực Thiết kế giao diện và Trải nghiệm người dùng, Bảo mật, tiêu chuẩn Web, Hiệu suất, Tối ưu hóa công cụ tìm kiếm (SEO), công nghệ được sử dụng và một số tài nguyên quan trọng. Thế giới ngày nay chủ yếu phụ thuộc vào Internet và việc một lập trình viên có một trang web hoặc blog cá nhân là điều khá phổ biến. Kinh nghiệm thu được từ bài viết này sẽ hữu ích không chỉ trong hoạt động nghề nghiệp của bạn mà còn trong các dự án của riêng bạn. Bạn sẽ tìm hiểu về tất cả các công nghệ chính như HTTP, HTML, XML, CSS, JavaScript, khả năng tương thích của trình duyệt, mẹo để giảm thời gian tải trang web của bạn, sơ đồ trang web XML, thông số kỹ thuật của W3C và một số điểm chính khác.Những điều mọi lập trình viên nên biết về SEO
Đây là một bài viết khác sẽ khá hữu ích cho các nhà phát triển web, lập trình viên và người viết blog. SEO quá lớn để có thể bỏ qua và điều quan trọng là nhiều lập trình viên và người viết blog phải biết những kiến thức cơ bản về tối ưu hóa công cụ tìm kiếm để giúp Google tìm thấy nội dung của họ và hiển thị nội dung đó cho các lập trình viên đồng nghiệp. Vì không công ty nào có thể tồn tại nếu không có sự hiện diện của web trong thế giới kết nối ngày nay, SEO càng trở nên quan trọng hơn. Nếu bạn đang khởi nghiệp kinh doanh bất kỳ sản phẩm nào thì SEO là điều bạn nên quan tâm. Tất cả các lập trình viên, đặc biệt là các nhà phát triển web, có thể hưởng lợi rất nhiều từ bài viết này. Hãy nhớ rằng, tối ưu hóa công cụ tìm kiếm rất rộng và rất năng động, đồng thời khác nhau giữa các công cụ tìm kiếm khác nhau, chẳng hạn như Google, Yahoo và các công cụ khác. Vì vậy, để nắm vững chủ đề này bạn phải luôn cập nhật kiến thức của mình.Điều mà mọi lập trình viên C nên biết về hành vi không xác định #1/3
Ngôn ngữ lập trình C có khái niệm "hành vi không xác định". Hành vi không xác định là một chủ đề rộng với nhiều sắc thái và đó là một trong những lý do khiến tôi yêu thích Java: ít hành vi không xác định hơn, ít nhầm lẫn hơn, ổn định hơn và yên bình hơn. Nhiều thứ có vẻ hợp lý trong C thực sự có hành vi không xác định và đây là nguồn lỗi phổ biến trong các chương trình. Ngoài ra, bất kỳ hành vi không xác định nào trong C đều cấp quyền cho việc triển khai (của trình biên dịch và thời gian chạy) để tạo mã định dạng ổ cứng, thực hiện những điều hoàn toàn không mong muốn hoặc tệ hơn. Hãy đọc bài viết xuất sắc này để tìm hiểu sâu hơn về biển hành vi khó lường.Những điều mọi lập trình viên cần biết về mạng
Ngay từ bài viết "Bạn là một lập trình viên. Bạn đã bao giờ tự hỏi trò chơi nhiều người chơi hoạt động như thế nào chưa? Nhìn từ bên ngoài, điều đó có vẻ kỳ diệu: hai hoặc nhiều người chơi chia sẻ trải nghiệm hợp tác trực tuyến, như thể họ thực sự tồn tại cùng nhau trong cùng một thế giới ảo. Nhưng làm thế nào "Các lập trình viên, chúng tôi biết sự thật rằng những gì đang thực sự xảy ra hoàn toàn khác với những gì bạn thấy. Hóa ra tất cả chỉ là ảo ảnh." Đây là một bài viết rất thú vị về mạng được viết cho các lập trình viên trò chơi, nhưng tôi nghĩ mọi lập trình viên và nhà phát triển đều có thể hưởng lợi từ nó.Điều mọi nhà phát triển Java nên biết về chuỗi
Đây là bài viết của tôijava.lang.String
và cá nhân tôi nghĩ mọi lập trình viên Java đều nên biết về nó. Chuỗi rất quan trọng trong lập trình Java hàng ngày và đó là lý do tại sao kiến thức tốt là điều bắt buộc đối với bất kỳ nhà phát triển Java nào. Bài viết này đề cập đến nhiều khía cạnh quan trọng của Chuỗi, bao gồm nhóm chuỗi, chuỗi ký tự, so sánh chuỗi với ==
vs equals()
, chuyển đổi byte thành chuỗi, tại sao chuỗi là bất biến, nối chuỗi thích hợp, v.v. Một lập trình viên nâng cao có thể đã biết tất cả các tính năng này, nhưng ngay cả như vậy thì cũng nên xem lại.
GO TO FULL VERSION