سماموس: نوشته‌های یوسف مهرداد بی‌بالان – Telegram
سماموس: نوشته‌های یوسف مهرداد بی‌بالان
286 subscribers
27 photos
6 videos
1 file
346 links
این کانال برای اطلاع‌رسانی نوشته‌های وبلاگ سماموس (bibalan.com) ایجاد شده است. مطالب پس از انتشار در وبلاگ، در این کانال نیز منتشر خواهد شد. امیدوارم که مطالب آن برای شما مفید باشد و خوشحال خواهم شد تا نظرات و بازخوردهای شما عزیزان را دریافت کنم.
Download Telegram
انتقاد سازنده!

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

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

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



https://news.1rj.ru/str/bibalan_com
https://www.bibalan.com/?p=3865
👍102👏1
انتشار کتاب The Ignite Project: A Journey in Scrum


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


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

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


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

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

https://bit.ly/41y5rL2

آقای دکتر محمد مشیرپور:
https://www.linkedin.com/in/moshirpour/

خانم نیوشا رییسی نژاد:
https://www.linkedin.com/in/niyoushar/

https://bibalan.com/?p=4437
https://news.1rj.ru/str/bibalan_com
🎉13👏103👍2
پوسته‌ی بیشتر – تخم‌مرغ کمتر


جان بنتلی (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://bit.ly/3tzlf3y
https://bibalan.com/?p=4357
https://news.1rj.ru/str/bibalan_com
👍84
غیرمستقیم زندگی کنید!

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

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

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

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

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

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

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

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

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


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



https://bit.ly/47Dajjn
https://bibalan.com/?p=4456
https://news.1rj.ru/str/bibalan_com
👍13👏2
دستیار کتابخوانی

سرعت پیشرفت یادگیری ماشین به ویژه بخش مدل‌های زبانی بزرگ (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://bit.ly/3I29rKH
https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4472
👍13
فناوری و بیلی‌ها

پیش‌گفتار:

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

گاهی اندیشیدن به «عادی»های کنونی مرا را دچار حیرت می‌کند. پرواز هواپیمای غول آسا چندین هزار تنی در آسمان و حرکت و گرمی خودروی سواری در دمای منفی ۵۰ درجه تنها بخش کوچکی از آن است.

داستان اردک‌های گم‌شده:

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

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

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

فناوری و بیلی‌ها!

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

گزیده:

«خاطره، تنها بهشتی است که نمی‌توانند ما را از آن طرد کنند.»
ژان پل


https://bit.ly/4cge2ab
https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4480
12👍3🥰2
سال نوی همگی مبارک!

برای‌تان بهترین‌ها را آرزومندم.
شاد باشید و تندرست

حافظ منشین بی‌ مِی و معشوق زمانی
که‌ ایّامِ گل و یاسمن و عیدِ صیام است
15
بهشت راه نرفته! (۱ از ۲)

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

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

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

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

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

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

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

وقتی به «راه نرفته» فکر می‌کنیم بیشتر از آن که به واقعیات فکر کنیم به «رویاها» تمایل داریم. رویاهایی که دنیا را آن گونه که دوست داریم بازسازی می‌کند. از همان دنیاهای رویایی دوران نوجوانی. کمتر تصمیم فنی‌ را سراغ دارم که به دنبال خود مجموعه‌ای از مساله‌های جدید به همراه نیاورد. این روزها هر سیستم نرم‌افزاری در حال توسعه‌ای دارای پیچیدگی بالایی است و بدیهی است که بتوان «بهشتی» برای توسعه‌ی آن پیدا کرد.
👍12
بهشت راه نرفته! (۲ از ۲)
در برخی فرهنگ‌ها به افراد توصیه می‌کنند که «تصمیم‌تان را بگیرید و با نتایج و عواقب آن رو به رو شوید!». شاید این بهترین توصیه‌ای است که در این زمینه برای خودم دارم. «تصمیم بگیرم» و به جای آن که اجازه دهم سوهان «بهشت‌ راه‌های نرفته» مغز و روانم را آرام آرام تخریب کند، با «نتایج تصمیم‌»‌های فنی‌ام رو به رو شوم.

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

https://bibalan.com/?p=4486
https://news.1rj.ru/str/bibalan_com
👏7👍6
یادگیری بی‌نام!

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

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

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

خوب چه باید کرد؟

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

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

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

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

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

https://bit.ly/4bxK1BF
https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4499
👍171
مدل یادگیری ۷۰:۲۰:۱۰

پیش‌گفتار:

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

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

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

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

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

گفتار: مدل ۷۰:۲۰:۱۰

چند وقت پیش به صورت اتفاقی با مدلی آشنا شدم به نام مدل یادگیری و توسعه‌ی ۷۰:۲۰:۱۰ (۷۰:۲۰:۱۰ Learning and Development Model و سایت ۷۰۲۰۱۰institute.com). این مدل بر اساس یک نظرسنجی از ۲۰۰ مدیر اجرایی در سال ۱۹۹۶ طراحی شده است. در این نظرسنجی از آنها خواسته شده بود که بیان کنند «چگونه یاد می‌گیرند». بر اساس این مدل، افراد از روش‌های زیر یاد می‌گیرند:

۷۰ درصد یادگیری از محیط کار [از کارهای چالشی یعنی کارها و پروژه‌هایی که مهارت‌هایی فراتر از مهارت کنونی شما دارند و با کارهایی که در آن احساس راحتی می‌کنید (کامفورت زون) متفاوتند]

۲۰ درصد یادگیری از دیگران [ آموزش غیررسمی از طریق شبکه‌‌سازی تخصصی، نشست‌ها، مربیان، منتورها ]

۱۰ درصد از طریق آموزش رسمی


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

گزیده:
You keep on learning and learning, and pretty soon you learn something no one has learned before.
― Richard Feynman



https://bit.ly/4ayrunz
https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4507
10👍3
به احترام «یک آدم معمولی»

https://bit.ly/4bBCNwK

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

به همه‌ی دوستان و خوانندگان فوتبالی و غیرفوتبالی پیشنهاد می‌کنم این ویدیوی بیست دقیقه‌ای را ببینند. اگر هم فرصت ندارید ۸ دقیقه پایانی آن را ببینید. آدرس ویدیو در یوتیوب (https://youtu.be/o3GSDlRGODU?si=B0SQqUokJDqULsK6)


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

از آنجا که وقتی ما می‌خواهیم درباره‌ی مربیان قضاوت کنیم به آمارها نگاه می‌کنیم که ببینیم چند بار قهرمان لیگ برتر انگلیس شده‌اند، چند بار قهرمان لیگ قهرمانان اروپا شده‌اند، وقتی به این آمار نگاه می‌کنی آیا به یاد می‌آری که آن چه واقعا بیشتر از هر جامی اهمیت دارد خانواده (باشگاه لیورپول) است، روابط با انسان‌هاست که تو با خودت از لیورپول به همراه می‌بری؟

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

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


و سخن پایانی مجری:
از شما بسیار سپاسگزارم شما مردم رو خوشحال کردید.

پانوشت:
هنگام ورود کلوپ به لیورپول خبرنگار به او گفت که مورینیو خودش را «آدم خاص» (The Special One) می‌نامد. شما خودتان را چه می‌نامید. کلوپ پاسخ داد: من «یک آدم معمولی» (A Normal One) هستم.

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

مرجع تصویر: اسکای اسپورت

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4521
11👍6
I am excited to share that I will be attending the IEA/AIE 2024 conference (www.ieaaie2024.com) in Hradec Králové, Czech Republic, next week from July 10 to 12!

I’ll be presenting our paper, "𝑾𝒐𝒓𝒌 𝒊𝒏 𝑷𝒓𝒐𝒈𝒓𝒆𝒔𝒔 𝑷𝒓𝒆𝒅𝒊𝒄𝒕𝒊𝒐𝒏 𝒇𝒐𝒓 𝑩𝒖𝒔𝒊𝒏𝒆𝒔𝒔 𝑷𝒓𝒐𝒄𝒆𝒔𝒔𝒆𝒔 𝑼𝒔𝒊𝒏𝒈 𝑻𝒆𝒎𝒑𝒐𝒓𝒂𝒍 𝑪𝒐𝒏𝒗𝒐𝒍𝒖𝒕𝒊𝒐𝒏𝒂𝒍 𝑵𝒆𝒕𝒘𝒐𝒓𝒌𝒔," co-authored with Dr. Behrouz Far, Faezeh Eshragh, from University of Calgary, and Bahareh Ghiyasian from Google.

Our presentation is scheduled for July 10 at 11:50 AM CEST. If you’re attending the conference or happen to be near the venue, I would love to connect, exchange insights, and explore potential collaborations.

Looking forward to seeing everyone, especially my friends in Europe!
👍127👏5
پیشنهاد کتاب: معماری نرم‌افزار

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

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

گفتار:
طی چندین ماه گذشته با گروهی از دوستان خوبم دو کتاب درباره‌ی معماری نرم‌افزار خواندیم:

– Fundamentals of Software Architecture: An Engineering Approach, 2020, by Mark Richards, Neal Ford

– Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures, 2021, by Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani

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

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

گزیده:
Don’t try to find the best design in software architecture; instead, strive for the least worst combination of trade-offs.
Software Architecture: The Hard Parts

https://bit.ly/3Wb5dHx


https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4542
8👍7👏6🔥1
برنامه نویس کاردرست

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

این جمله برگرفته از سخن کنت بک (Kent Beck) درباره‌ی خودش است:
«من برنامه‌نویس ممتازی نیستم. من برنامه‌نویس خوبی هستم که عادت‌های ممتازی دارم»

“I’m not a great programmer; I’m just a good programmer with great habits.”

برای من این که «عادت‌‌های ممتاز» (great habits) در برنامه‌نویسی چیست همواره جای سوال و تحقیق بوده است.

کنت بک در جایی در توضیح این جمله‌اش گفته که «تأمل (Reflection) اساسی‌ترین و اصلی‌ترین عادت است. در یک ساعت گذشته چه کارهایی کردم؟ کدوم بخش‌اش رو می‌تونستم بهتر انجام بدم؟ دفعه بعد [توی چنین شرایطی] چه کاری می‌کنم؟ تأمل مادر همه‌ی عادت‌های دیگه است»

اینها برداشت‌های من است از نکاتی که کنت بک به آنها اشاره کرده است:

«در یک ساعت گذشته چه کارهایی کردم؟»: یک ساعت گذشته را ارزیابی کنم، به آن چه گذشته، دستاوردها، مسایل و مشکلات، و این که چقدر اثربخش (effective) بوده‌ام فکر کنم.

«کدوم بخش‌اش رو می‌تونستم بهتر انجام بدم؟»: کارایی یک ساعت گذشته را بررسی کنم و نسبت به جنبه‌هایی از کارم که قابل بهبود است تفکر نقادانه داشته باشم.

«دفعه بعد [توی چنین شرایطی] چه کاری می‌کنم؟» بر اساس تجربه‌‌ای که کسب کردم، کدام بخش از کار رو به شکل دیگری انجام و بهبود خواهم داد و برای انجام آن از چه تکنیک‌ها یا متدهای جدیدی استفاده خواهم کرد.

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

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


گزیده:
ما از تجربه‌‌ چیزی یاد نمی‌گیریم، ما با فکر کردن و تامل (Reflection) درباره‌ی تجربه‌‌ها یاد می‌گیریم.
جان دیویی فیلسوف آمریکایی

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

https://bit.ly/4d91AsD

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4549
👍177
چگونه برنامه‌نویس خوبی شوم


پرسش: چه چیزی از یک برنامه‌نویس، یک برنامه‌نویس «خوب» می‌سازه؟

کنت بک: پاسخ این پرسش راحته. «خودت باش» (Be Yourself).

تنها یه بازی [چالش] در کل دنیا وجود داره و اون هم اینه:‌«تمام تلاشت رو بکن» (Do Your Best). ورزش‌‌، کار، روابط انسانی فقط سایه‌هایی از همین «یه بازی»اند. برنامه‌نویسی هم همین طور.


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


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

متن انگلیسی نوشته:

What makes a programmer “good?”
This is an easy one. Be yourself. There is only one game in the whole world. It’s called Do Your Best. Sports, careers, relationships are all shadows of the One Game. Programming, too. How close have you come to your full potential as a programmer? If you get kind of close, you’re good.


https://bit.ly/4fHYCxg
https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4571
👍134
جزوه دوره تحلیل نیازمندی‌ها

پیش‌گفتار: دوره‌ تحلیل نیازمندی‌ها

https://bit.ly/4fROpym

برای سالها، دوره‌ای تدریس می‌کردم با عنوان روش کاربردی تحلیل نیازمندی‌های نرم‌افزار (Software Requirements Analysis: A Practical Approach). این دوره را مثل بقیه دوره‌هایی که تدریس می‌کردم خیلی دوست داشتم. حس بسیار خوبی داشتم وقتی سر کلاس حاضر می‌شدم. دلم برای کلاس‌ و شاگردهایم خیلی تنگ می‌شود. یادش به خیر.

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

گفتار: جزوه درس تحلیل نیازمندی‌ها

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

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

https://bit.ly/3z6YFlG

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

جالب‌ترین بخش این مصاحبه برای من این جمله بود: «این فرصت را ندادم که از تجربه بازی با پیراهن ایتالیا لذت ببرند».

اوه! به این موضوع فکر کردم که ما هم به عنوان بازیکن یا مدیر یک تیم نرم‌افزاری فرصت لذت بردن از پیراهن تیم «توسعه‌ی نرم‌افزار» را نداریم یا به بازیکنان تیم‌مان نمی‌دهیم.
می‌دانم! می‌دانم! هزاران دلیل درست برای «نبودن»‌اش وجود دارد، ولی برای «بودن»‌اش لازم نیست دنبال دلیلی باشیم. همه‌ی ما می‌دانیم که «باید» باشد. پس بسم‌الله!

به یاد دارم که در کلاس‌ها در کنار محتوای دوره،‌ یک سری ویدیوی کوتاه و نامرتبط به دوره پخش می‌کردم و از دانشجویانم می‌خواستم آن را با هم ببینیم و بعد کمی درباره‌اش با هم گپ بزنیم. یکی از این ویدیوها، سخنرانی شان آکر با عنوان «The happy secret to better work» بود. پیشنهاد می‌کنم شما هم آن را ببینید. می‌توانید ویدیو را با زیرنویس فارسی هم ببینید.

The happy secret to better work, Shawn Achor, 26,363,163 views
https://bit.ly/4ghuXeA

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

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

منبع مصاحبه: ورزش ۳
https://bit.ly/3AV7Mq4

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4618
👍16
آقای دکتر و انتخابات ریاست جمهوری آمریکا

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

انتخابات ۲۰۱۶ آمریکا:

در چنین روزهایی در سال ۲۰۱۶ برابر با ۱۳۹۵ خورشیدی، انتخابات ریاست جمهوری آمریکا برگزار شد. دو نماینده، آقای دونالد ترامپ و خانم هیلاری کلینتون با هم رقابت می‌کردند. پیش‌بینی‌ها در ایران از این حکایت از پیروزی خانم کلینتون می‌کرد. ولی به هر حال در هفته‌های پایانی رقابت شدید‌تر شده بود.

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

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

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

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

پاسخی که انتظار داشتم این بود که «بله، من هم مثل بقیه دچار زیان شدم و اصلن فکر نمی‌کردم که هیلاری کلینتون بازنده‌ی انتخابات بشه».

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

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

برای استاد عزیزم، آقای دکتر نازنین، بهترین‌ها را آرزومندم و امیدوارم که هر جا که هستند تندرست، شاد و پیروز باشند.

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



https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4633
https://bit.ly/3CjjgEC
👍174
نرم‌افزار بی‌نقص و کامل

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

اندرو هانت نویسنده کتاب The Pragmatic Programmer


https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4593
👍14👏1🤔1