TGViewer
Channel Public Channel
سماموس: نوشته‌های یوسف مهرداد بی‌بالان

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

@bibalan_com

این کانال برای اطلاع‌رسانی نوشته‌های وبلاگ سماموس (bibalan.com) ایجاد شده است. مطالب پس از انتشار در وبلاگ، در این کانال نیز منتشر خواهد شد. امیدوارم که مطالب آن برای شما مفید باشد و خوشحال خواهم شد تا نظرات و بازخوردهای شما عزیزان را دریافت کنم.
Subscribers
297
Photos
27
Videos
7
Links
353

Showing posts older than #246 · Back to latest

Older Posts 20 shown
Post #245 248
باشد که باز بینم دیدار آشنا را

به از این چه شادمانی که تو جانی و جهانی
چه غمست عاشقان را که جهان بقا ندارد

بی‌بالان، بهمن ۱۴۰۰، ژانویه ۲۰۲۲
Post #244 274
زبان برنامه‌نویسی کربن


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

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

برای آموزش برنامه‌نویسی در آن زمان از زبان Pascal و C-Plus-Plus استفاده می‌شد. آن موقع اینترنتی وجود نداشت که بتوانید برنامه‌نویسی یاد بگیرید و پاسخ سوال‌هایتان را پیدا کنید. به ناچار مهم‌ترین گزینه‌های یادگیری یک زبان برنامه‌نویسی، کتاب بود و دوستان‌تان. 

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

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

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

کتابی که دست من بود کتاب سی پلاس‌پلاس بود که به صورت  «++C» نوشته می‌شود. روی جلد هم با حروف بزرگ نوشته شده بود «++C» و با حروف کوچک نوشته شده بود «Programming Language» که علی آقا همیشه عبارت «++C» را می‌دید.
علی آقا دانشجوی رشته‌ی مهندسی مواد بود و طبیعی بود که با زبان‌ برنامه‌نویسی سی‌ پلاس‌پلاس آشنایی نداشته باشد ولی تسلطش بر شیمی که بدیهی بود. «++C» به زبان علم شیمی به معنای «کربن دو بار مثبت» است. C نماد عنصر کربن است و کربن پلاس‌پلاس یعنی کربن دو بار مثبت. کربن دو بار مثبت هم یعنی کربنی که دو الکترون اضافه‌تر نسبت به کربن معمولی دارد. 

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

ما زبان را ننگریم و قال را
ما روان را بنگریم و حال را

https://bit.ly/3H4SjSf

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

گزیده:
مهم‌تر از همه‌ی دلایل، تفاوت دیدگاه فرصتی است برای یادگیری. تری ویلیام

https://www.bibalan.com/?p=3818
https://t.me/bibalan_com
Post #243 261
مغز برنامه‌نویس: دسته‌بندی بیکن‌ها (۶)

دسته‌بندی بیکن‌ها:
ما معمولاً چراغ‌های راهنما یا بیکن‌ها را به دو دسته تقسیم می‌کنیم: بیکن‌های ساده (simple beacons) و بیکن‌های مرکب (compound beacons).

بیکن‌های ساده، عناصر نوشتاری کد هستند که نیازی به توضیح ندارند مانند نام متغیرهایی که به درستی انتخاب شده‌اند. در کد پایتون قبلی، root و tree بیکن‌های ساده هستند. در برخی از کدها، عملگرهایی مانند +، >، و && و عبارات ساختاری مانند if و else را می توان بیکن‌های ساده در نظر گرفت، زیرا پردازش و فهمیدن آنها کار ساده‌ای است و می توانند به خواننده کمک کنند تا عملکرد کد را به تنهایی کشف کند.

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

بیکن‌ها می‌توانند اشکال مختلفی داشته باشند. قبلاً دیدیم که نام متغیرها و کلاس‌ها می‌توانند نقش بیکن را بازی کنند و حتی سایر شناسه‌ها مانند نام متدها نیز می‌توانند مانند بیکن عمل کنند. علاوه بر نام‌ها، ساختارهای برنامه‌نویسی خاص مانند جا‌به‌جایی مقدار دو متغیر (swap) یا مقداردهی اولیه (initialization) یک لیست خالی نیز می‌توانند بیکن باشند.

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

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

منابع:
کتاب «مغز برنامه‌نویس» از انتشارات منینگ

گزیده:
«اگر خواهی بر قول تو کار کنند، برقول خویش کار کن.»
قابوس‌نامه


https://www.bibalan.com/?p=3812
https://t.me/bibalan_com
Telegram سماموس: نوشته‌های یوسف مهرداد بی‌بالان این کانال برای اطلاع‌رسانی نوشته‌های وبلاگ سماموس (bibalan.com) ایجاد شده است. مطالب پس از انتشار در وبلاگ، در این کانال نیز منتشر خواهد شد. امیدوارم که مطالب آن برای شما مفید باشد و خوشحال خواهم شد تا نظرات و بازخوردهای شما عزیزان را دریافت کنم.
Post #242 253
Post #241 250
اگر بتوانید توجه کسی را کنترل کنید، با آن چه می‌کنید؟ (بخش دوم)

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

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

منبع ویدیو: جامعه‌ای بهتر بسازیم (@JameahiBehtarBesazim)

https://t.me/bibalan_com
Post #240 333
اگر بتوانید توجه کسی را کنترل کنید، با آن چه می‌کنید؟ (بخش اول)

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


این متن بخشی از سخنرانی جذاب، شنیدنی، دیدنی و بسیار آموزنده‌ی آپولو رابینز در سال ۲۰۱۳ است.

پیشنهاد می‌کنم این سخنرانی ۹ دقیقه‌ای را از دست ندهید.

https://www.ted.com/talks/apollo_robbins_the_art_of_misdirection?language=fa

https://www.bibalan.com/?p=2247
https://t.me/bibalan_com
Ted هنرِ گمراه کردن آپولو رابینز٬ تحسین شده به عنوان ِ بزرگ‌ترین جیب بُر دنیا٬ در حالی که ساعت شما را سرقت می‌کند بر روی تغییرات ناگهانی رفتار انسان مطالعه می‌کند. در نمایشی خنده دار٬ رابینز از بین حضار شرکت کننده در TEDGlobal 2013 نمونه‌ای را انتخاب می‌کند و نشان می‌دهد که…
Post #239 254
مغز برنامه‌نویس: چگونه کد چانک‌شده بنویسیم (۵)

راهکار سه: از فانوس‌های راهنما استفاده کنید
پیش‌گفتار:
اجازه دهید ابتدا معنی بیکن (beacon) را با هم مرور کنیم. در سایت farsi123.com معنی بیکن به قرار زیر است:

۱- آتشی که برای مخابره برفراز تپه یا برج و غیره روشن می‌کردند
۲- آتش (یا نور) راهنما، آتش (یا نور) آگهساز
۳- فانوس دریایی، فار، مناره‌البحر، دریابرج
۴- (فرستنده‌ی رادیویی که برای راهنمایی هواپیما درمه یا شب نشان پراکنی می‌کند) ایستگاه هدایت
۵- (شخص) رهبر، رهنما، منور کننده
من از واژه‌ی «فانوس راهنما» استفاده می‌کنم ولی مطمئن نیستم که پیشنهاد مناسبی برای آن باشد.

ادامه:
آخرین کاری که می‌توانید برای آسان‌تر کردن فرایند قطعه‌بندی (چانک‌ کردن)‌ کد انجام دهید، گنجاندن «فانوس‌های راهنما» است. »فانوس‌های راهنما» بخش‌هایی از برنامه است که به برنامه‌نویس کمک می‌کند تا بفهمد برنامه چه کاری انجام می‌دهد. می‌توانید به «فانوس راهنما» را یک خط از برنامه یا حتی بخشی از آن در نظر بگیرید که وقتی چشم شما به آن می‌افتد به خودتان می‌گویید: “آها، فهمیدم!.”
فانوس‌های راهنما معمولاً نشان می‌دهند که یک قطعه کد حاوی ساختار داده، الگوریتم‌ یا رویکرد خاصی است. به عنوان نمونه، کد پایتون زیر را ببینید که یک درخت دودویی (باینری) را
پیمایش می‌کند.

https://bit.ly/30CPc4h

این کد پایتون حاوی چندین فانوس راهنما است که خواننده می‌تواند به کمک آنها بفهمد که کد از درخت دودویی به عنوان ساختار داده استفاده می‌کند:
– توضیحات (کامنت) که در آنها از کلمه “درخت” (tree) استفاده شده است.
– متغیرهایی به نام ریشه (root) و درخت (tree)
– فیلدهایی به نام چپ و راست (left, right)
– متنی که به درخت اشاره می‌کند (“Contents of the tree are”)

فانوس‌های راهنما ابزار بسیار مهمی در زمینه‌ی یادآوری و نشانه‌یابی در طول فرایند درک و فهمیدن کد هستند. آنها معمولا برای برنامه‌نویسان مانند محرک‌های ذهنی عمل می‌کنند تا فرضیه‌های ذهنی خود درباره‌ی کد را تأیید یا رد کنند. به عنوان مثال، در ابتدای خواندن کد پایتون قبلی احتمالا هیچ ایده‌ای ندارید که این کد چه کاری انجام می‌دهد. اما وقتی اولین توضیح را می‌خوانید و چشم‌تان به کلاس Node بیفتد، ناخودآگاه حدس می‌زنید که این کد به بحث درخت‌ها (tree) ارتباط دارد. سپس با دیدن فیلدهای چپ و راست (left, right)، حدس شما درباره‌ی کد تقویت می‌شود.
ما معمولاً چراغ‌های راهنما را به دو دسته تقسیم می‌کنیم: چراغ‌های راهنمای ساده (simple beacons) و چراغ‌های راهنمای مرکب (compound beacons).

منابع:
منبع: کتاب «مغز برنامه‌نویس» از انتشارات منینگ

گزیده:
«حکما گفته‌اند کوشا باشید تا آبادان باشید و خرسند باشید تا توانگر باشید و فروتن باشید تا بسیاردوست باشید.» قابوس‌نامه


https://www.bibalan.com/?p=3789
https://t.me/bibalan_com
Post #238 395
خاطرات یک همکلاسی(بخش سوم)


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

https://bit.ly/3murqzt

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

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

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

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

از صدای سخن عشق ندیدم خوشتر
یادگاری که در این گنبد دوار بماند

برای استاد ارجمند، آقای روحانی رانکوهی بهترین‌ها را آرزومندم و از ایشان صمیمانه سپاسگزارم. ایام به کامشان باد و باده توفیق در جامشان.
Post #237 345
خاطرات یک همکلاسی (بخش دوم)

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

جمع صورت با چنین معنای ژرف
می نیاید جز ز سلطانی شگرف

https://bit.ly/3w8J8fi

آشنایی با استاد برجسته‌ای در کامپیوتر آن هم از زادگاه، خطه‌ی رودسر، برای منِ جوانِ عاشق نرم‌افزاربی گمان نوعی نمایی شدن تابع انگیزه‌ بود. استاد زاده‌ی “رانکوه” شهری از شهرستان‌ رودسر بود و من هم جوانی از “بی‌بالان” رودسر. حدس می‌زدم از پسوند نام خانوادگی من- “بی‌بالان”- استاد می‌دانند که من هم رودسری هستم، اما مطمئن نبودم.
یادم هست که به رسم مالوفِ دانشجویان، کلاس‌های صبح و بیش از آنها، کلاس پنج‌شنبه‌ها که دانشگاه تعطیل بود، جای مناسبی برای چرت زدن‌ها بود و حواس‌پرتی‌ها. با این حال، هیچ‌کس نه می‌توانست و نه زَهره و نه تمایل به چرت زدن در کلاس پایگاه داده را داشت. کلاس‌ ما در یکی از کلاس‌های درس ساختمان ابن سینای شریف برگزار می‌شد. اتاقی بزرگ و شیب‌دار که تخته سیاه در گودی کلاس قرار گرفته بود. استاد یک بار هنگام تدریس به‌ ناگاه با سرعت تمام از جلوی تابلو تا انتهای کلاس را دویدند. نمی‌دانم چند نفر از همکلاسی‌ها
چرت‌شان پاره شد!

کسانی که استاد را می‌شناسند می‌دانند که ایشان تسلط بی‌نظیری در برگردان‌ فارسی واژگان حوزه‌ی کامپیوتر دارند. با این پیش‌زمینه، یادم هست یک بار روی تابلو نوشتند database و با کمی فاصله نوشتند “پایگاه داده” ( درست خاطرم نیست، شاید هم نوشتند بانک اطلاعاتی). بعد حرف‌شان را ادامه دادند. “بچه‌ها این کلمه [اشاره به پایگاه داده] زبان مادری است.” و زیر آن نوشتند مادری. بعد ادامه دادند “این یکی [اشاره به database] زبان مادرجانی است” روی کلمه‌ی جان تاکید کردند و زیر آن نوشتند مادرجانی. و ادامه دادند “خوب معلوم هست که مادرجانی از مادری عزیزتره؛ خوب چرا؟ بدیهی هست! چون آخرش «جان» داره. «جان» هم وقته به کار می‌بریم که خیلی برای ما عزیز باشه”.اگر چه همه ما آن روز به این بیان شیرین استاد خندیدیم، اما بعدها دانستم که ما به جای خنده باید بر آنچه بر ادبیات پارسی می گذرد می‌گریستیم. استاد نازنین! امروز دیگر database از زبان “مادرجانی” فراتر رفته و زبان
“عزیزتر از جان” شده است. با این همه تاثیر این دغدغه استاد برای من این شد که همواره کوشیده‌ام که تا جای ممکن از واژگان پارسی در نوشتار تخصصی استفاده کنم.

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

گزیده:
چند بار حين درس انگار كه يك دفعه ياد چيزي افتاده باشه مكث كرد و انگار كه روي صحبتش با خودش باشه گفت: محمد تقي، قدت كوتاهه يادت باشه اين يعني به خاك نزديكتري از بقيه.
(منبع : وبلاگ مرقومات میرزا ناصر)
Post #236 233
خاطرات یک همکلاسی (بخش اول)

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

https://bit.ly/3vRBNjQ

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

بر این رواق زبرجد نوشته‌اند به زر
که جز نکویی اهل کرم نخواهد ماند

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

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

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

https://www.bibalan.com/?p=3153
https://t.me/bibalan_com
Post #234 207
شوک‌های ذهنی! (۱)

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

نمونه ۱:
در درس فیزیک در بحث قانون گازها گفته‌ می‌شد که با فرض ثابت بودن دما،‌ اگر فشار گاز را افزایش دهیم، حجم آن کاهش پیدا می‌کند. در نتیجه فشار گاز و حجم آن با یکدیگر نسبت معکوس دارند، افزایش یکی به کاهش دیگری منجر می‌شود.

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

بعدها به این نتیجه رسیدم که واقعا این گونه نیست. این اتفاق زمانی افتاد که داشتم کتابی در زمینه‌ی مدیریت پروژه می‌خواندم. شما نمی‌توانید با افزایش قطعیت،‌ عدم قطعیت (شرایط غیرقطعی) موجود را کاهش بدهید! (فکر کنم شما هم دچار شوک ذهنی شدید 🙂 ).

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

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

https://www.bibalan.com/?p=3780
https://t.me/bibalan_com
Telegram سماموس: نوشته‌های یوسف مهرداد بی‌بالان این کانال برای اطلاع‌رسانی نوشته‌های وبلاگ سماموس (bibalan.com) ایجاد شده است. مطالب پس از انتشار در وبلاگ، در این کانال نیز منتشر خواهد شد. امیدوارم که مطالب آن برای شما مفید باشد و خوشحال خواهم شد تا نظرات و بازخوردهای شما عزیزان را دریافت کنم.
Post #233 195
زمستان ۱۳۹۴: دوره تحلیل نیازمندی‌ها

خاطره راهی است برای نگه داشتن آن چه دوستش دارید، آن چه که هستید و آن چه هرگز نمی‌خواهید از دست بدهید. کوین آرنولد

https://www.bibalan.com/?p=3760
https://t.me/bibalan_com
Post #232 249
قدیمی‌ترین مدرسه روستایی ایران کجاست؟


به نقل از همشهری آنلاین:
آمار بالای باسوادی در گیلان بی‌شک مرهون تاریخ دیرپای راه‌اندازی مدرسه روستایی به سبک نوین و همگانی است؛ مدرسه‌ای که برای نحستین بار در سال ۱۳۰۴ شروع به کار کرد و حالا ۹۶ ساله شده است.

https://bit.ly/3pcvbvo

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

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

این مدرسه در حال حاضر با نام مدرسه محمد باقر صدر شناخته می‌شود.

منبع: https://bit.ly/3G5lMf8

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

https://www.bibalan.com/?p=3765
https://t.me/bibalan_com
Post #231 231
مغز برنامه‌نویس: چگونه کد چانک‌شده بنویسیم(۴): بخش اول

چگونه کد قطعه‌بندی شده یا چانک‌شده (chunkable code) بنویسیم؟


راهکار یک: از الگوهای طراحی (design pattern) استفاده کنید
اگر می خواهید کدی بنویسید که به راحتی قطعه‌بندی (چانک)‌ شده باشد، از الگوهای طراحی استفاده کنید. یافته‌های والتر تیچی (Walter Tichy)، استاد علوم کامپیوتر در موسسه فناوری کارلسروهه‌ی آلمان به صورت اتفاقی ارتباط بین قطعه‌بندی کدها با الگوهای طراحی را مورد بررسی قرار داده است. او به دنبال بررسی الگوهای طراحی بود و به ویژه علاقه داشت تا بررسی کند که الگوهای طراحی تا چه میزان می‌تواند هنگام نگهداری کد (افزودن ویژگی جدید یا رفع خطا) (maintenance) به برنامه‌نویسان کمک می‌کند.

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

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

راهکار دو: توضیح (comment) بنویسید
آیا باید برای کد، توضیح (کامنت)‌ بنویسیم یا کد باید “خود بیان” (document itself) باشد؟ این پرسش یکی از پرسش‌های چالش‌برانگیز در دنیای برنامه‌نویسان است که نظرات متفاوت و متضادی درباره‌ی آن وجود دارد. محققان به این پرسش پرداخته‌اند و به یافته‌های جالبی رسیده‌اند.

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

مارتا الیزابت کرازبی (Martha Elizabeth Crosby)، محقق دانشگاه هاوایی، مطالعاتی روی روش کدخوانی برنامه‌نویسان و نقش توضیحات همراه کد در کدخوانی انجام داده است. کار کرازبی نشان داد که برنامه‌نویسان مبتدی بیشتر از برنامه‌نویسان باتجربه و حرفه‌ای‌ به توضیحات کد توجه می‌کنند. یافته‌های کرازبی نشان می‌دهد افزودن توضیحات به کد می‌تواند روش خوبی برای کمک به برنامه‌نویسان تازه‌کار برای فهمیدن کد باشد.

پایان‌نامه کویین فن ( Quiyin Fan) در سال 2010 در دانشگاه مریلند با عنوان “The Effects of Beacons, Comments, and Tasks on Program Comprehension Process in Software Maintenance,” نشان داد که توسعه‌دهندگان هنگام خواندن کد، وابستگی شدیدی به توضیحات کد دارند. به ویژه توضیحات کلانی مانند “این تابع یک درخت دودویی را چاپ می‌کند” می‌تواند به برنامه‌نویسان کمک کند تا قطعات بزرگتر کد را تکه‌تکه کنند و بفهمند. از سوی دیگر، توضیحات جزیی مانند “یکی به n اضافه می‌کنیم” پس از خطی که متغیر n را یکی افزایش داده است (n = n+1)،‌ نه تنها کمکی به خواندن و فهم کد نمی‌کند بلکه فرایند قطعه‌بندی (چانک‌سازی) را دچار اختلال و کندی می‌کند.

گزیده:
الگوهای طراحی نباید بدون تفکر و بدون یک فرایند تصمیم‌گیری (بدون ‌قید و شرط) مورد استفاده قرار گیرند. اغلب آنها با اضافه کردن سطوحی برای ارتباط غیرمستقیم اجزا باعث انعطاف‌پذیری و تغییر‌پذیری می‌شوند و این سطوح اضافه‌شده می‌توانند موجب افزایش پیچیدگی طراحی یا کاهش کارایی گردند. در نتیجه، الگوهای طراحی فقط زمانی باید استفاده شوند که انعطاف‌پذیری ایجادشده توسط آنها واقعا ضرروی باشد.
اریک گاما
https://bit.ly/3ABJoUI

https://www.bibalan.com/?p=3750
https://t.me/bibalan_com
Post #230 235
سخنرانی علمی تورینگ: یادگیری عمیق و هوش مصنوعی

به تازگی نوشته‌ای از جاشوا بنجو (Yoshua Bengio)،‌ یان لی‌کو (Yann LeCun) و جفری هینتن (Geoffrey Hinton) در بخش «Turing Lecture» نشریه C-ACM با عنوان Deep Learning for AI منتشر شده که مطالعه‌ی آن برای من بسیار آموزنده بود.

https://bit.ly/3FiSLfq

بنجو، لی‌کو و هینتن در سال ۲۰۱۸ جایزه تورینگ (معادل نوبل کامپیوتر)‌ را به خاطر کشف‌‌شان که شبکه‌های عصبی عمیق (deep neural networks ) را به یکی از تاثیرگذارترین موضوعات محاسبات و زندگی بشری تبدیل کرد دریافت کردند.

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

از جمله چالش‌های اشاره شده در این نوشته می‌توان به:
– چالش یادگیری با حداقل یا بدون نظارت خارجی (Little or no external supervision)
– چالش نمونه‌های آزمایشی (test examples) که توزیع (distribution) متفاوتی با توزیع داده‌های آموزشی (training examples ) دارند
– چالش استفاده از یادگیری عمیق برای کارهایی که انسان به صورت گام به گام و طی یک مجموعه از گام‌ها یاد می‌گیرد. به این گونه کارها سیستم شماره ۲ گفته می‌شود. برای اطلاعات بیشتر به کتاب «تفکر سریع- تفکر آهسته» از دنیل کانه‌من مراجعه بفرمایید.

اگر به یادگیری عمیق یا هوش مصنوعی علاقه‌مند هستید،‌ پیشنهاد می‌کنم مطالعه‌ی این نوشته‌ی ارزشمند را از دست ندهید.
آدرس مقاله: https://bit.ly/3uGI9Cl

گزیده:

“Our intelligence is what makes us human, and AI is an extension of that quality.” Yann LeCun

https://www.bibalan.com/?p=3743
https://t.me/bibalan_com
Post #229 452
مغز برنامه‌نویس: حافظه‌ی نمادین (۳)

شما کد بیشتری نسبت به کدی که خواندید می‌‌بینید
قبل از آن که اطلاعات وارد حافظه‌ی کوتاه‌مدت شوند، وارد مرحله‌ای از پردازش می‌شوند که به آن حافظه‌ی حسی (sensory memory) گفته می‌شود. اگر حافظه‌ی بلندمدت مانند دیسک سخت (hard disk) و حافظه‌ی کوتاه‌مدت مانند حافظه‌ی دسترسی تصادفی ( RAM) باشد، حافظه‌ی حسی مانند بافر ورودی-خروجی (I/O Buffer) است.

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

https://bit.ly/2XJI98e

حافظه‌ی نمادین و کد
همان طور که گفته شد هر آن چه می‌خوانیم ابتدا در حافظه‌ی نمادین ذخیره می‌شود. اما لزوما هر چه در حافظه‌ی نمادین ذخیره می‌شود توسط حافظه‌ی کوتاه‌مدت پردازش نمی‌شود،‌ در نتیجه وقتی که کدی را با جزییات می‌خوانید ناچارید تصمیم بگیرید که چه چیزی را پردازش کنید و چه چیزی را پردازش نکنید. چنین انتخابی آگاهانه اتفاق نمی‌افتد. و این بدان معناست که از نظر تئوری شما می‌توانید اطلاعات بیشتری درباره‌ی کد را نسبت به آن چه در حافظه‌ی کوتاه‌مدت‌تان پردازش می‌شود، به یاد بیاورید.
به کمک این یافته درباره‌ی حافظه‌ی نمادینُ می‌توان اثربخشی خواندن کد را افزایش داد: ابتدا مدت کوتاهی به کد نگاه کنید و سپس به آنچه دیدید فکر کنید. این تکنیک “کد در یک نگاه” (code at a glance) به شما کمک می‌کند تا تصویری ابتدایی از کد به دست آورید.

در آزمایش دیگری از برنامه‌نویسان مبتدی،‌ متوسط و خبره خواسته شد تا ۲۱ کلمه‌ی کلیدی در زبان الگول را که به آنها آموزش داده شده بود بنویسند. محققان با این آزمایش توانستند بین یادآوری افراد و شیوه‌ی که آنها بین کلمات ارتباطات ایجاد می‌کنند به یافته‌هایی جدیدی برسند. نتایج مطالعه نشان داد که روش گروه‌بندی کلمات کلیدی توسط افراد مبتدی با خبرگان تفاوت دارد. به عنوان مثال، افراد مبتدی اغلب از جملات به عنوان کمک‌ برای حفظ کردن استفاده می‌کنند مثلا “TRUE IS REAL THEN FALSE”. ولی افراد خبره از دانش قبلی خود در زمینه برنامه‌نویسی برای گروه‌بندی کلمات استفاده می‌کنند مثلا آنها “TRUE, FALSE” را “IF, THEN, ELSE” ترکیب می‌کنند. این مطالعه دوباره تأیید کرد که روش فکر کردن خبرگان به کد با افراد مبتدی متفاوت است.

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

منابع:
منبع: کتاب «مغز برنامه‌نویس» از انتشارات منینگ
عکس از اینجا

https://www.bibalan.com/?p=3732
https://t.me/bibalan_com
Post #228 232

Forwarded from Persian Gulf Charity Foundation

کانون نیکوکاری پرشین گالف برگزار می کند:

کلاس پایتون مقدماتی

مدرس: مریم وحدت پور

شروع دوره: ۲۱ سپتامبر ۲۰۲۱

زمان کلاس: سه شنبه ها ساعت ۱۸ به وقت کلگری

هزینه: ۸۰ دلار برای دانشجوها و داوطلبان کانون نیکوکاری پرشین گالف، ۱۲۰ دلار برای غیردانشجو

مدت دوره: ۱۰ هفته

به همراه استاد حل تمرین (۱۲.۵ ساعت تدریس، ۱۰ ساعت رفع اشکال)

آخرین مهلت ثبت نام: ۲۰ سپتامبر

💻کلاس به صورت آنلاین و از طریق اپلیکیشن زوم برگزار خواهد شد.

مباحث:

📌آشنایی با انواع ساختار داده و توابع
📌آشنایی با شروط و حلقه ها
📌آشنایی با کتابخانه های numpy, pandas و matplotlib

🔹برای ثبت نام در این دوره اینجا کلیک کنید.


🔹این کلاس شما را برای ورود به دنیای ماشین لرنینگ آماده می کند.

🔹ضمنا کلیه عواید حاصل از برگزاری این کلاس تماما صرف حمایت از کودکان تحت پوشش کانون خواهد شد.

با سپاس؛
کانون نیکوکاری پرشین گالف



🎯 website
🎯 instagram
🎯 YouTube
🎯 telegram
🎯 facebook
Post #227 204
در ادامه‌ی نوشته‌ی مغز برنامه‌نویس
(به صفحه‌ نمایش دقت کنید) 😂

با سپاس از آقا رضا

https://t.me/bibalan_co
Post #225 406
مغز برنامه‌نویس: کدخوانی نصرت! (۲)
اهمیت تندخوانی کد
خواندن و فهمیدن کد، بخش بزرگی از زندگی برنامه‌نویسان است . بزرگی این بخش بیشتر از چیزی است که تصور می‌کنید. تحقیقات نشان داده‌اند که تقریبا ۶۰ درصد زمان برنامه‌نویسان صرف خواندن و فهمیدن کد می‌شود تا نوشتن آن. خواندن کد به دلایل مختلفی انجام می‌شود از پیدا کردن دلیل بروز خطا بگیرید تا فهم کلی سیستم. دلیل کدخوانی هر چه باشد، همه‌ی آنها در یک موضوع با هم اشتراک دارند و آن این است که هدف شما پیدا کردن اطلاعات مشخصی در کد است. از جمله این اطلاعات می‌توان به یافتن محل مناسب برای پیاده‌سازی ویژگی جدید، محل وقوع خطا یا فهمیدن روش پیاده‌سازی یک متد موجود است.

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

چرا فهمیدن یک کد ناآشنا دشوار است؟
دلیل اول آن است که حافظه‌ی کوتاه‌مدت که نقش اصلی در خواندن و فهمیدن لحظه‌ای را دارد، نمی‌تواند بیش از ۳۰ ثانیه اطلاعات را نگهدارد و به ناچار آن را به حافظه‌ی بلندمدت منتقل می‌کند وگرنه اطلاعات فراموش خواهد شد.

دلیل دوم این است که اندازه‌ و ظرفیت حافظه‌ی کوتاه‌مدت بسیار محدود است. جرج میلر اعتقاد داشت که اندازه‌ی حافظه‌ی کوتاه‌مدت برابر عدد ۷ به‌علاوه-منهای ۲ است (یعنی حافظه‌ی کوتاه‌مدت بین ۵ تا ۹ جای خالی دارد). تحقیقات اخیر نشان می‌دهد که ظرفیت حافظه‌ی کوتاه‌مدت ما از این هم کمتر است و عددی بین ۲ تا ۶ است.

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

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

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

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

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

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

https://tinyurl.com/h97t46ps

دکتر گروث این گروه‌ها یا قطعات اطلاعاتی را که افراد، اطلاعات را به کمک آنها با هم ترکیب و نگهداری می‌کنند، چانک یا قطعه‌ی اطلاعاتی نامید.او «گشایش سیسیلی« را یک چانک در نظر گرفت. نکته جالب در مورد چانک‌ها این است که که آنها می‌توانند فقط در یکی از جاهای خالی حافظه‌ی کوتاه‌مدت جا شود (به یاد داشته باشید که حداکثر ۶ جای خالی وجود دارد).

کتاب «مغز برنامه‌نویس» از انتشارات منینگ
https://t.me/bibalan_com
Post #224 252
مغز برنامه‌نویس‌: سردرگمی و گیجی

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

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

گیج‌شدن موقع کدنویسی می‌تواند به سه دلیل در مغز یک برنامه‌نویس ایجاد شود:
– کمبود دانش (lack of knowledge)
– نداشتن دسترسی آسان به اطلاعات (lack of information)
– کمبود قدرت پردازش (lack of processing power)

هنگام خواندن یا نوشتن کد، سه فرایند شناختی (cognitive processes)‌ درگیر می‌شوند:
– فرایند نخست، فرایند بازیابی اطلاعات از حافظه‌ی بلندمدت (long-term memory) است، به عنوان مثال معنی کلیدواژه‌های زبان از این حافظه استخراج می‌شود.
– فرایند دوم، فرایند بازیابی اطلاعات از حافظه‌ی کوتاه‌مدت (short-term memory) است. اطلاعات مربوط به برنامه‌‌ای که روی آن کار می‌‌کنید در حافظه‌ی کوتاه‌مدت شما ذخیره می‌شود. نام متدها یا متغیرهای برنامه بخشی از این اطلاعات هستند.
– فرایند سوم درگیر حافظه‌ی فعال (working memory) است. در اینجاست که پردازش کد اتفاق می‌افتد. به عنوان مثال موقعی که اجرای کدی را به صورت ذهنی دنبال می‌کنیم (trace) ، این فرایند شناختی درگیر می‌شود.

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

منبع: کتاب «مغز برنامه‌نویس» از انتشارات مننیگ
https://tinyurl.com/aaesz7x3

گزیده:
بهتر است که انسان چیزی نداند تا بسیاری چیزها را نیمه‌تمام بداند؛ بهتر است که با عقاید خودمان یک ابله سفیه باشیم تا آن‌که با عقاید دیگران یک مرد دانشمند به‌حساب آییم.»
فریدریش نیچه
https://www.bibalan.com/?p=3708
https://t.me/bibalan_com
Manning Publications The Programmer's Brain With this unique book learn how to optimize your brain’s natural cognitive processes to read code more easily, write code faster, and pick up new languages in much less time.
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →