JavaRush /Java Blog /Random-TW /健腦健腦。目前提升程式設計技能的任務

健腦健腦。目前提升程式設計技能的任務

在 Random-TW 群組發布
眾所周知,程式設計師必須定期思考、分析,有時還要找到各種大大小小的問題的非顯而易見的解決方案。為此,編碼員被迫主動使用大腦,而大腦已經是一個極其「昂貴」的玩具——人腦的質量不超過體重的1.5-2%,卻消耗了所有能量的約25%。這對一般人來說,積極從事複雜專案的程式設計師的大腦「消耗」了多少百分比的能量是令人恐懼的想像(科學家,很可能是英國人,尚未建立確切的指標)。 健腦健腦。 目前提升程式設計技能的任務 - 1從這一切可以得到什麼結論?要成為一名優秀的程式設計師,然後保持一名優秀的程式設計師,你需要讓你的大腦充滿活力,教導它在沒有過度壓力的情況下定期思考並找到解決方案。就像所有真正有效的方法一樣,雖然陳詞濫調,但卻有效。為了幫助你保持頭骨灰質的良好狀態,今天我們為程式設計師準備了一系列帶有謎題和謎題的好資源,也翻譯了幾個有趣的英文問題。

為程式設計師提供任務的網站

該集合中幾乎所有資源都是英文的,因此您不僅有機會練習解決編碼問題和謎題,而且還有機會在程式設計中使用英語進行額外的練習健腦健腦。 目前提升程式設計技能的任務 - 2
  1. 編碼位元組

    最受歡迎的英語資源之一,為程式設計師提供任務。在它上面,您可以找到 200 多個不同複雜程度的任務,可以使用 10 種可用程式語言(包括 Java)之一直接在網站上線上解決這些任務。

  2. 程式設計實踐

    程式設計實踐是一個流行的博客,它定期發佈各種有趣的、最重要的是與程式設計師相關的任務。對於一系列程式語言來說很常見。這些挑戰旨在幫助程式設計師在實踐中掌握最新的技術變化和程式設計方法。

  3. 頂級編碼器

    TopCoder 是一個由熱愛開發和解決各種問題的程式設計師組成的活躍社群。定期發布新任務,成功解決任務不僅可以提供練習和提高HR的機會,還可以獲得現金獎勵。

  4. 代碼卡塔

    CodeKata 是一個為程式設計師提供許多原創且詼諧問題的博客,由 Dave Thomas 發明,他是著名書籍 Pragmatic Programmer(《The Pragmatic Programmer. The Path from Apprentice to Master》)的作者之一。CodeKata網站上的問題多種多樣,解決方案與實際程式設計工作相關。

  5. 北京大學ACIP/ICPC線上法官

    北京大學JudgeOnline for ACIP/ICPC是北京大學的一個頁面,包含來自各種競賽和比賽的程式設計師的任務。該網站定期更新,問題可以即時解決,解決方案由北京大學專家委員會評估。

  6. 歐拉計劃

    另一個古老的知名網站,有著嚴肅而不平凡的任務。「歐拉計畫是複雜數學和程式設計問題的集合,需要的不僅僅是數學知識來解決。問題的複雜性各不相同,該方法基於歸納鏈學習。也就是說,解決一個問題後,你會發現一個新概念,它可以讓你解決以前無法理解的其他問題,」該資源的創建者說。

  7. 每日 WTF

    Daily WTF 是另一個流行的程式設計社區,它遵循自帶程式碼 (BYOC) 原則,這意味著開發人員共享自己的原始程式碼來解決各種原始問題。該網站表示:“BYOC 的目的很簡單:為軟體開發人員提供透過解決比平常無聊的問題更有趣的問題來提高程式設計技能的機會。”

  8. 特普羅格

    一個優秀的俄語網站,提供演算法任務,用於測試Google、Facebook 等公司技術面試中專家的技能。提出了許多不同難度等級的問題,包括原始問題。

  9. Al Zimmermann 的程式設計競賽

    一個著名作家的網站,「瘋狂的程式設計師在這裡爭奪名譽和酷炫的獎品」。競賽每年舉行一到兩次,傑出程式設計師的名字會發佈在資源的主頁上,這無疑會吸引有前途的雇主的興趣。

  10. 蒂姆斯在線法官

    最大的俄語程式設計問題檔案庫之一,帶有自動檢查系統。檔案任務的主要來源是烏拉爾聯邦大學的比賽、烏拉爾錦標賽和其他地區節目活動。Timus Online Judge 還允許您參加烏拉爾聯邦大學定期舉辦的大多數比賽的線上版本。

5個有趣的任務

對於那些迫不及待想要開始的人來說,這裡有一些有趣的謎題。 健腦健腦。 目前提升程式設計技能的任務 - 3
  1. 史蒂夫賈伯斯的攪拌機之謎

    挑戰:你被縮小到五分錢大小並被丟進攪拌機中。您的體重減輕了,因此您的身體密度保持不變。60 秒後刀片將開始旋轉。你的行動?

    這是一個通常與蘋果公司創始人史蒂夫·喬布斯聯繫在一起的經典任務。1997 年賈伯斯重返蘋果時,他親自採訪了公司的每一位員工,並將這項任務作為他的第一個測試。

    解決方案:

    У данной задачи больше одного решения, так 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. Деньги в карманах и религия.

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

    問題:一個人口袋裡有錢,總共有90到95美元。一路上他參觀了幾座寺廟。他一進寺廟,錢就翻倍,最後他捐了100美元給每座寺廟。結果,參觀完最後一座寺廟後,他的口袋就空了。現在的問題是:他最初有多少錢,參觀了多少座寺廟?

    解決方案:

    我們從最後一座寺廟開始數:

    參觀完最後一個寺廟(1)後,他剩下 0 錢,所以 => (0 + 100)/ 2 = 50。在參觀最後一個寺廟之前,他有 50 美元

    在訪問前一個寺廟 (2) 之前,他有 (50 + 100) / 2 = 75。
    在訪問前一個寺廟 (3) 之前,他有 (75 + 100) / 2 = 87.5。
    在參觀之前的寺廟(4)之前,他有(87.5 + 100)/ 2 = 93.75。
    在訪問之前的寺廟 (5) 之前,他有 (93.75 + 100) / 2 = 96.875 - 該金額超出了初始條件。
    答:此人原本有 93.75 美元,參觀了 4 座寺廟。

  5. 現場發生的事件。

    最後,另一個古老的經典,人們甚至可以說是類似手風琴的邏輯思考問題。

    問題:在麥田裡發現了一具屍體。他手裡緊緊地握著火柴。這個人為什麼死了?

    解決方案:

    該名男子與三名乘客乘坐一架飛機。引擎熄火,飛機開始墜落。這些人發現他們四個人只有三個降落傘,於是開始拉火柴。其中一人拉了一小截,被迫在沒有降落傘的情況下跳下。

結語

好吧,對於那些覺得這些問題太簡單或太籠統的人來說,我們有更複雜的Java 問題,包括Java 程式設計師面試中經常遇到的棘手問題。如果您知道程式設計師感興趣的難題或想分享您最喜歡的任務,請寫在評論中。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION