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

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

اگر هنگامی که شما درحال یادگیری یک زبان برنامه‌نویسی جدید هستید، ۱ یا ۲ زبان برنامه‌نویسی را از قبل بلد باشید، یک راه ساده برای درک زیر و بم سینتکس زبانی که قبلاً آن‌را ندیده‌اید استفاده از مهندسی معکوس است که 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);

اگر شما تجربهٔ برنامه‌نویسی داشته باشید، باید بتوانید کد بالا را بخوانید و بخش قابل‌توجهی از اتفاقاتی که در این قطعه کد می‌افتد را بفهمید؛ اگر عملکرد بخشی از کد را متوجه نمی‌شوید یا در مورد نحوهٔ کار کردن آن مطمئن نیستید، باید تکنیک‌های زیر را آزمایش کنید:

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

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

به‌طورکلی، اگر کار کردن مستقیم روی مشکلات به یادگیری بهتر شما کمک می‌کند، این روش یکی از سریع‌ترین روش‌ها برای درک بهتر است. نظر شما دربارهٔ مهندسی معکوس و روش Break Stuff چیست؟ آیا قبلاً از آن برای درک هدف بخشی از کد استفاده کرده‌اید؟ نظرات خود را با ما و دیگر کاربران سکان آکادمی در میان بگذارید.



فرنوش فهیم