اگر بخواهم در چند کلمه خودم را معرّفی کنم باید بگویم: یک مدرّس زبان انگلیسی علاقهمند به فنّاوری و برنامهنویسی با پایتون
کمی بیشتر از ۱۰ سال پیش که شروع به یادگرفتن پایتون ۲.۵.۲ کردم، منابع فارسی منسجم خیلی کمی برای یادگیری خود آموز پایتون وجود داشت. برای همین سراغ منابع انگلیسی رفتم. در این راه به منابع رایگان انگلیسی جالبی رسیدم. نکتهٔ عجیب این بود که از این منابع تقریباً در هیچ وبگاهی به زبان فارسی چیزی گفته نشده.
در چند سال گذشته افراد زیادی (از جمله همکارها و فراگیرهای زبانم) از من دربارهٔ مسیر شروع برنامهنویسی و ادامهٔ آن از من سؤال میپرسیدند. من هم در کنار ارائهٔ دورنمای کاری، منابعی را که در اختیار داشتم به رایگان به آنها میدادم. ولی یک مشکل وجود داشت. بسیاری از منابع مانند آموزشهای edx و udemy (با فرض رایگان بودن) انگلیسی بودند. و خیلیها -که نوجوان هم بودند- انگلیسی را آن قدرها خوب بلد نبودند تا بتوانند از آموزشها سر دربیاورند. برای همین ترجمهٔ نسخهٔ جدید برخط ریبرگ را شروع کردم (قبلاً هم نسخهٔ قبلی این پروژه به اسم رورپل رو ترجمه کرده بودم. ولی خود آندره رابرگ به من پیشنهاد داد این ترجمهها را مثل دورهٔ Saskatchewan به عنوان یک پروژهٔ جداگانه میزبانی کنم).
دنیای ریبرگ یک محیط آموزش برنامهنویسی بر پایهٔ کارلِ ربات ساختهٔ ریچارد پَتیس است. این محیط و کتاب همراه آن در قالب آموزش کنترل ربات با یک سری فرمانها، مفاهیم برنامهنویسی را به سادگی به فراگیر آموزش میدهد. این محیط و درسهای آن این قابلیّت را دارد که هم به صورت خودخوان و هم به عناون محتوای آموزش مدرّس و در قالب کلاس آموزشی مورد استفاده قرار گیرد.
از همان اوایل، آموزشهایی که در منابع فارسی برنامهنویسی که میدیدم، فقط ترجمهٔ کلمات بودند و نه مفاهیم. حتّی اگر نویسندهٔ اصلی مفاهیم را توضیح هم میداد، مترجمها اغلب فقط کلمات و جملهها را ترجمه میکردند، نه مفاهیم را. خب حق هم داشتند، بیشتر برنامهنویس بودند، نه مترجم حرفهای.
از طرفی هم بسیاری از نویسندگان کتابها را برای مهندسان رایانه مینوشتند. یعنی با این فرض که خواننده با یک سری مفاهیم اوّلیّهٔ ریاضی، رایانه و برنامهنویسی آشنایی دارد. دانستن انگلیسی و مفاهیمی مثل جبر و متغیّرها به من در درک مفهاهیم برنامنویسس کمک میکرد. ولی برای کسی که با این مفاهیم آشنایی ندارد؛ خواندن این کتابها میتواند خیلی زجرآور باشد!
تفاوت فکری و فرهنگی بین نویسندهٔ و مترجم،
تفاوت بین سطح دانش موجود فراگیر برنامهنویسی و آنچه یک نویسنده به عنوان حداقل لازم برای یادگیری در نظر میگرفت. این اشتباهات در کنار نبود مدرّس برنامهنویسی یکی از بزرگترین مانعها برای من در یادگیری مفاهیمی مثل شیءگرایی بود.
آموزش مفاهیمی مانند متغیّرها تا آنجا که میشده به تعویق انداخته شده است.
از معرفی هم زمان چند مفهوم خودداری شده
و ... .
که به نظر من آموزش تک به تک مفاهیم اوّلیّهٔ مورد نیاز به ترتیب اولویّت یکی از مهمترین نقاط قوّت آن است.
از طرف دیگر هم در ترجمه با این که تمام تلاش خود را کردم تا به متن اصلی وفادار بمانم؛ هر جا که لازم بود متن اصلی را به نفع فهم خواننده تغییر دادم. در عین حال، با این که لحن محاورهای این کتاب با این که کار ترجمه و بازنگارش آن را دشوارتر میکرد؛ با کم کردن زمختی متن فهم مطالب را برای فراگیران آسانتر میکند.
این وب سایت و پروژههای آیندهٔ آن؛ تلاش من برای هموار کردن راه یادگرفتن برنامهنویسی برای علاقهمندان آن است.