Хакэр гэж хэн бэ?
Хакер гэхээр хүмүүс ихэвчлэн муу тал руу нь ойлгодог. Гэтэл жинхэнэ мэргэжлийн хүрээний ойлголтоороо бол тийм биш. Их зүйл хийсэн, хүмүүст үнэлэгдсэн сайн програмчид, хөгжүүлэгчдийг мэргэжил нэгт нөхөд нь хакер гэдэг. Муу үйл хийж бусниулагчдыг хар малгайт, сайн үйлстэнгүүдийг цагаан малгайт хакерууд гэж хэлдэг нь ч зохисон нэршил.
Асуудлыг хэний ч санаанд оромгүй аргаар шийдэх, техникийн нарийн зүйлсийг ухаж төнхөх, бяцхан хоргүй хошигнол хийх зэргээр үйл ажиллагаа нь илрэх тохиолдол байдаг боловч, учрыг ойлговол заавал тийм байх албагүй.
Eric Steven Raymond-ийн "How To Become A Hacker" дээр бичсэнээр хакерууд бүтээж байхад, кракерууд сөнөөдөг гэсэн буй. Ингээд түүний энэ зөвлөгөөг тоймлон бичихийг оролдьё.
Характер
Хорвоо дэлхий шийдэх асуудлаар дүүрэн. Алив үр дүнг зүтгэл гаргаж бий болгодог. Хакерууд хүч сорьсон хэцүү асуудлыг шийдэж, түүнээсээ кайф авч, өөрийгөө хурцалж хөгжүүлж байдаг дуршилтай улс.
Аливаа асуудал хоёр дахиа шийдэгдэх ёсгүй. Тархи бол үнэтэй, хязгаарлагдмал нөөц учраас түүнийг хий дэмий үрэхээс зайлсхийх нь зүйтэй. Хэн нэгний шийдсэн асуудлыг дахин шийдэх нь утгагүй. Ийм учраас хакерууд шийдсэн асуудлаа бусдад дэлгэдэг гэж ойлгож болно. Энэ нь шийдэгдсэн асуудал руу дахин өнгийгөөд хэрэггүй гэсэн үг биш юм. Хакерууд төрөлхийн сониуч зангаараа аливаа шийдлийг заавал сонирхож судалдаг бөгөөд, хэрэв илүү сайн шийдэл байвал түүнийгээ нуудаггүй. Гэхдээ оюун тархиа зарцуулсан ажлаа бүгдийг үнэгүй дэлгэ гэвэл мэдээж шудрага бус - хөлс хүчээрээ ашиг орлого олох нь шудрага хэрэг билээ.
Уйтгартай, ядаргаатай ажил маш хорон. Залхуутай, олон дахин давтагдсан нэгэн хэвийн ажлийг хийхгүй л байх хэрэгтэй. Учир нь энэ бол хакерийн хамгийн сайн хийж чадах асуудал шийдэх ажлийг хийлгэхгүй цагийг нь дэмий үрж байгаа хэрэг. Ийм учраас энэ нь бусдад ч хортой болж байна. Давтагдсан ажлыг бололцооны хирээр автоматжуулж өөртөө болон бусдад(ялангуяа бусад хакеруудад) тус болох нь зүйтэй.
Эрх чөлөөт хүмүүс. Хакерууд эрх чөлөөнд дуртай. Өөрийн тооцоолуурыг дураараа тоноглож, ямар програм суулгаж, яаж ашиглахаа тэд хэнээр ч заалгах дургүй. Хэн нэгэн хажууд нь ирж зогсоод юу хийхийг нь заах юм бол жинхэнэ там гэсэн үг. Даргын хий гэсэн зүйл нь ихэнхдээ тийм ч оновчгүй зүйл байх ба, гол ажил болох асуудал шийдэхэд нь садаа болдог. Хакерууд чөлөөтэй сэтгэж, туурвиж, бусадтэй чөлөөтэй хуваалцах дуртай байхад, ямар нэг даргын команданд байна гэдэг бол тэдний зохиосон дүрмэнд захирагдаж, дураараа туурвиж, мэдлэг хуваалцаж чадахгүй болно гэсэн үг. (Тухайлбал Google-ийн хөгжүүлэгчидэд ажлын цагынхаа тодорхой хувийг дуртай юмаа хийхэд нь чөлөөлж өгсөн байдаг. Энэ нь Google-д хакерууд ажиллах бололцоог олгож байгаа юм.)
Ур чадвар. Хакер байхын тулд дээрх шинж төрхүүдийг бүрдүүлэх хэрэгтэй, зүгээр бүрдүүлэх биш бүрэн итгэлтэй байх нь чухал. Гэхдээ зөвхөн зан чанар байгаад рок од болчихгүй, олимпийн медал авчихгүй - оюун ухаан, тамир тэнхээ, туршлага, дээр нь асар их хөдөлмөр хэрэгтэй. Тэд барьцалдах, шөргөөцөлдөх, өдөөн хатгалт гэх мэт элдэв шалдавхан зүйлд цаг, ухаан, нэрвээ үрдэггүй, харин тэд ур чадвар, мэдлэг мэргэшилд шүтдэг юм. Ялангуяа хакийн ур чадвараа хөгжүүлэх нь хамгийн чухал, гэхдээ бусад ур чадварууд ч хэрэгтэй. Цөөхөн хүн л хийж чадах онцлог ажлийг чаддаг байна гэдэг сайн, харин оюун ухаан, ур дүй, анхаарал шаардсан ажлийг хийж чаддаг бол бүр сайн. Ур чадварт итгэж, түүний төлөө хичээж чадвал олж авах нь гарцаагүй - иймд хичээнгүй зүтгэл, ажилдаа бүхнээ зориулах зан чанар хамгийн үнэтэй чанар мөн.
Үндсэн ур чадварууд
1. Програм бичих
Мэдээж энэ бол хакерийн үндсэн ур чадвар. Хэрэв ямар нэг програмчлалын хэл мэддэггүй бол Python-оос эхлэхийг санал болгож байна. Энэ нь сурахад маш хялбар, цэвэрхэн бүтэцтэй учраас эхлэн сурлацагчдад сайхан тохирно. Гэхдээ энэ хэл бол зүгээр нэг тоглоом төдий биш, нилээд хүчирхэг хэл учраас цаашид ч мөн хэрэг болох болно.
Жава бол програм бичиж сурахад тохиромжтойгоос гадна, хэрэглээ ч их. Python-оос хэцүү ч, арай хурдан ажилладаг код гаргадаг. Гэхдээ орчин үеийн тооцоолууруудын хувьд аль аль нь удаан гэж тооцогдохгүй.
Эдгээр хоёр хэл дээр програм бичдэг болсноор өөрийгөө хакер болчихлоо гэж бодож болохгүй, програмчин болчихлоо ч гэж саналтгүй. Хакер болохын тулд асуудлыг аль нэг програмчлалын хэлээс хамааралгүй сэтгэж, шийдэж сурах хэрэгтэй. Жинхэнэ хакер хүссэн програмчлалын хэлээ хэдхэн өдрийн дотор л өөрийн болгодог. Иймд нилээд олон хэл сурах хэрэгтэй гэж хэлэх гээд байна.
Илүү гүнзгий түвшинд програмчилья гэвэл C сурах хэрэгтэй. Энэ бол нилээн доод түвшний хэл, энэ хэл дээр бичигдсэн програм маш хурдан ажиллах боломжтой, гэхдээ програм дотроо санах ойн зохицуулалт гэх мэт машины доод түвшний зохицуулалтуудыг өөрөө хийх хэрэгтэй болдог. Доод түвшний код бичих нь алдаа гаргах магадлалыг ихэсгэх ба, дэбаг хийхэд хамаг цаг зарцуулагдана. Одоо үед тооцоолуурын санах ой болон хурд хангалттай их болсон учраас цагаа хэмнэ, Python.
Хакеруудын түгээмэл хэрэглэдэг өөр хоёр хэл бол Perl ба Lisp юм. Практик ач холбогдол ихтэй учраас Perl сурах хэрэгтэй. Perl нь динамик вэб хийхэд их ашиглагддаг байсан хэл бөгөөд, одоо ч системийн удирдлагын скриптэд их хэрэглэгддэг хэвээр. Зарим зүйлийг Perl дээр хялбархан хийж болдог ба Python-ийг үүний оронд их хэрэглэх болсон. Гэхдээ өмнө бичигдсэн кодуудыг ойлгохын тулд Perl сурахад илүүдэхгүй.
Lisp -ийг сурах шалтгаан бол арай өөр. Түүнийг ойлгосны дараа бүх учрыг ухаарах болно. Энэ хэл бол програмчлалийг бусад хэлүүдээс эрс өөрөөр тусгасан байдаг бөгөөд түүнийг сурснаар бусад хэлүүдээс олж авахгүй зүйлийг ойлгож авна. Тэр туршлага нь дахин хэзээ ч Lisp хэрэглэхгүй байсан ч, сайн програмчин болоход хэрэг болно.
Эдгээр таван хэлийг бүгдийг нь сурчихвал сайн. Гэхдээ програм хэрхэн бичихийг энд бүгдийг заах боломжгүй - энэ бол маш хэцүү зүйл. Ямар ч байсан програм бичихийг номноос юмуу, курс дамжаанд сурдаггүй гэдгийг баттай хэлье. Дадлага хийж програм бичиж, олон сар жилээр тооцоолуурын ард сууж, алдаж онож байж сурдаг юм.
Програмчлалын хэл сурна гэдэг нь ерөнхийдөө хүний хэл сурахтай төстэй. Уншаад, бичээд, ярьж байж хэл сурдаг бол програмчлалын хэлийг a)код уншаад, b)код бичиж сурна. Програм бичиж сурах хамгийн сайн арга бол : Мастеруудын бичсэн кодыг уншаад, өөрөө жаахан бичиж үзээд, Мастеруудын бичсэн кодыг уншаад арай жаахан их бичээд, гэх мэтээр явсаар өөрөө програмаа бичдэг болтол үргэлжилэх юм.
2. Нээлттэй эх бүхий Юникс системүүдээс хэрэглэх
Хакеруудын эзэмших ёстой нэг гол чадвар бол Юникс системийг эзэмшиж, хэрэглэж сурах юм. Линукс, BSD ч юмуу ямар нэг нээлттэй эх бүхий юникс үйлдлийн систем суулгаад, түүнийгээ хэрэглэж сур. Яагаад заавал Линукс гэж, Виндовс байж болохгүй юу гэвэл : Үйлдлийн системийн эх код нээлттэй байснаар хүссэн зүйлээ үзэж, сурж, өөрчилж, турших боломжтой болно. Виндовс гэх мэт хаалттай код бүхий үйлдлийн систем дээр хакер болно гэвэл дуулга өмсөж байгаад бүжиглэхтэй адил.
Юникс бол Интэрнэтийн үйлдлийн систем. Ийм учраас юниксгүйгээр интэрнэт хакер байж чадахгүй бөгөөд, ийм ч учраас хакерийн ертөнц юниксийн эргэн тойронд цэцэглэдаг. Мөн юникс төрлийн систем дээр програмчлалын сайн багаж хэрэгслүүдийг хэрэглэх, судлах боломж илүү их байдаг.
3. Вэб ашиглаж, хийж сурах
Хакеруудын хийсэн зүйлсийн ихэнх нь нүдэнд үзэгдэлгүйгээр үйлдвэрийн газрууд, офисийн амьдрал, их сургуулийн лабораториудад нөлөөлж байдаг бол Вэб өөр юм. Вебийг юм бүхэнд хэрхэн нөлөөлж өөрчилж байгааг улс төрчид ч хэлж байна. Хакер болохын тулд вебийг зөвхөн толилуурдах, мэдээлэл олж авахад бус мэдээлэл солилцоход, хийсэн зүйлээ бусадтай хуваалцахад ашиглаж сурах хэрэгтэй. Вебийн хэл болох HTML -ийг сур, Цаашлаад XHTML үз. Эхлээд юуны түрүүнд өөрийн танилцуулга хуудсыг хийх нь зүйтэй. Гэхдээ хуудсан дээрээ үнэ цэнэтэй агуулга тавих нь хамгийн чухал. Хэнд ч хэрэггүй вэбүүд интэрнэтээр дүүрэн бий, тийм вэб хийгээд утгагүй, цагийн гарз. Өөрийн шийдсэн асуудал, хүнд хэрэгтэй, ялангуяа бусад хакеруудад хэрэгтэй зүйлийг вебээр дамжуулан бусдад түгээ.
4. Англи хэл
Англи хэл бол Интернэтийн хэл. Хакерийн ертөнцтэй нэвтрэлцэхийн тулд Англи хэл зайлшгүй билээ. Төрөлх хэл нь нэгтэй ч, хакерууд хоорондоо ихэвчлэн Англи хэлээр харилцдаг болохыг тогтоосон буй. Англи хэл дээр техникийн үг хэллэгүүд төрдөг бөгөөд англи хэлнээс техникийн номыг орчуулах нь ихэвчлэн муутгах талтай байдгыг хэлэх юун.
Тухайлбал Линус Торвалдс гэдэг Финланд залуу(Линуксийг үндэслэгч) код доторх тайлбараа Англиар бичдэг. Дэлхийн бөмбөрцгөөр тархсан Линукс хөгжүүлэгчдийн сүлжээг бий болгоход түүний Англи хэлний чадвар нөлөөлсөн нь гарцаагүй. Иймд англиар зөвхөн ярих бус, бичиж сурах нь чухал. Англиар тэгж их ярихгүй байж болно, харин бичих нь бол зайлшгүй.
Соёл
Ихэнх соёлуудын адил Хакерын соёл нь нэр алдар дээр тулгуурладаг. Гэхдээ хир их мөнгө төгрөг хандивласнаараа бус, хир сайханаараа бус, бусдыг хүссэн зүйлээр нь хангасанаараа бус, харин хир ихийг харамжгүй түгээснээр үнэлэгддэг.
Нээлттэй эх бүхий програм хангамж хийх. Бусад хакеруудад хэрэгтэй, сонирхолтой, нээллтэй эх бүхий прогам бичих бол хамгийн түгээмэл, уламжлалт хандлага юм. Өөрийн чинь програм хир сайн, хир өргөн тархацтайгаар нэр хүнд чинь үнэлэгдэнэ. (Ихэнх хүмүүс үнэгүй програм, нээлттэй эх бүхий програм 2-ийг ялгадаггүй тал бий. Эх нь хаалттай бол үнэгүй ч байсан хакерууд хэрэглэдэггүй бөгөөд, ер нь хаалттай эх бүхий програмууд үнэтэй байдаг.)
Нээлттэй эх бүхий програм хангамжийг тэстлэхэд туслах. Програм хангамжын хөгжүүлэлтийн ихэнх цаг тэстлэх, дэбаг хийхэд зарцуулагддаг. Ийм учраас нээлттэй эх бүхий програм хангамжийн эхний рилийзүүдэд тэстэрүүд маш ихээр хэрэгтэй байдаг. Хэрвээ нээлттэй эх рүү орж эхлэж байгаа бол програмын шинэ хувилбаруудыг хэрэглэж алдаа сэв олоход туслах юм бол маш их тус хүргэж байгаа гэж үзнэ.
Хэрэгцээтэй мэдээллийг цацах. Хүн ямар нэг байдлаар хэрэг болохуйц мэдээллийг вэбээр ч юмуу тараах нь мэдлэгэжсэн эриний хакеруудын үүрэг. Зөвхөн энгийн мэдээлэл тавиад зогсохгүй, асуултад хариулах, зөвлөгөө гаргах гэх мэтээр хэн нэгэнд хандсан, үнэхээр хэрэг болох мэдээлэл чухал.
Дэд бүтэцээр дэмжих. Хакерийн соёл бол сайн дурын үндсэн дээр явагддаг. Сервэрийн хостинг, мэйл листийн удирдлага тордлогоо, хэлэлцүүлгийн сайт ажиллуулах, архивийн сайт ажиллуулах гэх мэт хүнд шууд ажиглагдахгүй боловч хэн нэг нь хийхгүй бол болохгүй ажлууд байдаг. Эдгээрийг хэн нэг нь хийх л ёстой.
Хакерийн соёлыг дэлгэрүүлэх. Эцэст нь хакерийн соёлыг дэлгэрүүлэхэд хувь нэмрээ оруулж болно. (Жишээлбэл энэ мэтээр хакерийн тухай таниулах :-)) Хакеруудад толгойлогч гэж байдаггүй, харин өөрийн баартууд, хөгшчүүд, гавьяатнууд, түүхчид бий. Гэхдээ хэт их алдар нэрээ дуурсгахыг хичээх нь аюултай, харин түүний оронд өөрийн чадварыг хөгжүүлж, гадагш түгээх мэдлэг мэдээллээ арвижуулах нь дээр.
Стилүүд
Хакеруудад түгээмэл байдаг стилүүдэд дараах зүйлс байж болох.
- Төрөлх хэл дээрээ сайн бичдэг. Ихэнх прогамчид төрөлх хэл дээрээ тийм ч сайн бичдэггүй бол ихэнх хакерууд сайн бичдэг.
- Тулааны урлаг. Тулааны урлагыг зодолдохолд хэрэглээд байхгүй ч, азиас гаралтай тулааны урлагуудын сэтгэлгээний зарчим нь хакеруудынхтай дүйдэг.
- Бясалгал. Хакеруудын дунд Зэн их дэлгэрсэн байдаг. Гэхдээ бусад бясалгалын салбарууд ч зүгээр байх.
- Хөгжим. Хөгжим сонсож сурах. Хөгжмийн аль нэг урсгалыг сонирхох. Хөгжмийн ямар нэг зэмсгээр тоглох.
Цээрлэвэл зохих зүйлс
- Нээх сүртэй, эсвэл ойлгомжгүй нэр сонгож хэрэглэхгүй байх. Хакерууд өөртөө бардам байдаг бөгөөд, хийсэн зүйлийнхээ хариуцлагыг даах чадвартай. Иймээс тэд кракерууд шиг d00dz гэх мэт нэр ашигладаггүй.
- Хэлэлцүүлэг юмуу, мэйл листээр хэрүүл шуугиан дэгдээхгүй байх. Шудрага бөгөөд шулуун бай, хэн нэг нь гоочлох гээд байвал, тайван хандаж, хөгийн зүйлд цагаа бүү гарзад.
- Өөрийгөө хакер гэж өргөмжлөхгүй байх. Ийм хүмүүс ихэнхдээ хакер биш байдаг бөгөөд, хакерууд үүнд дургүй. Бусад хүмүүс ч тэднийг хакер гэж дуудахад дургүй. Гол учир нь нэрэндээ биш гэдгийг ойлго.
- Баахан алдаатай мэйл бичихгүй байх.
Raymond ахын зөвлөгөө ийм байна, сонирхож байвал үргэлжлэлийг нь уншаарай.
Хакерууд хэрхэн ажилладаг вэ?
Хэрэв та менежер байгаад хэн нэг хакерийг ажилд авсан бол нэг бол маш их ажил хийлгэнэ, үгүй бол юу ч хийлгэж дөнгөхгүй. Дунд зэрэг гэж үгүй. Учир нь хакерууд ажлыг мөнгөнд татагдаж хийдэггүй, сонирхолтой зүйлээ л хийнэ. Сонирхлоороо хийж байга юмаа хэнээр ч заалгахгүй, чанарын өндөр түвшинд, хурдан хугацаанд хийдэг. Эндээс л нэг хүн арав, зуун хүний ажлыг хийдэг тухай яриа гарсан биз. Ажлын орчны хувьд ихэнх хакерууд гэртээ ажиллах дуртай, учир нь түүний ажил бол зөвхөн ажил биш амьдралынх нь хэв маяг болсон байдаг - идэж ууж, амарч, бясалгаж байхдаа ажилладаг. Иймд хэт хатуу дүрэм журам, чимээ шуугиантай орчинд ажиллах дургүй, чөлөөтэй, тайван, тухлаг орчин эрхэм чухал байдаг гэнэ.
Төгсгөл
Хакер болно гэдэг амаргүй, гэхдээ жинхэнэ хакер болоход заавал олон жил шаардлагагүй ч байж болох. Хамгийн гол шинж чанар болох, нээлттэй, эрх чөлөөтэй байдал болоод өөрийгөө хөгжүүлэх ур чадварт шүтсэн хадлага, цөхрөлтгүй зүтгэл нь л тэднийг үнэ цэнэтэй болгож байдаг бизээ.
Жинхэнэ хакерийг олно гэдэг амаргүй, олсон ч удирдаж жолоодоно гэдэг хялбар биш. Учир нь тэд бол урчууд, онгодоороо туурвигчид, түүнийг нь жолоодоход тун хэцүү. Харин тэднээс гарах санаа, сонирхол, ажлын таашаал дээр нь тулгуурлаад зөв зохицуулалт хийж гэмээнэ аль аль тал асар их ашиг тусыг хүртэж чадах нь гарцаагүй.
Эх сурвалжууд
- How To Become A Hacker - Хэрхэн хакер болох вэ?
- The Meaning of ‘Hack’ - Хак гэдэг хаанаас үүссэн ямар утгатай болохыг түүхэн баримттай нь тайлбарлсан.
- Great Hackers - Хакерууд буюу мэргэшсэн програмчидын тухай Поллын бичвэр.
- How to be a Programmer: A Short, Comprehensive, and Personal Summary - Сайн програмчин болоход юу сурах вэ?
- The Hacker FAQ - Ажилтан тань хакер бол түүнтэй хэрхэн ажиллах тухай асуултуудын хариу.