مشکل کلاودفلر چی بود و ما باید چیکار کنیم

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

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

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

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

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

if ( ++p == pe )
    goto _test_eof;

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

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

چه باید کرد

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

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

بهترین نکته؟ شفافیت کلاودفلر که حتی کدهای مشکل دار رو هم نشونمون داد (:

بررسی اجمالی مک بوک پروی ۲۰۱۵ از دید جادی

حوالی ۲۰۰۸ من یک مک بوک خریدم. از اون سفیدهای بانمک. الان متن اون نوشته به نظرم خیلی عجیب می یاد؛ و این خیلی خوبه. بعد از چند ماه روی اون مک بوک سفید لینوکس نصب کردم و برگشتم به دنیای دلچسب خودم. حالا هم بعد از ۸ سال، دوباره تقاطع زندگی من به یک مک بوک خورده. شرکت جدید کامپیوتر رسمی اش مک بوک است و منم یکی گرفته ام. مطمئنا یکی از اون سری ها که دگمه esc داره و خوشبختانه خروجی‌های استاندارد شامل HDMI.

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

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

  • به هرحال ابزارهای گنو رو داره و در نتیجه می شه ازش استفاده کرد. چیزهایی مثل grep، ssh، pip و بقیه دوستاشون. همچنین جامعه بزرگی از برنامه نویس ها ازش استفاده می کنن و در نتیجه احساس تنهایی نمی کنین
  • کیفیت سخت افزار بسیار خوب به نظر می رسه. بدنه محکم، کیبورد راحت و جذابه و ترک پد و صفحه نمایش و حتی پورت ها با کیفیتی متفاوت از چیزهای دیگه (مثلا در مقایسه با ایسوس خودم)‌
  • عمر باتری بسیار خوبه که خب با توجه به وزن سنگین‌تر از مثلا همون ایسوس و هماهنگی کامل سخت افزار و نرم افزار دور از ذهن هم نیست
  • ایده های مثبتی داره مثلا امکان سینک کردن کلیپورد با گوشی اپلی؛ که البته اگر انتخابی بود بسیار بهتر بود

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

  • گفتم سخت افزارش خوبه؟ ال سی دی لنووهای من همه تا ۱۸۰ درجه بر می گشتن. این خیلی کمتر برمیگرده و تو خیلی کاربردها کافی نیست.
  • در نرم افزار به نظرم بسیار محدود هستیم. مثلا نه یک ادیتور به کیفیت ادیتور ساده و پیش فرض گنوم داره و نه یک ترمینال به کیفیت ترمینالی مثل ترمیناتور. برای ترمینال با iTerm2 میشه کار رو راه انداخت ولی برای ویرایشگر واقعا چیزی پیدا نکردم. پیش فرضش راست به چپ نمی شه وقتی فارسی می نویسم. هرچند بعضی ها می گن می شه… قلق داره؟ (:
  • دست شما برای کارهای ابتدایی هم بسیار محدوده. مثلا شورت کات اینکه با گرفتن کلید فلان و فلان، فلان برنامه باز بشه کجاست؟! یا مثلا منتقل کردن یک پنجره با صفحه کلید به یک اسپیس خاص. حتی کارهای بسیار ساده مثل کلیپ بورد منیجر یا منتقل کردن یک پنجره از یک مانیتور به مانیتور بعدی هم نیازمند نصب یکسری برنامه ریز و میز هستن که گاهی مثلا ۵ دلار هم پولشونه (:
  • مک او اس تن شکل کاربری شمار و محدود می کنه. شدیدا وابسته است به ماوس و گسچرهاش در حالی که من ترجیح می دم در حداقل موارد دستم رو از روی کیبورد بردارم.
  • ایده های عجیبی مثل اینکه اگر برنامه ای رو فول اسکرین کردین بره یک چیزی شبیه اسپیس بشه از کجا اومده؟ و به چه دردی می خوره؟ یک بازنشسته شاید تو خونه اش بخواد سافاری براش تبدیل به یک اسپیس مجزا بشه ولی من که تو لینوکس با ۹ تا اسپیس کار می کنم و اینجا چون نمی تونم ماتریسی بچینمشون با ۶ تا، اصلا علاقمند نیستم که وقتی ترمینال رو فول اسکرین می کنم تبدیل بشه به یک اسپیس اون آخر!
  • برای کسی که از دنیای لینوکس می یاد دانلود کردن برنامه از یک سایت و اجرا کردنش کاری بسیار عجیبه! آخه چرا؟! الان که سافتور سنتر رو کپی کردن خب حداقل همه برنامه های مهم رو بذارن توش. برای مای اسکوئل من واقعا باید با brew وارد ماجرا بشم (و لعنت به اون احمقی که raw.githubusercontent.com رو فیلتر کرده!)
  • یک فایل براوزر درست هم نداره! کلید enter که یعنی «ورود»، اسم فایل رو عوض می کنه و تولبار پایین نیست که نشون بده حجم فایل چقدره یا من کشف نکردم چطوری باید فایل های مخفی رو نشون داد! چه کاریه خب ((: PCManFM بسیار کاراتر از این مهمله
  • جنازه سنگین iTunes هنوز به سیستم وصله
  • تم و اینها که تقریبا نداره (: مرحوم اجازه داده بین گرافیت و آبی یکی رو انتخاب کنم (: من حداقل های لایت رو نارنجی کردم که احساس شخصی سازی کرده باشم. شایدم باید برای پشتش برچسب بخرم (:
  • دانگل وی جی ای من رو نمی شناسه و در نتیجه مونیتور وی جی ای خونه بلااستفاده است و ظاهرا باید یک مونیتور اچ دی ام آی برای خونه بخرم
  • توی داک نمی تونم مثل آدم با یه شورتکات یا کلیک یه برنامه رو در پنجره جدید در همین اسپیس باز کنم. اگر روی ترمینال کلیک کنم می ره توی اسپیسی که ترمینال باز هست، نشونش می ده. کف انتظار من اینه که بتونم مثلا کنترل کلیک کنم و یه پنجره جدید باز کنه نه اینکه رایت کلیک کنم، از تو منو انتخاب کنم که پنجره جدید می خوام (:
  • به خاطر نداشتن ایکس، میدل پیست کلیک رو نداریم. در لینوکس اگر چیزی رو سلکت کنیم و بعد میدل کلیک کنیم پیست می شه. در واقع دو تا حافظه برای کلیپبورد در لحظه هست که بسیار مفیده.
  • این دگمه شبدر گیج کننده است. گاهی برای کپی پیست شبدر و وی داریم گاهی کنترل و وی. یا مثلا تب های براوزر با کنترل چپ و راست می رن و جای دیگه با شبدر. چه برسه که از خود اپل کیبورد اکسترنال نخرین.
    -انیمیشن؟! اینهمه؟ فقط واقعا وابلی ویندو جاش خالیه (:
  • یکی از دم دست ترین و مفیدترین قابلیت ها اینه که من بتونم یه پنجره رو بالای بقیه پنجره ها نگه دارم…

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

  • Commander One که دارم سعی می کنم باهاش به مشکلات فایندر غلبه کنم و فایل هام رو تحت کنترل بگیرم
  • Copy Clip 2 که به عنوان کلیپ بورد منیجر کار می کنه
  • Spectacles که اجازه می ده یک کم پنجره ها تحت کنترل من باشن و مثلا بتونم از این مونیتور ببرمشون توی اون یکی مونیتور یا بگم نصف سمت راست فلان نمایشگر رو بگیره
  • iTerm2 که یک ترمینال است با امکاناتی بهتر از ترمینال استاندارد
  • HyperSwitch که وظیفه مهم آلت-تب زدن برای گشتن بین پنجره های اسپیسی که توش هستم رو فراهم می کنه

و مشکلات اصلی که هنوز حل نشدن اینها هستن که اگر براشون جواب داشته باشین خوشحال می شم:

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

همین!

دیفیس شدن سایت رسمی کمپین دونالد ترامپ

ضعیف بودن سرور دونالد ترامپ همیشه مورد بحث بوده؛ دقیق تر بگم عدم آگاهی کمپینش در مورد امنیت. این مساله با انتخاب هاش در مورد آدم های مورد اعتماد کابینه اش در موضوع امنیت بیشتر هم توی چشم خورد. حالا یک هکر که ادعا می کنه از عراق است هم صفحه secure2.donaldjtrump.com رو هک کرده که به گفته آرس تکنیکا متعلق به کمپین ریاست جمهوری اونه.

این هکر که خودش رو پرو مستر معرفی کرده، با پیام

Hacked by Pro_Mast3r ~
Attacker Gov
Nothing Is Impossible
Peace From Iraq

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

اگر من به دانشگاه بر میگشتم

چاپ شده در نشریه دانشگاهی


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

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

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

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

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

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

لینک های شاد دوشنبه آخر ماه بهمن ۱۳۹۵ – کوتاه ولی مفید

  • طبق روندی که همه چیز داره می ره تو تلگرام و دیگه قابل پیدا شدن توسط عموم نیست، لازمه بگم که این لینک گروهی برای آیونیک است.
  • و این هم سایت ترجمانو برای ترجمه های شما که با کد Hamkar-6513 می تونین توش تخفیف هم بگیرین.
  • کنفرانس سار زمستان هم جمعه ۶ اسفند برگزار می شه. من درگیر کنفرانس آینده وب و موبایل هستم و نمی تونم بپیوندم ولی به نظرم این کنفرانس سار یکی از اون نقطه امیدهای زندگی تو ایرانه. آدم هایی خوب که سعی می کنن موزه ملی علوم و فناوری رو چیزی بکنن که باید باشه، با همه مشکلات. کنفرانس سار نه فقط خودش خوبه که حمایت ازش خیلی خوبه. من تمام تلاشم رو می کنم توی سار بهار باشم. کد تخفیف ۵۰٪ : jadi
  • دانلودچی باشی هم دو ساله شده. سیستمی برای دانلود فایلای مالتی مدیای سرویسهای یوتیوب، ویمئو، ساوندکلاد و فیس بوک یا پیدا کردن زیرنویس و اینجور چیزها. الان بخش های تورنت و دانلود از مگنت و ویدئوهای توییتر و مستقیم کردن لینک ها (بخصوص بسته شده ها)‌ رو هم داره. شاید دانلودچی باشی گره ‌ای از مشکلی باز کنه.

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

برنامه‌های پیش رو: این‌ هفته #پایتون و هفته بعد آینده وب و موبایل

در طول این دو تا آخر هفته پیش رو، من دو تا جا می رم و کلی حرف می‌زنم. اولیش کنفرانس پای کان است در ۲۹ بهمن و دومی همایش آینده وب و موبایل در تاریخ ۴ و ۵ اسفند.

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

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

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

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

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

و یک نکته دیگه هم هست که هیمشه حرف منه؛ تو سمپاد صادقه و در بقیه جاها هم، از جمله در یاد گرفتن برنامه نویسی:

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

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

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

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

راهنمای شروع و پیشرفت و حرفه ای شدن در زبان برنامه نویسی پایتون

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

شروع ایده اصلی

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

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

نکته: بعضی ها در اولین برخورد با پایتون با یک سورپریز بزرگ روبرو می شن: پایتون از { و } برای مشخص کردن بلوک ها استفاده نمی کنه و به راحتی از اسپیس یا تب برای اینکار کمک میگیره. گفته می شه اولین شروع هر کس که از زبان دیگه اومده به پایتون، با یک فرار همراهه و بار دوم احوالپرسی از پایتون است که عاشق این زبون ساده و کم ادعا می شه (:

پنج نکته برای دوری

جان سونمز پنج نکته رو می گه که باید ازش دوری کنین و یکی از اصلی ترین مراجع این مطلب هم اونو تکرار می کنه و من کی باشم که تکرارشون نکنم؟

  1. کتاب ها رو از اول تا آخر نخونین. در شروع کتاب ها رو از اول تا آخر نخونین. ما بخش کمی از کتاب ها رو یادمون می مونه و فقط کتاب خوندن بخش زیادی از انرژی شما رو می گیره. کتاب مال وقتی است که شما موضوعات رو بلدین و می خواین توش عمیق بشین.
  2. بدون برنامه تو بحث شیرجه نزنین. آدم ها رو به دلایل مختلف جو می گیره. یکهو می خوان خدای چیزی بشن و یک عالمه کتاب دانلود می کنن و شایدم دو تا ادیتور برنامه نویسی و عضو یکسری کانال و فروم و میلینگ لیست می شن و هی چیز می خونن و فیلم می‌بینن. این اشتیاق معمولا به همین سرعت هم فروکش می‌کنه. بدونین برای چی وارد بحث شدین و می خواین به کجا برسین و می خواین باهاش چیکار کنین.
  3. حوزه خودتون رو مشخص کنین. دنیا وسیعه! حتی برنامه نویسی هم خیلی وسیعه و شاید براتون جالب باشه که حتی پایتون هم خیلی وسیعه! بهتره شما بدونین در چه حوزه ای می خواین کار کنین و از اون شروع به یادگیری کنین. اگر می خواین اپ تحت وب درست کنین لازم نیست با numpy شروع کنین و اگر می خواین محاسبات انجام بدین شروع کردن یا اصرار روی scikit اشتباهه. از یک جا شروع کنین و توش پیش برین.
  4. دو (یا بیشتر!) چیز رو همزمان یاد نگیرین. این اشتباه با مورد ۲ شباهت‌هایی داره. آدم ها یکهو می خوان «هکر» بشن و شروع می کنن شبکه و سیستم عامل و برنامه نویسی و انگلیسی و آلمانی و روسی و نقد فیلم و ادبیات کلاسیک رو با هم خوندن و یاد گرفتن. از یک جا شروع کنین و وقتی در حد معقولی پیش رفتین برین سراغ چیز بعدی. این مساله حتی داخل پایتون هم صدق می کنه. اگر دارین جنگو یاد می گیرین نیازی نیست همزمان شروع به خوندن فلسک هم بکنین. یکی رو پیش برین در حد معقول و بعد فرصت برای بعدی هست.
  5. بدون تجربه کردن پیش نرین. بعضی چیزها برای آدم ها لذت بخشه. من از دیدن فیلم بازی شطرنج خیلی خوشم می یاد و در نتیجه شش ماه فیلم دیدم بدون اینکه بازی کنم؛ هیچ پیشرفتی هم نداشتم. حتما حین تئوری با عمل هم برخورد داشته باشین.

شروع عملی پایتون

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

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

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

یک پروزه عملی بردارین

حالا باید تا حدی بدونین که کجا ایستادین و دنبال چی هستین. اگر دنبال وب هستین یک پروژه عملی برای خودتون تعریف کنین و با چیزی مثل جنگو شروعش کنین. درگیر اسم و اینها نباشین. پروژه رو تعریف و شروع کنین. شاید خیلی زود پاکش کردین! اصلا مهم نیست. مثلا یک سیستم رای گیری آنلاین. یا سیستم حسابداری شخصی. یا دفترچه تلفن دوستاتون. یا فهرست کتاب ها و اینکه چی خوندین و چی قرض دادین یا هر چیز دیگه یا یه سیستم وبلاگ شخصی یا صورت غذاهایی که پختین و روش پختش. شایدم یک برنامه مخصوص تنظیم کردن قرار ملاقات. موضوع خیلی مهم نیست. مهم اینه که خیلی زود چیزهایی که یاد میگیرین به شکل عملی در یک جایی استفاده بشه. اگر با جنگو کار می کنین کتاب Two Scoops of Django توصیه می‌شه. من خودم اخیرا به توصیه خودتون اینو خوندم و خوب بود برام. در این مرحله چیزهایی که یاد می گیرین رو نسبتا عمیق کنین. حوزه شما مشخص شده و باید حرفه ای تر بشین توش. اگر مثلا یادگیری ماشینی رو برداشتین یک مساله واقعی تعریف کنین و سعی کنین قدم به قدم حلش کنین. شاید مثلا تشخیص سگ از گربه قدم اول باشه و تشخیص طبقه بندی یک وبلاگ قدم دوم. شایدم علاقمند به یک اپلیکیشن دسکتاپ باشین. بازم امکانش هست. مهم اینه که حوزه خودتون رو کشف کنین و بدونین که در کدوم خط دارین پیش می رین.

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

حالا عمیق بشین

شما درک از زبان دارین و می تونین باهاش کار کنین درسته؟ حالا وقتشه که حرفه ای بشین و بهتر از هر کس زبان رو درک کنین. حداقل بهتر از ۸۰٪ آدم‌های دیگه. این بخش‌ها مهمترین اجزای داکیومنتهای رسمی پایتون هستن برای خونده شدن توسط کسی که می خواد زبان رو به تسخیر خودش در بیاره: 1, 2, 3, 4, 5, 6.1, 6.2, 26.4 و 27.3.

یک تمرین فوق العاده برای بهتر کردن دانش جدید و تثبیت کردنش اینه که کدهای قبلی رو ریفکتور کنین؛ بازنویسی کد برای بهتر کردنش بدون تغییر در خروجی ها.

پیشرفت کنین

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

  • کتاب Fluent Python
  • کتاب Effective Python

در صورتی که می خواین با نوشتن برنامه خودتون رو محک بزنین، به این مطلب محمد فاضلی نگاهی بندازین

نکته پایانی

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

منابعی برای نگاه کردن