رفتن به نوشته‌ها

برچسب: متلب

در مورد این که همه دارن برنامه‌‌نویس میشن!

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

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

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

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

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

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

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

لطفا دست بردارین از سر بچه‌های ما!

🎞 گفت‌وگو در مورد فیزیک ماده چگال (سخت)

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

میهمانان

🎤 دکتر محمد جوادی 🇮🇷
دکتری فیزیک ماده‌ چگال، ادوات نیم‌رسانا، پژوهشگر پسادکتری در دانشگاه تهران

🎤 ساناز شکری 🇩🇪
دانشجوی دکتری فیزیک حالت جامد، ابررسانایی توپولوژیک، مرکز پژوهشی مواد و حالت جامد لایبنیتس

🎤 محمد حمدی 🇨🇭
دانشجوی دکتری علوم و مهندسی مواد، اسپینترونیک و مگنونیک مواد پادفرومغناطیس، موسسه پلی‌تکنیک فدرال لوزان

پرسش‌های اصلی که در این برنامه دنبال شد به شرح زیر است:

  • اسم دقیق این گرایش چیست؟
  • هدف و پرسش‌های معروف در این گرایش چیست؟ متخصصان به چه نوع از مسائل علاقه دارن؟
  • به نظر شما چه تصویر رایج غلطی در ذهن عوام در مورد این گرایش وجود دارد؟
  • چگونه با این رشته آشنا شدین؟ 
  • چه‌طور متوجه شدید که این گرایش مناسب شماست؟
  • محیط کار شما چه شکلی است؟ (آزمایشگاه، رصدخانه، پشت میز، کار با کامپیوتر و …)
  • یک روز عادی در زندگی حرفه‌ای شما چگونه سپری می‌شود؟
  • آیا از انتخابتان راضی هستید؟
  • سختی‌های زندگی شما شامل چه چیزهایی می‌شود؟
  • آیا به سایر علاقه‌مندان به این گرایش توصیه می‌کنید که به‌طور حرفه‌ای به این گرایش بپردازند؟
  • مقدمات علمی و فنی لازم برای ورود به این گرایش
  • درس‌های اصلی (ارائه شده و نشده در مقطع کارشناسی)
  • مهارت‌های جانبی (توانایی محاسباتی و کار کردن با نرم‌افزارهای خاص)
  • کدام دانشگاه و یا مراکز تحقیقاتی در ایران به این گرایش می‌پردازند؟
  • بازار کار در ایران و خارج چگونه است؟
  • امکان تحصیل در خارج از کشور و پذیرش گرفتن در این گرایش چگونه است؟
  • آینده کاری و وضعیت رفاهی خود را چگونه می‌بینید؟ در ایران/خارج
  • چرا دروس ابتدایی ماده چگال/حالت جامد به خوبی تدریس نمی‌شوند؟

در اینستاگرام ببینید:

در یوتیوب بینید:

یادگیری متلب و گنو اُکتاو

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

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

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

گنو اُکتاو ( GNU Octave) زبان برنامه‌نویسی سطح بالایی است که بیشتر برای محاسبات عددی به کار می‌رود. این برنامه امکانات زیادی را از طریق رابط خط فرمان برای حل عددی مسائل خطی و غیر خطی می‌دهد. این برنامه را می‌توان جایگزین مناسبی برای همتای غیر آزاد خود متلب به حساب آورد.

ویکی‌پدیا

در ادامه یک سری منبع برای یادگیری متلب و اکتاو رو معرفی می‌کنم.

برای شروع

از بین این دوره‌ها، ببینید کدوم یکی به مذاقتون بیشتر خوش میاد:

برای محسابات عددی

به طور کلی

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

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

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

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