JavaRush /Blog Java /Random-VI /Tập thể dục trí não. Nhiệm vụ hiện tại để nâng cao kỹ năn...

Tập thể dục trí não. Nhiệm vụ hiện tại để nâng cao kỹ năng lập trình

Xuất bản trong nhóm
Như chúng ta biết, các lập trình viên thường xuyên phải suy nghĩ, phân tích và đôi khi tìm ra những giải pháp không rõ ràng cho nhiều vấn đề lớn và nhỏ khác nhau. Để làm được điều này, các lập trình viên buộc phải tích cực sử dụng bộ não của mình, vốn vốn đã là một món đồ chơi cực kỳ “đắt tiền” - bộ não con người, có khối lượng không quá 1,5-2% trọng lượng cơ thể, tiêu thụ khoảng 25% tổng năng lượng. Và điều này là đối với một người bình thường, và thật đáng sợ khi tưởng tượng bao nhiêu phần trăm năng lượng được “tiêu thụ” bởi bộ não của một lập trình viên đang tích cực làm việc trong một dự án phức tạp (và các nhà khoa học, rất có thể là người Anh, vẫn chưa thiết lập được chỉ số chính xác). Tập thể dục trí não.  Nhiệm vụ nâng cao kỹ năng lập trình hiện nay - 1Kết luận nào có thể được rút ra từ tất cả những điều này? Để trở thành một lập trình viên giỏi và sau đó vẫn là một lập trình viên giỏi, bạn cần phải rèn luyện trí não của mình, dạy nó cách suy nghĩ và tìm ra giải pháp mà không bị căng thẳng quá mức và thường xuyên. Trite, giống như tất cả các phương pháp thực sự hiệu quả, nhưng hiệu quả. Để giúp bạn giữ chất xám trong hộp sọ của mình ở trạng thái tốt, hôm nay chúng tôi đã chuẩn bị tuyển chọn các tài nguyên hay với các câu đố và câu đố dành cho các lập trình viên, đồng thời cũng dịch một số vấn đề thú vị từ tiếng Anh.

Trang web có nhiệm vụ dành cho lập trình viên

Hầu hết tất cả tài nguyên trong bộ sưu tập đều bằng tiếng Anh, vì vậy bạn sẽ có cơ hội không chỉ thực hành giải các bài toán và câu đố về mã hóa mà còn được thực hành thêm cách sử dụng tiếng Anh trong lập trình. Tập thể dục trí não.  Nhiệm vụ nâng cao kỹ năng lập trình hiện nay - 2
  1. Coderbyte

    Một trong những tài nguyên tiếng Anh phổ biến nhất với các nhiệm vụ dành cho lập trình viên. Trên đó, bạn có thể tìm thấy hơn 200 nhiệm vụ với mức độ phức tạp khác nhau, có thể được giải quyết trực tiếp trên trang web trực tuyến bằng một trong 10 ngôn ngữ lập trình có sẵn (bao gồm cả Java).

  2. Thực hành lập trình

    Lập trình Praxis là một blog phổ biến thường xuyên xuất bản nhiều nhiệm vụ thú vị và quan trọng nhất là có liên quan dành cho các lập trình viên. Phổ biến cho một loạt các ngôn ngữ lập trình. Các thử thách được thiết kế để giúp các lập trình viên bắt kịp những thay đổi mới nhất về công nghệ và phương pháp lập trình trong thực tế.

  3. TopCoder

    TopCoder là một cộng đồng lập trình viên năng động, yêu thích phát triển và giải quyết nhiều vấn đề khác nhau. Các nhiệm vụ mới được xuất bản thường xuyên, giải pháp thành công sẽ không chỉ mang đến cơ hội rèn luyện và nâng cao nhân sự của bạn mà còn nhận được giải thưởng tiền mặt.

  4. CodeKata

    CodeKata là một blog có rất nhiều vấn đề khá độc đáo và hóm hỉnh dành cho lập trình viên, được sáng tạo bởi Dave Thomas, một trong những tác giả của cuốn sách nổi tiếng Pragmatic Programmer (“The Pragmatic Programmer. The Path from Apprentice to Master”). Các vấn đề trên trang web CodeKata rất đa dạng và giải pháp phù hợp với công việc lập trình thực tế.

  5. Thẩm phán Đại học Bắc Kinh Trực tuyến cho ACIP/ICPC

    Đại học Bắc Kinh JudgeOnline dành cho ACIP/ICPC là một trang của Đại học Bắc Kinh chứa các bài tập dành cho lập trình viên từ nhiều cuộc thi và cuộc thi khác nhau. Trang web được cập nhật thường xuyên, các vấn đề có thể được giải quyết trong thời gian thực và các giải pháp được đánh giá bởi ủy ban gồm các chuyên gia của Đại học Bắc Kinh.

  6. Dự án Euler

    Một trang web nổi tiếng cũ khác với các nhiệm vụ nghiêm túc và không hề tầm thường. “Dự án Euler là một tập hợp các bài toán lập trình và toán học phức tạp đòi hỏi nhiều kiến ​​thức toán học hơn để giải. Các vấn đề có mức độ phức tạp khác nhau và cách tiếp cận dựa trên việc học chuỗi quy nạp. Nghĩa là, sau khi giải quyết được một vấn đề, bạn sẽ khám phá ra một khái niệm mới cho phép bạn giải quyết các vấn đề khác mà trước đây bạn không thể hiểu được,” những người tạo ra tài nguyên cho biết.

  7. WTF hàng ngày

    Daily WTF là một cộng đồng lập trình phổ biến khác hoạt động theo nguyên tắc Mang mã riêng của bạn (BYOC), nghĩa là các nhà phát triển chia sẻ mã nguồn của riêng họ để giải quyết nhiều vấn đề ban đầu khác nhau. Trang web cho biết: “Mục đích của BYOC rất đơn giản: mang đến cho bạn, với tư cách là một nhà phát triển phần mềm, cơ hội cải thiện kỹ năng lập trình của mình bằng cách giải quyết một vấn đề thú vị hơn một chút so với những vấn đề nhàm chán thông thường”.

  8. Tproger

    Một trang web tiếng Nga xuất sắc với các nhiệm vụ thuật toán được sử dụng để kiểm tra kỹ năng của các chuyên gia trong các cuộc phỏng vấn kỹ thuật tại các công ty như Google, Facebook và các công ty khác. Có rất nhiều vấn đề được trình bày, bao gồm cả những vấn đề ban đầu, với mức độ khó khác nhau.

  9. Cuộc thi lập trình của Al Zimmermann

    Trang web của một tác giả nổi tiếng, nơi “các lập trình viên điên rồ cạnh tranh để giành lấy danh tiếng và những giải thưởng hấp dẫn”. Các cuộc thi được tổ chức một hoặc hai lần một năm và tên của các lập trình viên xuất sắc được công bố trên trang chính của tài nguyên, điều này chắc chắn thu hút sự quan tâm từ các nhà tuyển dụng đầy hứa hẹn.

  10. Timus Thẩm phán trực tuyến

    Một trong những kho lưu trữ lớn nhất bằng tiếng Nga về các vấn đề lập trình với hệ thống kiểm tra tự động. Nguồn nhiệm vụ chính của kho lưu trữ là các cuộc thi tại Đại học Liên bang Ural, Giải vô địch Ural và các sự kiện lập trình khu vực khác. Timus Online Judge còn cho phép bạn tham gia phiên bản trực tuyến của hầu hết các cuộc thi thường xuyên diễn ra tại Đại học Liên bang Ural.

5 nhiệm vụ thú vị

Dưới đây là một số câu đố thú vị dành cho những ai nóng lòng muốn bắt đầu. Tập thể dục trí não.  Nhiệm vụ nâng cao kỹ năng lập trình hiện nay - 3
  1. Câu đố về máy xay sinh tố từ Steve Jobs

    Thử thách: Bạn bị thu nhỏ lại kích thước bằng đồng xu và ném vào máy xay sinh tố. Cân nặng của bạn đã giảm nên mật độ cơ thể của bạn vẫn giữ nguyên. Các lưỡi dao sẽ bắt đầu quay sau 60 giây. Hành động của bạn?

    Đây là một nhiệm vụ kinh điển thường gắn liền với Steve Jobs, người sáng lập Apple. Khi Jobs trở lại Apple vào năm 1997, ông đã đích thân phỏng vấn từng nhân viên tại công ty và coi nhiệm vụ này là một trong những thử nghiệm đầu tiên của mình.

    Giải pháp:

    У данной задачи больше одного решения, так How она служит для того, чтобы оценить креативность сотрудника, умение быстро находить выход из стрессовой ситуации и неординарно мыслить. Вот наиболее классический вариант решения: лечь How можно плотнее к днищу блендера, чтобы его лезвия крутorсь над вами.

  2. Сколько людей было на конференции?

    Задача: На конференции каждый гость пожал руку всем остальным. Было 66 рукопожатий. Сколько человек было на научной конференции?

    Другая классическая программистская задача из тех, которые часто дают на первых этапах технических собеседований.

    Классическое решение:

    Допустим, на конференции было n человек. Первый человек пожимает руку всем остальным: n-1 раз (n-1 человек). Второй человек пожимает руку всем остальным (но не первому, так How это уже было сделано): n-2 раза. 3-й человек пожимает руку всем остальным: n-3.

    Таким образом, общее количество рукопожатий будет = (n-1) + (n-2) + (n-3) + …… 0;
    = (n-1) * (n-1 + 1) / 2 = (n-1) * n / 2 = 66
    = n ^ 2 -n = 132
    = (n-12) (n + 11) = 0;
    = n = 12 ИЛИ n = -11

    Вариант -11 исключен, поэтому ответ: 12 человек.

  3. Бар и 25 стульев.

    Еще одна классическая и весьма остроумная задачка, на этот раз посложнее.

    Задача: Есть бар с 25-ю стульями, которые расположены в линию. Посетители этого бара — антисоциальные личности, поэтому, когда они заходят в бар, то всегда стараются найти место How можно дальше от остальных. Если постоянный посетитель заходит в бар и обнаруживает, что свободного места без соседства с кем-либо нет, он разворачивается и уходит. Владелец бара, естественно, хочет видеть можно больше посетителей. Владелец может указать место, на которое нужно сесть, только первому клиенту, тогда How все остальные сами выберут себе самое дальнее место от других. Предположим, что места пронумерованы от 1 до 25. Какое место должно быть занято первым?

    Решение:

    Первый человек должен сесть на стул 9 or 17 (из-за симметрии, не имеет значения, Howое именно из двух мест). Предположим, он выбирает место 9. Следующий человек выберет место 25, так How оно самое дальнее от места 9. Следующие два человека займут места 1 и 17. Следующие три займут 5, 13 и 21. Следующие шесть будут занимать стулья 3, 7, 11, 15, 19 и 23. Таким образом, в баре разместится максимум 13 человек, и никто не будет сидеть рядом с другим человеком. Если место, отличное от 9 or 17, будет выбрано первым, общее количество посетителей бара будет меньше 13.

  4. Деньги в карманах и религия.

    Интересно составленная задача на нахождение алгоритма.

    Vấn đề: Một người đàn ông có tiền trong túi, tổng số tiền là từ 90 đến 95 đô la. Trên đường đi anh ghé thăm một số ngôi chùa. Ngay khi anh ta bước vào một ngôi chùa, số tiền của anh ta tăng gấp đôi và cuối cùng anh ta quyên góp 100 đô la cho mỗi ngôi chùa. Kết quả là túi của anh ta trở nên trống rỗng sau khi viếng thăm ngôi đền cuối cùng. Bây giờ câu hỏi là: ban đầu anh ta có bao nhiêu tiền và đã viếng thăm bao nhiêu ngôi chùa?

    Giải pháp:

    Chúng ta bắt đầu đếm từ ngôi đền cuối cùng:

    Sau khi viếng thăm ngôi đền cuối cùng (1) anh ấy còn lại 0 tiền nên => ​​(0 + 100) / 2 = 50. Anh ấy có 50 đô la trước khi đến thăm ngôi đền cuối cùng

    Trước khi đến thăm ngôi chùa trước (2), anh ấy có (50 + 100) / 2 = 75.
    Trước khi đến thăm ngôi chùa trước (3), anh ấy có (75 + 100) / 2 = 87,5.
    Trước khi đến thăm ngôi chùa trước (4), anh ấy có (87,5 + 100) / 2 = 93,75.
    Trước khi đến thăm ngôi chùa trước (5), anh ta có (93,75 + 100) / 2 = 96,875 - số tiền vượt quá điều kiện ban đầu.
    Trả lời: Người này ban đầu có 93,75 USD và đã đến thăm 4 ngôi chùa.

  5. Một sự cố trên sân.

    Và cuối cùng, một vấn đề cổ điển khác, người ta thậm chí có thể nói vấn đề tư duy logic giống như đàn accordion.

    Vấn đề: Một người đàn ông chết được tìm thấy trên cánh đồng lúa mì. Anh nắm chặt que diêm trong tay. Tại sao người đó lại chết?

    Giải pháp:

    Người đàn ông đang bay trên máy bay cùng với ba hành khách. Động cơ ngừng hoạt động và máy bay bắt đầu rơi. Những người đàn ông phát hiện ra rằng chỉ có ba chiếc dù cho bốn người trong số họ và bắt đầu kéo diêm. Một người trong số họ rút ra một chiếc dù ngắn và buộc phải nhảy mà không có dù.

Lời kết

Chà, đối với những người thấy những vấn đề này quá đơn giản hoặc quá chung chung, chúng tôi có những vấn đề Java phức tạp hơn , bao gồm cả những vấn đề phức tạp thường được đưa ra trong các cuộc phỏng vấn dành cho lập trình viên Java. Nếu bạn biết những câu đố thú vị dành cho lập trình viên hoặc muốn chia sẻ nhiệm vụ yêu thích của mình, hãy viết bình luận.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION