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

در این مقاله قصد داریم ببینیم که به چه شکل می توان اقدام به فراگیری یک زبان برنامه نویسی به شکلی که دلهره آور نبوده و در عین حال به سادگی قادر خواهیم گشت تا آن را درک کنیم نماییم. اگر هنگامی که شما در حال یادگیری یک زبان برنامه نویسی جدید هستید، یک یا دو زبان برنامه نویسی را از قبل بلد باشید یک راه ساده برای درک بخشی از کدی که قبلا آن را ندیده اید استفاده از مهندسی معکوس است که 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 کار کرده باشید، این را به عنوان یک مقدار رنگی می شناسید حتی اگر قالب بندی آن کمی متفاوت باشد. مهندسی معکوس تنها راه برای یادگیری نیست و باید توسط محیط های رسمی تر در بخش هایی که در دسترس است بیشتر حمایت شود. در واقع اینطور استدلال می شود که آموزش ها ارزشمند تر می شوند زمانی که برخی از زمینه های یادگیری برای شما ترسیم بشوند. اگر کار کردن مستقیم روی مشکلات به یادگیری بهتر شما کمک می کند این روش یکی از سریع ترین روش ها برای درک بهتر است. نظر شما درباره مهندسی معکوس و روش Break Stuff چیست؟ آیا قبلا از آن برای درک هدف بخشی از کد استفاده کرده اید؟ نظرات خود را با ما در میان بگذارید.

0







از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)