خوندن کد به چه شرطی

قبلا راجع به چرایی عدم توانایی نوشتن یک کد ساده نوشته بودم  . در ادامه اون اینبار به یک مرحله جلوتر میخوام بیام و راجع به نیاز ها و عادت ها بگم .

یک ماجرای قدیمی هست که میگه : رابطه بین برنامه نویس ها با غیر برنامه نویس ها توی اینه که برنامه نویس ها دیگران رو کسایی میبینن که هیچ درکی از حرفاشون که در قالب کد نوشته میشه ندارن و در کنار اون دیگران هم برنامه نویس هارو کسایی میبینن که اصلا اهل این دنیا نیستند .

این ماجرا تا حدودی درسته ، چرا که حرف هایی که من به عنوان برنامه نویس میزنم در قالب زبانی قابل فهم برای کامپیوتر نه برای مردم عادی پس این مشکل پیش میاد . اما مسئله به همین جا ختم نمیشه و گاهی که نه، خیلی پیش میاد که دو نفر برنامه نویس هم حرفاشون برای هم قابل فهم نیست ؛ چرا ؟ چون دستورات و مسائل برنامه نویسی روش های مختلف داره تا حل بشه ، پس تا دونفر بتونن به یک نقطه نظر مشترک برسن مدتی زمان میبره .

این قضیه برای هر تجارتی قابل قبول نیست ، پس راه حل های مختلفی بوجود اومد . این راه حل ها همون استاندارد های مختلف برنامه نویسی اند مثل نوشتن توابع که بازم فقط خاص خود برنامه نویس هاست پس برای افراد عادی چی ؟

مستند سازی و نوشتن کامنت :

تصور کنین که شما به عنوان برنامه نویس برای یک شرکت استخدام شدین و قرار قسمتی از بیزینس اونها به کمک شما جلو بره . اول از همه باید بتونید با پروژه ای که قرار کمک به پیشرفتش کنید ارتباط برقرار کنید .

توی دنیای پر سرعت امروز این امکان وجود نداره که افراد تیم برنامه نویس بخواد به شما درباره کد های نوشته شده توضیح بده پس باید بتونید خودتون بخونین .

درسته که درک کدهای نوشته شده قبلی توسط شما از مهارت های برنامه نویسی به حساب میاد اما سرعت درک هم پارامتری که نباید فراموشش کرد ، پس نیاز به نوشتن کامنت اینجاست که بوجود میاد.

از طرفی تصور کنید که رئیستون از شما میخواد که پروژه ای که نوشتین و براش توضیح بدین و اون هم میخواد که توضیحات شما رو برای روسای بالا دستیش توصیح بده ، راه حل چیه ؟

شما باید بتونید همون کامنت هایی که نوشته شده قبلا داخل پروژه و یا خودتون برای خوانایی بهتر به پروژه اضافه کردین در قالب یک فایل نوشتاری آماده کنید و اونو به مدیریتون تخویل بدین . مستند سازی علاوه بر اینکه توانایی شما رو در ارائه جربیاتتون افزایش میده بهتون کمک میکنه که در صورتی که جایی در طول پروژه به مشکل برخوردین اونو به سرعت برطرف کنید .

یادتون باشه :

  • برای نوشتن کامنت : قرار نیست چیزه پیچیده ای بنویسین ، فقط کافیه که دستوراتی که در قالب کد نوشتین بصورت متن برای خودتون بنویستن تا نفر بعدی که کد شما رو میخونه هر چقدر هم که خنگ باشه و یا سر رشته ای از کدنویسی نداشته باشه ، بتونه کد شما رو بخونه و درک کنه .
  • برای مستند سازی : هم به همین صورت قرار نیست که شما چیزی پیچیده ای بنویسین ، فقط کافی که کامنت هایی که نوشتین و بصورت دسته بندی و مرتب در قالب یک فایل نوشتاری آماده کنید ، در ضمن یادتون باشه که برای مسند سازی هرچی که به جزییات اهمیت بدین مستندی که آماده می کنید کاربردی تره .

نتیجه گیری :

به عنوان یک برنامه نویس تازه کار تلاشتون بکنید که حتما مهارت نوشتن کامنت و مستند سازی درون خودتون ایجاد و تقویت کنید . توی دنیای برنامه نویسی درسته که ، کسی که بیشترین توانایی در رابطه با استفاده از تکنولوژی های جدید تر داشته باشه [ به زبون ساده تر ، کسی که بتونه خودشو با تکنولوژی های جدید تر سریع تر تطبیق بده ] موفق تره اما نباید فراموش کرد که بعضی از کارها جز صفات برنامه نویس های موفقه نه تواناییشون .

 

 

 

چرا روبی ؟ قسمت صفر

کسایی که منو میشناسن میدونن که اصولا علاقه عجیبی دارم به این که چیزای مختلف با توجه به نیازم امتحان کنم .یکی از همین تجربیاتی که اخیرا بشدت بهش جذب شدم  خوندن در رابطه با فلسفست .

وقتی حرف از فلسفه میشه اوصولا دیدگاه خیلی مصطلحی پیش میاد اینکه فلسفه سخته  ، جذاب نیست ،نمیشه فهمیدش و ….

اما به قول برنامه نویسی که میگفت برای یاد گرفتن برنامه نویسی جدا از علاقه باید از زبان های برنامه نویسی ساده هم برای شروع  استفاده کنید . اصلا شاید دلیل توسعه زبان های برنامه نویسی هم همین باشه .

اصل تورینگ میگه :

هرکاری و که یک ماشین هوشمند بتونه انجام بده ، قطعا یک ماشین هوشمند دیگه هم میتونه انجامش بده ، فقط با یک هزینه متفاوت

مثال ساده ترش میتونه این باشه که کاری که شما با یک زبون سطح بالا مثل روبی ، پایتون ، جاوا ، سی پلاس پلاس … میتونید انجام بدید قطعا با زبان اسمبلی هم میتونید انجام بدین اما چرا هیچ کس سمت اسمبلی نمی ره دیگه ؟
برای فهمیدن فلسفه لزوما نباید از کتاب های سنگین مثل نظریات هایدگر شروع کرد . برای شروع میشه از فلسفه علم شروع کرد ، فلسفه علم و به جرات میتونم بگم که از ساده ترین و در عین حال جذاب ترین قسمت های فلسفه به حساب میاد.

اوصولا دونستن ” فلسفه هرچیزی به درک بهتر اون کمک میکنه ” . این در مورد یادگرفتن برنامه نویسی کمک زیادی بهتون میکنه ، خصوصا زمانی که در ابتدای راه هستین و دنبال انتخاب مسیر آیندتون .

چرا روبی :

از قضا از زمانی که شروع کردم به خوندن در رابطه با روبی اکثر مستندات و آموزش هایی که برای روبی پیدا کردم اشاره به مصاحبه ای از یوکیرو ماتسومتو طراح زبان روبی داشتن که در رابطه با فلسفه زبان روبی  توضیح میده .

من دلیل زو آوردنم به سمت روبی به خاطر پروژه ای کاملا شخصی بود که بزودی منتشرش میکنم ، اما این روزا که حرف از برنامه نویسی توی بازار مشاغل ما خیلی زیاد شده و مشکل حیلی از بچه های تازه وارد اینه که حالا چه زبونی و یاد بگیرم تا به دردم بخوره ؟

من این مصاحبه رو توی چند قسمت ترجمه قرار میدم همین جا ، نه به خاطر اینکه بگم روبی زبون خوبی و حتما اونو یاد بگیرین نه ، این مصاحبه بیشتر از اینکه فقط تعریفی از یک زبون خاص باشه دید کسایی و که میخوان تازه شروع کنن به یاد گرفتن و باز میکنه تا بهتر بتونن انتخاب کنن .

چرا من نمیتونم حتی یک کد ساده بنویسم؟

به عنوان کسی که فکر میکنه تا حدودی برنامه نویسی میدونه ، یکی از عمده مشکلاتی که در ابتدای باهاش روبرو بودم میخوام با شما به اشتراک بزارم .
اکثر بچه های کامپیوتر خصوصا نرم افزاری ها که تازه از دانشگاه شروع میکنند
به کد نویسی کردن به یه مشکل خیلی بزرگ مواجه میشن ،

چرا من نمیتونم حتی یک کد ساده بنویسم؟

وقتی پای حرف بچه های کامپیوتری بشینید معمولا چنتا جمله رو زیاد میشنوید :

  • من اصول اولیه رو سرکلاس یاد گرفتم پس چرا نمیتونم  یه برنامه بنویسم ؟
  • من تئوری ها رو بلدم اما نمیتونم از اونها توی کد استفاده کنم ؟
  • من حلقه ها رو میشناسم اما نمیدونم کی باید از اونخا توی کد هام استفاده کنم ؟
  • ….

[در بین این سه تا ، سوال اول از همه بیشتر معروف شده ]

وقتی که دانشجو ها سر کلاس در حال یاد گیری یک زبان برنامه نویسی هستند و یا
اونهایی که تسلط بیشتری دارند و شروع به خوندن کتاب های مرجع میکنند همه این
موارد به دانشجو امکان پیشرفت میده یا حتی در مواقعی دقیقا میگند که چه چیزی و
دانشجو باید تایپ کنه اما وقتی که دانشجو بخواد خود یک برنامه رو تایپ کنه مسلما
احساس ضعف میکنه چون دیگه هیچ اشاره و یا راهنمایی وجود نداره که بخواد از اون
استفاده کنه .

نتیجه راهنمایی بیش از حد این میشه که دانشجو سینتکس(syntax) برنامه رو بدون
یادگرفتن مفاهیم برنامه نویسی یاد میگیره.سینتکس متنیه که شما برای یک زبان
برنامه نویسی خاص اونو مینویسید و اینکه سینتکس برای هر زبان برنامه نویسی
متفاوته .چیزی که شما واقعا بهش نیاز دارید دونستن مفاهیمی مثل ، حلقه ها
تکرار ، ارث بری و … . مفاهیم به شما اجازه میدند که کد واقعی بنویسید . وقتی
کسی میگه که در مورد مثلا حلقه های بلده اما نمیدونه کی باید از اونها استفاده کنه
، به این معنی که سینتکس (نحو) بلده اما اصلا مفهوم تکرار و درک نمیکنه .

من نمی گم که راهنمایی بده ! وقتی که شما شروع به یادگیری میکنید، قطعا نیاز
به کسی دارین که در طول مسیر هدایتون کنه. با این حال، دریافت راهنمایی
بیش از حد به عنوان یک مبتدی می تونه به شما تصور اشتباه بده که برنامه نویسی
خیلی کاره راحتیه و این بسیار نا امیدکننده می شیه زمانی که دانشجو نمی تونه
یک برنامه به تنهایی بنویسه.

حرف های واقعی :

این قسمت مقاله میخوام یکم از طعم واقعی این عشق براتون بگم پس خودتون رو
آماده کنید .اگر حس میکنید که مفاهیم و بلد هستید اما نمیتونید بدون راهنمایی یه
برنامه ساده بنویسید ، از این میترسم که احتمالا اصول اولیه رو درک نمیکنید .
شما روی لبه ای که مدرسه واکینگ کد بهش میگه صحره سردرگمی وایستادید :

درک دردناکیست وقتی که آموزش ها به پایان میرسد و دانشجو
احساس میکند که هنوز توانایی لازم برای مستقل عمل کردن را ندارد.
چالش اصلی پیش رو در اشکال زدایی است نه حل کردن درست مسئله

نکته: یک محیط برنامه نویسی واقعی ایجاد کنین :

حالا وقتش رسیده تا یه محیط برنامه نویسی واقعی نصب و پیکر بندی کنین.
هر زبان برنامه نویسی نیاز به یک محیط متفاوت داره.

اول، شما نیاز به یک ویرایشگر متن یا IDE (محیط توسعه یکپارچه) دارین.
محبوبترین ویرایشگر متن که ویژه زبان برنامه نویسی ایست که درحال یادگیری
اون هستید ، پیدا و نصب کنین .
در مرحله دوم، شما باید چگونگی اجرای یک فایل حاوی کد را یادبگیرین.

اگر از یک IDE به عنوان ویرایشگر متن خود مثل Visual Studio، Xcode یا Eclipse
استفاده می کنید، این قابلیت (مرحله دوم )در IDE وجود داره.

اگر شما از IDE استفاده نمی کنین، احتمالا باید یاد بگیرین چطور کد خودتونو رو از
خط فرمان اجرا کنین. به دنبال دستورالعمل “شروع به کار” برای زبان برنامه نویسی
خودتان برین و همچنین در YouTube برای فیلمهای آموزشی که می تونید اونها رو
دنبال کنین و بررسی کنین.

وقتیکه تونستین کد رو وارد کنین، اونرو در یک فایل ذخیره کنین، و فایل رو اجرا کنین، بعد برنامه شما آماده برای اجراست. برنامه نویسای حرفه ای هر روز به این صورت عمل میکنن.

نکته: برنامه ها را از ابتدا بسازین:

شما باید شروع به نوشتن کد خود بدون دستورالعمل کنین . با یک فایل خالی شروع کنین
و هر خط کد خود را تایپ کنین.

این در ابتدا بسیار دشواره . وقت زیادی برای اشکال زدای صرف می کنین و سعی می کنین پیام های خطا را درک کنین، اما این یک نکتست. هر بار که شما مشفول بررسی و رفع یک خطا هستین، تجربه واقعی برنامه نویسی را بدست میارین. اینطوریکه یاد می گیرید و رشد می کنین.

شما می توانین به کد دیگران هم نگاه کنین، اما اونرو کپی نکنین و داخل کد خودتون نگذارید. اگر در کد وارد کنین و اجرا نشه، نمی توانین اونرو رفع اشکال کنین. کد دیگران را تجزیه و تحلیل کنین، کمی درباره نحوه کار آن یاد بگیرین، بعد خودتان اونرو بنویسین.

نکته: از کم شروع کنین :

این امر نسبتا شایع است که سعی کنید چیزی فراتر از سطح مهارت خود را بدست بیارید. این لزوما بد نیست اگر  انگیزه پیدا کنید، اونوقت شمارو  به یادگیری بیشتر علاقمند می کنه، از جمله این واقعیت است که اولین پروژه واقعی شما سال ها طول میکشه تا تموم بشه. مهم نیست که چقدر زمان میبره، تا زمانی که در حال یادگیری هستین در طول راهین.

از طرف دیگه، اگر زمان شما از دست رفته، پیشرفت نکرده باشین، باید با یک پروژه بسیار کوچکتر شروع کنین. در ابتدا، شما معمولا به برنامه های مبتنی بر متن بپردازین چرا که آنها از هر چیز دیگری آسونتر هستن. همه چیزهایی که باید بدونید برای ایجاد یک برنامه مبتنی بر متن چگونگی نمایش یک رشته روی صفحه و نحوه دریافت رشته ای است که کاربر آن را تایپ می کنه.

من می دونم، برنامه های مبتنی بر متن ، گرافیکی و سه بعدی نیستن. شما می دونید که چگونه همه می گند که ، شما نیازی به دونستن ریاضی برای برنامه  نویسی ندارین؟ خوب این برای برنامه نویسی گرافیک 3D درست نیست. شما نیاز به درک مفیدی از هندسه، جبر خطی، و کمی از حساب دیفرانسیل و انتگرال دارین.

بسته به نوع زبان برنامه نویسی که یاد می گیرین ،حتی یک GUI معمولی با دکمه ها و جعبه های متن هم می تونه دشوار باشه . این واقعا نیازی به دونستن ریاضی نداره، اما به احتمال زیاد نیاز به یک درک کامل از برنامه نویسی شی گرا و نمودارهای جسمی پیچیده داره.

توصیه من برای مبتدی ها اینکه که بازی های مبتنی بر متن را برای مدتی بنویسن. چند بازی مثل “حدس زدن شماره”، “مسابقه چند گزینه ای” و “تیک تاک” . سعی کنین ماجراجویی کنید.

از این پروژه ها برای یادگیری تمام ویژگی های زبان برنامه نویسی انتخاب شده خود استفاده کنین.

نکته: زیاد برنامه نویسی کنین :

برنامه نویسی یک تمرین صرفا نظری نیست. شما نمیتونین کتاب بخونین، فیلمها را تماشا کنین و جواب آزمونها را پیدا کنین، بعد انتظار داشته باشین بتونین برنامه های پیچیده بنویسین. برای یادگیری نحوه نوشتن کد، شما باید زیاد کدنویسی کنین.

کمی شبیه نجاریه. شما می تونین همه چیزهایی را که دوست دارین در مورد نجاری بخونین، اما خوندن تنها به شما مهارت لازم برای ساخت یه میز رو نمیده. اگر واقعا می خواین یاد بگیرین که چطور یه میز  بسازی، باید چوب، یک اره و  چسب ها را اماده کنین و در واقع تلاش کنین تا یه میز  بسازین. اولین میز شما احتمالا وحشتناک میشه. بنابراین شما باید تئوری ها رو بخوانین یا مشاوره بگیرین از یه نجار واقعی . میز دوم هنوز شاهکار نیست، اما بهتر از اولین تلاش شماست. اگر میزهای خود را نگه دارید و بارها تلاش کنید در نهایت شما یک میز دلخواه خواهید داشت.

برنامه نویسی هم همینطوره، در اون شما باید نرم افزار های مختلف رو برای به دست آوردن مهارت بنویسین. اولین برنامه ای که می نویسین زیاد بدرد نمیخوره و احتمالا کد کثیفی داره اما مهم نیست. بعضی از نظریه ها را بخوانین، راهنمایی دریافت بگیرین و یک برنامه جدید ایجاد بنویسین. هر برنامه ای که می نویسین باید بزرگتر و بهتر از گذشته باشه. این مراحل را برای مدت زمان طولانی تکرار کنین و به متخصص تبدیل بشید.

نکته : راهنمایی بخواید :

اگر سعی کردین مشکل خودتون رو برای بیش از یک ساعت حل کنین اما به جواب نرسیدین ممکنه زمان برای درخواست کمک باشه.

بعضی از دانشجوها بلافاصله بدون صرف وقت برای حل مشکل خودشون از دیگران کمک میگیرن. این امر به طور کلی در جامعه برنامه نویسی مورد توجه قرار گرفته . مردم ممکنه به شما بگن که به WhatHaveYouTried.com مراجعه کنید.

دانشجوها دیگه هرگز حاضر به دریافت کمک نیستن. این احتمالا یادگیری اونها رو کاهش می ده. اگر سعی کردین مشکل خودتون رو حل کنین، اما به هیچ  نتیجه ای نرسیدین، حتما  درخواست کمک کنین.

با این همه، پاسخ کسی رو به سوالات خودتون، کپی نکنین. جواب را تجزیه و تحلیل کنین و علت خطای خودتون رو یاد بگیرین. به این ترتیب، وقتی که شما با یه خطا  دوباره روبرو می شین، از قبلا می دونین که چطور اونرو  رفع کنین.همیشه سعی کنین مشکل خودتون رو برای اولین بار در گوگل جستجو کنین.

نکته : از راه درست درخواست کمک کنین :

مبتدی ها اغلب نمی خوان سؤالات خودشونو مطرح کنن، چراکه تجربیات اونها در مورد پرسش ها در جامعه برنامه نویسی بسیار دور از انتظارون بوده. اگر سوال خودتونرو به روش درست مطرح کنین، تجربه بهتری پیدا میکنین.

  1. پیام خطا دقیق خود را در جامعه قرار  بدین این مهم ترین عنصر اطلاعاته. اغلب مردم سعی نمی کنن به سؤال جواب بدن مگر اینکه پیام خطای دقیق را ببینن.
  2. اگر پیام خطایی وجود نداشته باشه، توضیح بدین که چه اتفاقی قرار بیفته  و چه اتفاقی افتاده . چیزی شبیه به “من انتظار داشتم که خروجی ۵ باشه، اما در واقع خروجی ۷ شد”. اغلب مشکل در کد شما نیست، در انتظار شماست. اگر شما چیزی را که انتظار نداشتین توضیح ندین، با جواب هایی مثل “کد به نظر میرسه درسته” اما “مشکل چیه؟” روبرو میشین.
  3. کد خراب خود را در جامعه قرار بدین. بدون دیدن کد جواب دادن خیلی سخت میشه.اونرو در اختیار دیگران قرار بدین، اگر اون خیلی بزرگ نیست، چرا که دیگران  کد شمارو برای بررسی مشکل اجرا خواهند کرد. اگر کد بیش از حد بزرگه  اون رو در ،  Github Gist یا Pastebin.com بگذارین، بعد لینک رو به سؤال خودتون اضافه کنین.
  4. کد خود را به درستی فرمت کنید ، کد خودتون رو مثل متن معمولی قرار ندین. یاد بگیرین چطور کد خودتون رو به سادگی فرمت کنین تا بتوانین اونرو بخونین.
  5. آنچه که قبلا سعی کرده اید را بگین. این به دیگران نشون میده که شما قبلا تلاش کردین.
  6. سعی کنید از اصطلاحات صحیح استفاده کنین. این همیشه امکان پذیر نیست، چرا که شما هنوز هم تمام اصطلاحات را یاد می گیرین، اما بهترین شات را به در جامعه قرار بدین. تلاش کنین که شرایط مشترک رو یاد بگیرین و از اونها به درستی استفاده کنین.

نتیجه :

برنامه نویسی سخت ، واقعا سخته. و اگر شما فقط از طریق کلاس های دانشگاه و یا آموزشگاه ها به دنبال یاد گیری باشین ، این کار ممکنه برای شما خیلی ناخوشایند بشه.

یک محیط برنامه نویسی واقعی را با یک IDE یا یک ویرایشگر متن تنظیم کنین. قبل از رفتن به پروژه های بزرگتر و پیچیده، برنامه های مبتنی بر متن را بنویسین تا همه ویژگی های زبان برنامه نویسی انتخاب شده رو یاد بگیرین. خودتون تمام کدهای خودتون رو بنویسین. ابتدا کد رو بدون کپی کردن وکمک گرفتن از افراد دیگر بنویسین.

زیاد کد بنویسین روش های مختلف را بخونید، خواندن، کد کردن، خواندن، کد کردن، خواندن و غیره و در نهایت شما رو حرفه ای میکنه.

وقتی که گیر کردین، سعی کنین مشکل خودتونو حل کنین، اما اگر نتونستین نگران نباشین کمک بخواین. اگر سؤال کنین، سریع تر یاد میگیرین. برای یک تجربه لذت بخش تر، به یاد بیارین که چطور از راه های صحیح سوال بپرسین، چرا که جامعه برنامه نویسی دارای چند ویژگی وحشتناکه.

از همه مهمتر، از آن لذت ببرید و ادامه دهید!

پی نوشت :

این نوشته برداشتی آزاد  با اندکی تغییر از کتاب برنامه نویسی برای مبتدی ها نوشته تام دالینگ بود .

هکر ، امنیت ، ابزار

هکر

ما اصولا در دنیایی زندگی میکنیم که به خاطر سرعت زیادش در همه جوانب زندگی خیلی تکراری میشه و از طرفی پول در آوردن برای یک زندگی راحت لازمش همین کارای تکراریه .
کسایی که با کامپیوتر یکم بیشتر از بقیه آدما درگیر میشن مخصوصا اگر جوونتر هم باشند به شدت دنبال هیجانند . این هیجانی که وسوسه پول درآوردن یه دفعه ای هم همراهیش میکنه در کنارش جلب توجه هم با خودش به همراه میاره .

در اصل بیشتر کسایی که میخوان به یک هکر تبدیل بشن دلایل یکسانی دارند مثل ؛ پول ، قدرت ، شهرت و حتی سکس .
اما غافل از اینکه دنبال کردن هرکدوم و یا همه این خواسته ها بدون توجیه امنیت هم برای خودشون هم اطرافیانشون دردسر ساز میشه .

امنیت

وقتی حرف از امنیت میشه به این معنی شما باید بتونید درقبال هدفی که مورد حمله قرار میدید دفاع قابل قبولی داشته باشید . به قول قدیمی ها :

جواب های  ، هویه

قاعدتا هک کردن صفحه اجتماعی افراد هم دردسر زیادی داره هم سود کم درنتیجه هدفای بزرگتر همیشه جذابترن ، اما نکته ای که هست اینکه هدف بزرگتر قدرت تهاجم بیشتریم داره . اگر شما برای مثال سایت بانک و هک کنید شاید در ابتدا سود زیادی ببرین اما نهایت قضیه فقط دردسره .

ابزار

برای هک کردن به دوچیز نیازه :

  • دانش
  • تجربه

کسانی مثل استیو وزنیاک که یکی از اولین هکرها به حساب میاد دنیای امروز مارو ساخت ، اما کسی که دنبال هرکدوم از هدفای بالاست از ابزارها استفاده میکنه . ابزارهاییکه کارکردشون نمیشناسه و فقط میخواد که با اون به هدفش برسه .

هکر، امنیت، ابزار

هکر ، امنیت ، ابزار

بزرگی از دنیای گیک ها میگه :

خودتون ، خودتونو هک کنید ، قبل از اینکه هک بشید

[عجب جمله ای (: ] به نوعی درستم هم هست اگر شما مدیر یک سایت هستین و یا یک نرم افزار تحت وب نوشتین و میخواین اونو منتشر کنید درکنار این امر که درباه برنامه نویسی امن اطلاعات زیادی ندارین باید خودتون ، خودتونو هک کنید ، قبل از اینکه هک بشید .

یکی از ابزارهایی که به شما کمک میکنه تا امنیت شما تا حدودی افزای پیدا کنه نرم افزار وگا (vega) .

وگا یک اسکنر منبع آزاد و باز است و پلت فرم تست برای تست امنیت برنامه های کاربردی وب .
وگا (Vega) در پیدا کردن و تزریق باگ SQLi و کشف باگ XSS و افشاء اطلاعات حساس و آسیب پذیری های دیگه بسیار قوی عمل میکنه  و به زبان جاوا، مبتنی بر رابط کاربری گرافیکی نوشته شده، و قابل اجرا بر روی لینوکس، Mac OS و ویندوز ه.

هر اسکنر  یکسری قابلیت های خاصه که بقیه اسکنرها اون قابلیت رو ندارند. البته اسکنر وگا یک عیب اساسی داره و اون اینکه قابلیت گزارش گیری به شما نمیده ، اما مزیتی که در وگا اونو خاص میکنه مشخص کردن دقیق کد اشتباه در کدهای شماست .


پ ن :این نوشته از سری معرفی ابزارهای امنیتی قسمت اول

بیشتر :روش نصب وگا