ฉันเป็นนักศึกษาระดับบัณฑิตศึกษาในวิชาคณิตศาสตร์และสำเร็จการศึกษาระดับปริญญาตรีสาขาวิทยาศาสตร์คอมพิวเตอร์ ฉันเก็บบล็อกที่ชื่อว่าMath ∩ Programmingซึ่งฉันสำรวจแอปพลิเคชันของคณิตศาสตร์ไปจนถึงการเขียนโปรแกรม (และในทางกลับกัน) และฉันต้องยอมรับว่าฉันพบว่าส่วนน้อยทางคณิตศาสตร์ของวิทยาศาสตร์คอมพิวเตอร์ค่อนข้างแห้งและไม่มีปฏิปักษ์ (โดยทั่วไป แฮ็กไร้สาระทั้งหมดที่เข้าสู่การเขียนโปรแกรมระบบในประสบการณ์ของฉันในอุตสาหกรรม)
ในอีกทางหนึ่งในบล็อกของฉันฉันดูปัญหาต่าง ๆ เช่นการจดจำใบหน้า (พีชคณิตเชิงเส้น) วิธีการเข้ารหัสเครื่องทัวริงและเซลลูลาร์ออโตมาต้าโมเดลสำหรับทำนายกิจกรรมนักฆ่าต่อเนื่องเครื่องมือค้นหาและแนวคิดทางคณิตศาสตร์อื่น ๆ . ส่วนที่ดีที่สุดคือฉันจะใช้ความคิดและของตัวเอง!
หากต้องการให้เพื่อนของคุณหลงรักการเขียนโปรแกรมเหมือนกับพวกเราที่เหลือทำเขาน่าสนใจอย่างแท้จริงโครงการ. ด้านการเขียนโปรแกรมจะไม่ติดถ้าเขาทำงานกับผลิตภัณฑ์ที่เขาพบว่าสวยงาม สำหรับภาษาฉันแนะนำ Mathematica, Racket (อนุพันธ์ของ Scheme ที่เป็นมิตร แต่ก็ยังทรงพลัง), Python และ Haskell Mathematica น่าจะดีที่สุดเพราะเขาสามารถเลือกใช้ฟังก์ชันทางคณิตศาสตร์ของตนเองและใช้ Mathematica ที่สร้างขึ้นในห้องสมุดเพื่อทำโครงงานให้เสร็จสิ้น (เช่นเขียนฟังก์ชันที่คำนวณสัมประสิทธิ์ฟูริเยร์จากนั้นใช้ Mathematica ทำการวิเคราะห์ที่เหลือเช่น เช่นการกรองการสร้างภาพ ฯลฯ ) แม้แต่หัวข้อพื้นฐานเช่นการรวมให้โครงการที่น่าสนใจ (กฎการสร้างพื้นที่สี่เหลี่ยมจัตุรัสที่แตกต่างกันบูรณาการ monte carlo, การเปลี่ยนแปลงอย่างอ่อนโยนในการเรียนรู้ของเครื่องด้วยชุดข้อมูลขนาดใหญ่)
นอกจากนี้ดูเหมือนว่าคำตอบมากมายที่นี่มาจากคนที่ไม่ได้ทำคณิตศาสตร์หรือผู้ที่ไม่ได้ใช้ภาษาที่พวกเขาแนะนำให้ทำซอฟต์แวร์ทางคณิตศาสตร์ เหตุผลที่ผู้คนแนะนำ Haskell ก็เพราะว่ามันใกล้เคียงกับการใช้ทฤษฎีหมวดหมู่ให้ได้มากที่สุดและเหมาะสมกับคำนิยามทางคณิตศาสตร์ของแนวคิดพื้นฐานบางอย่าง แต่ถ้าเพื่อนของคุณอยู่ใกล้กับอายุของคุณแล้วเขายังไม่พร้อมสำหรับหมวดหมู่ทฤษฎีทางคณิตศาสตร์ (ที่ครบกําหนดจะมากหรือน้อยที่ไร้ประโยชน์จนจบการศึกษาและความชั่วร้ายยากที่จะสอนตัวเอง) และเป็นภาษาแรก Haskell มีลาดชันเส้นโค้งการเรียนรู้ของภาษาที่แนะนำ (อาจเป็นภาษาโปรล็อกคือชัน) ฉันใช้ Haskell ในการใช้คอมไพเลอร์ Javascript และฉันก็จบลงด้วยโค้ดที่สวยงามมาก ๆ แต่สำหรับสิ่งที่ใช้งานง่ายเช่นการกลายพันธุ์ที่แปรผันคุณต้องตะลุยกับ monontrivial monads
Python และ Mathematica นั้นมีความเป็นมิตรมากขึ้นและ Mathematica มีช่วงการเรียนรู้ที่ตื้นที่สุดเพราะห้องสมุดทั้งหมดได้รับการบรรจุไว้ในส่วนต่อประสานผู้ใช้ที่ดีพร้อมกับเอกสารที่ยอดเยี่ยม (เพียงแค่กด F1!) บนมืออื่น ๆ ที่มีหนังสือเล่มหนึ่งที่ผมเคยได้ยิน ( แต่ไม่ได้อ่าน) ซึ่งมีทั้งการเปลี่ยนแปลงคณิตศาสตร์ขั้นสูงและการแนะนำให้ Haskell พร้อมกัน ดูเหมือนว่ามีบทวิจารณ์ของ Amazon ในเชิงบวกดังนั้นคุณอาจต้องการตรวจสอบ เขาสามารถเลื่อนไปใช้ภาษาอย่าง C # และ Java ได้หากเขาต้องการทำสิ่งต่างๆในอุตสาหกรรม แต่มีแนวโน้มว่าเขาจะไม่จำเป็นต้องเข้าไปในป่านั้น (และวิชาคณิตศาสตร์อุตสาหกรรมจำนวนมากก็คือ Matlab ล้วนๆ)
แต่อย่างที่ฉันพูดด้วยโครงการที่ถูกต้องการเรียนรู้ภาษากลายเป็นความสุขสิ่งที่โครงการอาจจะ