ต้องการรหัสทำความสะอาดหรือไม่ ใช้กฎหก

ต้องการรหัสทำความสะอาดหรือไม่ ใช้กฎหก

ทุกคนต้องการเขียนโค้ดที่สะอาด มีหนังสือทั้งเล่มเกี่ยวกับเรื่องนี้!

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

กุญแจสำคัญคือ:

ทุกบรรทัดทำสิ่งเดียวเท่านั้น

หนึ่งบรรทัด หนึ่งงาน

แต่อย่าไปบ้ากับมัน

ต้องการรหัสทำความสะอาดหรือไม่ ใช้กฎหก อย่าเป็นแบบนี้

นี่คือแนวคิดหลัก: โค้ดสั้นๆ ต้องใช้สมองในการอ่านน้อยกว่าโค้ดที่ยาว รหัสที่อ่านง่ายให้เหตุผลง่ายกว่า โปรแกรมที่มีบรรทัดที่สั้นกว่าในทางทฤษฎีจะง่ายต่อการบำรุงรักษา

แต่โค้ดขนาดกะทัดรัดอาจเป็นความลับได้ (เคยเห็น APL ไหม?) และเพียงเพราะคุณ สามารถ แยกบรรทัดไม่ได้หมายความว่าคุณควรจะทำ

ในบางภาษา คุณสามารถกำหนดค่าสองค่าให้กับสองตัวแปรในบรรทัดเดียว:

 x, y = 2, 7

คุณ สามารถ ใส่ทั้งสองงานในบรรทัดของตนเอง:

 x = 2 y = 7

แต่เอาเถอะ จำเป็น จริงๆเหรอ? คุณจะบอกได้อย่างไรว่าควรแยกบรรทัด?

ไม่ได้เกี่ยวกับความยาวสายทั้งหมด

Felienne Herman เปิดหนังสือของเธอ The Programmer’s Brain ด้วยความจริงที่ปฏิเสธไม่ได้: “ความสับสนเป็นส่วนหนึ่งของการเขียนโปรแกรม”

ต้องการรหัสทำความสะอาดหรือไม่ ใช้กฎหก มันอาจจะหมายถึงถึงเวลาที่จะหยุดพัก

หนังสือของเฮอร์แมน (ซึ่งฉันขอแนะนำ) อธิบายว่าหน่วยความจำทั้งสามของสมองทำงานร่วมกันเพื่อทำความเข้าใจโค้ดอย่างไร:

  • หน่วยความจำระยะยาว (LTM): จัดเก็บข้อมูลสำหรับการดึงข้อมูลระยะยาว เช่น คีย์เวิร์ด ไวยากรณ์ และสำนวนและรูปแบบที่ใช้กันทั่วไป
  • หน่วยความจำระยะสั้น (STM): จัดเก็บข้อมูลใหม่สำหรับการดึงข้อมูลระยะสั้น (น้อยกว่า 30 วินาที!) เช่น ชื่อตัวแปรและค่าพิเศษ
  • หน่วยความจำในการทำงาน (WM): ประมวลผลข้อมูลจาก LTM และ STM เพื่อสรุปผลและรับความรู้ใหม่

STM และ WM มีขนาดเล็ก ทั้งสองสามารถจัดเก็บได้ครั้งละ ประมาณ 4 ถึง 6 ชิ้นเท่านั้น! โอเวอร์โหลดแล้วคุณมีสูตรสำหรับความสับสน

ต้องการรหัสทำความสะอาดหรือไม่ ใช้กฎหก สมองของคุณประมวลผลข้อมูลอย่างไร

นั่นทำให้เรามีกฎในการตัดสินใจว่าบรรทัดโค้ดนั้นซับซ้อนเกินไปหรือไม่:

บรรทัดของรหัสที่มีข้อมูลมากกว่า 6 ชิ้นควรทำให้ง่ายขึ้น

ฉันเรียกมันว่า “กฎหกข้อ”

นี่คือตัวอย่างใน Python:

 map(lambda x: x.split('=')[1], s.split('?')[1].split('&')[-3:])

มันยากสำหรับคุณที่จะอ่านหรือไม่? ฉันด้วย. มีเหตุผลที่ดีว่าทำไม

คุณต้องรู้ว่า map , lambda และ .split() คืออะไร ตัวแปร x และ s สตริง '=' , '?' และ '&' ดัชนี [1] และสไลซ์ [-3:] ทั้งหมดใช้พื้นที่ใน STM และ WM ทั้งหมด: สิบอย่าง! สมองของคุณไม่สามารถติดตามได้

หรือบางทีของ คุณ ก็ได้

ถ้าเป็นเช่นนั้น คุณมีประสบการณ์ที่ดีภายใต้เข็มขัดของคุณ

สมองของคุณ “แบ่งส่วน” ไวยากรณ์เช่น s.split('?')[1] เป็น “ส่วนของสตริงทางด้านขวาของเครื่องหมายคำถาม” และคุณสามารถสร้างรหัสใหม่ได้โดยใช้ข้อมูลที่จัดเก็บไว้ใน LTM ของคุณ แต่คุณยังประมวลผลทีละสองสามชิ้นเท่านั้น

ดังนั้น… เราสามารถระบุได้เมื่อบรรทัดของโค้ดซับซ้อนเกินไป ตอนนี้ อะไร?

ต้องการมากกว่านี้?

อีเมลหนึ่งฉบับทุกวันเสาร์พร้อมเคล็ดลับที่นำไปใช้ได้จริง
เวลาของคุณน้อยกว่า 5 นาทีเสมอ

สมัครสมาชิกตอนนี้

กำลังดำเนินการสมัครของคุณ เยี่ยมมาก! ตรวจสอบกล่องจดหมายของคุณและยืนยันการสมัครของคุณ มีข้อผิดพลาดในการส่งอีเมล

หากรหัสสับสนให้ทำลายมัน

หั่นเป็นชิ้นเล็ก ๆ นั่นคือ!

มีสองกลยุทธ์ที่ฉันใช้เพื่อสลายโค้ด ฉันเรียกพวกเขาว่า SIMPLE และ MORF

กลยุทธ์ SIMPLE เพิ่ม บรรทัดของโค้ดเพื่อ ลด ภาระด้านความรู้ความเข้าใจ

ต้องการรหัสทำความสะอาดหรือไม่ ใช้กฎหก

ลองใช้ SIMPLE กับสายการบินเดียวที่น่ารังเกียจที่เราเห็นก่อนหน้านี้ ลบอาร์กิวเมนต์ที่สองออกจาก map() และวางไว้ในบรรทัดของตัวเอง:

 query_params = s.split('?')[1].split('&')[-3:] map(lambda x: x.split('=')[1], query_params)

ยังคงอ่านยากอยู่ มีเจ็ดสิ่งที่ควรติดตามในบรรทัดแรก:

  • query_params
  • s
  • .split()
  • '?'
  • [1]
  • '&'
  • [-3:]

แต่แต่ละบรรทัดมีสิ่งที่ต้องติดตามน้อยกว่าเมื่อก่อน สมองของคุณสามารถประมวลผลได้ง่ายขึ้น

ใช้ SIMPLE อีกครั้งและย้าย s.split('?')[1] ไปยังบรรทัดใหม่:

 url_query_string = s.split('?')[1] query_params = url_query_string.split('&')[-3:] map(lambda x: x.split('=')[1], query_params)

เปรียบเทียบกับซับในแบบเดิม อันไหนง่ายกว่าในการประมวลผล?

กลยุทธ์ MORF ใช้แนวทางที่แตกต่างและจัดกลุ่มโค้ดเป็นฟังก์ชัน

ต้องการรหัสทำความสะอาดหรือไม่ ใช้กฎหก

นี่คือสิ่งที่ MORF ใช้กับสายการบินเดียวของเรา:

 def query_params(url): return url.split('?')[1].split('&')[-3:] map(lambda x: x.split('=')[1], query_params(s))

คุณสามารถรวม MORF และ SIMPLE เข้าด้วยกันได้:

 def query_params(url): query_string = url.split('?')[1] return query_string.split('&')[-3:] map(lambda x: x.split('=')[1], query_params(s))

คุณไม่จำเป็นต้องเข้าใจรหัสเพื่อสัมผัสถึงผลกระทบ แต่ละบรรทัดจะทำให้สมองของคุณประมวลผลได้ง่ายขึ้น

มีประโยชน์โบนัสด้วย!

เมื่อคุณรู้ว่า WM และ STM ของคุณไม่ได้โอเวอร์โหลด คุณจะรู้ว่าความสับสนใดๆ ที่หลงเหลืออยู่นั้นเกิดจากข้อมูลที่ขาดหายไปใน LTM ของคุณ

กล่าวอีกนัยหนึ่ง SIMPLE และ MORF ไม่เพียงช่วยให้คุณเขียนโค้ดที่สะอาดขึ้นเท่านั้น พวกเขาช่วยคุณระบุช่องว่างความรู้ที่คุณสามารถปรับปรุงได้ด้วยการฝึกฝน!


ต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของสมองในขณะที่คุณกำลังเขียนโค้ดหรือไม่?

ตรวจสอบ สมองของโปรแกรมเมอร์ โดย Felienne Herman

เข้าถึงได้ทันทีผ่าน Manning หรือสั่งซื้อจาก Amazon

ต้องการรหัสทำความสะอาดหรือไม่ ใช้กฎหก


ออกกำลังกาย

ดูรหัสที่เราลงเอยด้วยการใช้ SIMPLE:

 url_query_string = s.split('?')[1] query_params = url_query_string.split('&')[-3:] map(lambda x: x.split('=')[1], query_params)

บรรทัดหนึ่งยังคงมี “ความคิด” มากกว่าหกรายการและควรแยกออกตามกฎหกข้อ:

  • สายไหน?
  • อะไรคือ “ความคิด”
  • คุณจะแยกมันออกได้อย่างไร?
  • การแยกมันสร้างความแตกต่างอย่างมากหรือไม่?

ความจริงเกี่ยวกับอัลกอริทึมและโครงสร้างข้อมูล

ความจริงเกี่ยวกับอัลกอริทึมและโครงสร้างข้อมูล

คุณสามารถทำ มาก ด้วยน้อย

ภาษาระดับสูงที่ทันสมัยช่วยขจัดรายละเอียดมากมาย คุณไม่จำเป็นต้องทราบความแตกต่างระหว่างการเรียงลำดับการเลือก การเรียงลำดับแบบฟอง การเรียงลำดับการผสาน และการเรียงลำดับแบบด่วน เป็นต้น เพื่อใช้ฟังก์ชัน sorted() ของ Python มันใช้งานได้

คุณจำเป็นต้องเรียนรู้วิธีใช้โครงสร้างข้อมูลและอัลกอริทึม จริงๆ หรือไม่?

ดี… ฉันมีข่าวสำหรับคุณ:

คุณใช้อัลกอริทึมและโครงสร้างข้อมูลอยู่แล้ว

เคยใช้สตริงไหม? นั่นคือโครงสร้างข้อมูล เขียน for loop? นั่นคืออัลกอริทึม

ความจริงเกี่ยวกับอัลกอริทึมและโครงสร้างข้อมูล

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

คุณไม่จำเป็นต้องรู้ว่ามีการใช้งานอย่างไรเพื่อเก็บเกี่ยวผลประโยชน์

ผู้เขียนโค้ดใหม่โดยเฉพาะอย่างยิ่งต้องหลีกเลี่ยงการตกจากจุดสิ้นสุด


มีคนส่งต่ออีเมลนี้ให้คุณหรือไม่

สมัครสมาชิกที่นี่


การมุ่งเน้นที่โครงสร้างข้อมูลและอัลกอริธึมเร็วเกินไปถือเป็นความผิดพลาด

คุณจะหนีจากนรกกวดวิชาได้อย่างไร?

คุณจะหนีจากนรกกวดวิชาได้อย่างไร?

คุณสบายดีไหมที่ทำตามบทเรียนการเขียนโค้ด แต่รู้สึกติดขัดในการเริ่มทำอะไรคนเดียวหรือไม่? คุณเพื่อนของฉันติดอยู่ใน กวดวิชานรก

ฉันคิดว่าฉันจะแบ่งปันความคิดบางอย่างที่ฉัน ใช้ เพื่อเพิ่มความคิดสร้างสรรค์และสร้างความเป็นอิสระ

คำแนะนำส่วนใหญ่ที่ฉันได้ยินในการออกจากสถานการณ์นี้ไม่ชัดเจนและไม่ช่วยเหลือ “แค่สร้างบางอย่าง” พวกเขาพูด! 😒

พวกเขาไม่ ผิด จำเป็น แต่เป็นคำแนะนำที่แย่มาก มันไม่ สามารถดำเนินการ ได้

ต่อไปนี้คือสามวิธีในการ หนีจากนรกกวดวิชา 👇

#1: ทำงานของคุณเองโดยอัตโนมัติ

สิ่งที่คุณทำทุกวันหรือหลายครั้งในแต่ละเดือนคืออะไร? คุณสามารถทำให้มันอัตโนมัติ? ต่อไปนี้คือบางสิ่งที่ฉันทำโดยอัตโนมัติในอดีต:

  1. แชร์บล็อกโพสต์บนโซเชียลมีเดียเมื่อเผยแพร่
  2. สร้างเว็บมีดโกนที่แจ้งให้คุณทราบเมื่อมีการลดราคาสินค้า
  3. ดาวน์โหลดธุรกรรมธนาคารเป็น CSV วิเคราะห์ และส่งอีเมลรายงานถึงตัวคุณเอง

เหตุใดจึงเป็นความคิดที่ดี: คุณจะทำงานกับ API, เว็บฮุค, อีเมล และตัวดำเนินการงาน ที่สำคัญกว่านั้น: คุณจะมีแรงจูงใจอยู่เสมอเพราะมันให้ คุณค่าที่แท้จริง

วิธีใช้ให้เกิดประโยชน์สูงสุด: คุณสมบัติขั้นต่ำ! อย่าไปลงน้ำ ทำสิ่งต่างๆ ให้เรียบง่ายและมีสมาธิ คุณสามารถเพิ่มคุณสมบัติใหม่ในภายหลังได้ตลอดเวลา

คุณจะหนีจากนรกกวดวิชาได้อย่างไร? — โฆษณา —

#2: สร้างคำสั่งเชลล์ใหม่

สร้างคำสั่ง Unix เวอร์ชันของคุณเอง เช่น mv , cp และ rm อย่าเผลอลบฮาร์ดไดรฟ์ของคุณที่สร้าง rm ขึ้นมาใหม่ 😳

สำหรับความรักของคณิตศาสตร์

สำหรับความรักของคณิตศาสตร์

ลิงค์ที่มีเครื่องหมาย * คือลิงค์พันธมิตร อ้างถึง การเปิดเผยข้อมูลในเครือ ของฉันสำหรับข้อมูลเพิ่มเติม

ฉันเข้าใจดีว่า “ความรัก” ไม่ใช่สิ่งที่คณิตศาสตร์กระตุ้นในตัวคุณ มันไม่ได้สำหรับฉันเช่นกัน จนกระทั่งฉันอายุยี่สิบต้นๆ

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

ฉันจำช่วงเวลาที่สิ่งต่าง ๆ เปลี่ยนไป ปี 2548 และฉันอาศัยอยู่ในลอสแองเจลิส ฉันปลูกผมและเล่นคีย์บอร์ดในวงดนตรีร็อก เพื่อนร่วมห้องของฉัน ซึ่งเป็นชาวลอนดอนที่อึกทึกและมือกลองของวง – ได้อ่าน A Short History of Nearly Everything ของ Bill Bryson แล้ว และสนับสนุนให้ฉันอ่าน ฉันไม่ได้

ฉันหมายความว่าฉันกำลัง จะ ไป ฉันไปที่ Barnes & Noble และตรงไปที่แผนกฟิสิกส์ ฉันเห็นหนังสือ Bill Bryson บนหิ้ง แต่มีอย่างอื่นที่ดึงดูดสายตาของฉัน: The Elegant Universe * โดย Brian Greene ฉันอาจจะอ่านหนังสือของกรีนเป็นร้อยๆ หน้าในร้าน ฉันลืมทุกอย่างเกี่ยวกับไบรสันและเดินออกจาก Barnes & Noble ในวันนั้นด้วยความหิวกระหายที่จะเข้าใจสิ่งที่เรียกว่า “ทฤษฎีสตริง”

ปรากฏว่าฟิสิกส์เป็นเสมือนยาประตูสู่โลกของคณิตศาสตร์ที่ค่อนข้างมีประสิทธิภาพ ภายในสองปีหลังจากอ่าน The Elegant Universe ฉันก็ออกจากโลกแห่งดนตรีและเข้ามหาวิทยาลัยพร้อมเรียนฟิสิกส์ แต่ต้องขอบคุณครูสอนแคลคูลัสที่ยอดเยี่ยม ทำให้ฉันเจอจุดบกพร่องทางคณิตศาสตร์แทน ฉันสำเร็จการศึกษาสี่ปีต่อมาด้วยปริญญาด้านคณิตศาสตร์ ฉันไม่เคยเรียนวิชาฟิสิกส์เลย


ในช่วงเวลาเดียวกับที่ฉันเริ่มสนใจทฤษฎีสตริง รัฐบาลสหรัฐฯ ได้ให้ทุนสนับสนุนกลุ่มนักคณิตศาสตร์และนักฟิสิกส์เชิงทฤษฎี เพื่อเชื่อมโยงแนวคิดจากทฤษฎีสตริงกับปัญหาเชิงลึกในวิชาคณิตศาสตร์ที่เรียกว่าโปรแกรมแลงแลนด์ และหนึ่งในนักวิจัยหลัก – นักคณิตศาสตร์ชื่อ Edward Frenkel – ได้เริ่มชีวิตทางคณิตศาสตร์ของเขาด้วยความสนใจในวิชาฟิสิกส์เช่นฉัน

ขณะที่ฉันอ่านหนังสือเรื่อง Love & Math ของ Frenkel ในปี 2013 ฉันอดยิ้มไม่ได้ในขณะที่คิดว่าจะทําอย่างไร ในขณะเดียวกันเด็กวัย 20 ปีในลอสแองเจลิสเพิ่งเริ่มต้นชีวิตทางคณิตศาสตร์ของเขาด้วยทฤษฎีสตริง มีนักคณิตศาสตร์คนหนึ่งที่พรินซ์ตันสำรวจแนวคิดที่เกี่ยวข้องและประสบกับจุดสุดยอดของชีวิตการศึกษาที่เกิดจากแรงกระตุ้นแบบเดียวกับที่ฉันรู้สึก นั่นคือ ความปรารถนาที่จะเข้าใจจักรวาล

สำหรับความรักของคณิตศาสตร์ สำหรับความรักของคณิตศาสตร์

ฉันไม่เคยพบ Edward Frenkel และคงจะไม่มีวันได้เจอ (แม้ว่าฉันอาจเคยอยู่ห้องเดียวกันกับเขา เราก็ได้เข้าร่วมการประชุมคณิตศาสตร์ร่วมปี 2555) แต่ฉันอดไม่ได้ที่จะรู้สึกเชื่อมโยงกับเรื่องราวของเขา Reading Love & Math ทำให้เกิดอารมณ์และจุดประกายความสนใจในเปลวไฟเก่า

มีค่าเกินกว่าจะเก็บไว้

อัตชีวประวัติบางส่วน ส่วนหนึ่งอธิบายคณิตศาสตร์ และนวนิยายโรแมนติกบางส่วน Love & Math * เป็นหัวใจสำคัญของการเชื้อเชิญให้ทุกคนได้สัมผัสกับสิ่งที่นักคณิตศาสตร์ส่วนใหญ่เก็บไว้กับตัวเอง

เป้าหมายของ Frenkel คือการ “ปลดล็อกพลังและความสวยงามของคณิตศาสตร์ และช่วยให้คุณเข้าสู่โลกมหัศจรรย์นี้… แม้ว่าคุณจะเป็นคนที่ไม่เคยใช้คำว่า ‘คณิตศาสตร์’ และ ‘ความรัก’ ในประโยคเดียวกันก็ตาม” เขาตั้งเป้าที่จะยกระดับสนามเด็กเล่น:

มีค่าเกินกว่าจะมอบให้กับ “ผู้ริเริ่มไม่กี่คน” มันเป็นของพวกเราทุกคน

Frenkel พาดพิงถึงชนชั้นสูง [1] แต่ความปรารถนาของเขาในการทำให้คณิตศาสตร์เป็นประชาธิปไตยอาจมีรากฐานมาจากบางสิ่งที่ร้ายกาจกว่ามาก ดูสิ Frenkel เติบโตขึ้นมาในโซเวียตรัสเซียในช่วงทศวรรษ 1970 และ 1980 และถึงแม้ว่าความสามารถทางคณิตศาสตร์ของเขาจะชัดเจน แต่การต่อต้านชาวยิวที่ได้รับการสนับสนุนจากรัฐ (พ่อของ Frenkel เป็นชาวยิว) ทำให้เขาไม่สามารถเข้าเรียนในมหาวิทยาลัยที่ดีที่สุดในรัสเซียได้

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

การแสวงหาของมนุษย์

ด้านอัตชีวประวัติของ Love & Math * เขียนได้ดีมาก พวกเขาบอกเล่าเรื่องราวของชายหนุ่มจากรัสเซียที่มุ่งมั่นและบรรลุความฝันที่จะเป็นนักคณิตศาสตร์มืออาชีพ ในการทำเช่นนั้น ผู้อ่านจะได้เห็นมากกว่าเรื่องราวชีวิตของ Frenkel คุณจะได้สัมผัสกับละคร — มนุษยชาติ — ที่มีอยู่ในการทำคณิตศาสตร์

ในบทหนึ่ง Frenkel บรรยายการสนทนากับนักคณิตศาสตร์ชาวรัสเซียอีกคนหนึ่งชื่อ Vladimir Drinfeld ที่หล่อหลอมอาชีพทางคณิตศาสตร์ของเขา ฉันหมายถึง “ทำให้เป็นละคร” อย่างแท้จริง: Frenkel นำเสนอการสนทนาเป็นบทภาพยนตร์ มันเป็นหนึ่งในภาพที่ดีที่สุดที่ฉันเคยพบเกี่ยวกับองค์ประกอบทางสังคมของการวิจัยทางคณิตศาสตร์ มันทำให้ฉันนึกถึงการพูดคุยกับที่ปรึกษาของฉันในสำนักงานของเธอขณะทำวิทยานิพนธ์ของฉัน [2]

Frenkel ยังอธิบายถึงประสบการณ์ทางอารมณ์ของการวิจัยทางคณิตศาสตร์ โดยเริ่มจากความคับข้องใจที่มักพบเมื่อต้องจัดการกับปัญหาที่ท้าทายในครั้งแรก:

มันไม่ได้มาหาฉันง่ายๆ มันไม่เคยทำ ฉันลองหลายวิธีแล้ว เมื่อแต่ละคนล้มเหลว ฉันรู้สึกท้อแท้และวิตกกังวลมากขึ้น

นี่เป็นรอยแตก “ที่แท้จริง” ครั้งแรกของ Frenkel ในการแก้ปัญหาการวิจัย และอย่างที่หลายคนทำ เขาประสบกับกลุ่มอาการหลอกลวง:

ฉันถามว่าฉันสามารถเป็นนักคณิตศาสตร์ได้หรือไม่

เป็นสิ่งสำคัญสำหรับฉันที่ Frenkel เลือกที่จะรวมความปวดร้าวและความสงสัยที่เขาประสบขณะทำงานเกี่ยวกับปัญหาคณิตศาสตร์ บ่อยครั้งที่ผู้คนมองว่าผู้เล่นรายใหญ่ในวิชาคณิตศาสตร์เป็นอัจฉริยะที่สมบูรณ์ แต่ฉันพนันได้เลยว่าแม้แต่คนอย่างเกาส์และออยเลอร์ก็ยังมีความศรัทธาที่สั่นคลอนอยู่เป็นระยะๆ พวกเขาเป็นเพียงมนุษย์ปุถุชน [3]

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

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

เป็นครั้งแรกในชีวิตที่ฉันได้ครอบครองบางสิ่งที่ไม่มีใครในโลกนี้ครอบครอง ฉันสามารถพูดสิ่งใหม่เกี่ยวกับจักรวาลได้

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

ในทางตรงกันข้าม คณิตศาสตร์ให้โอกาสในการสำรวจจักรวาลด้วยเครื่องมือเดียวที่มีให้สำหรับทุกคนที่มีชีวิต นั่นคือความ คิด ของคุณ

สำรวจจักรวาลโดยไม่ต้องออกจากบ้าน

Frenkel เล่าเรื่องราวอื่น: เรื่องราวของคณิตศาสตร์เบื้องหลังโปรแกรม Langlands ผสานเข้ากับส่วนอัตชีวประวัติของ Love & Math * ตั้งชื่อตามนักคณิตศาสตร์ชาวแคนาดา Robert Langlands โปรแกรม Langlands เชื่อมโยงแนวคิดที่แตกต่างกันในวิชาคณิตศาสตร์กับ “Rosetta Stone”

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

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

Frenkel แนะนำผู้อ่านอย่างเชี่ยวชาญผ่านแนวคิดที่สงวนไว้สำหรับหลักสูตรคณิตศาสตร์ระดับปริญญาตรีและระดับบัณฑิตศึกษาโดยเฉพาะ และเขาทำในลักษณะที่ตรงกับผู้อ่านในที่ที่พวกเขาอยู่ โดยไม่ต้องมีภูมิหลังมากนัก

ความสามารถในการกลั่นกรองแนวคิดทางเทคนิคให้เป็นภาษาที่ใช้ในชีวิตประจำวันนั้นเป็นทักษะที่ Frenkel ได้เรียนรู้จากที่ปรึกษาของเขาคือ Israel Gelfand ในคำนำของหนังสือเล่มนี้ Frenkel ได้แบ่งปันวิธีที่ Gelfand อธิบายเทคนิคนี้:

ผู้คนคิดว่าพวกเขาไม่เข้าใจคณิตศาสตร์ แต่มันเป็นเรื่องของการอธิบายให้พวกเขาฟังอย่างไร ถ้าคุณถามคนขี้เมาว่าตัวเลขอะไรมากกว่ากัน 2/3 หรือ 3/5 เขาจะไม่สามารถบอกคุณได้ แต่ถ้าคุณใช้ถ้อยคำใหม่: อะไรจะดีไปกว่าวอดก้า 2 ขวดสำหรับ 3 คนหรือวอดก้า 3 ขวดสำหรับ 5 คน เขาจะบอกคุณทันที: 2 ขวดสำหรับ 3 คนแน่นอน

วิธีนี้ใช้ได้ผล และ Love & Math * เป็นข้อพิสูจน์ ในบทที่ 2 แก่นแท้ของสมมาตร Frenkel อธิบายแนวคิดของกลุ่มสมมาตรโดยการตรวจสอบตารางกลม คนส่วนใหญ่รู้ว่าสมมาตรคืออะไร แต่นักคณิตศาสตร์ใช้คำว่า “กลุ่ม” ต่างจากภาษาอังกฤษในชีวิตประจำวัน ทุกคนเคยเห็นโต๊ะกลมและสามารถจินตนาการถึงการมีปฏิสัมพันธ์กับโต๊ะได้อย่างง่ายดาย ดังนั้นเมื่อ Frenkel ดำดิ่งลงไปในสิ่งต่าง ๆ เช่นกลุ่มสมมาตรการหมุน คุณมีภาพที่เป็นรูปธรรมที่จะใช้งาน

หลายครั้งที่ Frenkel นำเสนอแนวความคิดเป็นเรื่องเล่า แทนที่จะตบหน้าคุณด้วยคำจำกัดความและทฤษฎีบท Frenkel จะมาแชร์วิธีที่เขาเรียนรู้แนวคิดด้วยตัวเขาเอง เขาอธิบายความสมมาตรในการหมุน เช่น ในบทสนทนาระหว่างเขากับที่ปรึกษาวัยรุ่น [4] Evgeny Evgenievich Petrov ศาสตราจารย์ที่วิทยาลัยในท้องถิ่นและเพื่อนของพ่อแม่ของ Frenkel

Frenkel พร้อมแบ่งปันความสับสนของตัวเองในระหว่างการสนทนาเหล่านี้ ซึ่งช่วยให้ผู้อ่านสบายใจ ใครๆ ก็นึกภาพออกว่ากำลังแสดงความสับสนให้ Frenkel และตอบกลับด้วยรอยยิ้มว่า “เฮ้ สิ่งเหล่านี้ไม่ได้เข้าใจง่ายเสมอไป และไม่เป็นไรที่จะดิ้นรน แต่มันก็คุ้มค่ากับความพยายาม และการคิดแบบ นี้ ก็ช่วยให้ฉันเข้าใจในที่สุด มัน.”

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

แม้แต่ตัวฉันเองที่มีข้อได้เปรียบจากการฝึกวิชาคณิตศาสตร์อย่างเป็นทางการ ยังต้องครุ่นคิดถึงเนื้อหาหลายส่วน และถึงแม้ว่านี่อาจดูน่ากลัว แต่ฉันคิดว่าหนังสือเล่มนี้ช่วยเพิ่มความร่ำรวยให้กับหนังสือ คุณไม่จำเป็นต้องเข้าใจทุกอย่างในตอนแรก หรือแม้แต่ทั้งหมดเพื่อให้ได้คุณค่าสูงสุดจาก Love & Math * : ความซาบซึ้งในสิ่งที่นักคณิตศาสตร์ทำและวิธีที่พวกเขาทำ แต่ถ้าคุณต้องการลงลึก ก็มีสำหรับคุณ

ไคลแมกซ์ของหนังสือเล่มนี้เกี่ยวข้องกับคุณสมบัติที่น่าสนใจของคณิตศาสตร์: แนวคิดที่พัฒนาขึ้นโดยไม่เกี่ยวข้องกับโลกทางกายภาพในบางครั้ง และมักจะปรากฏเป็นคำอธิบายของกระบวนการทางธรรมชาติบางอย่าง สำหรับโปรแกรม Langlands ความเชื่อมโยงนี้มาจากกลศาสตร์ควอนตัม และโดยเฉพาะอย่างยิ่ง สมมาตรยิ่งยวด

ตั้งแต่ปี 2547 ถึง พ.ศ. 2556 Frenkel เป็นผู้นำกลุ่มวิจัยที่ตรวจสอบความเชื่อมโยงระหว่างสมมาตรยิ่งยวดกับโครงการแลงแลนด์ แม้ว่า supersymmetry จะยังไม่ได้รับการทดสอบในการทดลอง แต่ก็เป็นแบบจำลองสำหรับการทำความเข้าใจจักรวาล องค์ประกอบของสมมาตรยิ่งยวดค่อนข้างจะสอดคล้องกับองค์ประกอบในโปรแกรมแลงแลนด์ ราวกับว่านามธรรมทั้งหมดเหล่านี้ จนถึงตอนนี้ มีอยู่เฉพาะในจิตใจส่วนรวมของนักคณิตศาสตร์ที่ปรารถนาจะหลุดพ้นจากพันธะของความโลภและเรียกร้องการมีอยู่ทางวัตถุ

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

ภาระของความรัก

มีคำพูดหนึ่งที่ผมเคยเห็นมาจากนักคณิตศาสตร์ชาวเยอรมัน เดวิด ฮิลเบิร์ต ซึ่งเมื่อรู้ว่ามีนักเรียนคนหนึ่งเลิกเรียนวิชากวีนิพนธ์ ดูเหมือนจะโต้กลับว่า “รู้ไหม สำหรับนักคณิตศาสตร์ เขามีจินตนาการไม่พอ แต่เขามี กลายเป็นกวีและตอนนี้เขาก็สบายดี [5]

ฉันเข้าใจสิ่งที่ฮิลเบิร์ตพูด บ่อยครั้งที่บทบาทของความคิดสร้างสรรค์ในวิชาคณิตศาสตร์นั้นต่ำเกินไป แม้จะกล่าวถึงเลยก็ตาม ฉันได้พบคนที่คิดว่าความสนใจในวิชาคณิตศาสตร์ของฉันหมายความว่าฉันเป็นนักบัญชีที่ยอดเยี่ยม [6] แต่ถ้าเรื่องราวเป็นเรื่องจริง ฉันอดไม่ได้ที่จะสงสัยว่าฮิลเบิร์ตขาดจินตนาการที่จำเป็นในการเข้าถึงนักเรียนบางคนหรือไม่ บางทีเขาอาจต้องการพี่เลี้ยง เช่น Israel Gelfand ผู้ซึ่งมองว่าการสื่อสารทางคณิตศาสตร์เป็นการฝึกฝนในการเอาใจใส่

ความเข้าอกเข้าใจ. นั่นเป็นคำที่ฉันหวนนึกถึงอยู่เสมอเมื่อพยายามระบุสิ่งที่ฉันชอบมากที่สุดเกี่ยวกับ Love & Math * Frenkel เขียนด้วยความเห็นอกเห็นใจอย่างแท้จริง – ความเมตตาที่ดูเหมือนจะเกิดจากการชื่นชมในความรักของพ่อแม่ พี่เลี้ยง และทุกคนที่ช่วยทำให้ความฝันของเขาในการเป็นนักคณิตศาสตร์เป็นไปได้ แม้ว่ารัฐบาลต่อต้านกลุ่มเซมิติกจะตั้งขึ้น ขวางทางทุกย่างก้าว

บทสุดท้ายของ Love & Math มีชื่อว่า Searching For the Formula of Love เป็นทั้งไดอารี่ของการทัศนศึกษาของ Frenkel ในด้านศิลปะ (เขาร่วมเขียนบทภาพยนตร์ The Two Body Problem และภาพยนตร์สั้น Rites of Love and Math ) และแถลงการณ์สำหรับวิสัยทัศน์ของ Frenkel เกี่ยวกับอนาคตที่การชื่นชมคณิตศาสตร์อย่างกว้างขวางเป็นเรื่องปกติ ฉันชื่นชมความตั้งใจของ Frenkel ที่จะแสวงหาความสนใจทางศิลปะ ฉันจะไม่แปลกใจเลยหากประสบการณ์ของเขาเกี่ยวกับภาพยนตร์และละครเวทีช่วยพัฒนาการเล่าเรื่องที่น่าประทับใจที่เขาแสดงใน Love & Math

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

ภาพยนตร์เรื่องนี้เป็นสัญลักษณ์เปรียบเทียบสำหรับ “ประสบการณ์ส่วนตัวอย่างลึกซึ้ง” ในการสร้างคณิตศาสตร์ใหม่:

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

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

ดังนั้น Love & Math * จึงมีวัตถุประสงค์สองประการ: ประการแรก เป็นเรื่องราวของมนุษย์ ประสบการณ์ทางอารมณ์ของการทำคณิตศาสตร์ และประการที่สอง เป็นการแนะนำปัญหาประเภทต่างๆ ที่รวมผู้คนในสาขาวิชาต่างๆ และสำรวจความลับของจักรวาล

สูตรทางคณิตศาสตร์ไม่ได้อธิบายความรัก แต่สามารถแบกรับความรักได้

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

สำหรับความรักของคณิตศาสตร์

คุณสามารถซื้อ Love & Math จาก Amazon * , Barnes & Noble , iTunes และ IndieBound

ขอบคุณ Jeremy Alm สำหรับการอ่านร่างโพสต์นี้และให้ข้อเสนอแนะอันมีค่า


  1. ครั้งหนึ่งฉันเคยถูกเพื่อนนักศึกษาปริญญาโทที่ Texas A&M รังเกียจเพราะความสนใจทางคณิตศาสตร์ของฉันไม่บริสุทธิ์พอสำหรับเขา ฉันสนใจทฤษฎีกราฟและวิทยาการเชิงผสมเป็นหลัก ซึ่งเห็นได้ชัดว่า “เป็นพื้นฐาน” เกินไปสำหรับความชอบของบุคคลนี้ สำหรับบางคน การรู้คณิตศาสตร์ไม่เพียงพอ คุณต้องดูแลเกี่ยวกับคณิตศาสตร์ ที่ถูกต้อง ↩︎
  2. ฉันไม่เคยเขียนวิทยานิพนธ์ ฉันออกจากโรงเรียนระดับบัณฑิตศึกษาก่อนที่จะจบปริญญาเอก อย่างไรก็ตาม ฉันได้เขียนวิทยานิพนธ์อย่างกว้างขวางในระดับปริญญาตรีจากการวิจัยดั้งเดิมในทฤษฎีกราฟ ↩︎
  3. มันเป็นความจริง. พวกเขาตายแล้ว ↩︎
  4. Frenkel โชคดีที่มีพี่เลี้ยงตั้งแต่อายุยังน้อย และเขาได้พบกับเขาด้วยความทุ่มเทและการสนับสนุนจากพ่อแม่ของเขา ฉันก็เช่นกัน ได้รับประโยชน์มหาศาลจากการสนับสนุนของพ่อแม่ โดยเฉพาะแม่ของฉัน ผู้ซึ่งค้นหาและพบที่ปรึกษาที่ยอดเยี่ยมสำหรับฉันในฐานะนักเปียโนมือใหม่ ตอนนี้ฉันเป็นพ่อแม่ตัวเอง การอ่านประสบการณ์ของ Frenkel เตือนฉันว่า ฉันมีหน้าที่ไม่เพียงแต่เป็นพ่อที่ดีที่สุดเท่านั้น แต่ยังต้องค้นหาที่ปรึกษาที่สามารถแนะนำลูกๆ ของฉันตามความสนใจของพวกเขาได้ดีกว่าที่ฉันทำได้ ↩︎
  5. ฉันไม่รู้ว่าเรื่องราวนี้จริงหรือไม่ ข้อมูลอ้างอิงเดียวที่ฉันพบได้คือใน r/MathQuotes reddit และแม้กระทั่งที่นั่นผู้เขียนยอมรับว่าไม่มีแหล่งที่มา ↩︎
  6. ในปี 2012 ขณะกลับจากการประชุมคณิตศาสตร์ร่วม (แบบเดียวกับที่ Frenkel บรรยายเกี่ยวกับงานวิจัยของเขาในวิชาฟิสิกส์ควอนตัมและโปรแกรม Langlands) ผู้โดยสารเครื่องบินคนหนึ่งที่นั่งอยู่ข้างๆ ฉัน หลังจากรู้ว่าฉันเป็น นักศึกษาคณิตศาสตร์ตั้งข้อสังเกต: “โอ้ คุณต้อง รัก QuickBooks แน่” ฉันไม่. ↩︎