تو هم فقط یک انسانی

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

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

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

گزیده:
خودت را در رویاهای داشتن چیزهایی که نداری، غرق نکن، اما موهبت‌هایی که دارا هستی را بشمار، و شکرگزارانه به خاطر داشته باش که چطور رؤیای داشتن شان را در سرت می‌پروراندی اگر آنها را نداشتی‌. مارکوس آئورلیوس

منبع:‌ویکی پدیا

برنامه‌نویس دور

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

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

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

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

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

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

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

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

درگذشت بانوی «کیفیت»

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

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

 

 

باشد که باز بینم دیدار آشنا را

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

 

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

بی‌بالان، بهمن ۱۴۰۰، ژانویه ۲۰۲۲

زبان برنامه‌نویسی کربن

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

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

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

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

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

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

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

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

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

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

 

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

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

مغز برنامه‌نویس: دسته‌بندی بیکن‌ها (۶)

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

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

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

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

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

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

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

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

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

یک تاکتیک موثر برای اتمام کارهای ناتمام

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

به تجربه پی برده‌ام:

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

 

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