راهنمایی

  • یوسف مهرداد بی‌بالان

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

پرسش:

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

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

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

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

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

پیشنهاد پنجم این است که مهارت‌های نرم یا soft skills را یاد بگیرید. مهارت‌هایی مانند مهارت‌های ارتباطی، گفتگو، بیان نظرات، همراهی با دیگران.یک برنامه‌نویس و کلا هر انسانی برای بهتر شدن نیاز به این مهارت‌ها دارد.

پیشنهاد ششم این هست که علاوه بر تکنولوژی، مهارت‌های پایه‌ی برنامه‌نویسی را خوب یاد بگیرید مثل نوشتن تست، بازسازی کد (refactoring)، تحلیل نیازمندی‌ها، برنامه‌ریزی کارها. به زبان ساده یاد بگیرید کدی بنویسید که دوستش داشته باشید. این اتفاق نمی‌افتد مگر آن که کدی نوشته باشید که خوانا باشد (readable) و به راحتی تغییرپذیر باشد (changeable). اصلا هم فکر نکنید نوشتن کد خوانا و تغییرپذیر کار ساده‌ای است.

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

گزیده:

“A code is like love, it has created with clear intentions at the beginning, but it can get complicated.” – Gerry Geek

یادگیری نظارتی (supervised learning) به زبانی دیگر – بخش اول

  • یوسف مهرداد بی‌بالان

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

یادگیری نظارتی (Supervised Learning)
داستان
:
فرض کنید که معلمی با والدین یک شاگرد توافق می‌کند که به فرزندشان کمک کند تا نمره بهتری در درس ریاضی بگیرد. معلم با والدین روی نمره‌ی بالاتر از 18 توافق می‌کند.
ابزاری که معلم دارد فقط 1000 نمونه سوال ریاضی از سال‌های گذشته است. معلم تصمیم می‌گیرد که 200 سوال را از بین 1000 سوال جدا کند و از آنها به عنوان آزمون نهایی استفاده کند. اگر شاگرد بتواند پس از پاسخ به این 200 سوال به نمره‌ای بالاتر از 18 برسد، تعهد او با والدین انجام شده، وگرنه خیر.

حالا معلم 800 سوال در اختیار دارد و باید به شکلی مطمئن شود که شاگرد نمره‌ی بالای 18 از 200 سوال آزمون آزمایشی خواهد گرفت. او این 800 سوال را نیز به دو بخش 640 و 160 تایی تقسیم می‌کند. از 640 سوال اول برای آموزش به شاگرد استفاده می‌کند و از 160 سوال باقی‌مانده هم برای آن که مطمئن شود شاگرد حل 640 سوال را به خوبی یاد گرفته است و آماده‌ی آموزن نهایی است.

سوال بعدی معلم این خواهد بود که چند بار کل 640 سوال را با شاگردش حل کند و در هر جلسه‌ی چند تا سوال را حل کند. مثلا می‌تواند 3 بار کل سوالات را حل کند (3 * 640 سوال) و در هر جلسه هم 64 تا سوال (در مجموع 3 * 10 جلسه).

حالا اگر پس از برگزاری جلسات آموزشی، به کمک 160 سوال باقی مانده از شاگرد آزمون (آزمون دست‌گرمی) بگیریم و نمره شاگرد 16 شد چه اتفاقی می‌افتد؟ اگر نمره شاگرد 19 شد چه خواهد شد؟
فرض کنیم که شاگرد به خوبی آزمون دست‌گرمی را پشت سر گذاشت و معلم خیالش راحت شد. حالا نوبت برگزاری آزمون نهایی است. اگر شاگرد پس از حل 200 سوال نهایی، نمره‌اش 17 شد چه خواهد شد؟ اگر 18.5 شد چه خواهد شد؟
در چه صورت خیال والدین راحت خواهد بود که فرزندشان می‌تواند در آزمون مدرسه نمره بالای 18 را به دست بیاورد؟

نکات مهم داستان:
– معلم
– 1000 سوال
– 200 سوال برای آزمون نهایی (20 درصد کل سوالات)
– 800 سوال
– 160 سوال
– 640 سوال
– نمره به دست آمده از آزمون دست‌گرمی (ارزیابی)
– تفاوت نمره آزمون ارزیابی با نمره تعهدشده
– نمره به دست آمده از آزمون نهایی
– تفاوت نمره آزمون نهایی با نمره تعهدشده

مفاهیم یادگیری ماشین:
– معلم: معلم کسی است که جواب‌ها را می‌داند. در نتیجه این روش یادگیری، یادگیری تحت نظارت یا تحت سرپرستی معلم است.
-نمره 18: مقدار سنجه (metric) قابل قبول
– 1000 سوال: مجموع داده‌ها یا dataset
– 200 سوال برای آزمون نهایی (20 درصد کل سوالات): داده‌های آزمون یا test data
– 800 سوال: داده‌های آموزشی یا train data
– 160 سوال: داده‌های ارزیابی یا validation data
– 640 سوال: داده‌های آموزشی train data
– نمره به دست آمده از آزمون دست‌گرمی (ارزیابی): مقدار سنجه (متریک) حاصل از داده‌های ارزیابی (validation metrics)
– تفاوت نمره آزمون ارزیابی با نمره تعهدشده: انحراف مقدار سنجه در مرحله‌ی ارزیابی با مقدار سنجه‌ی قابل قبول
– نمره به دست آمده از آزمون نهایی: مقدار سنجه‌ی‌ حاصل از داده‌های آزمایشی (test metrics)
– تفاوت نمره آزمون نهایی با نمره تعهدشده: انحراف سنجه حاصل از داده‌های آزمایشی با سنجه قابل قبول

نکته پایانی:
برگردان مفاهیم یادگیری ماشین به فارسی چه کار دشواری شد!

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

دیه گو

  • یوسف مهرداد بی‌بالان

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

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

خداحافظ دیه‌گو و روحت شاد

عکس از nytimes.com

جبر زیبا، جبر نازیبا

  • یوسف مهرداد بی‌بالان

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

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

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

یادگیری

  • یوسف مهرداد بی‌بالان

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

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

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

  • یوسف مهرداد بی‌بالان

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

افراد حاضر در پنل:
▫️یوسف مهرداد بی‌بالان
▫️اسد صفری
▫️روح‌الله دلپاک
▫️ابراهیم نبیئی
▫️مسعود بهرامی

برگزار کننده: مکتب‌خانه DDD

شرکت در این وبینار رایگان است.

⏱زمان: پنجشنبه هشتم آبان ۱۳۹۹ – ساعت ۱۸ الی ۲۰

???? لینک ثبت‌نام در رویداد: yun.ir/npwk8

@DomainDrivenDesign_ir

عاشق استاد شجریان

  • یوسف مهرداد بی‌بالان

امیدوارم روح استاد محمدرضا شجریان در آرامش و دل خانواده، دوستان و دوست‌دارانش شاد باشد. نامش جاودانه باد.

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

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

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

اگر تو با این دل حزین عهد بستی حبیب من با رقیب من، چرا نشستی؟
چرا عزیزم دل مرا از کینه خستی؟ بیا برم شبی از وفا ای مه الستی
تازه کن عهدی که با ما بستی

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

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

امیدوارم روح هر دوی آنها، هم استاد و هم حسین آقا، در آرامش و شادی باشد.

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

برای خروج از جستجو کلید ESC را بفشارید