ฉันเขียนโปรแกรมอย่างมืออาชีพมา 8 ปีแล้วและตั้งแต่อายุ 12 ปีเป็นงานอดิเรก
คณิตศาสตร์ไม่จำเป็นตรรกะคือ คณิตศาสตร์มีประโยชน์อย่างมากแม้ว่าจะบอกว่าไม่จำเป็นก็เหมือนกับการบอกว่าจะฆ่าผู้ชายไม่จำเป็นต้องใช้ปืนคุณสามารถใช้มีดได้ มันเป็นเรื่องจริง แต่ปืนนั้นทำให้ง่ายขึ้นมาก
มีขั้นต่ำสองสามอย่างที่คุณควรได้รับอยู่แล้ว คุณจำเป็นต้องรู้นิพจน์และสัญกรณ์เกี่ยวกับพีชคณิตพื้นฐานและสิ่งที่เทียบเท่ากับคอมพิวเตอร์ทั่วไป ตัวอย่างเช่นคุณต้องรู้ว่าเลขชี้กำลังคืออะไร (3 ถึง 3 คือ 27) และนิพจน์ทั่วไปของคอมพิวเตอร์คือ 3 ^ 3 สัญกรณ์ทั่วไปสำหรับพีชคณิตมีการเปลี่ยนแปลงระหว่างภาษา แต่หลายภาษาใช้วิธีการที่ค่อนข้างเป็นหนึ่งเดียว คนอื่น ๆ (มองคุณ LISP) ไม่ทำ คุณต้องทราบลำดับการดำเนินการด้วย
คุณต้องเข้าใจความคิดอัลกอริทึม ก่อนอื่นสิ่งนี้จะสร้างสิ่งนี้ซึ่งใช้ในการคำนวณนี้ มีโอกาสที่คุณจะเข้าใจสิ่งนี้หรือคุณไม่เข้าใจและมันเป็นอุปสรรคที่ยากพอสมควรที่จะกระโดดถ้าคุณไม่เข้าใจ ฉันพบว่านี่คือสิ่งที่คุณ 'ได้รับ' ไม่ใช่สิ่งที่คุณจะเรียนรู้ได้จริงๆ ในทางกลับกันบางคนไม่ได้ 'รับ' ศิลปะ พวกเขาไม่ควรเป็นจิตรกร นอกจากนี้ยังมีนักเรียนในหลักสูตร CS ที่คิดไม่ออกว่าเหตุใดจึงใช้ไม่ได้: x = z + w; z = 3; y = 5; ไม่ใช่ว่าพวกเขาไม่เข้าใจนอกจากนี้ แต่พวกเขาไม่เข้าใจข้อกำหนดของการแสดงที่ชัดเจน ถ้าพวกเขาเข้าใจมันคอมพิวเตอร์ก็ควรจะใช่ไหม? หากคุณมองไม่เห็นว่ามีอะไรผิดปกติในสามบรรทัดข้างต้นอย่าเป็นโปรแกรมเมอร์
สุดท้ายนี้คุณต้องรู้ว่าคณิตศาสตร์อยู่ภายใต้โดเมนการเขียนโปรแกรมของคุณ โปรแกรมบัญชีสามารถหยุดที่พีชคณิตพื้นฐาน หากคุณกำลังเขียนโปรแกรมฟิสิกส์คุณจะต้องรู้ฟิสิกส์ (หลวม ๆ ) และคณิตศาสตร์ในรูปเรขาคณิต 3 มิติ (ยุคลิด) หากคุณกำลังเขียนโปรแกรมซอฟต์แวร์สถาปัตยกรรมคุณจำเป็นต้องรู้ตรีโกณมิติ
นี่ไปไกลกว่านั้นคณิตศาสตร์แม้ว่า; โดเมนใดก็ตามที่คุณกำลังเขียนโปรแกรมคุณต้องเข้าใจพื้นฐานอย่างชัดเจน หากคุณกำลังเขียนโปรแกรมซอฟต์แวร์วิเคราะห์ภาษาคุณจะต้องรู้ถึงความน่าจะเป็นสถิติทฤษฎีไวยากรณ์ (หลายภาษา) ฯลฯ
บ่อยครั้งที่บางโดเมนต้องการหรือได้รับประโยชน์จากความรู้ที่คุณคิดว่าไม่เกี่ยวข้องกัน ตัวอย่างเช่นหากคุณกำลังเขียนโปรแกรมซอฟต์แวร์เสียงคุณจำเป็นต้องรู้ตรีโกณมิติเพื่อจัดการกับรูปคลื่น
ขนาดเปลี่ยนสิ่งต่างๆเช่นกัน หากคุณกำลังจัดเรียงชุดข้อมูลทางการเงิน 1,000 รายการก็ไม่ใช่เรื่องใหญ่ อย่างไรก็ตามหากเป็นข้อมูล 10 ล้านรายการคุณจะได้รับประโยชน์อย่างมากจากการรู้คณิตศาสตร์เวกเตอร์จริงและมีความเข้าใจอย่างลึกซึ้งเกี่ยวกับการเรียงลำดับในระดับไบนารี (ระบบเรียงลำดับตามตัวอักษรอย่างไรจะรู้ได้อย่างไรว่า 'a' น้อยกว่า 'b '?)
คุณจะพบว่าในฐานะโปรแกรมเมอร์ฐานความรู้ทั่วไปของคุณกำลังจะระเบิดเพราะแต่ละโครงการจะต้องมีการเรียนรู้เพิ่มเติมนอกเหนือจากขอบเขตโดยตรงของการเขียนโปรแกรม หากคุณขี้เบื่อหรือขี้เกียจในการเรียนรู้ด้วยตนเองและไม่ชอบความคิดที่จะใช้เวลา 10+ ชั่วโมงต่อสัปดาห์ในการ 'ทำการบ้าน' อย่าเป็นโปรแกรมเมอร์
ถ้าคุณชอบแบบฝึกหัดเกี่ยวกับความคิดถ้าคุณชอบเรียนรู้ถ้าคุณสามารถคิดเกี่ยวกับสิ่งที่เป็นนามธรรมเช่นคณิตศาสตร์โดยไม่ต้องใช้เครื่องคิดเลขหรือการออกแบบโดยไม่ต้องใช้ Sketchpad ถ้าคุณมีรสนิยมในการใช้ชีวิตและงานอดิเรกในวงกว้างหากคุณเป็นคนที่มีวิจารณญาณในตนเองและสามารถละทิ้งได้ ' ชื่นชอบ 'ความคิดถ้าคุณชอบสิ่งที่สมบูรณ์แบบแล้วมาเป็นโปรแกรมเมอร์ อย่าใช้พื้นฐานการตัดสินใจทางคณิตศาสตร์ แต่เป็นความสามารถในการคิดอย่างมีเหตุผลและเรียนรู้ นั่นคือสิ่งที่สำคัญ คณิตศาสตร์เป็นเพียงผลพลอยได้