بایگانی برچسب: پادکست

پادکست نیو فولدر، شماره‌ی یکم: تنبلی

خوب! یه شماره‌ی جدید بعد از حدود شصت روز! و من امروز به این نتیجه رسیدم که در حال حاضر توانایی انتقال احساسات با لحن رو ندارم، شاید بعد از سی – چهل شماره پیدا کنم :)

توجه کنید که چون سعی کردم از رو نخونم، محتوای پادکست یه ذره با متن‌ش تفاوت داره!

دانلود – فید پادکست – پادکست توی آی‌تیونز – آرشیو متنی پادکست


سلام!

این شماره‌ی یکم پادکست نیو فولدره و امروز می‌خوایم راجع به تنبلی صحبت کنیم. پیشاپیش از تاخیر حدودا دوماهه عذرخواهی می‌کنم و می‌تونم این قضیه رو گردن هر چیزی بندازم و زمین و زمان رو به هم بدوزم که احیانا نگم که این موضوع تقصیر منه (مثل خیلی وقایعی که توی کشورمون و توی رسانه‌هامون شاهدشون هستیم!) ولی مثل یک مرد! قبول می‌کنم که کم‌کاری من بوده و سعی می‌کنم جبران کنم. و البته بگم که این تاخیر باعث شد که در نهایت محتوای پادکست یه‌ذره پخته‌تر بشه. (البته هنوز هم خیلی خامه و واقعا هم نباید از خودم انتظار نوشتن یه متن پخته رو داشته باشم!)

قبل از شروع موضوع اصلی این رو هم بگم که تو شماره‌ی قبلی یه چیز مهم رو یادم رفت: فیلم ۱۲ مرد خشمگین یا 12 Angry Man یکی از بهترین نمونه‌هاییه که کمک‌تون می‌کنه که تفکر انتقادی داشته باشین. به جرات می‌تونم بگم از لحاظ بار آموزشی به نظر من این فیلم از هر فیلم‌های دیگه‌ای ساخته‌شده بهتره و حتی می‌شه بهش به عنوان یک آزمایش و یک آموزش نگاه کرد تا یک فیلم.

{یه تیکه موزیک}

تقریبا همه‌مون تعریف تنبلی رو می‌دونیم. برای همه‌مون اتفاق افتاده که حس و حال انجام دادن کاری رو نداشته باشیم در شرایطی که خسته نباشیم و وقت کافی هم براش داشته باشیم.

در حقیقت تعریف مشخصی برای تنبلی به ذهنم نمی‌رسه و فکر کنم برای همه‌مون هم آشنا باشه که چیه!

حقیقتش تا همین چند روز پیش هم قرار بود بجای این بخش بگم که نمی‌دونم چرا احساس می‌کنم تنبلی چیز بدیه ولی یکی از استادهامون توی روشن شدن دلیل این موضوع به من خیلی کمک کرد.

از یه نگاه دیگه، تنبلی، انتخاب راه راحت‌تر در مقابل راه دشواره. وقت‌های آزادی که من توی مترو دارم رو می‌تونم صرف کتاب‌خوندن کنم (مصداق راه دشوار) یا آهنگ گوش کنم و در و دیوار رو نگاه کنم. یا توی خیلی مسائل دیگه که البته معمولا در انتهای اون راه راحت، بدبختی در کمین‌مونه. مثل نقل‌قولی که می‌گفت هزینه‌هایی که برای خواندن کتاب می‌پردازید بسیار کم‌تر از هزینه‌هایی‌ست که برای نخواندن آن می‌پردازید و ما الان مصداق این موضوع رو داریم توی مملکت‌مون می‌بینیم و چه بسا اگر خیلی بیشتر چیزی که الان هستیم کتاب می‌خوندیم، وضعیت‌مون هم خیلی بهتر بود.

حالا بیاید یه‌جور دیگه به مساله نگاه کنیم: زمانی که ما ۱ سال‌مون بود شنیدن و متوجه شدن حرف‌های دیگران برامون کار سختی بود. وقتی ۲ سال‌مون شد راه‌رفتن کار سختی بود. وقتی ۷ سال‌مون بود جمع و تفریق کار چندان راحتی به نظر نمی‌رسید و توی ۱۸ سالگی، حل انتگرال دوگانه غیرممکن به نظر می‌رسید. ولی با تمرین و گذشت زمان، الان راه‌رفتن، حرف زدن و متوجه شدن حرف دیگران و حتی شاید محاسبه‌ی انتگرال دوگانه کار راحتی باشه برامون. (البته من هنوز به اون نقطه نرسیدم!) حتی الان هم وقتی می‌خوایم یه زبان جدید یاد بگیریم اولش مثل مگس توی ظرف عسل گیر می‌کنیم و کم‌کم و با تلاشه که پیش‌رفت می‌کنیم و این‌کارها برامون آسون می‌شن.

متوجه اشتراک این‌کارها می‌شید؟ همه‌شون اول‌ش سخت بودن. حتی اگر بهش فکر کنید نفس‌کشیدن هم کار چندان راحتی نیست. و اگر توی هر مرحله تصمیم بگیریم که کار راحت رو انجام بدیم، در نهایت روزی باید تصمیم بگیریم که نفس هم نکشیم.

حالا بیاید قضیه رو برعکس جلو بیایم و بررسی کنیم که مشکل «انتخاب حداقل مسیر دشوار» چیه؟ یعنی من تصمیم بگیرم که اوکی! نفس می‌کشم، غذا می‌خورم، گلاب به روتون دشویی هم می‌رم. ولی دیگه سر تفکر انتقادی بیخیال ما شو که حوصله‌ش رو اصلا ندارم! به نظرم بهتره خودتون جواب این سوال رو بدید. در واقع این سوال مثل یک سوال دیگه در حوزه‌ی اخلاقه «چرا من باید کار اخلاقی رو انجام بدم؟». اگر به این نتیجه رسیدید که باید کار درست رو انجام داد و از طرف دیگه یه نتیجه‌ی دیگه هم رسیدید که کاری که اخلاقی باشه، کار درستیه، این دوتا رو که باهم جمع بزنید به این نتیجه می‌رسید که باید کار اخلاقی رو انجام داد. حالا در مورد تفکر انتقادی هم موضوع مشابهه. اگه به این نتیجه رسیدید که باید کار درست رو انجام داد و به این‌نتیجه رسیدید که انتقادی فکر کردن درسته، پس از نظر منطقی باید قبول کنید که باید انتقادی فکر کنید. حالا از نظر احساسی و «من حوصله ندارم» رو دیگه من نمی‌تونم جواب بدم!

بیاید یه ذره از تفکر انتقادی فاصله بگیریم.

از طرف دیگه مشکل دیگه‌ای که ما ایرانی‌ها با تنبلی داریم اینه که همه‌جا هم تشویقش می‌کنم. یک‌سری عبارت که این‌جا جاش نیست من بگم وجود دارن که بجای بار معنایی منفی بار معنایی مثبت دارن! یعنی در این حد وضعیت‌مون خرابه! توی فیسبوک و شبکه‌های اجتماعی جوک‌هایی که می‌سازیم و روایت‌هایی که کول به نظر میان خیلیاشون مصداق بارز تنبلی یا زرنگین و این نشون می‌ده که چرا وضع ما خرابه.

بیاید مثال‌های دیگه‌ای تنبلی، یعنی انتخاب راه راحت در مقابل راه دشوار، رو ببینیم: اکثر ماها وقتی نزدیک‌ترین خط عابر پیاده فقط ۱۰ متر باهامون فاصله داره، اون ۱۰ قدم رو پیاده نمی‌ریم و از راحت از خیابون رد می‌شیم.

یا مثلا به عنوان یک راننده خیلی‌ها زحمت دور کردن مسیر بجای ورود ممنوع رفتن رو به جون نمی‌خرند برای احترام گذاشتن به قانون! (اگر فکر می‌کنید که احترام گذاشتن به قانون کار درستی نیست با عرض معذرت پیشنهاد می‌کنم خودتون رو به روان‌پزشک معرفی کنید) و در مقابل خیلی‌وقت‌ها توی دل‌مون به کسی که یک‌سری قوانین مثل اومدن با موتور توی پیاده‌رو یا ورود ممنوع رفتن رو رعایت نمی‌کنه، فحش می‌دیم!

خیلی‌ها این‌جوری به این مساله جواب می‌دن: مگه کی قانون رو رعایت می‌کنه که من رعایت بکنم؟ من هم در جواب (و اگر این رو، رو در رو و از خودتون بشنوم احتمالا جواب‌م کمی فیزیکی هم می‌شه!) بهتون می‌گم که این‌جوری به مساله نگاه کن: من قانون رو رعایت نمی‌کنم، تو رعایت نمی‌کنی و اون هم رعایت نمی‌کنه و دنیا جهنم می‌شه :| به همین سادگی. (البته بعدش شروع می‌کنم حرف زدن و چیزای دیگه‌ای می‌گم که ترجیح می‌دم اون‌ها رو برای پادکست بعدی نگه دارم)

نکته این‌جاست که خیلی اوقات مسائلی مثل پیچوندن قانون و مثلا یک‌طرفه رفتن رو به زرنگی فرد نسبت می‌دن و در واقع این حس به طرف دست می‌ده که یه کار مثبت انجام داده و نتیجش می‌شه وضعیت مملکت ما.

یا مثال‌های خیلی بیش‌تری که موضوعاتی مثل فرهنگ، مسئولیت پذیری و مسائل دیگه رو شامل می‌شن و توی شماره‌های بعدی بهشون می‌پردازیم.

تا شماره‌ی بعد منتقدانه فکر کنید، سعی کنید تنبلی نکنید و سعی کنید اون فیلمه رو هم ببینید. خدانگهدار…

پادکست نیو فولدر، شماره صفرم: تفکر انتقادی

خیلی وقت بود می‌خواستم پادکست بسازم، خیلی وقت بود می‌خواستم راجع به تفکر انتقادی بنویسم. حالا این دوتا رو گذاشتم کنار همدیگه و یه پادکست در برای تفکر انتقادی ساختم. اسم پادکست نیو فولدره چون ایده‌ای نداشتم که چه اسمی بزارم بنابراین اسم پیش‌فرض باقی موند و اگر اسم بهتری پیدا نشه (به ذهنم نرسه یا کسی به ذهنم نرسونه :) ) با همین اسم پادکست رو ادامه می‌دم.

خیلی خوشحال می‌شدم اگه مهدی هم میومد ولی…

این جزو اولین تجربه‌های پادکست منه. با تشکر از جادی که پادکست رو قبلش شنید و نظراتش رو گفت خوشحال می‌شم که شما هم بعد از شنیدن پادکست نظراتتون رو بگید و اگر مشکلی بود به بزرگی خودتون ببخشید :)

 

دانلود پادکست

فید پادکست

ویکی‌پدیا تفکر رو این‌جوری تعریف می‌کنه:

«تفکر، عملی ذهنی است و زمانی مطرح می‌گردد که انسان با مسئله‌ای مواجه‌است و خواستار حل آن است. در این هنگام در ذهن، تلاشی برای حل مسئله آغاز می‌گردد که این تلاش ذهنی را، تفکر می‌نامند. فعالیت برای حل مسئله، از مراحلی تشکیل شده‌است که از تعریف مسئله به طور شفاف، روشن و ملموس، آغاز می‌گردد و با پیدا کردن راه حل‌هایی برای حل مسئله ادامه می‌یابد و با به کارگیریِ عملی بهترین راه حل و یافتن جواب نهایی به پایان می‌رسد.»

چیزی که من میخوام بگم اینه که خیلی وقتا ما به چیزایی بر می‌خوریم، یه چیزایی بهمون می‌گن و ما میشنویم و بدون این‌که راجع بهشون فکر کنیم می‌پذیریمشون و توی ذهن‌مون جزو دسته‌بندی «حقایق» قرارشون می‌دیم. گاهی هم راجع بهشون فکر می‌کنیم و سعی می‌کنیم تجزیه تحلیل‌شون کنیم و در نهایت با اطلاعات ناقصی که داریم توی تحلیل مساله شکست می‌خوریم و بازم می‌پذیریم‌شون.

اولین دلیل این قضیه خیلی خیلی خیلی واضحه: تنبلی. اصولا ما آدم‌ها زیاد علاقه‌ای به کار زیاد نداریم، راه آسون‌تر رو انخاب می‌کنیم و در جهت کار کمتر هم تلاش می‌کنیم. ما برنامه‌نویس‌ها هم که نمونه‌ی بارز این مساله هستیم: حوصله‌ی گشتن دنبال فایل‌های تکراری رو نداریم: برنامه‌ش رو می‌نویسیم. حوصله نداریم تو محیط متنی تایپ کنیم: GUI میسازیم. حوصله نداریم فایل‌هامون رو با فلش جابجا کنیم: Cloud Storage درست می‌کنیم :)

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

دومین دلیل‌ش هم اینه که این سوال پیش میاد که خوب اصلا چرا باید فکر کنیم؟ متاسفانه این سوال رو نه من و نه (احتمالا) فرد دیگه‌ای بتونه جواب بده. این یه مساله‌ی شخصیه. مثل این‌که چرا باید غذا بخوریم یا بریم دستشویی. فکر کردن هم نیازیه که ما داریم. یک‌سری تفکرات‌شون رو می‌برن سمت مسائل (احتمالا بی‌اهمیتی) مثل فوتبال و دعوای بین اپل و گوگل و به قول جادی هسته‌ی CPU یه گوشی و یک‌سری دیگه هم سر سیاست و اقتصاد و دین و کلی مساله‌ی دیگه فقط به صورت سطحی بحث می‌کنن و بعضیا هم مثل من یه چیز بینابین :) البته من سعی می‌کنم اگر جایی بحث می‌کنم سطحی نباشه و مطالعه‌ای داشته باشم روی مبحث. بگذریم.

به همون دلایلی که گفتم و احتمالا دلایل دیگه‌ای که الان به ذهنم نمی‌رسه مردم علاقه‌ای به فکر کردن ندارن. اثبات‌ش هم کلی استاتوس و شایعه‌ی مسخره‌ست که توی فیسبوک منتشر می‌شه و من وقتی مقاله‌های گمانه که تلاش می‌کنه با آگاهی دادن به مردم جلوی این شایعات رو بگیره رو می‌خونم گاهی خندم می‌گیره از این شایعه‌ها و خرافات مسخره. راجع به خرافات هم انشاالله بعدا بحث می‌کنم.

خوب این‌همه حرف زدم راجع به تفکر حالا بریم سراغ بحث اصلی: تفکر انتقادی. به نظرم بهتره بحث رو با نقل قول شروع کنم. احتمالا این نقل قول در نهایت چکیده‌ی حرفهای من هم هست: کافه تو وبلاگش می‌نویسه

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

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

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

پیشنهاد می‌کنم اون مقاله‌ی کافه رو حتما بخونید. همین‌طور جزوه‌ی روشنگری کانت رو می‌تونید از این‌جا دانلود کنید.

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

یا مباحث پایه‌ای تر مثل مباحث دینی. این که «از بیش از یک منبع موضوع رو بررسی کنیم» خیلی توی مطالعات دین کمک می‌کنه. متاسفانه دین هم یه جور خط قرمزه بنابراین پیشنهاد می‌کنم مقاله‌ی سه کلید حقوق بشر در اسلام از وبلاگ عادل شجاعی و اگه به این‌جور مسائل علاقه‌مندید، نوشته‌ّهای آقای قابل و دیگر روشنفکرهای دینی رو مطالعه کنید.

آموزش برنامه‌نویسی – بخش دوم – الگوریتم‌ها در برنامه‌نویسی

پیش‌نوشت: این متنی که توی پادکست می‌گم (و البته چیزی که تو پادکست گفته شده کمی متفاوته چون موقع خوندن عوض می‌شه!). دلیل برای اضافه‌کردن جزئیات نمی‌بینم. حدود ۱۴ دقیقه‌ست که البته ۶ دقیقه‌ی آخرش هم آهنگه (Rango Suit کاری از هانس زیمر!) و شما هم می‌تونید پادکست رو با حجم ۱۲ مگابایت از مدیافایر یا از مگا (مگا از مدیافایر خوشگل تره!) دانلود کنید(بازم ببخشید که چندتا کیفیت نزاشتیم. از دفعه‌ی بعد جبران می‌کنیم!).

می‌تونید همه‌ی پادکست‌های آموزش برنامه‌نویسی ما رو توی مدیافایر ببینید. خوب بریم سراغ پادکست:

سلام.

توی بخش قبل در مورد الگوریتم‌ها حرف زدیم. امیدوارم متوجه شده باشید که الگوریتم‌ها چی‌هستند. توی این بخش قراره در مورد الگوریتم‌ها تو برنامه‌نویسی حرف بزنیم. البته این‌دفعه من تقریبا حرف نمی‌زنم بلکه یه یک‌سری از حرف‌های جادی رو براتون پخش می‌کنم؛ اجازه‌ش رو هم از جادی گرفتم.

خوب این چیزی که می‌خوام براتون پخش کنم توضیحات‌ کامل‌ش توی سایت جادی به آدرس جادی.نت یا جادی۲.آندو.ایت هست و من توضیحات جادی رو هم باهاش پخش می‌کنم. این‌ها توی پادکست دوم رادیو گیک پخش شده و من توصیه می‌کنم کلا برید همه‌ی پادکست‌های جادی رو گوش کنید. توی نوشته‌ای که تو دو برنامه‌نویس منتشر می‌شه لینک‌هاش رو هم براتون می‌زارم.

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

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

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

خوب دیگه حرفی برای گفتن باقی نمی‌مونه فقط این‌که از بخش بعدی آموزش‌ها به صورت ودکست (یعنی به‌صورت ویدیویی) خواهد بود و آموزش سی‌پلاس‌پلاس رو شروع می‌کنیم. در ضمن چون برنامه‌ی رایگان گیر نیاوردم از برنامه‌ی کمتسیا استودیو یا همون‌طور که خودشون می‌گن کم‌تیژیا استودبو برای ضبط استفاده می‌کنم. اما شما تا هر وقت که آموزش‌های ما ادامه پیدا کنه وقت دارید که یه برنامه‌ی رایگان و اگر آزاد هم بود چه بهتر! به ما معرفی کنید.

تا قسمت بعد (که همین الانش تقریبا آماده شده!) خدانگهدار!

آموزش برنامه‌نویسی – شروع دوباره – الگوریتم چیست

سلام

قرار شد آموزش‌ها برنامه‌نویسی به شیوه‌ی پادکست + نوشته منتشر شوند و امشب هم یک پادکست ۵ دقیقه‌ای در مورد الگوریتم‌ها داریم که متن کامل‌نشده‌ی آن را هم در زیر مشاهده می‌کنید. دلیل کامل‌نشده‌بودن متن نیز این بوده که بخش‌هایی را در حین ضبط اضافه یا حذف کردم مثلا فلوچارت!

بخش اول را از می‌توانید از این‌جا دانلود کنید. همین‌طور همه‌ی پادکست‌های آموزش برنامه‌نویسی (که در آینده منتشر خواهند شد) در مدیافایر موجودند.

این هم نوشته‌ی کامل‌نشده:

سلام

قراره اولین بخش از آموزش برنامه‌نویسی رو دوباره شروع کنیم و امروز جمعه چهارم اسفند ۹۱ هستش و الان هم یه تیکه از بخش اول موسیقی Jack Sparrow از آلبوم موسیقی متن دزدان دریایی کارائیب ۳ (که اسم اصلی‌ش گنجینه‌ی مرد مرده یا Dead Man’s Chest هستش) پخش شد براتون.

خوب بریم سراع آموزش.

رسمه که آموزش الگوریتم رو از درست‌کردن شیرکاکائو شروع کنن که چون شیرکاکائو کپی‌رایت داره و کپی‌رایت‌ش مال یکی از معلم‌های ماست ما از شیرقهوه استفاده می‌کنیم

باید بدونید که در سلوک برنامه‌نویس ها واحبه همیشه یه لیوان شیرقهوه (یا قهوه) کنار دست‌تون باشه!

خوب ما برای درست‌کردن شیر قهوه اول از همه یه قاشق چای‌خوری (که هیشکی تاحالا باهاش چایی نخورده) قهوه و دو تا سه قاشق چایی خوری شکر بر می‌داریم و توی آب جوش به مقدار لازم می‌ریزیم و هم می‌زنیم تا خوب حل بشه و بعد هم شیر می‌ریزیم روش و می‌زاریم کنار دست‌مون تا هروقت لازم شد یه ذره ازش بخوریم.

به مراحلی که ما طی کردیم تا شیرقهوه درست بشه می‌گن الگوریتم درست‌کردن شیرقهوه.

خوب امیدوارم تعریف الگوریتم رو خوب فهمیده باشید.

اما قبول دارید که فهموندن این الگوریتم به کامپیوتر تقریبا غیرممکنه؟ حداقل الان که غیر ممکنه.

برای همین هم باید الگوریتم رو ساده‌تر کنیم. حالا فرض کنیم که یه روبات خیلی پیچیده با قابلیت پذیرش دستورات زیاد داشته باشیم که دستورات ما رو تا حدودی بفهمه ولی خوب چون اون هم کامپیوتره بازهم نمی‌تونه معنی «خوب حل‌شدن» رو بفهمه پس لازمه که متغیرهای کیفی‌مون رو کمّی کنیم.

پس الگوریتم‌مون می‌شه این

یک قاشق قهوه رو بریز توی لیوان

سه قاشق شکر بریز توی لیوان

(مثلا) ۱۰۰میلی‌لیتر آب جوش بریز توی لیوان

تا وقتی که هیچ دونه‌ی قهوه‌ای توی لیوان نمونه محتویات لیوان رو پر کن

تا وقتی که لیوان پر نشده توش شیر بریز

لیوان رو بده به برنامه‌نویس‌ت که قهوه‌ش رو بخوره و برو به کارات برس (:D)

خوب حالا این شد یه الگوریتم که مناسبه برای یه روبات که زبون ما رو می‌فهمن.

اما مطمئنا کامپیوتر شما نمی‌تونه معنی «برو» یا «لیوان» یا حتی قهوه و شکر رو بفهمه و خوب فعلا ما چنین روباتی نداریم. شما اگر دارید خیلی سرمایه‌دارید با این قیمت دلار!

ولی ما برای هرکاری توی زندگی‌مون الگوریتم داریم. مثلا از خیابون رد شدن که شعر‌ش رو روی همه‌ی ایستگاه‌های اتوبوس دیدید و لازم به تکرار نیست!

خوب بیاید یه‌ذره به واقعیت نزدیک‌تر بشیم. اگر روباتی ساده‌تر ولی بازم پیچیده داشته باشیم که بشه بهش گفت که راه بره و دست‌هاش رو تکون بده و مثلا برنامه‌ای برای تشخیص رنگ هم براش بنویسم می‌شه الگوریتم درست‌کردن قهوه رو بازم به واقعیت نزدیک کرد. این‌جوری که در کابینت رو باز کنه و ماده‌ی قهوه‌ای رو پیدا کنه و ماده‌ی سفید رو هم (با این امید که نمک توی اون کابینت نباشه یا مثلا مرگ موش!) و اونا رو توی آب بی‌رنگ باهم قاطی کنه (بازهم با این امید که فقط به اندازه‌ی یک قاشق قهوه و سه قاشق  شکر داشته باشیم) و مثلا بگیم تا وقتی همه‌ی مقادیر مشکی رنگ شد و رنگ قهوه‌ای توی لیوان نمونده باشه و بعدش هم آب سفید رو بریزه توش تا لیوان پر بشه.

و خوب اگر روبات‌مون اینا رو هم نفهمه یعنی یه روبات بازم ساده‌تر ولی بازم پیچیده مجبوریم الگوریتم رو به صورت موتور-موتور تجزیه کنیم. یعنی برای هر حرکت یک موتور باید به کار بیوفته و شاید هم چندتا و این خیلی موتور می‌شه!

خوب فکر کنم برای بخش اول کافی باشه.

برای تمرین هم الگوریتم درست‌کردن خامه‌عسل، باقالی پلو با گوشت و زرشک‌پلو با مرغ رو اول خودتون سعی کنید بنویسید و بعدش هم از کتاب آشپزی کمک بگیرید. و خوب در مرحله‌ی بعدی سعی کنید الگوریتم رو برای روبات‌های ساده‌تر شرح بدید.

به این می‌گن آموزش چندمظوره!‌ هم برنامه‌نویسی و هم آشپری!

برای این‌که هیجان قضیه زیاد بشه میگم که در بخش بعدی آموزش‌مون درمورد الگوریتم‌ها توی برنامه‌نویسیه و البته این بستگی داره به میزان علاقه‌ی شما

خوب امیدوارم تا قسمت بعدی شاداب  و سلامت باشید.

 پی‌نوشت: در پادکست فراموش کردم که بگم آهنگ کار هانس زیمره.

پی‌نوشت۲: هر مشکلی که دیدید لطفا اطلاع بدید مثلا اگر صدا بد بود یا نوشته (و صدا) کامل نبود یا هر چیز دیگه.