คำถามติดแท็ก theory

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

11
การเพิ่มความซับซ้อนของระบบส่งผลต่อโปรแกรมเมอร์รุ่นต่อ ๆ ไปอย่างไร?
ในฐานะโปรแกรมเมอร์ "ใหม่" (ฉันเขียนบรรทัดของรหัสในปี 2009 เป็นครั้งแรก) ฉันสังเกตว่ามันค่อนข้างง่ายที่จะสร้างโปรแกรมที่แสดงองค์ประกอบที่ค่อนข้างซับซ้อนในปัจจุบันด้วยสิ่งต่าง ๆ เช่น. NET Framework การสร้างส่วนต่อประสานที่มองเห็นหรือการเรียงลำดับรายการสามารถทำได้ด้วยคำสั่งน้อยมากในขณะนี้ เมื่อฉันเรียนรู้ที่จะเขียนโปรแกรมฉันก็ได้เรียนรู้ทฤษฎีการคำนวณแบบขนาน สิ่งต่าง ๆ เช่นการเรียงลำดับอัลกอริธึมหลักการทำงานร่วมกันของฮาร์ดแวร์พีชคณิตแบบบูลและเครื่องจักรสถานะ จำกัด แต่ฉันสังเกตว่าถ้าฉันต้องการทดสอบหลักพื้นฐานบางอย่างที่ฉันได้เรียนรู้ในทางทฤษฎีมันเป็นเรื่องยากมากที่จะเริ่มต้นเพราะเทคโนโลยีมากมายถูกบดบังด้วยสิ่งต่าง ๆ เช่นห้องสมุดกรอบและระบบปฏิบัติการ การสร้างโปรแกรมที่ใช้หน่วยความจำนั้นมีความจำเป็น 40/50 ปีที่แล้วเพราะมีหน่วยความจำไม่เพียงพอและมีราคาแพงดังนั้นโปรแกรมเมอร์ส่วนใหญ่จึงให้ความสำคัญกับชนิดข้อมูลและวิธีการจัดการตัวประมวลผล ทุกวันนี้บางคนอาจโต้แย้งว่าเนื่องจากกำลังการประมวลผลที่เพิ่มขึ้นและหน่วยความจำที่มีอยู่ความกังวลเหล่านั้นจึงไม่ใช่เรื่องสำคัญ คำถามของฉันคือถ้าโปรแกรมเมอร์เก่าเห็นนวัตกรรมเช่นนี้เป็นสวรรค์หรือเลเยอร์เพิ่มเติมที่เป็นนามธรรมผ่านและทำไมพวกเขาอาจคิดอย่างนั้น? และโปรแกรมเมอร์ที่อายุน้อยกว่าจะได้รับประโยชน์จากการเรียนรู้การเขียนโปรแกรมระดับต่ำมากขึ้นก่อนที่จะสำรวจอาณาจักรของห้องสมุดที่กว้างขวางหรือไม่? ถ้าเป็นเช่นนั้นทำไม

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

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

9
ความหมายของกฎ 90/10 ของการเพิ่มประสิทธิภาพโปรแกรมคืออะไร
ตามวิกิพีเดียกฎ 90/10 ของการปรับโปรแกรมให้ดีที่สุดระบุว่า“ 90% ของเวลาดำเนินการโปรแกรมใช้ในการดำเนินการ 10% ของรหัส” (ดูย่อหน้าที่สองที่นี่ ) ฉันไม่เข้าใจสิ่งนี้จริงๆ สิ่งนี้หมายความว่าอย่างไร 90% ของเวลาในการดำเนินการสามารถใช้งานได้เพียง 10% ของรหัสเท่านั้น แล้วอีก 90% ของรหัสล่ะ? พวกเขาสามารถดำเนินการในเวลาเพียง 10% ได้อย่างไร

22
ทำไมโปรแกรมเมอร์บางคนคิดว่ามีความแตกต่างระหว่างทฤษฎีและการปฏิบัติ? [ปิด]
เมื่อเปรียบเทียบกับวิศวกรรมซอฟต์แวร์กับวิศวกรรมโยธาฉันรู้สึกประหลาดใจที่สังเกตวิธีการคิดที่แตกต่าง: วิศวกรโยธาคนใดรู้ว่าถ้าคุณต้องการสร้างกระท่อมเล็ก ๆ ในสวนคุณก็จะได้วัสดุและสร้างมันในขณะที่ถ้าคุณต้องการสร้าง บ้าน 10 ชั้น (หรือบางอย่างเช่นนี้ ) คุณต้องทำคณิตศาสตร์เพื่อให้แน่ใจว่ามันจะไม่พัง ในทางตรงกันข้ามการพูดกับการเขียนโปรแกรมบางส่วนหรืออ่านบล็อกหรือฟอรั่ฉันมักจะพบความเห็นในวงกว้างที่สามารถนำสูตรมากหรือน้อยดังต่อไปนี้: ทฤษฎีและวิธีการอย่างเป็นทางการสำหรับนักคณิตศาสตร์ / นักวิทยาศาสตร์ในขณะที่การเขียนโปรแกรมเป็นเรื่องเกี่ยวกับการทำสิ่งต่างๆ สิ่งที่บอกเป็นนัยก็คือการเขียนโปรแกรมเป็นสิ่งที่ใช้งานได้จริงและแม้ว่าวิธีการอย่างเป็นทางการคณิตศาสตร์ทฤษฎีอัลกอริทึมภาษาโปรแกรมสะอาด / เชื่อมโยงกัน ฯลฯ อาจเป็นหัวข้อที่น่าสนใจพวกเขามักไม่จำเป็นถ้าทุกคนต้องการได้สิ่ง เสร็จแล้ว จากประสบการณ์ของฉันฉันจะบอกว่าในขณะที่คุณไม่จำเป็นต้องใช้ทฤษฎีมากในการรวบรวมสคริปต์ 100 บรรทัด (กระท่อม) เพื่อพัฒนาแอปพลิเคชันที่ซับซ้อน (อาคาร 10 ชั้น) คุณต้องมีการออกแบบที่มีโครงสร้าง - วิธีการกำหนดภาษาการเขียนโปรแกรมที่ดีหนังสือข้อความที่ดีที่คุณสามารถค้นหาอัลกอริทึม ฯลฯ ดังนั้น IMO (ปริมาณที่เหมาะสมของ) ทฤษฎีเป็นหนึ่งในเครื่องมือสำหรับการทำสิ่งต่างๆ คำถามของฉันคือทำไมโปรแกรมเมอร์บางคนคิดว่ามีความแตกต่างระหว่างทฤษฎี (วิธีการที่เป็นทางการ) และการฝึกฝน ซอฟต์แวร์วิศวกรรม (ซอฟท์แวร์อาคาร) ถูกมองว่าเป็นเรื่อง ง่ายเมื่อเทียบกับวิศวกรรมโยธา (บ้านอาคาร)? หรือทั้งสองสาขาแตกต่างกันจริงๆ (นอกเหนือจากซอฟต์แวร์ที่มีความสำคัญต่อภารกิจแล้วความล้มเหลวของซอฟต์แวร์นั้นเป็นที่ยอมรับได้มากกว่าการสร้างความล้มเหลว) ฉันพยายามสรุปสิ่งที่ฉันเข้าใจจากคำตอบแล้ว ตรงกันข้ามกับวิศวกรรมซอฟต์แวร์ในสาขาวิศวกรรมโยธามันมีความชัดเจนมากขึ้นว่าจำนวนของทฤษฎี (การสร้างแบบจำลองการออกแบบ) เป็นสิ่งจำเป็นสำหรับงานบางอย่าง …

8
กิจกรรมใช้สำหรับการเขียนโปรแกรม GUI เท่านั้นหรือไม่
กิจกรรมใช้สำหรับการเขียนโปรแกรม GUI เท่านั้นหรือไม่ คุณจัดการกับการเขียนโปรแกรมแบ็กเอนด์ปกติอย่างไรเมื่อมีบางอย่างเกิดขึ้นกับสิ่งอื่นนี้

8
เราจะมั่นใจได้อย่างไรว่าส่วนประกอบที่ต่ำกว่าของการเขียนโปรแกรมคอมพิวเตอร์เช่นคอมไพเลอร์แอสเซมเบลอร์คำแนะนำเครื่อง ฯลฯ ไร้ที่ติ?
เนื่องจากเราพึ่งพาการคำนวณมากขึ้นเรื่อย ๆ รวมถึงงานที่สำคัญมากในชีวิตประจำวันฉันจึงสงสัยว่าการทดสอบส่วนประกอบสำคัญเหล่านั้นเป็นอย่างไร ในทางเทคนิคแล้วคอมไพเลอร์และแอสเซมเบลอร์มีการทดสอบอย่างไร (ฉันคิดว่าสิ่งนี้เกี่ยวข้องกับปัญหาการหยุดชะงัก !!)

9
ทำไมไม่เปิดเผยคีย์หลัก
ในการศึกษาของฉันฉันได้รับแจ้งว่าเป็นความคิดที่ไม่สมบูรณ์ที่จะเปิดเผยคีย์หลักที่แท้จริง (ไม่เพียง แต่คีย์ DB แต่ผู้เข้าถึงหลักทั้งหมด) ให้กับผู้ใช้ ฉันคิดเสมอว่าเป็นปัญหาด้านความปลอดภัย (เพราะผู้โจมตีสามารถพยายามอ่านสิ่งที่ไม่ใช่ของตนเอง) ตอนนี้ฉันต้องตรวจสอบว่าผู้ใช้ได้รับอนุญาตให้เข้าถึงหรือไม่มีเหตุผลอื่นอีกหรือไม่ นอกจากนี้เนื่องจากผู้ใช้ของฉันต้องเข้าถึงข้อมูลต่อไปฉันจะต้องมีรหัสสาธารณะสำหรับโลกภายนอกที่ใดที่หนึ่ง ตอนนี้รหัสสาธารณะมีปัญหาเช่นเดียวกับคีย์หลักใช่ไหม มีการร้องขอตัวอย่างเกี่ยวกับสาเหตุที่ทำเช่นนั้นดังนั้นนี่คือตัวอย่าง โปรดจำไว้ว่าคำถามนั้นมีความหมายเกี่ยวกับหลักการนั้นไม่เพียง แต่จะนำไปใช้ในตัวอย่างนี้เท่านั้น คำตอบที่กล่าวถึงสถานการณ์อื่น ๆ ยินดีต้อนรับอย่างชัดเจน แอปพลิเคชัน (เว็บมือถือ) ที่จัดการกิจกรรมมี UIs หลายตัวและอย่างน้อยหนึ่ง API อัตโนมัติสำหรับการสื่อสารระหว่างระบบ (eG แผนกบัญชีต้องการทราบว่าจะเรียกเก็บเงินจากลูกค้ามากน้อยเพียงใดจากสิ่งที่ทำ) แอปพลิเคชันมีลูกค้าหลายรายดังนั้นการแยกข้อมูลของพวกเขา (อย่างมีเหตุผลข้อมูลจะถูกเก็บไว้ในฐานข้อมูลเดียวกัน) เป็นสิ่งที่ต้องมีในระบบ คำขอแต่ละรายการจะถูกตรวจสอบความถูกต้องไม่ว่าจะเกิดอะไรขึ้น กิจกรรมนั้นละเอียดมากดังนั้นมันจึงอยู่รวมกันในวัตถุคอนเทนเนอร์บางตัวให้เรียกมันว่า "งาน" สาม usecases: ผู้ใช้ A ต้องการส่งผู้ใช้ B ไปยังงานบางอย่างดังนั้นเขาจึงส่งลิงก์ (HTTP) ให้เขาเพื่อให้กิจกรรมเสร็จสิ้นที่นั่น ผู้ใช้ B ต้องออกไปข้างนอกอาคารเพื่อเปิด Task บนอุปกรณ์มือถือ การบัญชีต้องการเรียกเก็บเงินจากลูกค้าสำหรับงาน แต่ใช้ระบบบัญชีบุคคลที่สามที่โหลดงาน / กิจกรรมโดยอัตโนมัติด้วยรหัสบางอย่างที่อ้างถึง …

3
ความแตกต่างระหว่างคลาสย่อยและประเภทย่อยคืออะไร?
คำตอบการจัดอันดับสูงสุดที่จะคำถามนี้เกี่ยวกับ Liskov ชดเชยหลักการใช้เวลาปวดจะแยกแยะระหว่างข้อกำหนดย่อยและsubclass นอกจากนี้ยังทำให้จุดที่บางภาษาทำให้ทั้งสองเป็นคู่ในขณะที่คนอื่นทำไม่ได้ สำหรับภาษาเชิงวัตถุที่ฉันคุ้นเคยมากที่สุด (Python, C ++), "type" และ "class" เป็นแนวคิดที่มีความหมายเหมือนกัน ในแง่ของ C ++ การแยกประเภทย่อยและคลาสย่อยหมายความว่าอย่างไร กล่าวว่าเช่นว่าFooเป็น subclass FooBaseแต่ไม่ได้เป็นชนิดย่อยของ หากfooเป็นตัวอย่างของFooสายนี้จะ: FooBase* fbPoint = &foo; ไม่ถูกต้องอีกต่อไป?

11
“ มิติที่สี่” ทำงานกับอาร์เรย์ได้อย่างไร
นามธรรม: ดังนั้นในขณะที่ฉันเข้าใจ (แม้ว่าฉันมีความเข้าใจที่ จำกัด มาก) มีสามมิติที่เรา (ปกติ) ทำงานร่วมกับร่างกาย: วันที่ 1 จะแสดงเป็นเส้น ที่สองจะถูกแทนด้วยตาราง ก้อนที่ 3 จะถูกแทนด้วยคิวบ์ ง่ายพอจนกว่าเราจะได้รับการ4 - มันเป็นเรื่องยากนะที่จะวาดในพื้นที่ 3D ถ้าคุณรู้ว่าสิ่งที่ฉันหมายถึง ... บางคนบอกว่ามันมีสิ่งที่จะทำอย่างไรกับเวลา คำถาม: ตอนนี้ถึงแม้ว่ามันจะไม่สมเหตุสมผลก็ตามทั้งหมดนั้นยอดเยี่ยมสำหรับฉัน คำถามของฉันไม่เกี่ยวกับเรื่องนี้หรือฉันจะถามมันใน MathSO หรือ PhysicsSO คำถามของฉันคือคอมพิวเตอร์จะจัดการกับอาร์เรย์ได้อย่างไร ฉันรู้ว่าคุณสามารถสร้างอาร์เรย์ 4D, 5D, 6D และอื่น ๆ ... ในภาษาการเขียนโปรแกรมที่แตกต่างกัน แต่ฉันต้องการที่จะรู้วิธีการทำงาน
30 theory  array 

9
การสร้างโครงร่างสี - ทฤษฎีและอัลกอริธึม [ปิด]
ฉันจะสร้างแผนภูมิและไดอะแกรมและฉันกำลังมองหาทฤษฎีเกี่ยวกับโครงร่างสีและตัวอย่างอัลกอริทึม ตัวอย่างคำถาม: วิธีการสร้างสีเสริมหรือคล้ายคลึงกัน? วิธีการสร้างสีพาสเทลเย็นและอบอุ่น? วิธีการสร้างสีแบบสุ่ม แต่แตกต่างกันจำนวนเท่าใด? วิธีการแปลทั้งหมดนั้นให้เป็นเลขฐานสิบหก (สีของเว็บ) การใช้งานของฉันจะอยู่ใน AS3 แต่ยินดีต้อนรับตัวอย่างใด ๆ ใน pseudocode

18
ทฤษฎีวิทยาศาสตร์คอมพิวเตอร์หนึ่งบิตที่ฉันควรรู้คืออะไร [ปิด]
พูดในฐานะคนที่มีปริญญาวิศวกรรมอิเล็กทรอนิกส์มากกว่าวิทยาศาสตร์คอมพิวเตอร์, สิ่งที่เป็นหนึ่งบิตของวิทยาศาสตร์คอมพิวเตอร์ที่ฉันควรรู้ที่จะทำให้ฉันดีกว่าโลกแห่งความจริงโปรแกรมเมอร์? (ตามโลกแห่งความเป็นจริงฉันหมายถึงสิ่งที่ฉันจะใช้และได้รับประโยชน์จากงานประจำวันในฐานะโปรแกรมเมอร์ - ตัวอย่างเช่นฉันขอแนะนำให้ทำความเข้าใจกับการทำฐานข้อมูลให้เป็นมาตรฐาน ของห้องสมุด)

7
ในทางปฏิบัติเก้าสิบเก้า
90 เปอร์เซ็นต์แรกของรหัสบัญชีสำหรับ 90 เปอร์เซ็นต์แรกของเวลาในการพัฒนา ส่วนที่เหลืออีก 10 เปอร์เซ็นต์ของรหัสบัญชีคิดเป็น 90 เปอร์เซ็นต์ของเวลาในการพัฒนา - Tom Cargill, Bell Labs ในทางปฏิบัติหมายความว่าอย่างไร โปรแกรมเมอร์รายนั้นทำงานเป็นกอบเป็นกำและพวกเขาให้ผลประโยชน์ 180% หรือ?

4
หน่วยความจำของการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมดของกิโลไบต์บล็อกและพอยน์เตอร์เป็นไปได้หรือไม่?
นี่เป็นความคิดที่ยากพอที่จะคลุมหัวฉันและฉันจะขอบคุณการแก้ไขใด ๆ / ช่วยให้อ่านได้ง่ายขึ้นสำหรับผู้ที่รู้ ในทางทฤษฎีแล้วมันเป็นไปได้หรือไม่ที่จะมีฮาร์ดไดรฟ์ที่บันทึกไว้บนสำเนาหนึ่งชุดของการเปลี่ยนแปลงไบนารี่ที่เป็นไปได้ทั้งหมดหนึ่งกิโลไบท์แล้วมีส่วนที่เหลือของระบบเพียงแค่สร้างพอยน์เตอร์ไปยังตำแหน่งเหล่านี้ ระบบทำเช่นนี้จะเร็วกว่าแค่เก็บข้อมูลโดยตรงหรือไม่ หากต้องการอธิบายอีกวิธีหนึ่งให้พูดแทนการใช้ประโยค: "สวัสดีฉันชื่อบ็อบ" และ "แซนด์วิชนั้นดูอร่อย" ... เก็บไว้ในฮาร์ดไดรฟ์เราจะมีการเรียงลำดับของตัวอักษรและอักขระอื่น ๆ ไม่เกินจำนวน (พูด 1,000 ตัวอักษรหรือมากกว่านั้น) จากนั้นเก็บประโยคของเราตามที่ต้องการ: [ตัวชี้ # 21381723]

8
ภาษาโปรแกรมเชิงปฏิบัติที่ไม่มีทฤษฏีไม่มีคำหลักที่สงวนไว้
ฉันค้นหาภาษาการเขียนโปรแกรมเชิงปฏิบัติที่ไม่มีคำหลักที่สงวนไว้ แต่ฉันไม่มีโชคในการค้นหา ฉันกำลังทำงานกับภาษาการเขียนโปรแกรมสำหรับการสั่งสอนและความบันเทิงของตัวเองและฉันไม่จำเป็นต้องใส่คำหลักใด ๆ นั่นคือสิ่งที่ทำให้ฉันค้นหาและคำถาม: ฉันไม่เห็นความสะดวกสบายกับผู้เขียนคอมไพเลอร์ว่ามีความสำคัญต่อผู้ใช้ภาษา คอมพิวเตอร์มีพลังมากพอที่วันนี้จะสามารถสรุปความหมายจากบริบท ไม่มากไปกว่านักเขียนที่จำเป็นต้องติดป้ายคำนามคำกริยาและเช่นเมื่อเขียนนวนิยายทำไมโปรแกรมเมอร์ควรจะต้องติดฉลากฟังก์ชั่นและตัวแปรที่มีfunction x() {}หรือset x = 1หรือvar x = 1ฯลฯ ; เมื่อฉันสามารถอนุมานจากบริบทของคำสั่งว่ามันคือการประกาศฟังก์ชั่นหรือการร้องขอหรือว่าฉลากเป็นการกำหนดค่าหรือการอ้างอิงถึงค่าป้ายที่? นี่คือตัวอย่างที่เป็นรูปธรรมของสิ่งที่ parser ปัจจุบันของฉันจะทำจำเป็นสำหรับคำหลักที่สงวนไว้เพื่อสนับสนุนสิ่งที่พบที่ปกติจะมีพวงของไม่มีเสียงเหมือนfuncหรือfunctionหรือdecหรือสิ่งที่ไม่ ประกาศฟังก์ชั่น sum3(a,b,c) -> a + b + c. ฟังก์ชั่นภาวนา x = sum3(1,2,3). ฟังก์ชันที่ไม่ระบุชื่อตั้งชื่อ x x = (a,b,c) -> a + b + c. y = x(1,2,3). ฉันต้องการทราบว่าทำไมคำหลักที่มีความสำคัญต่อภาษาการเขียนโปรแกรมที่ประสบความสำเร็จ
22 theory  languages 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.