บทความ

กำลังแสดงโพสต์จาก พฤศจิกายน, 2016

ชนิดของอีเวนต์ (DOM EVENT TYPES)

รูปภาพ
พอดีผมเข้าไปเรียนในเว็บไซต์ Khanacademy ในคอร์ส  HTML/JS: MAKING WEBPAGES INTERACTIVE  เรียนมาจนถึง DOM event types เห็นว่ามันมีประโยชน์ดีเพราะว่า event types เหล่านี้เป็น event ที่ใช้บ่อยในการเขียน javascript เลยนำมาเขียนเก็บไว้ในบล็อกครับ ที่จริงมี event อยู่เยอะมากๆ ลิสต์เต็มของมันจะอยู่ที่เว็บไซต์  MDN  (Mozilla Developer Network) แต่ว่านี่คือ event types และ event names ที่ใช้บ่อยๆ ครับ mouse events ( MouseEvent ) : mousedown, mouseup, click, dblclick, mousemove, mouseover, mousewheel, mouseout, contextmenu touch events ( TouchEvent ) : touchstart, touchmove, touchend, touchcancel keyboard events ( KeyboardEvent ) : keydown, keypress, keyup form events : focus, blur, change, submit window events : scroll, resize, hashchange, load, unload *หมายเหตุ  บาง event จะใช้เป็นเฉพาะสำหรับอุปกรณ์นั้นๆ ยกตัวอย่างเช่น touch events จะใช้ได้ในเฉพาะอุปกรณ์ที่สามารถ touch-enabled ได้ อย่างเช่น smartphones และ touch screen laptops mouse-events ใช้เกือบจะทุก browser แต่บางครั้งก็จะ

รหัสเทียม (PSEUDO CODE)

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

ความรู้เบื้องต้นเกี่ยวกับ อัลกอริทึม (ALGORITHM)

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

โครงสร้างของข้อมูล (DATA STRUCTURE)

รูปภาพ
ข้อมูลเป็นองค์ประกอบที่สำคัญอย่างหนึ่งในระบบคอมพิวเตอร์ เป็นสิ่งที่ต้องป้อนเข้าไปในคอมพิวเตอร์ โดยผู้พัฒนาโปรแกรมจำเป็นที่จะต้องรู้จักข้อมูลและความสำคัญของข้อมูลแต่ละประเภทที่นำมาใช้ในการเขียนโปรแกรม ข้อมูลที่สามารถนำมาใช้กับคอมพิวเตอร์ได้มี 5 ประเภท คือ ข้อมูลตัวเลข (Numeric Data) , ข้อมูลตัวอักษร (Text Data) , ข้อมูลเสียง (Audio Data) , ข้อมูลภาพ (Images Data) และข้อมูลภาพเคลื่อนไหว (Video Data) ในการนำข้อมูลไปใช้นั้นมีระดับโครงสร้างของข้อมูลดังนี้ 1.บิต (Bit)  คือ ข้อมูลที่มีขนาดเล็กที่สุด เป็นข้อมูลที่เครื่องคอมพิวเตอร์สามารถเข้าใจและนำไปใช้งานได้ ซึ่งได้แก่ เลข 0 หรือ เลข 1 เป็นต้น 2.ไบต์ (Byte)  คือ เป็นการนำบิตหลายๆ บิตมาเรียงต่อรวมกันเพื่อกำหนดค่าได้มากขึ้น เช่น 3 บิตมาเรียงต่อกันจะทำให้เกิดสถานะที่ต่างกันคือ 000,001,010,100,011,010, และ 111 ก็จะได้เป็น 8 สถานะ เมื่อนำบิตมาเรียงต่อรวมกันเป็น 8 บิต เรียกว่าไบต์ มี 256 สถานะและกำหนดเป็นโครงสร้างข้อมูลที่มีขนาดเล็กที่สุดที่ใช้งานได้ มีค่าตั้งแต่ 0-255 (000000000 – 111111111) เช่น 0,1 ถึง 9, A, B, ถึง Z และเครื่องหมายต่า

ระดับของภาษาคอมพิวเตอร์ ตอนที่ 5 ภาษาธรรมชาติ (NATURAL LANGUAGE)

รูปภาพ
ภาษาธรรมชาติ (NATURAL LANGUAGE) เป็นภาษาในยุคที่ 5 ที่มีรูปแบบเป็นแบบ Nonprocedural เช่นเดียวกับภาษาระดับที่ 4 ที่เรียกว่าภาษาธรรมชาติ เพราะสามารถสั่งงานคอมพิวเตอร์ได้โดยใช้ภาษามนุษย์ได้โดยตรง โดยทั่วไป คำสั่งที่มนุกษย์ป้อนเข้าไปในคอมพิวเตอร์ จะอยู่ในรูปของภาษาพูดมนุษย์ซึ่งอาจมีรูปแบบที่ไม่แน่นอนตายตัว แต่คอมพิวเตอร์สามารถแปลคำสั่งนั้นให้อยู่ในรูปแบบที่คอมพิวเตอร์สามารถเข้าใจได้ ภาษาธรรมชาตินี้สร้างขึ้นมาจากเทคโนโลยีผู้เชี่ยวชาญทางด้านระบบ (Expert System) ซึ่งเป็นงานที่อยู่ในสาขาปัญญาประดิษฐ์ (Artificial Intelligence) ในการที่พยายามทำให้คอมพิวเตอร์เปรียบเสมือนกับเป็นผู้เชี่ยวชาญคนหนึ่งที่สามารถคิดและตัดสินใจได้เช่นเดียวกับมนุษย์ คอมพิวเตอร์สามารถตอบคำถามของมนุษย์ได้อย่างถูกต้อง พร้อมทั้งมีข้อแนะนำต่างๆ เพื่อช่วยในการตัดสินใจของมนุษย์ได้ด้วย ระบบผู้เชี่ยวชาญนี้จะใช้กับงานเฉพาะด้านใดด้านหนึ่ง เช่น ในด้านการแพทย์ ในการพยากรณ์อากาศ ในการวิเคราะห์ทางเคมี การลงทุน ฯลฯ ซึ่งต้องมีการเก็บรวบรวมข้อมูล และข่าวสารจากผู้เชี่ยวชาญเฉพาะด้านเหล่านั้นและแปลงข้อมูล และเก็บไว้ในรูปแบบของระบบฐ

ระดับของภาษาคอมพิวเตอร์ ตอนที่ 4 ภาษาระดับสูงมาก (VERY HIGH-LEVEL LANGUAGE)

รูปภาพ
ภาษาระดับสูงมาก (Very High-level Language) เป็นภาษารุ่นที่ 4 (4GLs : Fourth-Generation Languages) ลักษณะของภาษาเป็นภาษาธรรมชาติคล้ายกับภาษาพูดของมนุกษย์ จะช่วยในเรื่องของการสร้างแบบฟรอ์มบนหน้าจอ เพื่อจัดการเกี่ยวกับข้อมูลรวมไปถึงการออกรายงาน ซึ่งมีการจัดการที่ง่ายมากไม่ยุ่งยากเหมือนภาษารุ่นที่ 3 ตัวอย่างของภาษาในรุ่นที่ 4 ได้แก่ Informix-4GL Focus Sybase Ingres เป็นต้น ลักษณะของภาษาระดับสูง มีดังนี้ 1.เป็นภาษาแบบ Nonprocedural คือ ผู้พัฒนาโปรแกรมไม่จำเป็นจะต้องเขียนโปรแกรมในทุกส่วนเอง เพียงแต่กำหนดสิ่งต่างๆ ตามที่ต้องการแล้วให้คอมพิวเตอร์เป็นผู้กำหนดรายละเอียดต่างๆ ให้ เช่นการสร้างแบบฟอร์มการรับข้อมูลจากผู้ใช้งาน ผู้เขียนโปรแกรมเพียงแต่ทำการออกแบบหน้าตาของแบบฟอร์มนั้นบนโปรแกรมอิดิเตอร์ (Editor) นั้น และเก็บเป็นไฟล์ไว้ เมื่อจะเรียกใช้งานแบบฟอร์มก็เพียงแต่ใช้คำสั่งเปิดไฟล์นั้นขึ้นมาแสดงบนหน้าจอคอมพิวเตอร์ได้โดยทันที ซึ่งต่างจากภาษาระดับที่ 3 ซึ่งเป็นแบบ Procedural ผู้เขียนโปรแกรมจะต้องเขียนรายละเอียดของโปรแกรมทั้งหมดว่าที่บรรทัดนี้ คอมลัมน์จะให้แสดงข้อความหรือข้อมูลอะไรออกมา ซ

ระดับของภาษาคอมพิวเตอร์ ตอนที่ 3 ภาษาระดับสูง (HIGH-LEVEL LANGUAGE)

รูปภาพ
ภาษาระดับสูง (High-level Language) เป็นภาษารุ่นที่ 3 (3rd Generation Language  หรือ 3GLs) เป็นภาษาที่สร้างขึ้นมาเพื่อให้สามารถเขียนและอ่านโปรแกรมได้ง่ายขึ้น เนื่องจากมีลักษณะเหมือนภาษาอังกฤษและที่สำคัญ คือ ผู้เขียนโปรแกรมไม่จำเป็นต้องมีความรู้เกี่ยวกับระบบฮาร์ดแวร์แต่อย่างใด ตัวอย่างของภาษาประเภทนี้ได้แก่ ภาษาฟอร์แทน (Fortran) โคบลอ (Cobol) เบสิก (Basic) ปาสคาล (Pascal) ภาษาซี (C) เป็นต้น โปรแกรมที่ถูกเขียนด้วยภาษาประเภทนี้จะทำงานได้เมื่อมีการเปลี่ยนแปลงให้เป้นภาษาเครื่องก่อน ซึ่งวิธีการแปลงจากภาษาระดับสูงให้เป็นภาษาเครื่องทำได้โดยใช้โปรแกรมที่เรียกว่าคอมไพเลอร์ (Compiler) หรือ อินเตอร์พรีเตอร์ (Interpreter) อย่างใดอย่างหนึ่ง ในการแปลภาษาโดยภาษาระดับสูงแต่ละภาษาหนึ่งได้ เช่น ภาษาโคบอลจะมีตัวแปลภาษาที่เรียกว่า โคบอลคอมไพเลอร์ไม่สามารถนำคอมไพเลอร์ของภาษาโคบอลนี้ไปใช้แปลภาษาปาสกาลได้ เป็นต้น การเขียนโปรแกรมด้วยภาษาขั้นสูงนั้นนอกจากจะให้ความสะดวกแก่ผู้เขียนแล้ว ผู้เขียนยังไม่จำเป็นต้องมีความรู้เกี่ยวกับการทำงานขงอระบบฮาร์ดแวร์มากนัก ก็สามารถเขียนโปรแกรมสั่งให้คอมพิวเตอร์ทำงานได้

ระดับของภาษาคอมพิวเตอร์ ตอนที่ 2 ภาษาแอสเซมบลี (ASSEMBLY LANGUAGE)

รูปภาพ
2.ภาษาแอสเซมบลี (Assembly Language) เป็นภาษาที่มีการใช้ตัวอีกษรในภาษาอังกฤษมาแทนคำสั่งที่เป็นเลขฐานสอง (0,1) และเรียกอักษรสัญลักษณ์ที่เป็นคำสั่งนี้ว่า สัญลักษณ์ข้อความ (mnemonic codes) เพื่อให้ง่ายต่อการเขียนและการจดจำมากกว่าภาษาเครื่อง ภาษาแอสเซมบลียังจัดเป็นภาษาระดับต่ำ (Low-level Language) มีการใช้สัญลักษณ์มาใช้ในการเขียนโปรแกรม เช่น สัญลักษณ์เหล่านี้จะไม่ใช่คำที่มีความหมายในภาษาอังกฤษ แต่สามารถทำให้นักเขียนโปรแกรมสามารถเขียนโปรแกรมได้สะดวกสะบายมากขึ้น เนื่องจากไม่ต้องจดจำเลข 0 และ 1 ของเลขฐานสองอีกนอกจากนี้ภาษาแอสเซมบลี ยังให้ผู้เขียนใช้ตัวแปรที่ตั้งขึ้นมาเพื่อการเก็บค่าข้อมูลใดๆ เช่น X, Y, RATE หรือ TOTAL แทนการอ้างถึงตำแหน่งที่เก็บข้อมูลจริงๆ ภายในหน่วยความจำด้วย การเขียนโปรแกรมด้วยภาษาแอสเซมบลีนั้น เมื่อนำมาใช้ในเครื่องคอมพิวเตอร์ เครื่องคอมพิวเตอร์จะไม่สามารถที่จะเข้าใจภาษาแอสเซมบลีได้ ขึงต้องมีการแปลภาษาแอสเซมบลีนั้นให้กลายเป็นภาษาเครื่องก่อน โดยใช้ตัวแปลภาษาแอสเซมบลีที่เรียกว่า  แอสเซมเบลอร์   (Assembler)  เป็นตัวแปล นอกจากนี้ผู้ที่จะเขียนโปรแกรมภาษาแอสเซมบลีได้จะต้อ

ระดับของภาษาคอมพิวเตอร์ ตอนที่ 1 ภาษาเครื่อง (MACHINE LANGUAGE)

รูปภาพ
ภาษาคอมพิวเตอร์มีการพัฒนาหรือมีวิวัฒนาการมาโดยลำดับ โดยจะสามารถแบ่งออกเป็นยุคของภาษา (Generation) ซึ่งในยุคหลังๆ จะมีการพัฒนาภาษาให้มีคความสะดวกในการอ่าน และเขียนได้ง่ายขึ้นกว่าภาษาในยุคแรกๆ เนื่องจากจะมีโครงสร้างภาษาใกล้เคียงกับภาษาอังกฤษหรือภาษาที่มนุษย์เข้าใจได้ แสดงระดับภาษาคอมพิวเตอร์ ภาษคอมพิวเตอร์สามารภแข่งออกได้เป็น 5 ยุค ดังนี้ 1.ภาษาเครื่อง (Machine Language) เป็นภาษาที่มนุษย์เข้าใจได้ยาก เพราะใช้เลขฐานสองแทนข้อมูลคือ (0 และ 1) แทนลักษณะของการปิด (Off) และเปิด (On) และคำสั่งต่างๆ ทั้งหมดจะเป็นภาษาที่ชึ้นอยู่กับชนิดของเครื่องคอมพิวเตอร์ หรือหน่วยประมวลผลที่ใช้ คือแต่ละเครื่องก็จะมีรูปแบบของคำสั่งเฉพาะของตนเอง ซึ่งนักเขียนโปรแกรมในสมัยก่อนต้องรู้จักวิธีที่จะรวมตัวเลขเพื่อแทนคำสั่งจ่างๆเป็นภาษาที่มีความยุ่งยากในการพัฒนามาก ภาษาชนิดนี้ ได้แก่ ภาษาแอสเซมบลี (Assembly) ภาษาเครื่องคอมพิวเตอร์ 

ระบบปฏิบัติการ UNIX

รูปภาพ
ยูนิกซ์ เป็นระบบปฏิบัติการประเภทหนึ่ง ที่เป็นเทคโนโลยีแบบเปิด (Open System) ซึ่งเป็นแนวคิดที่ผู้ใช้ไม่ต้องผูกติดกับระบบใดระบบหนึ่งหรืออุปกรณ์ยี่ห้อเดียวกัน นอกจากนี้ยูนิกซ์ยังถูกออกแบบมาเพื่อตอบสนองการใช้งานในลักษณะให้มีผู้ใช้ได้หลายคนในเวลาเดียวกัน เรียกว่า มัลติยูสเซอร์ (Multi-users) และสามารถทำงานได้หลายๆ งานในเวลาเดียวกันในลักษณะที่เรียกว่า มัลติทาสกิง (Multi-users) ในสมัยก่อนผู้ที่พัฒนาระบบปฏิบัติการคือบริษัทที่ผลิตคอมพิวเตอร์ ดังนั้นระบบปฏิบัติการจึงถูกออกแบบให้สามารถใช้ได้เฉพาะกับเครื่องของบริษัทเท่านั้น เรียกระบบปฏิบัติการประเภทนี้ว่า ระบบปฏิบัติการแบบเปิด (Proprietary operating system) ซึ่งแม้แต่ในปัจจุบันนี้เครื่องระดับเมนเฟรมผู้ขายก็ยังคงเป็นผู้กำหนดความสามารถของระบบปฏิบัติการของเครื่องที่ขายอยู่ อย่างไรก็ดี ปัจจุบันเริ่มมีแนวโน้มที่จะทำให้ระบบปฏิบัติการสามารถนำไปใช้งานบนเครื่องต่างๆ กันได้ (Portable operating system) เช่น ระบบปฏิบัติการยูนิกซ์ (UNIX) เป็นต้น

ประเทศไหนที่มี PROGRAMMER และ DEVELOPER เก่งที่สุดในโลก ?

รูปภาพ
จากเว็บไซต์ HackerRank ได้เปิดเผยว่าประเทศที่มี Programmer และ Developer ที่เก่งที่สุดในโลก Top 3 เรียงตามลำดับเลยก็คือ China , Russia , Poland  โดย US และ India ยักษ์ใหญ่ของการเขียนโปรแกรมอยู่ในอันดับ 28 และ 31 ถ้าคุณสนใจใน computer programming คุณอาจจะสงสัยอย่างแน่นอนเกี่ยวกับว่าประเทศไหนที่มี programmer และ developer ที่เก่งๆ และนี่คือรายงานใหม่จาก HackerRank จะมาให้คำตอบกับคุณ มารตฐานวัดจากความเร็วและความแม่นยำ HackerRank มีอันดับ developer มากกว่า 1.5 ล้านอันดับ ผลการศึกษาล่าสุดแสดงให้เห็นว่าจีนมีโปรแกรมเมอร์ที่ดีที่สุดของโลกตามมาด้วยรัสเซียและโปแลนด์ โดยจีนนั้นสามารถทำคะแนนได้เต็ม 100 คะแนนและรัสเซียทำได้ 99.9 คะแนน เรามาดู Top 10 ประเทศที่มี Programmer และ Developer ที่เก่งที่สุดในโลกกันครับ Top 10 countries with the best computer programmers China Russia Poland Switzerland Hungary Japan Taiwan France Czech Republic Italy ส่วนด้านล่างนี่คือ 50 ประเทศที่มี Programmer และ Developer เก่งที่สุด

โปรแกรมคอมพิวเตอร์คือ ?

รูปภาพ
โปรแกรมคอมพิวเตอร์ คือ คำสั่งคอมพิวเตอร์ชุดๆหนึ่ง ที่เขียนขึ้นเป็นภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่งเช่น ภาษา C , Pascal , COBOL , BASIC , Assembly หรือภาษาอื่นๆ “โปรแกรม” นี้อาจจะเรียกเป้นชื่ออื่นก็ได้ เช่น ซอฟต์แวร์ (Software) หรือแอพพลิเคชั่น (Application) โปรแกรมนั้นแบ่งได้หลายประเภท ดังนี้ ซอฟต์แวร์ระบบ (System Software) ซอฟต์แวร์ประยุกต์ (Application Software) ซอฟต์แวร์สำเร็จรูป (Package Software) 1.ซอฟต์แวร์ระบบ (System Software) หมายถึง ชุดของคำสั่งที่เขียนไว้เป็นคำสั่งสำเร็จรูปซึ่งจะทำงานใกล้ชิดกับคอมพิวเตอร์มากที่สุด เพื่อควบคุมการทำงาน และทำหน้าที่ในการติดต่อกับอุปกรณ์ฮาร์ดแวร์ทุกอย่างที่อยู่บนคอมพิวเตอร์ และอำนวยความสะดวกให้กับผู้ใช้ในการงาน เช่น Microsoft Windows 7 หรือ Microsoft Window 8 ของบริษัท Microsoft หรือ MAC OS บนเครื่อง Macintosh ของบริษัท Apple ซอฟต์แวร์ระบบนี้ยังสามารถแบ่งออกได้อีกดังนี้ ซอฟต์แวร์ควบคุมระบบปฏิบัติการ (Operating System-OS) ซอฟต์แวร์จัดการอุปกรณ์ต่อพ่วง (Device Driver Software) ซอฟต์แวร์การสื่อสาร (Communications Software) ซอฟต์แวร

OPEN-SOURCE SOFTWARE คืออะไร ?

รูปภาพ
Open-source software หรือซอฟต์แวร์บนมาตรฐานเปิด คือ ซอฟต์แวร์คอมพิวเตอร์ซึ่งเจ้าของลิขสิทธิ์อนุญาตให้มีการนำไปใช้ พัฒนา ปรับปรุง แก้ไข และเปลี่ยนแปลง source code ได้ ซึ่งข้อดีของการใช้งาน open source software คือมีค่าใช้จ่ายต่ำเมื่อเทียบกับซอฟต์แวร์ที่มีลิขสิทธิ์มี source code ที่เปิดเผย ทำให้มั่นใจได้ว่าไม่มีอะไรแอบแฝงอยู่ภายในซอฟต์แวร์และสามารถปรับใช้ให้ตรงกับความต้องการของผู้ใช้งานได้ง่าย โดยในการเปลี่ยนแปลงคุณสมบัติของ open source software นั้น จำเป็นที่จะต้องใช้ความรู้ในเรื่องของการเขียนโปรแกรมมาช่วยในการพัฒนาด้วย เราจะมายกตัวอย่างของ Open source software ในปัจจุบันกันครับ 1.Mozilla Firefox เป็น Open source web browser สำหรับการใช้งานอินเทอร์เน็ต ถูกพัฒนาเพื่อให้ใช้ได้กับระบบปฏิบัติการที่หลากหลาย เช่น Windows, OS X, Linux และระบบ Android 2.OpenOffice คือ โปรแกรมสำหรับจัดการเอกสารแบบ open source โดยจะมีความสามารถคล้ายคลึงกับ Microsoft Office Suite ซึ่งสามารถใช้งานได้ทั้งการประมวลผลคำ (word processing) ตารางการคำนวณ (spread sheet) การนำเสนอ (presentation) และการจัดการ