تجربیات یک برنامه نویس



با ترجمه و اقتباس از مقاله آقای برت ویکتور - Learnable Programming

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

موضوعات مطرح شده در این سری از مطالب ، در محیط آنلاین آموزشی آکادمی خان و براساس زبان برنامه نویسی جاوا اسکریپت ( js ) و Processing نوشته شده که دارای ویژگی مثل live coding می باشد که به محض نوشته شدن کد ، خروجی آن قابل مشاهده میباشد .

برنامه نویسی

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

دیدن نتایج

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

تشویق و ترغیب یادگیرنده در استفاده از روش های قدرتمند فکر کردن

ایجاد امکان دیدن و فهمیدن جزئیات برنامه به یک یادگیرنده

آلن پرلیز ( Alan Perlis ) میگوید : " برای اینکه یک برنامه را بفهمید باید خود را جای انسان و ماشین قرار دهید و مثل انها فکر کنید "

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


سیستم برنامه نویسی 

هر سیستم برنامه نویسی دو بخش دارد . یک بخش آن محیط برنامه نویسی است که روی کامپیوتر نصب میشود و محیطی را برای کار کردن برنامه نویس ایجاد میکند و یک بخش نیز زبان برنامه نویسی است که روی مغز برنامه نویس نصب میشود . و با استفاده از ان با کامپیوتر ارتباط برقرار می کند . باید هر دو بخش سیستم برنامه نویسی براساس اصولی طراحی شود که قابلیت یادگیری داشته باشد . یعنی همان شعار Learnable-Programming که سیستمی را برای برنامه نویسی ترسیم خواهد کرد که ، یادگیرنده در جایگاه خود به عنوان یک انسان و از دیدگاه خود برنامه را تحلیل کرده و بسازد .
یک محیط برنامه نویسی قابل یادگیری باید به یادگیرنده اجاز دهد :
  1. کلمات را بخواند ( read the vocabulary ) - کلمات چه معنایی میدهند ؟
  2. جریان داده را دنبال کند ( follow the flow ) - چه اتفاقی چه موقع می افتد ؟
  3. وضعیت ها را مشاهده کند ( see the state ) - کامپیوتر چطور فکر میکند ؟
  4. با واکنش نشان داد بسازد ( create by reacting ) - از نقطه ای شروع کرده و بسازد 
  5. بصورت مفهومی بسازد ( create by abstracting ) - ابتدا پیاده سازی کرده و سپس تعمیم دهد
یک زبان برنامه نویسی نیز باید شامل موارد زیر باشد :
  1. هویت و استعاره ( identity and metaphor ) - چطور باید جهان کامپیوتر را با جهان خودمان ارتباط دهیم ؟
  2. تجزیه ( decomposition ) - چطور باید ایده های خود را به تکه های قابل فهم تجزیه کنم ؟
  3. ترکیب دوباره ( recomposition  ) - چطور باید تکه های ذهنی را بهم بچسبانم ؟
  4. قابلیت خوانایی ( readability ) - این کلمات چه معنایی میدهند ؟
سعی خواهم کرد در سری های بعدی مطالب هر بخش از ویژگی های محیط و زبان برنامه نویسی را که در بالا لیست شده بصورت مجزا توضیح دهم 

 


آخرین ارسال ها

آخرین جستجو ها


ربات های صنعتی یاسکاوا موتومن crm 16215132 در آن نیامده ایّام pahnekavirwe اخبار تکنولوژی shivarayaneht paradiseknow01 سلام هتل وب سایت سید مرتضی موسوی تبار