مهندسی معکوس در یادگیری برنامه نویسی

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
در این مقاله قصد داریم ببینیم که به چه شکل می توان اقدام به فراگیری یک زبان برنامه نویسی به شکلی که دلهره آور نبوده و در عین حال به سادگی قادر خواهیم گشت تا آن را درک کنیم نماییم. اگر هنگامی که شما در حال یادگیری یک زبان برنامه نویسی جدید هستید، یک یا دو زبان برنامه نویسی را از قبل بلد باشید یک راه ساده برای درک بخشی از کدی که قبلا آن را ندیده اید استفاده از مهندسی معکوس است که Breaking Stuff (از هم باز کردن یک مساله) نامیده می شود که کمتر به اهمیت این روش برای یادگیری اشاره می شود (مخصوصا در محیطهای آموزش رسمی)، درحالی که این روش برای یادگیری بسیار تاثیر گذار است. در واقع، فهمیدن یک کد بدون آموزش، یک مهارت ضروری برای برنامه نویسان است چون برای برنامه نویسان این موضوع رایج است که کدی را ادامه بدهند که خود آن را ننوشته اند.

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

یادگیری روش Breaking Stuff احتمالا برای شما هم پیش می آید تا مجبور به استفاده از روش مهندسی معکوس بشوید. مثلا برای یادگیری برنامه نویسی سه بعدی در مرورگر با استفاده از Three.js ( یک کتابخانه از یک API پیچیده تر از زبان جاوا اسکریپت به نام WebGL) منابع آموزشی ضعیفی وجود دارد در حالی که خود Three.js یک کتابخانه ارزشمند است. حال چگونه می توان برنامه نویسی را بدون استفاده از منابع راهنما یاد گرفت؟ مهندسی معکوس تنها راه آن هست. کد زیر یک نمونه کد برای ایجاد نور است:

var light = new THREE.PointLight(0xffffff);
light.position.set(-100,200,100);
scene.add(light);
اگر شما تجربه برنامه نویسی را داشته باشید باید بتوانید کد بالا را بخوانید و بیشتر اتفاقاتی که در این قطعه کد می افتد را بفهمید. اگر عملکرد بخشی از کد را متوجه نمی شوید یا در مورد نحوه کار کردن آن مطمئن نیستید باید با تکنیک های زیر را آزمایش کنید:

1. خطی را پاک کنید تا بفهمید آیا وجودش برای رسیدن به هدف برنامه شما نیاز است یا خیر.

2. یک خط را برای درک بهتر کارکرد آن حذف کنید. حتی اگر فکر می کنید کار یک خط را می دانید، این کار را برای اثبات حدس خود انجام دهید.

3. مقدار متغیرها و توابع ریاضی را تغییر دهید تا ببینید آیا می توانید در آنها تغییری ایجاد کنید تا به هدف مورد نظر شما برسند.

4. نظم خطوط مختلف برنامه را به هم بریزید تا متوجه شوید که ترتیب خطوط برای رسیدن به هدف نهایی نرم افزار اهمیت دارد یا خیر.

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

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

برخی موضوعات مشابه

بالا