چگونه یک زبان برنامه نویسی جدید یاد گرفتم (بگیریم)

TLDR; به سادگی!

البته قصه اش سر درازی دارد(!) و اون رو در چند پارت مینویسم که پارت اول سوال مهمیه.

چرا؟

پس اول بیاییم توضیح بدم چرا یه developer که سالها با یه زبان خاصی برنامه نویسی میکنه و کاملا راضیه و هنوز مشکلی نداره بیاد یه سری زبان جدید یاد بگیره؟

اولا تغییر زبان معمولا کار اشتباهیه مگه اینکه واقعا در گذشته اشتباه میکردید! مثل وقتی که من از ویژوال بیسیک کلاسیک به #C مهاجرت کردم! یا همکارم که از دلفی به php مهاجرت کرد که این یه مورد کلا تغییر بنیادی ای بود و دو زبان هیچ ربطی به هم ندارن. اصلا در همین مورد همکار گرامی ایشون درهای زیادی رو به روی خودشون گشودند با این یادگرفتن زبان جدید و مهاجرت به اون، به این صورت که اولا یک web developer شدند که با دلفی نبودند و همچنین یک زبون با کامیونیتی بسیار قوی تر و به روز تر رو یاد گرفتند که سال هاست از اون استفاده میکنن ایشون. از همین جا بهشون سلام میکنم D:

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

اما این فاز بعدی این Adventure ـی هست که شروع کردم. دلیل اول من علاقه مند شدن به کامیونیتی هایی هست که برای خود من جدیده و فاز اون اساسا با من فرق میکنه مثل github که شنیدم جاییه که مردم کدهای خودشون رو آپلود میکنن که همه ببینن!

باورتون میشه ؟ چرا باید کسی همچین کاری کنه؟! کد مثل ناموس انسان میمونه؛ خیلی بی غیرتند این جماعت.

درسته بی نمک بود ولی من خیلی از این کارها نکردم، تو کامیونیتی قبلی خودمون (P30World)  کمی بعله ولی مفهوم opensource و نرم افزار آزاد  فرا تر از تکه کد هایی هست که برای کمک به برنامه نویس های دیگه مینوشتیم.

با اینکه ذاتا انسان آزادی هستم و کاملا به آزادی معتقدم  ولی در زمینه کارم همونطور که همه دنیا میدونن من رو چه به opensource و نرم افزار آزاد ؟ D:  (پارادوکس های شخصیتی انسان)  خب آدم یه سری فعالیت ها تو زندگیش انجام میده که صرفا شاید شبیه حرفه ی او باشند ولی جنبه سرگرمی و هابی خواهد داشت.

مثل پیانیستی که تو مجلس مهمونی خونوادگی نمیتونه پیانوی خودش رو بندازه تو کوله و حمل کنه، یه سازدهنی کوچیک تو جیبش نگه میداره که هرجا خواست برای دل خودش بنوازه. من هم هر جور از هر زاویه ای نگاه کردم  مونس پروژه هایم net. خیلی با جامعه عزیز opensource همخوانی نداره.  خودتون مقایسه کنین اگر بنده یه قطعه کدی بنویسم و در این سایت های بی ناموسی مانند گیت هاب به اشتراک بذارم، بازخورد و مشارکت در کدوم حالت بیشتر خواهد بود؟

از اونجا بود که تصمیم گرفتم برای پروژه های سرگرموی و fun یه زبان جدید یاد بگیرم. البته این طور تصور نکنید که تصور بنده از اپن سورس و جامعه آزاد یه سری پروژه فان هست. ابدا.  برای من secondary language هایی که یاد میگیرم این جنبه رو داره چون شاید تو زندگی واقعی وقت ریسک کردن و مهاجرت کردن از یک پلتفرم نسبتا کامل که از اون راضیم و تسلط کافی رو به اون دارم رو نداشته باشم و البته حوصله سرو کله زدن با مشکلات استرس زا تو پروژه های جدی.

بله اینجا تصمیم گرفته شد که این secondary language به زندگی من اضافه بشه اما چه زبانی؟  در این مورد میشه ساعت ها نوشت ولی به طور خلاصه خوندن چند pro/cons از زبان هایی که میشناختم،مقایسه محدوددیت ها و دامنه استفاده اونها و خوندن چند خط کد از هر کدوم  (چون به هر حال خوشگلی زبان هم بسیار مهمه!) ، آزمون خطاهای متعدد  و بررسی های دیگه (همونطور که احتمالا حدس زدید) python رو انتخاب کردم. البته هیچ تصمیمی مطلق نیست و امکان داره به خاطر مثلا دمای هوا این تغییر کنه ولی فعلا داستان این است.

برای شروع یادگیری python  چند دقیقه از دوره های رایگان  codecademy به نظرم کافی بود

به زودی از تجربه های جدیدم در ادونچر اپن سورس برایتان خواهم گفت

نوشته شده در March 13, 2014