نامه‌ای از یک دوست بسیار کوچولو!

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

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

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

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

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

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

ایمیل داریس:
“من در این چند ماه اخیر توانستم تایپ ده انگشتی را یاد گرفته و از ان به خوبی استفاده کرده و از قدرت ان بهره مند شوم از تلاش و صبر شما بسیار متشکر و مدویون هستم با تشکر فراوان دوستار و دانش اموز شما داریس (اویچ) حصاری????????????????????????”

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

داستان یک مهاجرت معکوس

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

به قلم دکتر کیا بازرگان

سال ۱۳۸۶ با خانمم از مینسوتا برگشتیم ایران. خونه‌ی امریکا رو گذاشتیم برای فروش، ماشین‌ها رو هم فروختیم. دوتایی استادیار دانشگاه صنعتی اصفهان شدیم. آخر سال تحصیلی، حکم استخدام‌مون اومد. خونه فروش نرفت (بحران مسکن امریکا، با اینکه سه بار قیمت خونه رو پایین آوردیم ۳۰-۴۰ هزار دلار).

مجبور شدیم آخر سال تحصیلی برگردیم مینسوتا که من حقوق بگیرم پول وام خونه رو بدیم. رئیس دانشکده صنعتی اصفهان گفت این حکم‌تون معتبره. هر وقت برگردید، می‌تونید ادامه‌ی کار بدید. فقط وقتی خارج باشید، جزو سنوات‌تون حساب نمیشه. در اون مدت هم که اصفهان بودیم، مشکلات طبیعتاً بود (مثل وصل شدن تلفن دفترم که ۴-۵ ماه طول کشید، یا به خاطر دستکاری در آدرس آی‌پی کامپیوترها در صنعتی اصفهان به خاطر فیلترینگ، چند ماه طول کشید که بعد از کلی چک و چونه زدن، تونستم یک آی‌پی واقعی بگیرم که بتونم به کامپیوترهای آزمایشگاهم تو مینسوتا وصل بشم).

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

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

در این دوره، همکارهای دانشکده کماکان ماه بودن. رئیس دانشکده هم همینطور (قبلی هم فوق‌العاده بود). ولی رئیس دانشگاه تنگ‌نظر بود و نه فقط من، بلکه بسیاری از همکارها رو اذیت کرد. از این آدم‌هایی بود که “مقام معظظظم رهبری” رو غلیظ می‌گفت و احتمالاً فقط تعداد خیلی محدودی از آدم‌ها رو قبول داشت به عنوان مذهبی و ولایی. مشکل من قطعاً مذهبی نبودن نبود. من رو تو مسجد دانشگاه دیده بود موقع نماز یا بین دانشجوها به مذهبی بودن شناخته شده بودم. ولی تو دار و دسته‌ی رئیس دانشگاه نبودم یا با بسیج و این چیزها کاری نداشتم…

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

من هم گفتم بی‌خیال بشید. برمیگردم. تو این پروسه حدود ۶۰ هزار دلار یا بیشتر هم از دست دادیم و پس‌اندازها ته کشید، چون هم از مینسوتا حقوق نمیگرفتم (leave of absence)، که برای نصف سال میشد ۵۰ هزار دلار، هم باید پول خونه تو امریکا رو می‌دادیم، هم چند سفر برای کنفرانس و داوری پروپوزال‌های بنیاد دانش ملی امریکا و این‌ها باید می‌رفتم (ببخشید، بنیاد دانش حساب نیست. پولش رو دولت امریکا داد)، و هم خرج ایران. هیچ‌وقت به طور رسمی کسی به من نامه نداد که تو اخراجی. ولی عملاً اخراج شدم.

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

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

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

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

مشکل کسی که مثلاً از امریکا برمی‌گرده و نمی‌تونه ایران بمونه، لزوماً مسائل مالی و رفاه و این‌ها نیست. گرچه این‌ها هم مولفه‌های مهمی هستن در تصمیم‌گیری. مشکل، وجود آدم‌های بی‌سواد و مغرض و تنگ‌نظر در مناصب دولتیه که میتونن با یک تصمیم – حتی چه بسا غیر قانونی – سد راه کسی بشن که میخواد کار کنه. کسانی که درک نمیکنن از دست دادن یک سرمایه‌ی انسانی، چقدر ضرر میزنه به مملکت…

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

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

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

گزیده:
«هیچ انسانی با خوشحالی وطنش را ترک نمی‌کند.»
رومن رولان، کتاب ژان کریستف

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

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

In programming, you constantly run into situations where you have a choice between “make it work right now with this quick hack” or “do it right”. And it’s always very satisfying to do things right. Saves you time, too 🙂

François Chollet, Creator of Keras

سال نو و روز نو

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

باد همایون به تو سال نو و روز نو
عمر تو زان بر مزید عز تو زین بر دوام

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

فروردین ۱۴۰۲

بوی جوی مولیان آید همی!

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

با تشکر از خانم مانا عزیزی

بازسازی کد: ارزش کد خودآزما (Self-testing code)

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

بازسازی کد ابزار ارزشمندی است، اما نمی‌تواند به تنهایی مفید باشد. برای انجام درست بازسازی کد، به مجموعه‌ای یکپارچه‌ و قابل اتکا از تست‌ها نیاز دارم تا بتوانم اشتباهات اجتناب‌ناپذیر خود را پیدا کنم. حتی با وجود ابزارهای بازسازی‌ خودکار کد، ناچارم بسیاری از بازسازی‌های کد را همچنان از طریق مجموعه‌‌ای از تست‌‌ها (test suite) بررسی کنم.

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

معمولا هر برنامه‌نویسی خاطره‌ای دارد از این که کل روزش را برای پیدا کردن یک خطا مشغول بوده است [شما بخوانید سر کار بوده! مترجم]. رفع خطا معمولاً بسیار سریع انجام می‌شود، اما پیدا کردن خطا واقعا کابوس است.

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

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

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

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

Real quality means making sure that people are proud of the code they write, that they’re involved and taking it personally. Linus Torvalds

 

برای یک روز تعطیل عالی!

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

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

«چند روز پیش یک نفر به من گفت دو تا بچه دارم که گشنه موندن یه غذایی بگیر من ببرم خونه بهشون بدم بخورن. من رفتم همون سوپری نزدیک گفتم چی بخرم گفت تخم مرغ و نون. ۱۵ تا تخم مرغ و دو بسته چهار تایی نون لواش و دو تا روغن کوچیک گرفتم شد ۲۴۰ هزار تومن! یک لحظه با خودم گفتم یعنی یک خانوار سه نفره در طول روز برای سه وعده نون و تخم مرغ باید ۳۰۰ هزار تومن هزینه کنه و در ماه ۹ میلیون تومن فقط پول غذای حداقلی؟! میانگین دریافتی کارمندای دولت و بازنشسته ها و نظامی ها چقدره؟»

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

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