Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

นี่คือโพสต์ที่แปลด้วย AI

투잡뛰는 개발 노동자

[ไม่มีพื้นฐานทางวิศวกรรมคอมพิวเตอร์ การอยู่รอดในฐานะนักพัฒนา] 14. สรุปเนื้อหาการสัมภาษณ์ทางเทคนิคที่นักพัฒนาหน้าใหม่ถามบ่อย

เลือกภาษา

  • ไทย
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

สรุปโดย AI ของ durumis

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

ไม่ใช่สาขา แต่เป็นนักพัฒนา


#14. เนื้อหาการสัมภาษณ์ทางเทคนิคที่นักพัฒนาใหม่มักถาม


[พื้นที่ของหน่วยความจำหลัก]

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

[โครงสร้างข้อมูล]

  • สแต็ก: โครงสร้างข้อมูลแบบ LIFO (Last In First Out) ตัวอย่างเช่น ปุ่ม 'ย้อนกลับ' ในคอมพิวเตอร์คล้ายกับสแต็ก หน้าเว็บที่เข้าชมก่อนหน้านี้ จะถูกเก็บไว้ในสแต็ก และเมื่อกดปุ่ม 'ย้อนกลับ' หน้าที่เก็บไว้ล่าสุดจะถูกนำออกและแสดงขึ้น
  • คิว: โครงสร้างข้อมูลแบบ FIFO (First In First Out) ตัวอย่างเช่น การรับบัตรคิวในธนาคารคล้ายกับคิว คนที่มาก่อนจะได้รับการบริการก่อน และคนที่มาก่อนจะได้รับการบริการหลังสุด
  • ต้นไม้: โครงสร้างข้อมูลที่แสดงข้อมูลในรูปแบบลำดับชั้น ตัวอย่างเช่น ต้นไม้ DOM ของ HTML คล้ายกับต้นไม้ โครงสร้างของหน้าเว็บ HTML ถูกแสดงด้วยต้นไม้ โดยเริ่มต้นจากโหนดรูทคือแท็ก html แล้วตามด้วยโหนดลูกในลำดับ
  • ฮีป: หนึ่งในโครงสร้างของต้นไม้ไบนารี ซึ่งแบ่งออกเป็นฮีปสูงสุดและฮีปต่ำสุด ตัวอย่างเช่น ในคิวที่มีลำดับความสำคัญ ข้อมูลที่มีลำดับความสำคัญสูงสุด จะอยู่ที่โหนดรูทของฮีป และข้อมูลที่มีลำดับความสำคัญรองลงมาจะอยู่ที่โหนดลูก ซึ่งเป็นตัวอย่างของฮีปสูงสุด

[RDBMS และ NoSQL]

  • RDBMS: ฐานข้อมูลที่กำหนดและจัดการข้อมูลอย่างเป็นโครงสร้างด้วยสคีมาที่เข้มงวด สามารถจัดเก็บข้อมูลแบบกระจายและแก้ไขได้ง่าย ตัวอย่างเช่น MySQL, Oracle, MS-SQL เป็นตัวอย่างทั่วไปของ RDBMS
  • NoSQL: ฐานข้อมูลที่จัดเก็บและจัดการข้อมูลด้วยสคีมาที่ยืดหยุ่น เหมาะสำหรับการประมวลผลและจัดเก็บข้อมูลจำนวนมาก และมีความสามารถในการปรับขนาดสูง ตัวอย่างเช่น MongoDB, Cassandra, HBase เป็นตัวอย่างทั่วไปของ NoSQL

[การเขียนโปรแกรมเชิงกระบวนการและการเขียนโปรแกรมเชิงวัตถุ]

  • การเขียนโปรแกรมเชิงกระบวนการ: เทคนิคการเขียนโปรแกรมที่เน้นการประมวลผลแบบลำดับ ภาษา C, Pascal เป็นภาษาแบบเชิงกระบวนการ
  • การเขียนโปรแกรมเชิงวัตถุ: วิธีการประมวลผลข้อมูลและขั้นตอนการทำงานอย่างมีเหตุผลโดยยึดตามแนวคิดของวัตถุ (Object) Java, C++, Python เป็นภาษาแบบเชิงวัตถุ ตัวอย่างเช่น ในโปรแกรมจำลองรถยนต์ รถยนต์จะถูกแสดงเป็นวัตถุ ซึ่งคุณลักษณะของรถยนต์ (สี, ความเร่ง ฯลฯ) จะถูกแสดงเป็นข้อมูล และฟังก์ชันที่รถยนต์ดำเนินการ (วิ่ง, หยุด ฯลฯ) จะถูกแสดงเป็นวิธีการ

[การแทนที่และการโหลดเกิน]

  • การแทนที่: การกำหนดนิยามวิธีการใหม่ในคลาสลูกเพื่อใช้ในคลาสพ่อ เมื่อเรียกใช้เมธอดของคลาสพ่อในคลาสลูก เมธอดที่กำหนดนิยามใหม่ในคลาสลูก จะถูกดำเนินการแทนเมธอดของคลาสพ่อ ตัวอย่างเช่น เมธอด toString() ใน Java เป็นตัวอย่างของการแทนที่
  • การโหลดเกิน: การกำหนดนิยามเมธอดที่มีชื่อเดียวกันหลาย ๆ เมธอด แต่มีชนิดและจำนวนพารามิเตอร์ที่แตกต่างกัน เพื่อตอบสนองการเรียกใช้ ที่หลากหลาย เมธอดหลาย ๆ เมธอดที่มีชื่อเดียวกันแต่พารามิเตอร์ต่างกันจะทำงาน ตัวอย่างเช่น เมธอด print() ใน Java เป็นตัวอย่างของการโหลดเกิน

[อัลกอริทึมการเปลี่ยนหน้า]

  • FIFO: เปลี่ยนหน้าที่โหลดในหน่วยความจำฟิสิกัลนานที่สุด ตัวอย่างเช่น 'ปิดในแถบงาน' ในคอมพิวเตอร์คล้ายกับอัลกอริทึม FIFO โปรแกรมที่เรียกใช้ครั้งแรกจะเป็นโปรแกรมที่แสดงผลล่าสุดและปิด
  • LRU: เปลี่ยนหน้าที่ไม่ได้ใช้มานานที่สุด ตัวอย่างเช่น 'แอพปิดการทำงาน' ในแอพที่ไม่ได้ใช้บ่อยที่สุดและเก่าที่สุดคล้ายกับอัลกอริทึม LRU
  • LFU: เปลี่ยนหน้าที่มีจำนวนการอ้างอิงน้อยที่สุด ตัวอย่างเช่น 'ปิดแท็บ' ในเบราว์เซอร์ซึ่งจะปิดแท็บที่เปิดใหม่และไม่ได้ใช้บ่อยที่สุด คล้ายกับอัลกอริทึม LFU
  • MFU: เปลี่ยนหน้าที่มีจำนวนการอ้างอิงมากที่สุด อัลกอริทึม MFU แทบไม่ถูกใช้

[กระบวนการและเธรด]

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

[OSI 7Layer]

  • เลเยอร์แอปพลิเคชัน: เลเยอร์ที่เชื่อมต่อผู้ใช้กับเครือข่าย ซึ่งรวมถึงโปรโตคอลเช่น HTTP, FTP, SMTP
  • เลเยอร์การนำเสนอ: เลเยอร์ที่กำหนดวิธีการแสดงข้อมูล ซึ่งรวมถึงโปรโตคอลเช่น JPEG, MPEG, SSL
  • เลเยอร์เซสชัน: เลเยอร์ที่จัดการเซสชันระหว่างสองระบบที่สื่อสารกัน
  • เลเยอร์การขนส่ง: เลเยอร์ที่รับผิดชอบในการส่งข้อมูล ซึ่งรวมถึงโปรโตคอลเช่น TCP, UDP
  • เลเยอร์เครือข่าย: เลเยอร์ที่ตั้งค่าเส้นทางสำหรับการส่งข้อมูล ซึ่งรวมถึงโปรโตคอลเช่น IP, ICMP
  • เลเยอร์ข้อมูลลิงก์: เลเยอร์ที่ส่งข้อมูลโดยใช้ที่อยู่ทางกายภาพ (ที่อยู่ MAC) ซึ่งรวมถึงโปรโตคอลเช่น Ethernet, Token Ring
  • เลเยอร์ทางกายภาพ: เลเยอร์ที่รับผิดชอบในการเชื่อมต่อทางกายภาพและการสื่อสารผ่านสื่อส่ง

[TCP และ UDP]

  • TCP: บริการแบบเชื่อมต่อ ซึ่งเป็นวิธีการส่งข้อมูลอย่างน่าเชื่อถือโดยใช้การจับมือ 3 ทางและการจับมือ 4 ทางเพื่อสร้างหรือยกเลิกการเชื่อมต่อ ตัวอย่างเช่น การเข้าสู่ระบบเว็บไซต์หรือการส่งไฟล์จะใช้ TCP
  • UDP: บริการแบบไม่เชื่อมต่อ ซึ่งไม่มีขั้นตอนการส่งสัญญาณสำหรับการส่งข้อมูล และความน่าเชื่อถือของข้อมูลจะต่ำ แต่มีความเร็วในการประมวลผลสูง ตัวอย่างเช่น สตรีมมิ่งวิดีโอหรือเกมออนไลน์ เนื่องจากความเร็วในการส่งข้อมูลเป็นสิ่งสำคัญ จึงใช้ UDP
TheCareer
투잡뛰는 개발 노동자
코딩, 취업, 이직, 경제에 관심 많은 IT 노동자
TheCareer
[python]พื้นฐานไพธอน 1 การเรียนรู้เกี่ยวกับโมดูลไพธอน โมดูลไพธอนเป็นไฟล์ที่รวบรวมตัวแปร ฟังก์ชัน คลาส ฯลฯ และมีประโยชน์เมื่อใช้โมดูลที่สร้างโดยผู้อื่นหรือรวบรวมตัวแปร ฟังก์ชัน ฯลฯ ที่ใช้ร่วมกัน สามารถใช้ `import` เพื่อเรียกใช้โมดูลและใช้งานได้ และยังสามารถสร้างโมดูลเองเพื่อใช้ได้อีกด้วย

27 มีนาคม 2567

[ไม่มีพื้นฐานด้านวิทยาการคอมพิวเตอร์ ผู้พัฒนาอยู่รอดได้อย่างไร] 16. เคล็ดลับการสร้างพอร์ตโฟลิโอสำหรับนักพัฒนาใหม่ นักพัฒนาใหม่ (โดยเฉพาะผู้ที่ไม่มีพื้นฐานด้านวิทยาการคอมพิวเตอร์) ควรอธิบายบริการหรือฟังก์ชันที่พัฒนาขึ้นอย่างชัดเจนในระหว่างการสร้างพอร์ตโฟลิโอ ตัวอย่างเช่น โครงการ "ชุมชนสำหรับผู้สมัครงาน" หากเป็นโครงการ ควรระบุรายละเอียดของงาน เช่น กระดานถามตอบ ระบบการค

3 เมษายน 2567

[เรื่องราวของนักพัฒนา SI] 12. เทคสแตกที่ใช้บ่อยในโครงการ SI นักพัฒนา SI ในเกาหลีใต้ส่วนใหญ่ใช้เทคสแตก เช่น Spring ที่ใช้ Java, Oracle DB, Mybatis, JSP, JavaScript, HTML, CSS เพื่อพัฒนา IT ระบบที่มีประสิทธิภาพและเสถียร และใช้ Eclipse เป็นสภาพแวดล้อมการพัฒนา เทคโนโลยีเหล่านี้มีส่วนช่วยในการลดต้นทุนและเพิ่มผลผลิตของธ

19 เมษายน 2567

ปล่อยให้เราค้นหาสภาพอากาศของวันนี้ ปล่อยให้เราค้นหาสภาพอากาศของวันนี้ สภาพอากาศในวันนี้ค่อนข้างแจ่มใส
제이온
제이온
제이온
제이온

27 เมษายน 2567

[Concurrency] Atomic Operation: Memory Fence และ Memory Ordering บล็อกโพสต์นี้จะอธิบายวิธีการพิจารณาลำดับหน่วยความจำใน Atomic Operations และความสำคัญของตัวเลือก Ordering ตัวเลือก Ordering ที่หลากหลาย เช่น Relaxed, Acquire, Release, AcqRel และ SecCst จะถูกอธิบายพร้อมกับข้อดีข้อเสีย และข้อควรระวังในการใช้งานพร้อมกับตัวอย
곽경직
곽경직
곽경직
곽경직
곽경직

12 เมษายน 2567

[อ็อบเจ็กต์] บทที่ 1. อ็อบเจ็กต์ การออกแบบ ในด้านการพัฒนาซอฟต์แวร์ การปฏิบัติจริงมีความสำคัญมากกว่าทฤษฎี และการออกแบบที่ดีจะช่วยให้โค้ดอ่านง่ายและยืดหยุ่นต่อการเปลี่ยนแปลง อ็อบเจ็กต์ การออกแบบเชิงวัตถุให้แนวทางในการจัดการความสัมพันธ์ระหว่างอ็อบเจ็กต์ที่ทำงานร่วมกันอย่างเหมาะสม ซึ่งจะช่วยเพิ่มความส
제이온
제이온
제이온
제이온

28 เมษายน 2567

[Effective Java] รายการ 6. หลีกเลี่ยงการสร้างอ็อบเจ็กต์ที่ไม่จำเป็น คู่มือเกี่ยวกับวิธีลดการสร้างอ็อบเจ็กต์ที่ไม่จำเป็นใน Java อ็อบเจ็กต์แบบไม่เปลี่ยนแปลง เช่น String, Boolean ควรใช้ลิเทอรัล และควรแคชอินสแตนซ์ Pattern สำหรับนิพจน์ทั่วไป นอกจากนี้ การออโต้บอกซ์อาจทำให้ประสิทธิภาพลดลง ดังนั้นจึงควรใช้ประเภทพื้นฐาน รายละเอีย
제이온
제이온
제이온
제이온

28 เมษายน 2567

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

9 เมษายน 2567

[วัตถุ] บทที่ 2. การเขียนโปรแกรมเชิงวัตถุ เอกสารนี้เป็นการอธิบายวิธีการเขียนโปรแกรมเชิงวัตถุเพื่อการใช้งานระบบจองตั๋วภาพยนตร์ โดยครอบคลุมแนวคิดต่างๆ เช่น การทำงานร่วมกัน วัตถุ คลาส การสืบทอด การพหุรูปลักษณะ การนามธรรม การประพันธ์ เป็นต้น นอกจากนี้ยังแสดงวิธีการรักษาความเป็นอิสระของวัตถุผ่านการห่อ
제이온
제이온
제이온
제이온

28 เมษายน 2567