คอมพิวเตอร์ Windows อินเทอร์เน็ต

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

ภาษาโปรแกรมต่างๆ และขอบเขตการใช้งาน บรรยายใน Yandex

เราตัดสินใจอุทิศโพสต์แรกของเราในปีนี้ในหัวข้อพื้นฐานมากๆ ซึ่งเป็นการบรรยายใน Small SHAD นักเรียนมัธยมปลายที่สนใจในเทคโนโลยีมีส่วนร่วม ดังนั้นความเฉพาะเจาะจงของการนำเสนอ - การบรรยายจะน่าสนใจเป็นพิเศษสำหรับผู้ที่เพิ่งเริ่มเขียนโปรแกรมและกำลังคิดเกี่ยวกับทิศทางที่จะพัฒนา สำหรับพวกเขา Yandex มีหลักสูตร "Introduction to Programming (C ++)" ซึ่งสามารถดำเนินการได้บนแพลตฟอร์ม Stepic.org

ขอบเขตของโปรแกรมและการใช้งาน

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

อาจารย์ Mikhail Gustokashin - ภัณฑารักษ์ของโครงการวิชาการที่ Yandex ผู้อำนวยการศูนย์นักศึกษาโอลิมปิก คณะวิทยาการคอมพิวเตอร์ HSE มิคาอิลได้ฝึกฝนผู้ชนะและผู้ชนะเลิศการแข่งขันรายการ All-Russian Programming Olympiads หลายสิบคน

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

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

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

และเช่นเคย ใต้คลิปนี้จะมีการถอดเสียงบรรยายโดยละเอียดเพื่อให้คุณสามารถไปยังส่วนต่างๆ ของเนื้อหาได้

ประวัติการเขียนโปรแกรมภาษา

ให้เริ่มต้นจากจุดเริ่มต้น. ในตอนแรก คอมพิวเตอร์ไม่มีแม้แต่คีย์บอร์ด! นั่นคือทุกอย่างแย่มาก - พวกเขาไม่มีแป้นพิมพ์หรือหน้าจอ พวกเขาเจาะการ์ด (สิ่งเหล่านี้มีรูหรือไม่มีรู) ดังนั้น หมุดทั้งสองจึงถูกผลักไปที่นั่น หรือฉายแสงที่นั่น หากมีหลุม (หรือกลับกัน) แสดงว่าเป็นศูนย์หรือหนึ่ง และโปรแกรมในขณะนั้นเขียนโดยใช้รหัสเครื่อง - แต่ละการดำเนินการในคอมพิวเตอร์ (การบวก การลบ การดำเนินการที่ซับซ้อนกว่านี้) มีรหัสเครื่องบางประเภท ผู้คนเลือกรหัสนี้จากจาน ที่อยู่ทุกประเภทในหน่วยความจำ พวกเขาเคาะมันทั้งหมดด้วยมือของพวกเขาและผลักมันเข้าไปในเครื่องอ่าน - และทั้งหมดถูกนับ แน่นอนว่างานของโปรแกรมเมอร์อาจไม่น่าสนใจมากนักในตอนนั้น - เพื่อสร้างช่องโหว่ - และด้วยการพัฒนาด้านวิทยาศาสตร์และเทคโนโลยี แน่นอนว่าพวกเขาเริ่มสร้างสิ่งที่ "น่าสนใจ" ขึ้นอีกทุกประเภท ตัวอย่างเช่น assembler (Assembler) ที่ทำให้ชีวิตง่ายขึ้นนิดหน่อย

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

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

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

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

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

ภาษาเก่าและที่ตายแล้ว

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

ภาษาอื่น ๆ - ตอนนี้ฉันจะเขียนสิ่งหนึ่งที่คุณอาจเคยได้ยินเกี่ยวกับเหตุการณ์ใด ๆ ที่พวกเขาบอกเกี่ยวกับประวัติการเขียนโปรแกรม - นี่คือภาษาโคบอล เป็นภาษาสำหรับเขียนใบสมัครธุรกิจ แอปพลิเคชันทางธุรกิจคืออะไร? ธุรกรรมใดๆ ในธนาคาร อย่างอื่น ทั้งหมดนี้เขียนด้วย Kobol แน่นอนว่ามันไม่เป็นที่นิยมสำหรับเรา ฉันคิดว่าคุณแทบจะไม่พบโปรแกรมเมอร์ใน Kobol ในมอสโก และที่ไหนสักแห่งที่ไม่ได้อยู่ในมอสโก - ด้วยความยากลำบากยิ่งขึ้น แต่ที่น่าประหลาดใจคือ เมื่อ 10 ปีที่แล้ว มากกว่าครึ่งของรหัสที่มนุษย์เขียนขึ้นในภาษาโคบอล และจนถึงขณะนี้ ส่วนสำคัญของธุรกรรมธนาคารทั้งหมดดำเนินการโดยใช้โปรแกรมที่เขียนในนั้น (COBOL) และยังคงมีคนเขียนอะไรบางอย่างอยู่

ภาษาโปรแกรมมีไว้ทำอะไร?

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

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

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

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

ภาษาเก่าแต่มีชีวิต

Algol ถูกประดิษฐ์ขึ้นในยุโรปและ Fortran ถูกใช้เป็นหลักในสหรัฐอเมริกา - ไม่มีความแตกต่างใหญ่โต แนวโน้มใดที่มองเห็นได้? ในตอนแรก ทุกอย่างเป็นเรื่องยาก และการเขียนคุณต้องเกือบเป็นวิศวกร วิศวกรไฟฟ้า เข้าใจว่าส่วนติดต่อใดถูกปิดและอย่างอื่นสำหรับการเขียนโปรแกรม แล้วยังต้องนั่งนับใบตองคอยดูแล และทุกอย่างก็ค่อยๆ ง่ายขึ้น ง่ายขึ้น ง่ายขึ้น และง่ายขึ้นสำหรับโปรแกรมเมอร์ - คิดให้น้อยที่สุดสำหรับบุคคล ให้มากที่สุดโดยอัตโนมัติ ประมาณปลายช่วงเวลานี้ (วิทยากรชี้ไปที่อัลกอลและโกโบล) ภาษาเริ่มปรากฏว่าในความรู้สึก "รอด" มาจนถึงทุกวันนี้

ขั้นพื้นฐาน. บางทีบางคนยังคงเขียนอะไรบางอย่างตาม อย่างน้อยฉันเห็นว่าในบางสถาบันที่พวกเขาสอนใน QBasic - หน้าต่างสีน้ำเงินที่มีข้อความว่า "1989" โดยทั่วไปแล้วเขาใช้ชีวิต "ด้วยกำลังและหลัก"! มันถูกประดิษฐ์ขึ้นเป็นภาษาสำหรับผู้ที่ไม่ใช่โปรแกรมเมอร์ ในเวลานั้นโปรแกรมเมอร์เป็นอาชีพที่เชี่ยวชาญมาก และที่นี่พวกเขาพูดกับคุณว่า: "ที่นี่เรามีภาษาพื้นฐานที่ยอดเยี่ยมและบุคคลที่มีเหตุผลจะเขียนโปรแกรมในนั้น - อย่างง่ายดาย" อีกครั้งที่ BASIC และ BASIC สมัยใหม่นั้นแตกต่างกันมาก บรรทัดทั้งหมดเหล่านี้มีหมายเลขทุกๆ 10 GOTO ทุกประเภทและความสยองขวัญอื่น ๆ - พวกเขาไม่มีส่วนเกี่ยวข้องกับ BASIC สมัยใหม่และแทบไม่มีส่วนเกี่ยวข้องกับ BASIC 89 เลย

ประวัติการเขียนโปรแกรมภาษา

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

เรื่องตลกอีกเรื่องหนึ่งคือภาษาปาสกาล ซึ่งเป็นที่รู้จักกันอย่างแพร่หลายในแวดวงมหาวิทยาลัย ส่วนใหญ่ในรัสเซียและในประเทศของอดีตสหภาพโซเวียต มันถูกใช้และยังคงถูกใช้เป็นภาษาการสอนอย่างน่าประหลาดใจ ในส่วนอื่น ๆ ของโลก พบได้ไม่บ่อยนัก แต่ก็ยังมีชีวิตและอยู่ดี มีบุคคลดังกล่าว Wirth - ที่นี่เขาเป็นนักวิทยาศาสตร์นักทฤษฎี เขาเข้าร่วมในการอภิปรายของ Algol เขาไม่ชอบสิ่งที่เกิดขึ้นและเขาก็คิดภาษาของเขาเอง - Pascal แล้วบริษัทในบอร์แลนด์ (และก่อนหน้านั้นบริษัทอื่นๆ อีกมาก - โดยเฉพาะ Apple มีส่วนเกี่ยวข้อง) ได้เข้ายึดครองและทำลายทุกอย่าง เขามีทฤษฎีที่สวยงาม เพรียวบาง - "ทุกอย่างจะเรียบร้อย" - และพวกเขาก็เอาสิ่งที่คนต้องการสำหรับการทำงานไปยัดใส่ที่นั่น มันไม่ได้ผลดีอย่างที่เขาต้องการ

ภาษาโปรแกรมอะไร?

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

ความแตกต่างระหว่างภาษาโปรแกรมที่สูงขึ้นและต่ำลงคืออะไร

ประการแรก ภาษาโปรแกรมที่ลึกกว่านั้นอยู่ใกล้กับรหัสเครื่องและมักจะถูกคอมไพล์

และในที่สุดก็,. Xi ถูกคิดค้นโดยวิศวกร ถ้า Pascal ถูกคิดค้นโดยนักวิทยาศาสตร์ แล้ว C ก็ถูกคิดค้นโดย Kernighan และ Ritchie พวกเขาทำงานเป็นวิศวกรที่ Bell มันเกิดขึ้นได้อย่างไร? ในเวลานั้นมันเป็นไปไม่ได้ที่จะเขียนอะไรที่เป็นระบบในภาษาเหล่านี้ (ผู้บรรยายชี้ไปที่ Fortran, COBOL, Algol) "ระบบ" คืออะไร? ตัวอย่างเช่น ระบบปฏิบัติการ ไดรเวอร์บางตัว อย่างอื่น ภาษาเหล่านี้มีไว้สำหรับคณิตศาสตร์ เพื่อธุรกิจ สำหรับทุกสิ่ง และทุกอย่างอื่นถูกเขียนใน Assembler มีบางภาษาที่พวกเขาตายไปแล้วนั่นคือภาษา C ไม่ได้ปรากฏขึ้นทันทีจาก Assembler แต่ผ่านบางสิ่งระดับกลาง

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

สาระสำคัญคืออะไร? Kernighan และ Ritchie ชอบเล่นของเล่น Asteroids - ยานอวกาศบินไปและมีดาวเคราะห์น้อยอยู่ด้วยเขายิงใส่พวกมันและพวกมันก็กระจุย พวกเขามีเซิร์ฟเวอร์ที่พวกเขาเล่น แต่มีคนจำนวนมากที่นั่น และของเล่นก็ช้าลง และพวกเขาพบว่าบางแห่งในสำนักงานของพวกเขามีคอมพิวเตอร์บางประเภทที่ไม่มีใครใช้ แต่มีปัญหา - มันเป็นสถาปัตยกรรมที่แตกต่าง และเกมนี้เขียนใน Assembler

ภาษาโปรแกรมที่สูงขึ้นเหมาะอย่างยิ่งสำหรับผู้เริ่มต้นและเนื่องจากความเป็นอิสระของประเภทข้อมูลสำหรับผู้เริ่มต้น ความเป็นอิสระของประเภทข้อมูลหมายความว่าภาษาการเขียนโปรแกรมไม่สำคัญว่าตัวแปรจะเป็นตัวเลข ตัวอักษร หรืออื่นๆ

สิ่งที่จำเป็นสำหรับการเขียนโปรแกรม?

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

แน่นอนว่าพวกเขาเขียนใหม่ พวกเขายังตัดคุณสมบัติบางอย่างเพื่อที่จะเล่นได้ แต่สิ่งนี้ทำให้พวกเขาคิดว่าการเขียนใหม่สำหรับสถาปัตยกรรมใหม่ทุกครั้งนั้นไม่ฉลาดนัก และพวกเขาตัดสินใจที่จะเขียนภาษาระดับสูงที่เหมาะสมกับการเขียนโปรแกรมระบบ นั่นคือ มันสามารถจัดการหน่วยความจำได้ ซึ่งมันเป็นไปได้ที่จะเข้าใจว่าบางสิ่งอยู่ที่ไหนและจะเข้าถึงหน่วยความจำเหล่านี้ได้อย่างไร . ดังนั้นภาษาซีจึงปรากฏขึ้น ซึ่งมีผลกระทบอย่างมากต่อทุกสิ่งในภายหลัง พวกเขาทั้งหมด (ผู้บรรยายชี้ไปที่ Algol, Fortran และภาษาอื่น ๆ ที่กล่าวถึง) มีอิทธิพลอย่างมาก แต่ C - ใช่ ...

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

ภาษาโปรแกรมมีองค์ประกอบอะไรบ้าง?

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

ดังนั้นจึงเป็นภาษาหลักใน Unix ซึ่งเป็นระบบปฏิบัติการที่ได้รับความนิยมมากกว่าตอนนี้ และประมาณปี 80 สถานการณ์ก็ประมาณนี้ (วิทยากรแสดงเป็น Basic, C และภาษาอื่นๆ ที่กล่าวถึง) สมมติว่าทั้งหมดนี้ตายไปแล้วอย่างเจ้าเล่ห์ (อาจารย์ลบการอ้างอิงถึง Assembler, Fortran และ Algol) ... และในยุค 80 คอมพิวเตอร์มีขนาดเล็กลง ฉลาดขึ้น ถูกกว่า และผู้คนต้องการสิ่งแปลกประหลาดทุกประเภทตามลำดับ ให้มีชีวิตที่ดีขึ้น มีชีวิตที่สนุกสนานยิ่งขึ้น

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

ภาษาโปรแกรมคืออะไร

เงื่อนไขคือคำขอ หากใช้ สิ่งที่อยู่ภายในเงื่อนไขจะถูกดำเนินการ มีตัวดำเนินการเพื่อสร้างเงื่อนไข ตัวดำเนินการจะเป็น: เท่ากัน, ไม่เท่ากัน, มากกว่า, น้อยกว่า, จริงและเท็จ ลูปประกอบด้วยโค้ดที่ดำเนินการตราบเท่าที่เงื่อนไขที่เป็นของลูปเป็นจริง ตัวอย่างเช่น สิบครั้งมีข้อได้เปรียบที่นักพัฒนาไม่จำเป็นต้องเขียนโค้ดสิบครั้ง

ภาษาพื้นเมืองในยุค 80

สิ่งแปลกประหลาดประการแรกคือภาษา C ++ ภาษา C มีข้อบกพร่องจำนวนมาก (โดยทั่วไปแล้วมีขนาดใหญ่มาก) - คุณสามารถทำอะไรกับมันได้รวมถึงการยิงตัวเองที่ขา, การยิงตัวเองที่ขาด้วยนิยาย, ในอีกขาหนึ่ง, การยิงด้วย โดยทั่วไปแล้วเท้าข้างหนึ่งที่ขาอีกข้างหนึ่ง - ที่คุณต้องการทำ แต่ในขณะเดียวกัน สถาปัตยกรรมบางอย่างก็ทำได้ค่อนข้างยาก - เช่นเดียวกับใน Assembler เราต้องติดตามว่าเราอยู่ที่ไหน อะไร และหน่วยความจำใดที่เราจัดสรรไว้ มันอยู่ที่นั่นตลอดเวลาที่หน่วยความจำ "ไหล" ที่ไหนสักแห่ง - นั่นคือเราเลือกแล้วลืมลบลบสิ่งที่ผิดออกจากหน่วยความจำโดยทั่วไป - เรามีปัญหามากมาย

เดิม C ++ ถูกสร้างขึ้นเป็นชุดของส่วนเพิ่มเติมของภาษา C ที่จะอำนวยความสะดวกในการพัฒนา ในเวลานั้นโปรแกรมเชิงวัตถุกลายเป็นแฟชั่นและผู้คนตัดสินใจว่าทุกอย่างสามารถอธิบายได้ในรูปแบบของลำดับชั้นนั่นคือคุณมีลูกบอล (นามธรรม) คุณได้รับมรดกจากมัน ลูกฟุตบอล วอลเลย์บอล และลูกบอลนามธรรมอีกลูก . สมัยนั้นเป็นเรื่องที่ทันสมัยที่ "ตอนนี้เราเขียนทุกอย่างในรูปแบบของลำดับชั้นบางอย่างและทุกอย่างจะดี ชีวิตจะดีขึ้น ทุกอย่างจะดีและทุกอย่าง" ในแง่หนึ่ง C ++ ใช้วิธีอ็อบเจ็กต์นี้ - ไม่ใช่ภาษาการเขียนโปรแกรมเชิงวัตถุภาษาแรก แต่กลายเป็นที่นิยมมากและคุณสมบัติทุกประเภทเริ่มปรากฏขึ้น ในเวลาเดียวกัน C ++ ยังคงความเข้ากันได้เกือบสมบูรณ์ (ในขณะนั้น) กับภาษา C โปรแกรมที่เขียนในภาษา C ได้รับการคอมไพล์เป็น C ++ ได้สำเร็จใน 99% ของกรณีและยังทำงานในลักษณะเดียวกัน มีจุดประสงค์เพื่อให้ง่ายต่อการโยกย้ายจาก C เป็น C ++

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

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

นอกจากวิธีการของวัตถุ (ใน C ++) Standard Template Library (STL) ก็ปรากฏขึ้นอย่างรวดเร็ว ฉันคิดว่าที่โรงเรียนผู้ที่ยังสอน Pascal ค้นพบว่าในตอนแรกคุณไม่มีการเรียงลำดับในตัว (ใน Borland Pascal สีน้ำเงินโบราณตอนนี้มีอยู่แล้วในเวอร์ชันที่ทันสมัย) - มีตัวอย่าง (ที่มา) sort คุณสามารถคัดลอกและวางได้ แต่ถ้าคุณต้องการจัดเรียงจำนวนเต็มที่นี่ คุณต้องการจำนวนจริง และนี่คือสตริงที่สามารถเปรียบเทียบกันได้ คุณต้องเขียนสามแบบที่แตกต่างกันที่ทำสิ่งเดียวกันทั้งหมด พวกมันมี ประเภทต่างๆข้อมูล. สิ่งนี้ไม่ดีนัก และเทมเพลตที่ไม่ปรากฏใน C ++ ทันทีทำให้ปัญหานี้ง่ายขึ้นมาก นั่นคือ คุณมีโปรแกรมนามธรรมที่จัดเรียงสิ่งที่สามารถเปรียบเทียบกันได้สำเร็จ

ภาษาสคริปต์จากยุค 90

แต่เวลาไม่หยุดนิ่ง ในยุค 80 มีสิ่งที่น่าสนใจมากมายเกิดขึ้น แต่ในช่วงเปลี่ยนผ่านของยุค 80 และ 90 คอมพิวเตอร์กลายเป็นสิ่งที่ดีมากจนสามารถทำสิ่งแปลก ๆ และไม่มีประสิทธิภาพได้ โดยเฉพาะสิ่งเหล่านี้เป็นภาษาสคริปต์ที่ไม่ได้คอมไพล์เป็นรหัสเครื่อง แต่ตีความ พื้นฐานก็ถูกตีความในบางครั้ง แต่ภาษาสคริปต์เหล่านี้มีไว้สำหรับการประมวลผลข้อความเป็นหลัก - ตัวอย่างเช่น Perl, Python (ตอนนั้นไม่ค่อยมีชื่อเสียง), PHP, Ruby - นี่คือภาษาสคริปต์ที่อยู่ใน พวกเขายังคงมีชีวิตอยู่ในระดับหนึ่งหรือระดับที่แตกต่างกัน (พวกเขาทั้งหมดสามารถปรากฏตัวก่อนปี 2000 แม้กระทั่งก่อนหน้านั้นมาก)

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

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

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

โดยทั่วไปแล้ว ไม่มีอะไรเลยนอกจากเพิร์ลที่เหมาะกับช่วงเวลานั้น เป็นความคิดที่ดีที่จะเขียนด้วย C หรือ C ++ ตัวจัดการล้วนๆ และเนื่องจากขาดภาษาที่ดีขึ้นในขณะนั้น (และนานพอสมควร) Pearl เป็นภาษาที่ได้รับความนิยมสำหรับการพัฒนาเว็บ แน่นอนว่ามาตราส่วนไม่สามารถเทียบได้กับสิ่งที่เกิดขึ้นในขณะนี้

PHP เกิดขึ้นจาก ... โดยบังเอิญ คนหนึ่งหยุดทำสิ่งนี้อย่างรวดเร็ว - เขาทำเพจของตัวเองบ้าง เขามีสมุดเยี่ยมบ้าง อย่างอื่น บางอย่าง และเขาเขียนมาโครชุดหนึ่งสำหรับ Pearl ซึ่งดูเหมือน C เพราะเขารู้วิธีใช้ C เพียงเพราะเขาสบายใจ และฉันเรียกมันว่าโฮมเพจส่วนบุคคล แบ่งปันและกล่าวว่า: "ผู้คนดูสิว่าฉันเขียนอะไร ทุกอย่างชัดเจนกว่าใน Pearl และคุณสามารถแก้ไขได้" และคนก็ชอบ

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

Python และ Ruby: Ruby ไม่ค่อยได้รับความนิยมในตอนนี้ Python นั้นดีกว่า "cut" มาคุยกันทีหลัง เป็นที่ชัดเจนว่าในสมัยนั้น ภาษาเหล่านี้เป็น (ผู้บรรยายชี้ไปที่ Perl, Python, Ruby, PHP) ภาษาที่เชี่ยวชาญเป็นพิเศษเพื่อวัตถุประสงค์เฉพาะอย่างสูง โดยทั่วไป ไม่มีการเขียนโปรแกรมระบบ ไม่มีตรรกะทางธุรกิจที่เขียนไว้ในขณะนั้น และตอนนี้ก็ไม่ได้ช่วยอะไรมาก

ภาษาที่รวบรวมจากยุค 90

เราจะไปพร้อมกันแต่เป็นอีกทางหนึ่ง ในเวลานั้น เราใช้ C ++ สำหรับเกือบทุกอย่างที่จำเป็นต้องเขียน ไม่ใช่สำหรับเว็บ ไม่ใช่สำหรับการประมวลผลข้อความ แต่สำหรับแอปพลิเคชันทั่วไป สำหรับระบบปฏิบัติการ สำหรับของเล่น - โดยทั่วไปแล้วเพื่ออะไรก็ตาม แต่ C ++ เป็นภาษาที่น่าขนลุกจริงๆ ทำไม? เพราะประการแรกเขาได้รับมรดกเนื่องจาก ความเข้ากันได้ย้อนหลังปัญหา C ทั้งหมด ยังมีคนฆ่าได้อีกเป็นล้าน วิธีทางที่แตกต่างแบบเดียวกับที่อยู่ใน C (แน่นอนว่ามีการเพิ่มวิธีใหม่ใน C ++) ในเวลาเดียวกันถ้าคุณเขียนทุกอย่างถูกต้องและถูกต้องตามที่ผู้เขียน C ++ คิดไว้แน่นอนว่าเป็นไปไม่ได้ที่จะฆ่าตัวตายด้วยวิธีการแบบเก่าและดูเหมือนว่ามีน้อยกว่า อย่างไรก็ตาม มันมีโมเดลวัตถุที่แปลกประหลาดมาก แบ่งโปรแกรมออกเป็นโมดูลเป็นส่วนๆ มาจากภาษา C (ถ้าคุณสามารถเขียนรวมใน C หรือ C ++ ได้ - อันที่จริง มันถูกนึกขึ้นได้ว่าเป็นเพียงแค่การแทรกข้อความของไลบรารีลงในโปรแกรมของคุณ ในที่สุด เมื่อ คุณเขียนการรวมจำนวนมาก คุณมีทุกอย่าง - หากเป็น "ดั้งเดิม" อย่างที่เคยเป็นมาในตอนเริ่มต้น - ทุกอย่างถูกแทรกลงในไฟล์เดียวและจากนั้นก็ใช้เวลานานมากในการรวบรวม เพราะมันเกิดขึ้นหลายครั้ง . รุ่นที่ดียิ่งขึ้น

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

นี่คือลักษณะที่ปรากฏของ Java (Java) มีการเชื่อมโยงเรื่องราวที่ค่อนข้างตลกด้วยว่าชื่อที่ปรากฏในภาษานี้เป็นอย่างไร มีโปรแกรมเมอร์หลายคนดื่มกาแฟตลอดเวลาและในขณะนั้นเป็นที่นิยมในการดื่มกาแฟซึ่งเติบโตบนเกาะชวา ภาษานี้ถูกมองว่าเป็นภาษาสำหรับเครื่องใช้ในตัวโดยเฉพาะอย่างยิ่งสำหรับเครื่องชงกาแฟ จึงเป็นที่มาของชื่อนี้...
อะไรเริ่มต้นจากเธอ มีดีอะไรในตัวเธอ และทำไมเธอถึงได้รับความนิยมมากมายนัก? ประการแรก พวกเขากำจัดมรดกของ Sishny โดยสิ้นเชิง ไม่มีคำแนะนำ วิธีน้อยกว่ามากในการยิงส่วนใดส่วนหนึ่งของร่างกายของคุณและทำลายทุกสิ่ง ประการที่สอง พวกเขานำเสนอแนวคิดที่ใหม่กว่ามากในแง่ของโมเดลวัตถุ นั่นคือ C ++ ปรากฏเร็วกว่า Java มาก และใช้โมเดลวัตถุที่ "ล้าสมัย" ที่เก่ากว่า ทีนี้ ที่นี่ (ผู้บรรยายชี้ไปที่ Java) ตอนนั้นคิดออกแล้ว และในทางทฤษฎี ผู้คนคิด และในทางปฏิบัติ พวกเขาใช้และทำทุกอย่างที่เจ๋งกว่ามาก

และสุดท้ายที่สาม โปรแกรม Java ของเราไม่ได้ประกอบเป็นรหัสเครื่อง แต่เป็นรหัสสำหรับเครื่องเสมือน นั่นคือคุณมีเครื่องเสมือน JVM (VM) - Javovsky โปรแกรมของคุณถูกรวบรวมเป็นการนำเสนอขั้นกลางบางประเภท จากนั้นด้วยความช่วยเหลือของเครื่องนี้ โปรแกรมเหล่านั้นก็ถูกดำเนินการแล้ว มันทำอะไร? อย่างแรก มันช้าลง และประการที่สอง มันกินหน่วยความจำด้วยกำลังที่แย่มาก และประการที่สาม มันสามารถพกพาได้ทุกที่ (ตามหลักวิชา) - แม้แต่กับเครื่องชงกาแฟ แม้แต่เครื่องบดกาแฟ แม้แต่คอมพิวเตอร์ หรือแม้แต่โทรศัพท์มือถือ ในแง่หนึ่ง นี่เป็นสิ่งที่ดี นั่นคือ คุณเพิ่งเขียนการใช้งานเครื่องเสมือน จากนั้นคุณรันโปรแกรม Java ของคุณได้ทุกที่ แต่ในทางกลับกัน เป็นเรื่องไม่ดีที่โทรศัพท์เครื่องเดียวกันมีหน่วยความจำเพียงเล็กน้อยในขณะนั้น ประสิทธิภาพต่ำ และทั้งหมดนี้ก็เริ่มทื่อและช้าลงอีกด้วย

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

นั่นคือถ้าใน C ใน C ++ ใน Python อะไรก็ได้ เราสามารถละลายขยะที่น่าขนลุกจากโครงการของเรา ซึ่งเรามีทุกอย่างผสมกัน รวบรวมเป็นชั่วโมง และยังมีอย่างอื่นอีก ใน Java คุณสามารถละลายถังขยะได้ แต่สำหรับสิ่งนี้คุณต้องพยายามบ้าง นั่นคือโดยค่าเริ่มต้นมันไม่ได้กลายเป็น "กองขยะ" ปัญหาอื่น ๆ เกิดขึ้นว่ามีบางสิ่งได้รับการสืบทอดหรือสืบทอดที่นั่น - โดยทั่วไปสำหรับบรรทัดที่มีความหมายหนึ่งบรรทัดมีสิบบรรทัดที่ไม่มีความหมายมาก ในทางกลับกัน บางทีโปรแกรมเมอร์ที่มีทักษะปานกลางสามารถเขียนโค้ดคุณภาพสูงได้
เราเกือบจะถึงจุดสิ้นสุดแล้ว กับเราสิ่งต่อไปที่ปรากฏขึ้นคือ .Net (จะไปถึง) อืม และโดยเฉพาะอย่างยิ่ง เราสนใจ C # (เกือบเหมือนกัน [ผู้บรรยายชี้ไปที่ Java] นั่นคือรายละเอียดมีความแตกต่างกันหาก คุณเลือกระหว่างพวกเขา - ดูว่าจ่ายเงินเพิ่มที่ไหน)

และอีกอย่างคือจาวาสคริปต์ ไม่มีอะไรเกี่ยวข้องกับภาษา Java ปรากฏในปีเดียวกัน - คำว่าแฟชั่นพวกเขาได้รับใบอนุญาต เครื่องหมายการค้าใช้.

สิ่งสำคัญที่ต้องใส่ใจคืออะไร? (อาจารย์ดึงลูกศรจาก C ++ ถึง Java, .Net, C #, JavaScript และ PHP) ในการเขียนโปรแกรมอย่างง่ายในภาษาเหล่านี้และในภาษาอื่น ๆ - ถ้าคุณรู้ C ++ โดยทั่วไปคุณไม่จำเป็นต้องรู้อะไรอีก - คุณเขียนและเขียนด้วย C ++ แล้วเพิ่มดอลลาร์ในตอนเริ่มต้น อย่างอื่นทำสิ่งเล็ก ๆ น้อย ๆ และมันก็เริ่มทำงานให้คุณในทุกสิ่ง (อาจารย์ชี้ไปที่ภาษาที่ลูกศรจาก C ++ ได้รับมอบหมาย) กล่าวคือมีความคล้ายคลึงกันอย่างมากในบางเรื่องง่ายๆ หากคุณแก้ปัญหาบางอย่างในโรงเรียน งานด้านการศึกษา หรืออย่างอื่น (คุณไม่ได้ออกแบบโครงการขนาดใหญ่ - คุณมีไฟล์เดียวที่อ่านตัวเลข แสดงตัวเลขในคอนโซล ทำอย่างอื่น) แทบไม่มีความแตกต่างระหว่างภาษาเหล่านี้ เป็นที่ชัดเจนว่า JavaScript และ PHP เป็นผู้เชี่ยวชาญ พวกเขามีทุกอย่างแตกต่างกันเล็กน้อย และที่นี่ (ผู้บรรยายชี้ไปที่ Java และ C #) โดยทั่วไปมีความแตกต่างกันเล็กน้อย

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

การเลือกภาษาขึ้นอยู่กับงาน

สมมติว่าคุณกำลังเผชิญกับงานเขียนไดรเวอร์สำหรับการ์ดแสดงผล วันนี้คุณจะใช้ภาษาอะไร (ตะโกนจากผู้ชม: Java!) ทำไม ... Java นั้นยอดเยี่ยม แต่ทำไมไม่ Ruby หรือ PHP? (อาจารย์พูดประชดประชัน)

การเขียนโปรแกรมระดับต่ำ

หากคุณกำลังเขียนบางสิ่งในระดับต่ำ C เป็นตัวเลือกที่ดีที่สุด แต่จริงๆ แล้วฉันได้ยินบางอย่าง (แต่ไม่เห็น) ที่ C ++ ใช้สำหรับสิ่งนี้ แต่ฉันแทบไม่เชื่อในสิ่งนี้ เพราะใน C คุณสามารถควบคุมได้อย่างชัดเจน - เนื่องจากคุณให้หน่วยความจำจำนวนไบต์มากมาย ดังนั้นก็จะเป็นเช่นนั้น และใน C ++ (STL) สตริงมีการใช้งานอย่างไร ถูกนำไปใช้อย่างใด และในท้ายที่สุดเราไม่รู้ว่าเกิดอะไรขึ้นที่นั่น บางทีหน่วยความจำในการ์ดวิดีโอของเราอาจหมด หรืออาจมีอย่างอื่นเกิดขึ้น ดังนั้น C ยังมีชีวิตอยู่และไม่ตายงานเขียนโปรแกรมระบบดังกล่าวยังคงมีอยู่ - เขียนระบบปฏิบัติการ, เขียนไดรเวอร์, เขียนอย่างอื่น - C นั้นยอดเยี่ยมสำหรับสิ่งนี้ นอกจากนี้ ขณะนี้มีอุปกรณ์ทุกประเภท (Internet of Things สัญญาว่ากำลังจะมา) ที่ใช้พลังงานจากแบตเตอรี่ (และแน่นอนว่าจะมีอุปกรณ์หลายล้านเครื่อง ทุกอย่างจะถูกแขวนไว้กับ Internet of Things นี้) พวกเขาควรจะมีราคาถูกมากและกินไฟน้อยมาก ดังนั้นจะมีหน่วยความจำ 2 KB โปรเซสเซอร์ 5 kHz แน่นอนสิ่งที่จะขันในบางส่วน เครื่องเสมือนหรือภาษาสคริปต์จะไม่ทำงานในอนาคตอันใกล้นี้ ซึ่งหมายความว่าคุณจะต้องเขียนอะไรบางอย่างในภาษาซี และแม้กระทั่งตอนนี้ ตัวอย่างเช่น การคำนวณบนการ์ดวิดีโอ (OpenCL หรือเทคโนโลยีอื่นๆ) - พวกเขาไม่ได้คิดภาษาใหม่ขึ้นมาเพื่อเขียนโปรแกรมสำหรับพวกเขา - พวกเขาทำ C ที่นั่นโดยมีข้อจำกัดใหญ่ๆ เพียงเพราะคนรู้อยู่แล้วว่าทำไมต้องเรียนรู้สิ่งใหม่? อย่างเป็นทางการ นี่อาจเป็นในแง่ C

การเขียนโปรแกรมเว็บ

สมมติว่าคุณต้องการที่จะเขียน Facebook ใหม่ ( เครือข่ายสังคม). คุณจะเขียนสิ่งนี้บนอะไร? (จากผู้ชม พวกเขากำลังพูดถึง HTML และ CSS) HTML, CSS คือการออกแบบ และเราต้องการที่จะเพิ่มรูปภาพ, เพื่อน, แสดงความคิดเห็นที่นั่น

สำหรับส่วนสคริปต์ - นั่นคือ สิ่งที่จะเกิดขึ้นในฝั่งไคลเอ็นต์ - มันคือ JavaScript และบางครั้ง JavaScript ถูกสร้างขึ้นในภาษาอื่นและส่ง (มันเกิดขึ้นที่สคริปต์ถูกสร้างขึ้น ... เพราะบางครั้งมันง่ายกว่าในการจัดการการเปลี่ยนแปลงบางอย่างในตรรกะด้วยวิธีนี้)

น่าแปลกที่มันถูกเขียนด้วย PHP - และ Facebook และโครงการขนาดใหญ่อื่น ๆ อีกมากมาย แน่นอน ฉันต้องเขียนบางสิ่งของตัวเองเพื่อให้มันยังคงทำงานได้ดี และไม่เหมือนที่ "tyap-blooper" เสร็จสิ้น แต่พวกเขาทำมัน โดยพื้นฐานแล้ว ไม่สำคัญหรอกว่าคุณจะเขียนอะไรลงไป แต่ฉันไม่แนะนำ Perl แน่นอนว่าที่นี่และตอนนี้ไม่มีใครเขียนอะไรตั้งแต่ต้นสำหรับเว็บ ทุกคนกำลังเขียนกรอบงานหรืออะไรบางอย่าง ช้อปปิ้งออนไลน์? เราดาวน์โหลดกรอบงานสำหรับร้านค้าออนไลน์ - นั่นคือทั้งหมด เราเขียนร้านค้าออนไลน์

การเขียนโปรแกรมธุรกิจ

ต่อไป คุณต้องการเขียนใบสมัครธนาคารที่น่าเบื่อ หรือ เช่น คุณมีคนขายซิมการ์ดหรือไม่? บางทีคุณอาจเคยซื้อโทรศัพท์หรืออย่างอื่นแล้วพวกเขาก็พูดกับคุณว่า: "ระบบหยุดทำงาน เราไม่สามารถทำอะไรได้เลย" คุณจะเขียนใบสมัครดังกล่าวเกี่ยวกับอะไร? (เสียงร้องจากผู้ชมเกี่ยวกับ Python) คุณเขียนสิ่งนี้ใน Python ไม่ได้ คุณเป็นอะไร! มันไม่คุ้มที่จะเขียนอะไรเพื่อธุรกิจใน Python ทำไม? เพราะเมื่อคุณเขียนบางสิ่งใน Python คุณจะไม่พบข้อบกพร่องจำนวนมากในกระบวนการเขียน Python ถูกพิมพ์แบบไดนามิกในทุกวิถีทางที่เป็นไปได้ และโดยทั่วไปแล้วคุณสามารถซ่อนจุดบกพร่องเพื่อให้ปรากฏขึ้นในสถานการณ์ที่คุณไม่สามารถเข้าใจได้ด้วยซ้ำว่าผู้ใช้ที่คดโกงเหล่านี้ทำอะไรที่นั่น และทุกอย่างก็พังเพื่อคุณ นั่นคือจะดีกว่าที่จะเขียนสคริปต์ขนาดเล็กสำหรับตัวคุณเองใน Python - คุณเข้าใจสิ่งที่เกิดขึ้นที่นั่นและสิ่งที่กำลังทำอยู่ หรือบางอย่างที่ไม่น่าเสียดาย: คุณต้องการเปิดตัวบางอย่างต่อหน้าคู่แข่ง แล้วถ้ามันพังทุกครั้งล่ะ คุณเขียนด้วยภาษา Python และนั่นคือทั้งหมด - คุณเข้ายึดครองตลาด และถ้าคุณเขียนบางอย่างเป็นเวลานาน เช่น ใบสมัครธนาคารบางประเภท (เพื่ออนุมัติเงินกู้ อย่างอื่น) คุณเขียนเป็นภาษาจาวา เพราะมันมีเรื่องร้ายแรง เศษกระดาษ เงิน เอกสาร อย่างอื่น แต่คุณไม่สามารถยุ่งกับมันได้มากจนทุกอย่างพังทลายไม่เช่นนั้นผู้คนจะขุ่นเคือง - เงินของพวกเขาหายไปและไปไม่ถึงไหน ขณะที่สตริงกลายเป็นตัวเลขหรือกลับกัน ดังนั้นจึงหมายความว่าคุณใช้ Java อย่างเป็นระบบและเขียนเขียน ... หรือ on.Net โดยหลักการแล้วสถานการณ์ดังกล่าวก็เกิดขึ้นเช่นกัน แน่นอนว่าคุณสามารถประสบปัญหาได้เช่นกัน แต่ความน่าจะเป็นของสิ่งนี้ก็ยังต่ำกว่าอยู่บ้าง

การเขียนโปรแกรมสำหรับกองทัพบก การบินและอวกาศ

ลองนึกภาพว่าพวกเขาตัดสินใจส่งคุณไปยังดวงจันทร์ด้วยจรวด คุณอยากใช้อะไรเขียนโค้ดที่ควบคุมมอเตอร์จรวด มาดูกัน. อาจจะไม่ (วิทยากรแสดงใน Perl, Python, PHP, Ruby) - มันช้าลงมีอย่างอื่นเกิดขึ้นโดยทั่วไปฉันจะไม่เห็นด้วยที่จะบินบนจรวดดังกล่าว ใน C ++? พูดตามตรง ฉันก็ไม่เชื่อฉันเหมือนกัน เพราะมีหลายวิธีที่จะฆ่าตัวตายใน C ++ เมื่อคุณออกไปที่ไหนสักแห่งในอวกาศ มันไม่ค่อยดีนัก

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

พูดตามตรง ฉันอยากให้โปรแกรมนี้เขียนด้วยภาษา Pascal มากกว่า แน่นอนฉันไม่ชอบ Pascal จริงๆ แต่อย่างใดในเรื่องดังกล่าวมันจะเจ๋งมาก

ใช้หลายภาษาพร้อมกันในการพัฒนาซอฟต์แวร์

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

ในการพัฒนาแอพพลิเคชั่นบางตัวแม้ขนาดใหญ่บางครั้งคนทำอะไร? พวกเขาใช้และเขียนต้นแบบใน Python (ทุกอย่างจะทำงานอย่างไร) ร่างภาพ คิดเกี่ยวกับสถาปัตยกรรมบางประเภท เขียนได้เร็วมาก - พวกเขาสร้างต้นแบบ ทดลองกับมัน แล้วพูดว่า: "ว้าว! เจ๋งไปเลย!" และเขียนใหม่หมด ดูเหมือนว่าพวกเขาทำงานสองครั้ง ใช้เวลานานเป็นสองเท่า (ก็ครึ่งหนึ่ง) แต่ไม่มี! บ่อยครั้งกลับกลายเป็นว่าวิธีนี้ไม่ได้แย่นัก เพราะถ้าคุณเขียนอะไรบางอย่างในทันที เช่น ใน Java แล้วตัดสินใจว่า: “ไม่ เรามาสร้างปัจจัยใหม่ เปลี่ยนสถาปัตยกรรมโดยสิ้นเชิง และทั้งหมดนั้น” คุณจะใช้จ่าย นานขึ้น 10 เท่า ... สิ่งเหล่านี้ยังมีอยู่และมีชีวิตอยู่

เงื่อนไขความสำเร็จของภาษาการเขียนโปรแกรมใดๆ

ทีนี้มาพูดถึงสาเหตุที่ภาษาหน้าตาดีบางภาษาไม่รอดหรืออาศัยอยู่ในพื้นที่จำกัด เมื่อ Wirth เห็นว่าบริษัทแย่ๆ อย่าง Apple, Borland และทุกอย่างที่ทำกับ Pascal ของเขา เขาก็คิดภาษาที่ดียิ่งขึ้นไปอีก นั่นคือ Oberon มันเรียบง่ายมาก - นั่นคือมีคำสั่งน้อยมาก (สตริงทำไมเราต้องใช้สตริงเราจะสร้างอาร์เรย์ของอักขระ!) มีบางอย่างใช้ไม่ได้ผลสำหรับเขา เท่าที่ทำได้

อีกหนึ่งสิ่ง. ขอให้กองทัพสหรัฐพัฒนาพวกเขาด้วย ภาษาเจ๋งๆซึ่งทุกอย่างใช้งานได้และทุกอย่างสามารถเขียนได้ ผลที่ได้คือภาษาที่ค่อนข้างมหึมาที่เรียกว่า Ada ซึ่งพวกเขายังคงเขียนอะไรบางอย่าง แต่อีกครั้งสำหรับทหารเท่านั้น

อะไรคือปัญหา? เหตุใดบางภาษาเช่น Python ซึ่งไม่มีบริษัทใดสนับสนุนในตอนแรกจึงเข้ายึดครองตลาด PHP ซึ่งได้รับการออกแบบมาไม่ดีเช่นกัน ยังได้เข้ายึดครองตลาด (ส่วนใหญ่) ด้วยตัวมันเอง และลงทุนหลายพันล้านดอลลาร์ (อาจารย์ชี้ไปที่ Ada) และไม่ไปไหน ไม่มีอะไรเกิดขึ้น อะไรคือสาเหตุของเรื่องนี้? เนื่องจากไม่มีโครงสร้างพื้นฐานเกี่ยวกับภาษาเหล่านี้ นั่นคือภาษาอาจจะดีเยี่ยม แต่ตราบใดที่ไม่มีเอกสาร ตราบใดที่ยังไม่มีชุมชนที่ตอบคำถามได้ (ใน Stack Overflow) และสุดท้ายที่สำคัญที่สุดคือตราบใดที่มีจำนวนไม่มาก ของห้องสมุดภาษาไม่เริ่มทำงาน นั่นคือ คุณต้องการเขียนเว็บไซต์บน Oberon เป็นต้น ทำไมจะไม่ล่ะ? และความสับสนก็เริ่มต้นขึ้น ... คุณไม่สามารถยกระดับเว็บเซิร์ฟเวอร์ของคุณบน Oberon เพื่อทดสอบอย่างไม่ระมัดระวัง คุณไม่สามารถเชื่อมต่อไลบรารีใด ๆ ได้เนื่องจากไม่ได้อยู่บน Oberon และทั้งหมดนี้ทำได้โดยใช้ไม้ค้ำยันบางชนิด แรงเคลื่อนออกไป และโดยทั่วไปแล้ว คุณถ่มน้ำลายและเขียนไซต์ของคุณด้วยภาษา C ล้วนๆ แทนที่จะเป็น Oberon และภาษาเหล่านั้นที่สามารถใช้ไลบรารี่จากภาษาอื่น ๆ ก็ใช้งานได้ดี Python เดียวกันในสถานที่เหล่านั้นที่ช้าลง โดยทั่วไปแล้ว สิ่งมาตรฐานทุกประเภท เช่น การเรียงลำดับและอย่างอื่นเขียนด้วยภาษา C และเขา (Python) รู้วิธีโต้ตอบกับสิ่งเหล่านี้

Java ยังมี Java Native Interface โดยพื้นฐานแล้วนี่คือ C นั่นคือที่นั่น (ในความคิดของฉันพวกเขาต้องการแบนตลอดเวลา แต่ดูเหมือนว่าพวกเขายังไม่ได้แบน) ภาษาเหล่านี้สามารถโต้ตอบกับห้องสมุดที่มีอยู่แล้ว (ส่วนใหญ่เป็น Sishny) และด้วยเหตุนี้พวกเขาจึงทำงาน ความคิดที่ฉันพยายามจะสื่อถึงคุณนั้นชัดเจนใช่ไหม อย่าเขียนในภาษาที่ไม่ทราบวิธีเชื่อมต่อไลบรารี C ถ้าคุณต้องการเพลิดเพลินกับอะไรเจ๋งๆ อืม (ภาษา) ค่อยๆ รกไปด้วยโครงสร้างพื้นฐานแบบของตัวเอง และพวกเขามีชีวิตอยู่ได้ดี

ภาษาการเขียนโปรแกรมและคำแนะนำด้านอาชีพ

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

ถ้าจะเขียนอาจจะไม่ใช่แอพที่น่าสนใจที่สุดในชีวิต แต่ให้ออกแบบมันซะเลย คิดให้ถี่ถ้วนแล้วหาเงินมานั่งเล่นเบื่อเป็นส่วนใหญ่ (ถ้าจะจ่ายตรงนี้ก็ต้องจ่ายเอง) คุณเป็นคนคุณภาพสูง) นี่คือ - Java, .Net คุณไปทำงานในธนาคาร เขียนหนังสือ ไปทำงานตอนเก้าโมงในชุดเสื้อเชิ้ตสีขาว ได้เงินเดือนที่ดีและเขียนตามคำแนะนำของแหล่งข้อมูล Java ที่ดีที่สุด .Net-sheep และทั้งหมดนั้น ...

หากคุณต้องการเขียนแอปพลิเคชันใด ๆ เบราว์เซอร์ ของเล่น หรืออย่างอื่น C ++ ก็เยี่ยมมาก หากคุณต้องการเขียนเว็บไซต์ นี่คือภาษาที่คุณเลือก (วิทยากรแสดงเป็น Perl, Python, PHP, Ruby) ไม่มีอะไรแตกต่างกันมากนัก สิ่งเดียวคือ PHP จะตายก่อน Python ดังนั้นหากคุณขี้เกียจเรียนรู้สิ่งใหม่ ให้เรียนรู้ Python คุณจะไม่สังเกตเห็นความแตกต่างใหญ่แต่คุณจะอยู่ได้นานขึ้น

สิ่งที่เกิดขึ้นกับ Ruby ก็ไม่ชัดเจนเช่นกัน คุณยังสามารถใช้ PHP ได้ หากคุณได้เรียนรู้มันแล้ว เนื่องจากมันง่ายจนไม่ต้องใช้เวลานานในการเรียนรู้ใหม่

และในที่สุดก็มีแอพพลิเคชั่นภาษาการเขียนโปรแกรมอีกด้าน - นี่คือตอนที่ไม่ใช่โปรแกรมเมอร์ใช้ภาษาเหล่านี้ สมมติว่าคุณเป็นนักคณิตศาสตร์ นักฟิสิกส์ นักเคมี นักวิเคราะห์ ไม่ว่าใครก็ตาม และคุณจำเป็นต้องคำนวณบางอย่างอย่างรวดเร็ว วิเคราะห์ข้อมูลบางส่วน (สำหรับนักชีววิทยา เช่น จำนวนสุนัขจิ้งจอกอาร์กติกที่อาศัยอยู่บน Commander Islands) คุณสามารถขับทั้งหมดนี้ลงในตารางใน Excel หรือวิเคราะห์ด้วยบางสิ่งบางอย่าง Python ก็เหมาะสมสำหรับสิ่งนี้เช่นกัน มันรู้วิธีทำงานกับข้อความและไลบรารีนั้นเต็มไปด้วยทุกประเภท สถิติ และทั้งหมดนั้น หากคุณต้องการทำ Machine Learning ให้ประมวลผลข้อมูล คาดการณ์ วิธีนี้ทำได้เร็วที่สุดใน Python ในตอนนี้ อย่างไรก็ตาม ควรสังเกตว่างานแตกต่างกันมาก ตัวอย่างเช่น หากคุณต้องการแลกเปลี่ยนในการแลกเปลี่ยนทันทีในสภาวะที่ราคามีการเปลี่ยนแปลงตลอดเวลา ไม่ว่าคุณจะเขียน Machine Learning ใน Python เจ๋งแค่ไหน ผู้ที่เขียนมันเร็วกว่านั้นจะมีเวลาซื้อทุกอย่างก่อนหน้านี้ ในขณะที่คุณจะถูกนับ แม้ว่าอัลกอริธึมของพวกเขาจะแย่กว่านั้นก็ตาม ดังนั้น แม้แต่งานแมชชีนเลิร์นนิง (บางงาน) ก็ต้องการประสิทธิภาพสูง (และสูงมาก) และด้วยเหตุนี้ ภาษาอื่นๆ

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

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

สถานการณ์ของเราในการเข้ามหาวิทยาลัยเป็นอย่างไร (ตอนนี้คุณกำลังศึกษาอยู่ที่โรงเรียน)? ในขณะที่คุณอยู่ในโรงเรียน คุณต้องเข้าใจว่าขั้นตอนต่อไปคือการลงทะเบียนและดูแลมัน สอบผ่านหรือชนะการแข่งขันกีฬาโอลิมปิก ในการสอบคุณสามารถใช้ Pascal, C ++ (รวมถึง C บริสุทธิ์), Python (ฉันจะไม่พูดถึงพวกเขาเพิ่มเติม) ที่การแข่งขันกีฬาโอลิมปิก - Pascal เดียวกัน C ++ เดียวกัน Python เดียวกัน (เราจะพูดถึงปัญหาของเขาตอนนี้) และส่วนใหญ่มักมี Java ยังมีอะไรที่สามารถเกิดขึ้นได้ขึ้นอยู่กับการแข่งขันกีฬาโอลิมปิก แต่ไม่ใช่สาระสำคัญ

กราฟการกระจายภาษามีลักษณะอย่างไรที่ All-Russian Olympiad in Informatics? ผู้ที่เข้าร่วม All-Russian, Olympiad ที่เจ๋งที่สุด, พวกเขาเขียนเกี่ยวกับอะไร? ดูเหมือนว่านี้ (ในที่นี้หมายถึง Pascal และนี่คือประมาณ 2000 และที่นี่ประมาณศูนย์นี่คือ C ++ และนี่คือ 2015)

ในปี 2000 แทบไม่มีใครเขียนภาษา C ++ สิบห้าปีต่อมาแทบไม่มีใครเขียนภาษา Pascal แม้ว่า Pascal จะทันสมัยก็ตาม นี่เป็นภาษาที่ทำได้เกือบทุกอย่างเหมือนกัน เป็นเพียงว่าทุกคนขี้เกียจเกินไปที่จะเรียนรู้สิ่งนี้ทุกเทรนด์ใหม่และทุกคนยังคงเขียนใน Borland Pascal ซึ่งแน่นอนว่าไม่สามารถทำอะไรได้ ใน C ++ ผู้คนเขียนอัลกอริธึมการเรียงลำดับ (STL) - เยี่ยมมาก พวกเขาเขียน sort () และนั่นแหล่ะ ใน Pascal เป็นประจำในรุ่นเก่า - นี่เป็นปัญหา พวกเขาเขียนบางชุด (จำเป็น) - เยี่ยมมากพวกเขาเขียนใน C ++ ใน Pascal อีกครั้งการทรมานนั้นต่อเนื่อง สำหรับ Pascals ใหม่ คุณสามารถทำเช่นนี้ได้ แต่จริงๆ แล้วพวกมันต้องเสียเงิน คุณอาจไม่ได้สังเกต แต่มันเป็น

มี Java ด้วย แต่ Java มีตัวอักษรจำนวนมาก มันมีไว้สำหรับโครงการขนาดใหญ่ แต่สำหรับโปรแกรมที่ใช้แล้วทิ้งขนาดเล็ก กลับกลายเป็นว่าค่อนข้างแย่ เพราะมีเยอะมาก ตัวอักษรพิเศษ... แต่บางคนเขียนด้วย คุณสามารถเรียนรู้ที่จะเขียนได้ แต่ในการสอบ Unified State นั้นไม่ใช่และส่วนใหญ่จะต้องผ่านการสอบ Unified State

อะไรจะดีที่สุดสำหรับการสอบ? สำหรับการสอบ เป็นการดีที่สุด (ถ้าคุณไม่รู้อะไรเลยและพวกเขาไม่ได้สอนอะไรคุณที่โรงเรียน) เพื่อเรียนรู้ Python งานบางอย่างของการสอบได้รับการแก้ไขอย่างสมบูรณ์ ที่การแข่งขันกีฬาโอลิมปิกโดยทั่วไปปรากฎว่า (ใช้แล้ว) C ++ เนื่องจาก Python ช้ามากไม่ใช่ทุกอย่างที่แก้ไขได้

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

ตอนนี้ฉันจะบอกคุณเกี่ยวกับวิธีที่ HSE สร้างหลักสูตร ภาษาเรียงลำดับอย่างไร พวกเขาได้รับการสอนในวิชาคณิตศาสตร์ประยุกต์และวิทยาการคอมพิวเตอร์ที่คณะวิทยาศาสตร์ประยุกต์ซึ่งยานเดกซ์และฉันกำลังทำอยู่ ในภาคการศึกษาแรก - Python (ไม่ครบถ้วนเกี่ยวกับวิธีการเรียนที่โรงเรียน) และ C ++ (กว้างกว่า กว้างกว่าที่สอนในโรงเรียนมาก) ให้ฉันบอกคุณทันทีเพื่อที่คุณจะได้ไม่ต้องกลัวถ้าคุณอยากจะเข้าไปพูดว่า: "ทำไมฉันรู้ทั้งหมดนี้แล้วทำไมฉันจะไปเรียนที่ไหนสักแห่ง? ฉันอยากไปที่อื่นมากกว่า” สำหรับผู้ที่รู้วิธีเขียนโปรแกรมดีอยู่แล้ว มีโอกาสได้ศึกษาอัลกอริทึมโดยตรงและในการฝึกอบรมเชิงทฤษฎีอย่างเป็นธรรม เราไม่ได้ดูพวกเขาตอนนี้นี่ (ชี้ไปที่บอร์ด) สำหรับผู้ที่เขียนโปรแกรมเป็นสื่อหรือไม่เลย

ในภาคการศึกษาแรก พวกเขาศึกษาพื้นฐานของ Python เพื่อให้ผู้คนเรียนรู้การเขียนโปรแกรมและเพื่อไม่ให้ใครไม่พอใจเป็นพิเศษ Python ไม่ค่อยได้สอนในโรงเรียน คนส่วนใหญ่มีความรู้ภาษา Pascal หรือ C ++ โดยทั่วไปแม้แต่ Pascal ถ้าเป็นโรงเรียนมวลชน เพื่อไม่ให้ใครขุ่นเคือง ทุกคนเรียนรู้ภาษาใหม่ (ราวกับว่าพวกเขาอยู่ในเงื่อนไขที่เท่าเทียมกัน) และ C ++ เพียงเพราะคุณสามารถไปที่ใดก็ได้จาก C ++

แล้วก็มาถึงคอร์ส "Algorithms" และแบบแยกส่วน โครงการหลักสูตร... อัลกอริทึมแบบคลาสสิกพร้อมการใช้งาน ไม่ใช่ว่าในทางทฤษฎี เราได้เอาอะไรมาคำนวณความซับซ้อน ในการบรรยายเราเอามันคำนวณความซับซ้อนในการสัมมนา - เอามันไปใช้อัลกอริธึม โครงงานเป็นเรื่องเกี่ยวกับนักเรียนที่ทำบางสิ่งเสร็จแล้ว ตัวอย่างเช่น หนึ่งในโครงการคือ: นับ ... สมมติว่าคุณมีอพาร์ทเมนท์จำนวนมากในมอสโก และคุณเข้าใจ: “โอ้ ฉันมีสิ่งไม่จำเป็นมากมาย ฉันจะเช่าบางส่วน และพวกเขากำหนดราคาและไม่มีใครต้องการเช่าอพาร์ทเมนต์จากคุณ - อาจแพงเกินไป หรือพวกเขาตั้งราคาบางอย่างขึ้น พวกเขาก็ถอดมันออกทันที แล้วคุณคิดว่า: "โอ้ ฉันอาจจะพลาดไปอย่างถูก" และคุณก็อารมณ์เสียเช่นกัน นั่นคือจำเป็นต้องคำนวณค่าเช่าอพาร์ทเมนต์เท่าไหร่? คุณขับเคลื่อนด้วยข้อมูล - มันสร้างการประมาณการสำหรับคุณ ไซต์ดังกล่าวซึ่งประกอบด้วยหลายสิ่ง: รับข้อเสนอแนะ แยกวิเคราะห์ ใช้อัลกอริธึมการเรียนรู้ของเครื่อง (อาจ) ไม่โอ้อวด และสร้างหน้าตาเว็บที่สวยงามซึ่งคุณสามารถเลือกบางอย่าง ขับบางอย่างได้ บางเมตร หรือกี่ห้องก็ได้ จำนวนห้องซาวน่า จำนวนอ่างจากุซซี่ในอพาร์ตเมนต์ของคุณ และประมาณการค่าใช้จ่ายโดยประมาณ ก็คือเสร็จไปบ้างไม่เท่าไหร่ สิ่งที่ยาก... นี่มันหมายความว่า (อาจารย์ชี้ไปที่หลักสูตรเกี่ยวกับอัลกอริทึม) เช่น C ++ ที่แข็งแรงพร้อมคอนโซล I / O ที่นี่ (ผู้บรรยายชี้ไปที่คำว่า "โครงการ") เป็นสิ่งที่อยู่ภายใต้การแนะนำของที่ปรึกษา อาจมีฐานข้อมูล บางทีอาจมีการแยกวิเคราะห์ข้อความและอย่างอื่นด้วย
แล้วภาคเรียนที่ 3 ก็มาถึง หลักสูตรที่เรียกว่า "ระบบคอมพิวเตอร์" มีแอสเซมเบลอร์ค่อนข้างน้อยเพื่อความเข้าใจ (น้อยมาก) จากนั้นบางสิ่งที่คล้ายกับ Pure C และการโต้ตอบกับระบบปฏิบัติการ การเขียนโปรแกรมระบบในสาระสำคัญ และโครงการสัมมนาก็เป็นหัวข้อของการโต้ตอบเครือข่ายทั้งหมด ค่อนข้างต่ำ: พัฒนายูทิลิตี้บางอย่าง เช่น rsync (การซิงโครไนซ์ บางทีคุณอาจรู้ ใน C บริสุทธิ์ เขียนอะนาล็อกของ rsync มากหรือน้อย ซึ่งคุณจะมีโฟลเดอร์ซิงค์เครือข่ายที่มีการเข้าถึงไฟล์ทั้งหมด เป็นต้น)

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

และหลังจากสองหลักสูตร ผู้คนก็แยกย้ายกันไปทำสิ่งที่พวกเขาสนใจ เพราะสิ่งนี้ครอบคลุมพื้นฐานการเขียนโปรแกรมดังกล่าวอย่างกว้างขวาง และผู้คนในจุดนี้เข้าใจดีว่าพวกเขาไม่ต้องการจัดการกับระบบคอมพิวเตอร์แต่อย่างใด (เช่น ไม่ชอบการเขียนโปรแกรมระบบ ) แต่พวกเขาต้องการจัดการกับอัลกอริธึมเชิงทฤษฎีบางอย่าง ความยากในการคำนวณ การคิดสิ่งใหม่ๆ การแจกจ่ายหรืออย่างอื่น หรือกลับคิดว่าตนเองมีไม่มากที่นี่ ( อาจารย์ชี้ไปที่บรรทัดแรกของหลักสูตรด้วย Python และ C ++) ไป แล้ว ( อาจารย์ชี้ไปที่สายวิชาที่ 3 ด้วยการเขียนโปรแกรมระบบ) - ตามที่คุณไม่ชอบ ให้นับไบต์และตั้งค่าข้อจำกัดทุกประเภทในการอ่าน-เขียน ทำสตรีม เธรด และอย่างอื่น และตามนี้ ผู้คนเลือกทิศทางและเรียนรู้ โดยหลักการแล้วเพื่อที่คุณจะไม่พัฒนา "โรคเป็ด" - คุณเห็น Pascal ของคุณและตอนนี้พูดว่า "Pascal is power"; หรือขั้นสูงกว่านั้น - คุณเห็น C ++ และเริ่มพูดถึงทุกคนว่า C ++ นั้นทรงพลังและทุกอย่างก็ไม่ค่อยดีนัก

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

โปรแกรมเมอร์มองหางานอย่างไร

คุณคือสิ่งนี้ ( อาจารย์ชี้ไปที่รายการรายวิชา) ทำทุกอย่าง, เรียนที่มหาวิทยาลัย, ศึกษาสิ่งที่มีประสิทธิผลมากขึ้นอีกสองปีและคุณต้องไปทำงาน คุณเลือกสิ่งที่จะทำงานด้วยได้อย่างไร? ก่อนอื่น คุณต้องรู้ทุกอย่าง ไปที่ไหนสักแห่งและรู้ว่าคุณรักอะไร คุณต้องเลือกสิ่งที่คุณรักอย่างเป็นธรรมชาติ เพราะถ้าคุณรัก คุณจะทุ่มเทแรงกาย คุณจะมีแรงจูงใจ และโดยทั่วไปแล้วทุกอย่างจะเรียบร้อย เพราะมันไม่ใช่แค่เรื่องเงิน แต่มันเกี่ยวกับการทำให้มันน่าสนใจและน่าพอใจสำหรับคุณ แล้วคุณอยากเข้าบริษัทเจ๋ง ๆ หางานทำ โดยส่วนตัวแล้วฉันอยากเห็นคนแบบไหน? ตัวอย่างเช่น นักเรียนร้อยคนมาหาฉัน - ฉันต้องใช้เวลาสองหรือหนึ่งคนในการทำงาน มาทำไม ไม่เข้าใจเลย ว่าเป็นใคร เป็นอะไร เป็นยังไง? ในกรณีที่ดีที่สุด พวกเขาจะแสดงประกาศนียบัตรที่ได้รับจากมหาวิทยาลัยให้ฉันดู และฉันจะพูดว่า: "ว้าว! นี่เป็นประกาศนียบัตรที่ยอดเยี่ยม แต่ก็ไม่เจ๋งนัก!” และฉันอาจจะผิดก็ได้ บางทีคนๆ นั้นอาจมีเวลาว่างมากและเรียนรู้ได้ดีขึ้นมาก

อะไรจะดี? ประการแรก โครงการโอเพ่นซอร์สบางโครงการที่คุณเขียนตั้งแต่ต้นจนจบ เป็นที่พึงปรารถนา ถ้าฉันกำลังทำโครงสร้างพื้นฐานบางอย่างเพื่อให้สามารถอ่านข้อมูลได้อย่างรวดเร็ว หรืออย่างอื่น แน่นอน ฉันสนใจที่จะมีบางสิ่งที่เป็นโอเพนซอร์สที่เขียนถึงฉัน ไม่ใช่เว็บไซต์ที่สร้าง แต่มีบางอย่างในหัวข้อ ทำไมฉันถึงสนใจเรื่องนี้? ฉันสามารถดูโค้ดของคุณ ฉันเห็นว่าคุณมุ่งมั่นบ่อยแค่ไหน ฉันเห็นว่าคุณตอบสนองต่อข้อบกพร่องจากผู้ใช้อย่างไร ข้อบกพร่องจากนักพัฒนาที่ใช้มัน - ทุกอย่างถูกจดไว้ ฉันดูทุกอย่างแล้วคิดว่า: "ว้าว บั๊กนี้ ไม่ได้มาที่นี่สองปีแล้ว ปิด คุณตอบผู้ใช้อย่างไม่สุภาพแล้วฉันจะไม่ทำอย่างอื่น” นั่นคือนี่คือโครงการส่วนตัวของคุณ

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

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

ฉันต้องการอะไรอีกเป็นการส่วนตัว? หากคุณแสดงตัวในโครงการใหญ่ ตัวอย่างเช่น เราผูกมัดบางอย่างกับเคอร์เนล Linux หากคุณกำลังเขียนโปรแกรมระบบ เราได้แก้ไขข้อผิดพลาดบางอย่าง นั่นคือพวกเขาแสดงให้เห็นว่าคุณสามารถอ่านรหัสของคนอื่นและสามารถทำการเปลี่ยนแปลงบางอย่างได้ ฉันดู: "โอ้ จริงๆ แล้ว คุณพบบางสิ่งที่ซับซ้อนและแก้ไขข้อบกพร่องบางอย่าง!" และฉันเริ่มจะมีความสุขมากเกี่ยวกับเรื่องนี้ เพราะฉันมี… เอ่อ ฉันไม่รู้… โปรแกรมเมอร์ของฉันลาออกเพราะคู่แข่งเสนอเงินเดือนให้เขาสูงกว่านี้ และฉันต้องปิดปากใครซักคนอย่างเร่งด่วน - คุณ ฉันดูเหมือนคุณเขียนตั้งแต่เริ่มต้น แต่คุณไม่รู้วิธีอ่านและแก้ไขโค้ดของคนอื่น และฉันอารมณ์เสีย

และสุดท้ายก็ขึ้นอยู่กับตำแหน่งที่เฉพาะเจาะจง หากคุณเป็นนักวิเคราะห์งาน ฉันต้องการให้คุณแก้ปัญหาการวิเคราะห์ข้อมูลบน Kaggle หากคุณได้งานเกี่ยวกับอัลกอริทึมบางอย่าง ฉันต้องการให้คุณทำอัลกอริทึมบางอย่างในการเขียนโปรแกรมกีฬา และสุดท้าย หากคุณคิดเกี่ยวกับอาชีพนี้ อ่านวิธีการสัมภาษณ์ คุณได้พบคนที่นั่นแสดงความไม่พอใจอย่างมาก: “ฉันมา และพวกเขาถามฉันว่างานอดิเรกของฉันคืออะไร ฉันนั่งเหมือนนกฮูกและไม่ตอบเพราะฉันไม่มีงานอดิเรก” - และพวกเขาคิดว่า HR ทำเช่นนี้ ที่จริงแล้ว พวกเขากำลังพยายามคิดว่าคุณเป็นมิตรและเหมาะสมแค่ไหน หากคุณไม่เป็นมิตรและไม่เพียงพอ ไม่ว่าคุณจะเป็นอัจฉริยะและเป็นคนบ้างานแค่ไหน ผู้เชี่ยวชาญที่แข็งแกร่งและมีความรู้ที่ยอดเยี่ยม ทีมจะทำงานร่วมกับคุณได้ยาก และคุณจะไม่ดึงโครงการออกไปเพียงลำพัง นอกจากนี้ แม้ว่าคุณจะยืดเส้นยืดสาย คุณก็นึกภาพออกว่าบริษัทมีภาระอะไรบ้าง และพรุ่งนี้คุณจะมาพูดว่า: "เพิ่มเงินเดือนฉัน 10 เท่า ไม่อย่างนั้นฉันจะไปจากคุณ" เป็นที่เข้าใจกันว่าบริษัทต่างๆ ไม่ต้องการเข้าสู่สถานการณ์นี้ ดังนั้นการปลูกฝังความพอเพียงและความปรารถนาดีในตนเองจึงมีความสำคัญ (อย่างน้อย) เท่ากับการพัฒนาทักษะทางวิชาชีพบางประเภท

สรุปว่าพูดอะไรได้บ้าง? ภาษาไหนดี ภาษาไหนไม่ดี? ภายในกลุ่มภาษา เช่น ระหว่าง Ruby, Python และ PHP จะเลือกอันไหนดี? แน่นอน คำตอบที่ถูกต้องคือ Python แต่อันที่จริงความแตกต่างระหว่างพวกมันคือจำนวนของจุดบกพร่องที่อนุญาต ในปริมาณอย่างอื่น - 5% ก็อาจจะ 10% นั่นคือถ้าคุณมีโครงการสำเร็จรูปที่เขียนด้วย PHP แล้วไม่มีใครในใจจะพูดว่า: "มาเขียนทุกอย่างใหม่ใน Python กันเถอะ" พวกเขาจะพูดว่า: "จ้างนักพัฒนา PHP มากขึ้นและเขียน PHP ต่อไป" เยี่ยมมาก นั่นไม่ใช่ทางเลือกที่แย่ เป็นที่ชัดเจนว่าถ้าคุณเริ่มเขียนโครงการโดยกะทันหัน อาจเป็นการดีที่จะเลือก Python ในตอนนี้ แม้ว่าจะยังขึ้นอยู่ บางทีคุณอาจมีนักพัฒนา PHP ราคาถูกจำนวนมากในตลาด แต่ตัว Python นั้นมีราคาแพง และคุณคิดว่า: "ใช่ เทคโนโลยีนี้เจ๋งกว่า แต่ฉันจะประหยัดเงินสำหรับนักพัฒนาซอฟต์แวร์สำเร็จรูป" เท่านี้ก็เรียบร้อย คุณมาทำงานที่นั่นแล้ว
ฉันจะเลือกระหว่าง Java และ C ++ ได้อย่างไร ใช่ สิ่งเดียวกันเกิดขึ้น ฉันคิดว่าเมื่อคุณตัดสินใจว่าจะเริ่มต้นโปรเจกต์ใหญ่ใหม่ในภาษาใด คุณจะได้รับความรู้ในสาขาอาชีพของตนเองและจะสามารถดำเนินการได้ ทางเลือกที่เหมาะสม... ตอนนี้ คุณยังไม่ต้องเลือกเลย ฉันจึงแนะนำให้คุณทำในสิ่งที่คุณชอบ

พื้นฐานดังที่ได้กล่าวไปแล้ว พื้นฐานการเขียนโปรแกรมขั้นพื้นฐาน (ฟังก์ชั่นคืออะไร อะไรคือ if, for's, arrays หรืออย่างอื่น) สามารถเรียนรู้ได้มากหรือน้อยในภาษาใดก็ได้ ตัวอย่างเช่น ใน C ++ เพราะมันดูเหมือนหลายอย่าง และข้อมูลเฉพาะในนั้น (ในระดับนี้) จะน้อยที่สุด และตัวอักษรก็น้อยที่สุดที่จะเขียนโดยไม่จำเป็น ดังนั้น เมื่อคุณเรียนรู้สถาปัตยกรรมที่ซับซ้อน ให้เรียนรู้และกังวลเรื่องนี้มากเกินไป นั่นคือสิ่งสำคัญคือ - ลองมองหาสิ่งที่คุณชอบและเมื่อคุณรู้ว่ามันเป็นเวลา 4 โมงเช้าแล้วและนั่งสนุกและเขียนเพราะคุณชอบ - อาจเป็นตอนนี้ ที่คุณได้พบ...

การเขียนโปรแกรมสำหรับผู้เริ่มต้น

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

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

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

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

อย่างไรก็ตาม ในการที่จะบอกคอมพิวเตอร์ถึงวิธีแก้ปัญหาใหญ่ๆ อย่างหนึ่ง คุณมักจะต้องบอกคอมพิวเตอร์ถึงวิธีแก้ปัญหาเล็กๆ ทั้งชุดที่ประกอบเป็นปัญหาใหญ่

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

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

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

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

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

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

ความทะเยอทะยาน ความอยากรู้อยากเห็น และจินตนาการเป็นคุณสมบัติที่สำคัญที่สุดสามประการที่โปรแกรมเมอร์ทุกคนควรมี หากคุณมี คุณจะต้องกังวลเกี่ยวกับสิ่งเล็กน้อย: ภาษาการเขียนโปรแกรมใดที่จะเรียนรู้ (เช่น C ++) มีอะไรผิดปกติกับคณิตศาสตร์ ฯลฯ

ในบรรดาภาษาโปรแกรมต่างๆ คุณสามารถค้นหาภาษาที่เหมาะสมสำหรับการแก้ปัญหาที่กำหนดได้เสมอ เมื่อเกิดปัญหารูปแบบใหม่ ผู้คนก็สร้างภาษาใหม่

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

0010 1010 0001 1101

UN 1100 1010 1111

0101 ONO 1101 0101

1101 1111 0010 1001

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

ตอนนี้ฉันต้องการชี้แจงให้คุณทราบถึงสิ่งที่ควรแยกแยะภาษาการเขียนโปรแกรม (Basic, Pascal) จากการนำไปใช้ซึ่งมักจะถูกนำเสนอเป็นส่วนหนึ่งของสภาพแวดล้อมการเขียนโปรแกรม (Quick Basic, Virtual Pascal) - ชุดเครื่องมือสำหรับแก้ไขข้อความต้นฉบับ การสร้างโค้ดสั่งการ การดีบัก การจัดการโครงการ ฯลฯ ไวยากรณ์และความหมายของภาษาการเขียนโปรแกรมได้รับการแก้ไขในมาตรฐานภาษา แต่ละสภาพแวดล้อมการเขียนโปรแกรมมีล่ามหรือคอมไพเลอร์ของตัวเองจากภาษานี้ ซึ่งมักจะอนุญาตให้ใช้โครงสร้างที่ไม่ได้รับการแก้ไขในมาตรฐาน

พิจารณาภาษาโปรแกรมหลักและเป็นที่นิยม

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

โคบอล- ภาษาโปรแกรมระดับสูงที่พัฒนาขึ้นในช่วงปลายทศวรรษ 1950 สมาคม CADASIL เพื่อแก้ปัญหาทางการค้าและเศรษฐกิจ มีความแตกต่างในเครื่องมือขั้นสูงสำหรับการทำงานกับไฟล์ เนื่องจากคำสั่งของโปรแกรมที่เขียนในภาษานี้ใช้คำศัพท์และไวยากรณ์ภาษาอังกฤษทั่วไปอย่างแข็งขัน Cobol จึงถือว่าเป็นหนึ่งในภาษาที่มากที่สุด ภาษาง่าย ๆการเขียนโปรแกรม ปัจจุบันใช้สำหรับการแก้ปัญหาทางเศรษฐกิจ ข้อมูล และอื่นๆ

Fortran- ภาษาโปรแกรมระดับสูงที่พัฒนาโดย IBM ในปี 1956 เพื่ออธิบายอัลกอริทึมสำหรับการแก้ปัญหาทางคอมพิวเตอร์ อยู่ในหมวดหมู่ของภาษาเชิงขั้นตอน ภาษาที่ใช้บ่อยที่สุดคือ Fortran IV, Fortran 77 และ Fortran 90 ซึ่งใช้กับคอมพิวเตอร์ทุกคลาส เวอร์ชันล่าสุดยังใช้กับคอมพิวเตอร์ที่มีสถาปัตยกรรมแบบขนาน

นรก- ภาษาโปรแกรมระดับสูงที่เน้นการใช้งานในระบบเรียลไทม์ และออกแบบมาเพื่อให้งานควบคุมกระบวนการและ/หรืออุปกรณ์เป็นไปโดยอัตโนมัติ เช่น ในคอมพิวเตอร์ออนบอร์ด (บนเรือ การบิน ฯลฯ) พัฒนาขึ้นตามความคิดริเริ่มของกระทรวงกลาโหมสหรัฐในช่วงทศวรรษ 1980 ตั้งชื่อตามนักคณิตศาสตร์ชาวอังกฤษ Ada Augusta Byron (Lovelace) ซึ่งอาศัยอยู่ในปี 1815-1851

ขั้นพื้นฐาน(Beginner "s All-purpose Symbolic Instruction Code) เกิดในยุค 60s ในอเมริกา BASIC ถูกมองว่าเป็นภาษาที่เรียบง่ายสำหรับการเรียนรู้อย่างรวดเร็ว BASIC กลายเป็นมาตรฐานโดยพฤตินัยสำหรับไมโครคอมพิวเตอร์อย่างแม่นยำเพราะความเรียบง่ายทั้งในด้านการเรียนรู้และการใช้งาน เพื่อให้บรรลุ คุณภาพนี้ มีการตัดสินใจหลายอย่าง (ขาดการพิมพ์ การกำหนดหมายเลขบรรทัด และ GOTO ที่ไม่ใช่โครงสร้าง ฯลฯ) ซึ่งส่งผลเสียต่อรูปแบบของผู้เรียนการเขียนโปรแกรม นอกจากนี้ การขาดวิธีการแสดงความหมายนำไปสู่การเกิดขึ้นของจำนวนมาก ภาษาถิ่นของภาษาไม่เข้ากัน รุ่นพิเศษของ BASIC (เช่น Visual Basic) แม้จะมี "โครงสร้าง" ที่ได้รับมาก็มีข้อเสียเหมือนกันทั้งหมดก่อนอื่น - ความประมาทเลินเล่อเกี่ยวกับประเภทและคำอธิบาย ระบบที่เกี่ยวข้อง) หรือเป็นเครื่องมือในการสร้างแอปพลิเคชันอย่างรวดเร็ว

ปาสกาล Pascal ได้รับการพัฒนาโดยนักทฤษฎีที่มีชื่อเสียง N. Wirth บนพื้นฐานของแนวคิดของ Algol-68 Pascal มีไว้สำหรับการสอนการเขียนโปรแกรมเป็นหลัก สร้างขึ้นบนหลักการ "จำเป็นและเพียงพอ" มีการควบคุมประเภทที่แข็งแกร่ง โครงสร้างสำหรับการอธิบายโครงสร้างข้อมูลโดยพลการ และชุดตัวดำเนินการการเขียนโปรแกรมที่มีโครงสร้างขนาดเล็กแต่เพียงพอ น่าเสียดาย ข้อเสียของความเรียบง่ายและความเข้มงวดคือคำอธิบายที่ยุ่งยากของโครงสร้างภาษา การใช้งานที่มีชื่อเสียงที่สุด - Turbo / Borland Pascal - แม้จะแตกต่างไปจากมาตรฐาน Pascal ก็ตาม มันคือสภาพแวดล้อมและชุดของไลบรารีที่สร้างจาก สอนภาษาระบบอุตสาหกรรมสำหรับการพัฒนาโปรแกรมในสภาพแวดล้อม MS-DOS

C และ C ++ภาษา C ขึ้นอยู่กับข้อกำหนดของโปรแกรมเมอร์ระบบ: การเข้าถึงทรัพยากรคอมพิวเตอร์ทั้งหมดอย่างสมบูรณ์และมีประสิทธิภาพ เครื่องมือการเขียนโปรแกรมระดับสูง การเคลื่อนย้ายโปรแกรมระหว่างแพลตฟอร์มและระบบปฏิบัติการที่แตกต่างกัน C ++ ในขณะที่ยังคงความเข้ากันได้กับ C จะแนะนำความสามารถในการเขียนโปรแกรมเชิงวัตถุโดยแสดงแนวคิดของคลาส (วัตถุ) เป็นประเภทที่ผู้ใช้กำหนด ด้วยคุณสมบัติเหล่านี้ C / C ++ จึงได้รับตำแหน่งภาษาสากลสำหรับงานใด ๆ แต่การใช้งานอาจไม่ได้ผลเมื่อจำเป็นต้องได้รับผลลัพธ์ที่พร้อมใช้งานในเวลาที่สั้นที่สุด หรือในกรณีที่วิธีการตามขั้นตอนเองไม่ได้ผล

เดลฟี- นี่ไม่ใช่ความต่อเนื่องของธุรกิจ Borland Pascal / Borland C ซึ่งเป็นช่องทางเฉพาะ - เช่น การสร้างอย่างรวดเร็วแอปพลิเคชัน (Rapid Application Developing, RAD) เครื่องมือดังกล่าวช่วยให้คุณสร้างได้อย่างรวดเร็ว โปรแกรมงานจากส่วนประกอบสำเร็จรูปโดยไม่เปลืองแรงไปกับสิ่งเล็กน้อย สถานที่พิเศษในระบบดังกล่าวถูกครอบครองโดยความสามารถในการทำงานกับฐานข้อมูล

Lisp- ภาษาอัลกอริทึม พัฒนาขึ้นในปี 1960 โดย J. McCarthy และออกแบบมาเพื่อจัดการรายการองค์ประกอบข้อมูล ส่วนใหญ่จะใช้ในห้องปฏิบัติการของมหาวิทยาลัยในสหรัฐอเมริกาสำหรับการแก้ปัญหาที่เกี่ยวข้องกับปัญญาประดิษฐ์ ในยุโรป พวกเขาต้องการใช้ Prolog ในการทำงานด้านปัญญาประดิษฐ์

อารัมภบท- ภาษาโปรแกรมประกาศระดับสูงที่ออกแบบมาสำหรับการพัฒนาระบบและโปรแกรมปัญญาประดิษฐ์ อยู่ในหมวดหมู่ภาษาของรุ่นที่ห้า ได้รับการพัฒนาในปี 1971 ที่มหาวิทยาลัย Marseille (ฝรั่งเศส) และเป็นหนึ่งในภาษาที่ใช้กันอย่างแพร่หลายและพัฒนาอย่างต่อเนื่อง เวอร์ชันล่าสุดคือ Prolog 6.0


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

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

ALGOL- ภาษาโปรแกรมระดับสูงที่เน้นการอธิบายอัลกอริธึมสำหรับการแก้ปัญหาทางคอมพิวเตอร์ ก่อตั้งขึ้นเมื่อปีพ. ศ. 2501 โดยผู้เชี่ยวชาญจากประเทศในยุโรปตะวันตกเพื่อการวิจัยทางวิทยาศาสตร์ ภาษานี้ในเวอร์ชัน Algol-60 ได้รับการรับรองโดยการประชุมนานาชาติในกรุงปารีส (1960) และมีการใช้กันอย่างแพร่หลายในคอมพิวเตอร์รุ่นที่ 2 เวอร์ชัน Algol-68 ซึ่งพัฒนาโดยกลุ่มผู้เชี่ยวชาญจากสหพันธ์ระหว่างประเทศเพื่อการประมวลผลข้อมูล (IFIP) ในปี 2511 ได้รับสถานะของภาษาการเขียนโปรแกรมสากลระดับสากลที่มุ่งเน้นการแก้ปัญหาไม่เพียงแต่ด้านการคำนวณเท่านั้น แต่ยังรวมถึงปัญหาด้านข้อมูลด้วย แม้ว่าในปัจจุบัน Algol จะไม่ได้ใช้จริง แต่ก็เป็นพื้นฐานหรือมีอิทธิพลอย่างมากต่อการพัฒนาของ more ภาษาสมัยใหม่เช่น Ada Pascal เป็นต้น
หากคุณต้องการถามคำถามเกี่ยวกับภาษาใดภาษาหนึ่ง ให้ใช้ฟอรัมสำหรับโปรแกรมเมอร์
ตัวเขาเอง ภาษาดีขึ้นไม่ได้อยู่. หากคุณกำลังจะเป็นมืออาชีพในการเขียนโปรแกรม คุณต้องเรียนรู้ภาษาโปรแกรมระดับสูง (ภาษาโปรแกรมยอดนิยมคือ C ++) รวมถึงภาษาโปรแกรมฐานข้อมูล ( ตัวอย่างเช่น SQL) หลังจากเรียนรู้ภาษาโปรแกรม C ++ แล้วคุณจะไม่พลาด เมื่อรู้ภาษานี้ คุณจะสามารถหางานทำในบริษัทเขียนโปรแกรมต่างๆ ได้เสมอ

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

หากคุณกำลังจะทำงานด้วยตัวเอง ขอแนะนำให้เรียนรู้วิธีการสร้าง โปรแกรมของตัวเองสำหรับฐานข้อมูล ในการทำเช่นนี้ คุณจะต้องเรียนรู้ภาษาการเขียนโปรแกรม เช่น SQL หรือ VBA ซึ่งใช้ใน Microsoft Access ในการสร้างเว็บเพจ คุณจำเป็นต้องรู้ HTML รวมทั้งความรู้เล็กน้อยเกี่ยวกับ Java, JavaScript, VBScript และภาษาโปรแกรมอื่นๆ สำหรับอินเทอร์เน็ต สิ่งที่จำเป็นที่สุดคือภาษาโปรแกรมที่จะช่วยให้คุณแก้ไขงานที่ได้รับมอบหมายได้อย่างง่ายดายและรวดเร็ว อาจเป็น C ++, BASIC, Java, SQL หรือภาษาแอสเซมบลี
โดยสรุป เราสังเกตว่าจากมุมมองของมืออาชีพ มันไม่สำคัญหรอกว่าในภาษาใดและในสภาพแวดล้อมใดที่โปรแกรมเมอร์ทำงาน เขาทำงานของเขามากแค่ไหน อุปกรณ์กำลังเปลี่ยนและ OS... งานใหม่เกิดขึ้นจากหลากหลายสาขาวิชา พวกเขากำลังถอยกลับไปในอดีตและภาษาใหม่ปรากฏขึ้น แต่ผู้คนยังคงอยู่ - ผู้ที่เขียนและผู้ที่เขียนโปรแกรมใหม่ ๆ และข้อกำหนดด้านคุณภาพยังคงเหมือนเดิมโดยไม่คำนึงถึงการเปลี่ยนแปลงเหล่านี้
เราได้ทบทวนพื้นฐานของการเขียนโปรแกรมและภาษาโปรแกรมหลัก

ฉันขอให้คุณโชคดีกับการเรียนรู้การเขียนโปรแกรม!