دستیار کتابخوانی

  • یوسف مهرداد

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

در این نوشته می‌خواهم به دو مورد از آنها که جنبه شخصی دارد اشاره کنم.

۱) مورد کاربرد یک: حافظه‌یار

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

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

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

Question: what is the role of messaging grid?
Answer: The role of the messaging grid is to manage input requests and session state within the virtualized middleware of a space-based architecture….
Reference: software-architecture: page 214.

۲) مورد کاربرد دو: کتاب‌خوان یار

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

Question: Explain a front controller?
Answer: A front controller is a domain service within a choreography architecture that not only handles domain behavior but

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

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

https://bibalan.com/?p=4472
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

غیرمستقیم زندگی کنید!

  • یوسف مهرداد

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

If you want to go in one direction, the best route may involve going in another.

این جمله بیانگر مفهوم «غیرمستفیم» یا ‘obliquity’ است: مفهومی که با ظاهر متناقض و پارادکسی‌اش بیان می‌کند که بسیاری از اهداف وقتی به صورت غیرمستقیم دنبال شوند احتمال این که محقق شوند بیشتر است.

چه برای پیروزی در نبردهای سرنوشت‌ساز و چه برای تحقق اهداف فروش، تاریخ نشان داده که رویکردهای غیرمستقیم (obliquity) مو‌فق‌تر بوده‌اند به ویژه در حوزه‌های بسیار دشوار.

جان کی (John Kay) اقتصاددان برجسته این نظریه‌اش را برای بسیاری از حوزه‌ها از کسب‌و‌کارهای بین‌المللی گرفته تا برنامه‌ریزی شهری، از فوتبال گرفته تا مدیریت مهار آتش‌سوزی جنگل‌ها استفاده کرده است.

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

کتاب جان کی از مشاهدات محقق حوزه‌ی داروسازی سر جیمز بلک (Sir James Black) الهام گرفته است. سر جیمز بلک برنده‌ی جایزه نوبل ۱۹۸۸ در جایی گفته:
«من به همکارانم می‌گفتم که اگر می‌خواهید پول در بیاورید راه‌های بسیار آسان‌تری نسبت به تحقیقات دارویی وجود دارد. اوه! چقدر من در اشتباه بودم! به نظر می‌رسد هم در کسب‌وکار و هم در علم، وقتی سرگرم انجام کاری هستید، احتمال موفقیت شما در رسیدن به دستاورد دیگری [که مد نظر شما نبود] بیشتر است. من به این پدیده، اصل «غیرمستقیم» می‌گویم.»

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

پ.ن.
بر این باورم که بسیاری از تفکرات دنیای کسب‌وکار را می‌توان در حوزه‌ی فردی نیز به کار گفت!

گزیده:
به جز دو دوره بین ۱۲ تا ۱۴ سالگی برای یادگیری موسیقی و بین ۱۴ تا ۱۶ سالگی برای یادگیری ریاضیات، تمام دوران تحصیل‌ام را به جای مطالعه‌ مشغول رویاپردازی بودم. … تحت تاثیر برادر بزرگ‌ترم تصمیم گرفتم پزشکی بخوانم… و برای اولین بار، لذت جایگزین کردن مطالعه‌ی سخت و منظم را به جای شادی ناشی از خیال‌بافی و رویاپردازی چشیدم!
سر جیمز بلک

https://bibalan.com/?p=4456
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

پوسته‌ی بیشتر – تخم‌مرغ کمتر

  • یوسف مهرداد

جان بنتلی (Jon Bentley) که ستونی با نام Programming Pearls در نشریه Communications of the ACM داشت در سال ۱۹۸۶ به برنامه‌نویسی ادیبانه (literate programming) علاقه‌مند شد و از دونالد کنوث (Donald Knuth) خواست تا به عنوان نویسنده‌ی مهمان برنامه‌‌ای با این شیوه بنویسد و از داگ مکل‌روی (Doug McIlroy) هم خواست نقدی بر برنامه‌نویسی ادیبانه در آن ستون بنویسد.

مساله‌ای که بنتلی از کنوث خواسته بود برای آن برنامه‌‌ای بنویسد برای اکثر افراد آشناست: برنامه‌ای بنویسید که یک فایل متنی را بخواند و n کلمه‌ی پرتکرار به ترتیب و به همراه تعداد تکرار آنها چاپ کند.

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

در ادامه با متانت و با زبانی ساده، مبانی و اصول زیربنایی برنامه‌ی کنوث را نقد و ویران کرد. آن چه افراد از آن نوشته به یاد دارند این است که مکل‌روی یک کد با ۶ دستور شل یونیکس (six-command shell pipeline) نوشت که نسخه‌ی کامل و بدون خطای کد پاسکال ۱۰ صفحه‌ای کنوث بود.


۱  tr -cs A-Za-z '\n' |
۲  tr A-Z a-z |
۳  sort |
۴  uniq -c |
۵  sort -rn |
۶  sed ${1}q

مرجع: More shell, less egg

این داستان نشان‌‌دهنده‌ی توانایی ترکیب اجزای از پیش‌ساخته در مدل Pipeline (معروف به pipes and filters) است. جایی که ترکیب دستورات ساده و مستقل، ولی قابل ترکیب می‌تواند کار یک کد ۱۰ صفحه‌ای را انجام دهد.


گزیده:

Keep it simple, make it general, and make it intelligible. Douglas McIlroy

https://bibalan.com/?p=4357
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

انتشار کتاب The Ignite Project: A Journey in Scrum

  • یوسف مهرداد

خوشحالم که به اطلاع دوستان گرامی برسانم که کتاب The Ignite Project: A Journey in Scrum (لینک آمازون) توسط انتشارات Springer Nature در تاریخ ۲۵ آذر ۱۴۰۲ منتشر شد. افتخار داشتم با خانم نیوشا رییسی نژاد و آقای دکتر مشیرپور به عنوان نویسنده در این کتاب همکاری داشته باشم. از هر دوی این عزیزان به ویژه آقای دکتر مشیرپور بسیار سپاسگزارم.

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

در کنار داستان توسعه‌ی این نرم‌افزار بخش‌هایی به شکل زیر و با نام a word from the mentor (سخنی از مربی) وجود دارد که مفاهیم، اصطلاحات و تکنیک‌های مهندسی نرم‌افزار یا متدهای چابک مرتبط با آن بخش از داستان را توضیح می‌‌دهد. تلاش بر این بوده که اطلاعات تخصصی حوزه‌ی توسعه‌ی نرم‌افزار در لابه‌لای داستان گنجانده شود.

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

گزیده:
“هدف داستان‌نویس این نیست که به شما بگوید چگونه فکر کنید، بلکه هدف‌اش این است که سوالاتی مطرح کند تا شما به آنها فکر کنید.” براندون ساندرسون


https://bibalan.com/?p=4437
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

انتقاد سازنده!

  • یوسف مهرداد

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

انتقاد از ایده‌های دیگران می‌تواند سازنده باشد به شرطی که شما ایده بهتری داشته باشید که نتایج آن نیز تأیید‌ شده باشند.

یان لی‌کان، برنده جایزه تورینگ برای یادگیری عمیق

https://bibalan.com/?p=3865
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

داستان یک مصاحبه

  • یوسف مهرداد

بیایید بخشی از مصاحبه نماینده یک شرکت با یک برنامه‌نویس جویای کار رو مرور کنیم.

مصاحبه‌کننده: می‌تونید کمی درباره حلقه‌ی while در برنامه‌نویسی توضیح بدید؟
برنامه‌نویس: من با while توی برنامه‌نویسی کار نکردم.

مصاحبه‌کننده: بگید یک حلقه while چند بار تکرار می‌شه؟
برنامه‌نویس: عرض کردم که من با while کار نکردم. کدهایم رو با حلقه for می‌نویسم.

مصاحبه‌کننده: خب! باشه. بگید تفاوت حلقه for با حلقه while چی هست؟
برنامه‌نویس: عرض کردم که با while کار نکردم. ولی حلقه for … (توضیحات کامل و دقیق متقاضی)

مصاحبه‌کننده: ببین عزیزم، کسی که حلقه while رو ندونه، اصلا برنامه‌‌نویسی بلد نیست. اصلا به درد برنامه‌نویسی نمی‌خوره.

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


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

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

https://bibalan.com/?p=4418
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

جومویی هستید یا فومویی؟

  • یوسف مهرداد

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

مکتب فومو (FOMO):
فومو یا “ترس از دست دادن” (Fear of Missing Out.)، نگرشی است که شما به صورت پیوسته برای به روز بودن درباره‌ی پدیده‌ها و رخدادهای اجتماعی احساس نیاز می‌کنید و خود را ملزم می‌دانید که لحظه لحظه از رخدادهای اجتماعی، اخبار و روندهای محبوب مطلع گردید.

مکتب جومو (JOMO).
ایده پشت جومو یا”لذت از دست دادن” (Joy of Missing Out) این است که به جای اینکه دائماً احساس نیاز به به روز بودن داشته باشید، شادی را در پذیرفتن لحظات تنهایی، آرامش و چیزهایی که واقعاً برایتان مهم هستند، بیابید. زندگی وقتی بهتر می‌شود که چیزهای بی‌اهمیت را از دست بدهید.

گزیده:

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

https://bibalan.com/?p=4330
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

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