JavaRush /จาวาบล็อก /Random-TH /ออกกำลังกายสมอง งานปัจจุบันสำหรับการอัพเกรดทักษะการเขียนโ...

ออกกำลังกายสมอง งานปัจจุบันสำหรับการอัพเกรดทักษะการเขียนโปรแกรม

เผยแพร่ในกลุ่ม
ดังที่เราทราบ โปรแกรมเมอร์ต้องคิด วิเคราะห์ และบางครั้งก็พบวิธีแก้ไขปัญหาต่าง ๆ ที่ไม่ชัดเจนทั้งเล็กและใหญ่เป็นประจำ ในการทำเช่นนี้ผู้เขียนโค้ดถูกบังคับให้ใช้สมองอย่างแข็งขันซึ่งเป็นของเล่นที่ "แพง" มากอยู่แล้ว - สมองมนุษย์ซึ่งมีมวลไม่เกิน 1.5-2% ของน้ำหนักตัวใช้พลังงานประมาณ 25% ของพลังงานทั้งหมด และนี่สำหรับคนทั่วไปและสมองของโปรแกรมเมอร์ที่ทำงานอย่างแข็งขันในโครงการที่ซับซ้อนนั้น "ใช้" เป็นเปอร์เซ็นต์ของพลังงานนั้นน่ากลัวที่จะจินตนาการ (และนักวิทยาศาสตร์ซึ่งมีแนวโน้มว่าจะเป็นชาวอังกฤษยังไม่ได้สร้างตัวบ่งชี้ที่แน่นอน) ออกกำลังกายสมอง  งานปัจจุบันสำหรับการอัพเกรดทักษะการเขียนโปรแกรม - 1ข้อสรุปอะไรที่สามารถสรุปได้จากทั้งหมดนี้? ในการเป็นโปรแกรมเมอร์ที่ดีและยังคงความเป็นหนึ่งได้ คุณต้องพัฒนาสมอง สอนให้คิดและหาวิธีแก้ปัญหาโดยไม่เครียดมากเกินไปและสม่ำเสมอ ซ้ำซากเช่นเดียวกับวิธีการที่มีประสิทธิภาพจริงๆ แต่มีประสิทธิภาพ เพื่อช่วยให้คุณรักษาสสารสีเทาในกะโหลกศีรษะของคุณให้อยู่ในสภาพดี วันนี้เราได้เตรียมแหล่งข้อมูลดีๆ พร้อมปริศนาและปริศนาสำหรับโปรแกรมเมอร์และยังได้แปลปัญหาที่น่าสนใจหลายประการจากภาษาอังกฤษด้วย

เว็บไซต์ที่มีงานสำหรับโปรแกรมเมอร์

แหล่งข้อมูลเกือบทั้งหมดในคอลเลกชั่นเป็นภาษาอังกฤษ ดังนั้น คุณจะมีโอกาสไม่เพียงแต่ได้ฝึกฝนการแก้ปัญหาและปริศนาการเขียนโค้ดเท่านั้น แต่ยังได้ฝึกฝนเพิ่มเติมในการใช้ภาษาอังกฤษในการเขียนโปรแกรม อีกด้วยออกกำลังกายสมอง  งานปัจจุบันสำหรับการอัพเกรดทักษะการเขียนโปรแกรม - 2
  1. โคเดอร์ไบต์

    หนึ่งในแหล่งข้อมูลภาษาอังกฤษยอดนิยมพร้อมงานสำหรับโปรแกรมเมอร์ ในนั้นคุณสามารถค้นหางานมากกว่า 200 งานในระดับความซับซ้อนที่แตกต่างกันซึ่งสามารถแก้ไขได้โดยตรงบนเว็บไซต์ออนไลน์โดยใช้หนึ่งใน 10 ภาษาการเขียนโปรแกรมที่มีอยู่ (รวมถึง Java)

  2. การเขียนโปรแกรมแพรคซิส

    Programming Praxis เป็นบล็อกยอดนิยมที่เผยแพร่งานที่น่าสนใจและที่สำคัญที่สุดคืองานที่เกี่ยวข้องสำหรับโปรแกรมเมอร์เป็นประจำ ทั่วไปสำหรับภาษาการเขียนโปรแกรมที่หลากหลาย ความท้าทายได้รับการออกแบบมาเพื่อช่วยให้ผู้เขียนโค้ดทันกับการเปลี่ยนแปลงล่าสุดของเทคโนโลยีและแนวทางการเขียนโปรแกรมในทางปฏิบัติ

  3. ท็อปโคเดอร์

    TopCoder เป็นชุมชนโปรแกรมเมอร์ผู้รักการพัฒนาและแก้ไขปัญหาต่างๆ มีการเผยแพร่งานใหม่ๆ เป็นประจำ ซึ่งโซลูชันที่ประสบความสำเร็จจะไม่เพียงแต่ให้โอกาสในการฝึกฝนและเพิ่มทรัพยากรบุคคลของคุณเท่านั้น แต่ยังได้รับรางวัลเงินสดอีกด้วย

  4. โค้ดกะตะ

    CodeKata เป็นบล็อกที่มีปัญหาที่ค่อนข้างแปลกใหม่และเฉียบแหลมสำหรับโปรแกรมเมอร์ คิดค้นโดย Dave Thomas หนึ่งในผู้เขียนหนังสือ Pragmatic Programmer ชื่อดัง (“The Pragmatic Programmer. The Path from Apprentice to Master”) ปัญหาบนเว็บไซต์ CodeKata นั้นมีความหลากหลาย และวิธีแก้ไขนั้นเกี่ยวข้องกับงานเขียนโปรแกรมจริง

  5. ผู้พิพากษามหาวิทยาลัยปักกิ่งออนไลน์สำหรับ ACIP/ICPC

    Peking University JudgeOnline for ACIP/ICPC เป็นเพจของ Peking University ที่มีงานสำหรับโปรแกรมเมอร์จากการแข่งขันและการแข่งขันต่างๆ เว็บไซต์ได้รับการอัปเดตเป็นประจำ ปัญหาต่างๆ สามารถแก้ไขได้แบบเรียลไทม์ และแนวทางแก้ไขจะได้รับการประเมินโดยคณะกรรมการผู้เชี่ยวชาญของมหาวิทยาลัยปักกิ่ง

  6. โปรเจ็กต์ออยเลอร์

    ไซต์เก่าแก่ที่มีชื่อเสียงอีกแห่งหนึ่งซึ่งมีงานที่จริงจังและไม่สำคัญ “โครงการออยเลอร์คือชุดของปัญหาทางคณิตศาสตร์และการเขียนโปรแกรมที่ซับซ้อนซึ่งต้องใช้มากกว่าความรู้ทางคณิตศาสตร์ในการแก้ปัญหา ปัญหามีความซับซ้อนแตกต่างกันไป และวิธีการจะขึ้นอยู่กับการเรียนรู้แบบลูกโซ่แบบอุปนัย นั่นคือเมื่อแก้ไขปัญหาหนึ่งแล้ว คุณจะค้นพบแนวคิดใหม่ที่จะช่วยให้คุณสามารถแก้ไขปัญหาอื่น ๆ ที่ไม่สามารถเข้าถึงได้ก่อนหน้านี้” ผู้สร้างทรัพยากรกล่าว

  7. WTF รายวัน

    Daily WTF เป็นอีกหนึ่งชุมชนการเขียนโปรแกรมยอดนิยมที่ทำงานบนหลักการ Bring Your Own Code (BYOC) ซึ่งหมายความว่านักพัฒนาจะแชร์ซอร์สโค้ดของตนเองเพื่อแก้ไขปัญหาดั้งเดิมต่างๆ “วัตถุประสงค์ของ BYOC นั้นเรียบง่าย: เพื่อให้คุณในฐานะนักพัฒนาซอฟต์แวร์มีโอกาสพัฒนาทักษะการเขียนโปรแกรมของคุณโดยการแก้ปัญหาที่น่าสนใจกว่าปกติเล็กน้อยและน่าเบื่อ” เว็บไซต์กล่าว

  8. ทีโปรเกอร์

    ไซต์ภาษารัสเซียที่ยอดเยี่ยมพร้อมงานอัลกอริธึมที่ใช้ทดสอบทักษะของผู้เชี่ยวชาญในระหว่างการสัมภาษณ์ทางเทคนิคในบริษัทต่างๆ เช่น Google, Facebook และอื่นๆ มีปัญหามากมายที่นำเสนอ รวมถึงปัญหาดั้งเดิมที่มีระดับความยากต่างกันไป

  9. การแข่งขันการเขียนโปรแกรมของ Al Zimmermann

    เว็บไซต์ของนักเขียนชื่อดังที่ "โปรแกรมเมอร์ผู้บ้าคลั่งแข่งขันกันเพื่อชื่อเสียงและรางวัลสุดเจ๋ง" การแข่งขันจะจัดขึ้นปีละครั้งหรือสองครั้ง และชื่อของโปรแกรมเมอร์ที่มีชื่อเสียงจะถูกเผยแพร่ในหน้าหลักของแหล่งข้อมูล ซึ่งดึงดูดความสนใจจากนายจ้างที่มีแนวโน้มอย่างแน่นอน

  10. ผู้พิพากษา Timus ออนไลน์

    หนึ่งในคลังเก็บปัญหาการเขียนโปรแกรมภาษารัสเซียที่ใหญ่ที่สุดพร้อมระบบตรวจสอบอัตโนมัติ แหล่งที่มาหลักของงานสำหรับการเก็บถาวรคือการแข่งขันที่ Ural Federal University, Ural Championships และกิจกรรมการเขียนโปรแกรมระดับภูมิภาคอื่น ๆ Timus Online Judge ยังช่วยให้คุณมีส่วนร่วมในการแข่งขันส่วนใหญ่ในเวอร์ชันออนไลน์ที่จัดขึ้นเป็นประจำที่ Ural Federal University

5 งานที่น่าสนใจ

ต่อไปนี้เป็นปริศนาที่น่าสนใจสำหรับผู้ที่แทบรอไม่ไหวที่จะเริ่มต้น ออกกำลังกายสมอง  งานปัจจุบันสำหรับการอัพเกรดทักษะการเขียนโปรแกรม - 3
  1. ปริศนา Blender จาก Steve Jobs

    ความท้าทาย: คุณถูกย่อให้เหลือขนาดเท่านิกเกิลและโยนลงในเครื่องปั่น น้ำหนักของคุณลดลงเพื่อให้ความหนาแน่นของร่างกายคุณยังคงเท่าเดิม ใบมีดจะเริ่มหมุนหลังจากผ่านไป 60 วินาที การกระทำของคุณ?

    นี่เป็นงานคลาสสิกที่มักเกี่ยวข้องกับ Steve Jobs ผู้ก่อตั้ง Apple เมื่อจ็อบส์กลับมาที่ Apple ในปี 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