เป็นบทความเกี่ยวกับ อยากจะเป็น hacker กำเนิด,ทักษะพื้นฐาน,วัฒนธรรม Hacker
ผมไปเซิจเจอมาอาจจะเก่า หรือบางคนอาจจะเคยอ่านแล้ว แต่ผมคิดว่าบางคนยังไม่เคยอ่าน
เหมาะสมกับผู้เริ่มใหม่ และ ผู้ที่สนใจครับ
มาเป็นแฮ็กเกอร์กันเถอะ !
[hide=10]ช่วงนี้พอมีเวลาว่างนิดนึง ก็เลยเข้าไปแปลบทความเรื่อง "How to become a Hacker" ของ Eric Steven Raymond (ESR) ไว้ที่ OTN ที่จริงก็ยังแปลไม่จบหรอกครับ แต่เห็นเป็นเรื่องน่าสนใจดีเลยเอามาเล่าให้กันฟัง ..
มาเริ่มกันที่ ESR
หากพูดถึงฟรีซอฟต์แวร์หลายคนคงนึกถึง ดร. ริชาร์ด สตอลแมน (RMS) ผู้เริ่มความคิดเรื่องซอฟต์แวร์เสรี แต่หากจะพูดถึงคำว่าโอเพ่นซอร์ส จะลืมบุรุษผู้นี้ไปไม่ได้ "อีริค สตีเว่น เรย์มอนด์" เขาเป็นหนึ่งในผู้ริเริ่มคอนเซปต์ฟรีซอฟต์แวร์เชิงพาณิชย์เมื่อปี 1998 โดยใช้ Debian Free Software Guideline เขียนโดย บรูซ พีเรนส์ (Bruce Perens) มาเป็นต้นแบบและนิยามมันในชื่อ "โอเพ่นซอร์ส" โดยพื้นฐานทั้งโอเพ่นซอร์ส และ ฟรีซอฟต์แวร์ มีจุดม่งหมายเหมือนกันมาก แต่ ESR เลือกใช้คำว่าโอเพ่นซอร์สซอฟต์แวร์ เพราะอยากให้คนเข้าใจความหมายได้ง่ายกว่าฟรีซอฟต์แวร์ซึ่งมักคิดกันไปว่าคือ "ซอฟต์แวร์แจกฟรี" มากกว่า "ซอฟต์แวร์เสรี"
คนนี้ล่ะ ESR[/b]
อย่างไรก็ตาม สิ่งที่ทั้ง RMS และ ESR มีอยู่เหมือนๆ กันก็คือ ทั้งคู่เป็น "แฮ็กเกอร์" !
"ทักษะพื้นฐานของแฮ็กเกอร์"
# จะเป็นแฮ็กเกอร์ต้องมีทั้งทัศนคติและฝีมือ และจะต้องฝึกฝน เรียนรู้สิ่งใหม่ๆ อยู่ตลอดเวลา เพราะเทคโนโลยีเปลี่ยนเร็ว เครื่องไม้เครื่องมือก็เปลี่ยนไปด้วย ผมว่าหลายคนมีพื้นฐานประมาณนึงแล้ว จึงไม่ใช่เรื่องยากนักที่จะพัฒนาทักษะเพื่อเป็นแฮ็กเกอร์ เรียนรู้การเขียนโปรแกรม
การเขียนโปรแกรมเป็นรากฐานของการแฮ็ก ถ้ายังไม่เคยรู้ภาษาไหนมาก่อนเลย ESR แนะนำให้หัดภาษา Python เพราะออกแบบมาอย่างเรียบง่าย ประสิทธิภาพสูง เอกสารคู่มือที่มีอยู่ก็มีคุณภาพดี และค่อนข้างเหมาะกับมือใหม่ Java ก็ถือว่าน่าสนใจ อาจจะเรียนรู้ได้ยากกว่า Python แต่ก็ทำงานได้เร็วกว่า และใช้งานได้กว้างกว่า
ถ้าจะเขียนโปรแกรมเป็นเรื่องเป็นราว ก็ยังจำเป็นต้องใช้ C อยู่เหมือนเดิม.. อย่างไรก็ตาม C จะแสดงความสามารถของมันออกมาเมื่อได้ใช้การจัดการระดับต่ำ เช่นเรื่องของหน่วยความจำ I/O ซึ่งมีความซับซ้อน และเกิดบักได้ง่าย การใช้ C จึงต้องแม่นประมาณนึง .. ข้างล่างนี้เป็นตัวอย่าง code C ที่เขียนกันแบบสุดขีดเลย ใครคิดว่างตัวเองเก่ง C ลองอ่าน แล้วลองบอกว่ามันทำอะไรและหาผลลัพธ์ได้ยังไง ? ลองเขียนให้มันสั้นกว่านี้ เร็วกว่านี้ ถ้าทำได้นั่นล่ะคือ "การแฮ็ก"
[code]
int a=10000, b, c=2800, d, e, f[2801], g;
main(){for(;b-cf[b++]=a/5;