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


