قسمت اول
داشتم یه مقاله میخوندم عنوانش جالب بود XYZ% of Code is Now Written by AI... Who Care. میگه فکر کن XYZ درصد کُدها رو دیگه هوش مصنوعی مینویسه... خب که چی؟
ساتیا نادلا، مدیرعامل مایکروسافت، گفته که «تا ۳۰ درصد کدهای شرکت رو الان دیگه هوش مصنوعی مینویسه» (این رو تو آوریل ۲۰۲۵ گفته).
مدیرعامل شرکت Anthropic هم پیشبینی کرده که «تا ۱۲ ماه دیگه، ممکنه تو دنیایی باشیم که تقریباً همه کدها رو هوش مصنوعی بنویسه» (اینم مال مارس ۲۰۲۵ هست).
اینجور تیترها یه حسی میده که انگار این عددِ XYZ یه جوری به «نرخ جایگزینی مهندسهای نرمافزار» اشاره داره. یعنی کدی که هوش مصنوعی نوشته، کدیه که آدما ننوشتن، پس دیگه نیازی به اون ۳۰ درصد آدمی که بشینن پای کیبورد نداریم. با این همه سروصدایی که رسانهها برای جلب توجه مخاطب راه میندازن و دنبال هیجانانگیز کردن ماجرا هستن، بعید نمیدونم که بخوان قضیه رو دراماتیکتر هم بکنن...
راستش اینجور گمانهزنیها جالبه (مثلاً اینکه این مدیرعاملها چطوری این آمار رو درمیارن)، ولی خیلی معنی خاصی نداره، جز اینکه بخوایم ببینیم ابزارهای کدنویسی با هوش مصنوعی چقدر سریع دارن جا میفتن و استفاده میشن...
خب، حالا یه جور دیگه به قضیه نگاه کنیم: ۱۰۰٪ کدها رو هوش مصنوعی مینویسه، ولی ۷۰٪ همین کدها بعد از بازبینی پاک میشه!
نویسنده ی مقاله مثال جالبی میزنه میگه میخواسته با MCP و پایتون یه پروژه ی Code Interpreter بسازه و ایده اصلی این بود که یه مفسر پایتون سفارشی، ایزوله و داخلی رو که کتابخونه smolagents از HuggingFace ارائه میده، برداره و توی یه سرور MCP مستقرش کنه.
بعد از اینکه ریپو smolagents رو کلون کرده کدهاش رو یه نگاهی انداخته و یه مثال کوچیک از استفاده جداگونه از مفسرش ساخته، به ایجنتِ Cursor دستور داده که یه پروژه MCP Server جدید براش بسازه. اون مثال رو بهش نشون داده، کد خود مفسر رو هم داده بهش و یه لینک از مستندات MCP Server که شرکت Anthropic نوشته بود هم بهش داده. ایجنت هم یه کدبیس کامل و تر و تمیز، بدون هیچ اخطار لینتری بهش تحویلم داده.
ولی خب، تو چند ساعت بعدی، روی کدی که تولید کرده بود کلی کار کرده و تغییرش داده. بیشتر فایلها و خطوط کد رو حذف کرده. البته تو این مسیر هم خیلی فعال از هوش مصنوعی کمک گرفته، هم از قابلیت تکمیل خودکار کدش و هم از چت کردن باهاش. یعنی خودش خیلی کم پایتون تایپ کرده.
حالا سوال اینجاست: میتونیم بگم ۱۰۰٪ کدها رو هوش مصنوعی تولید کرده؟ احتمالاً آره. ولی آیا این به این معنیه که:
اصلاً تو فرآیند ساخت نرمافزار نیروی انسانی لازم نبود؟
یا اینکه بهرهوری ۳۰۰ برابر شده، چون یه آدم معمولی میتونه مثلاً ۳۰ کلمه در دقیقه تایپ کنه ولی مدلهای خفن هوش مصنوعی حدود ۳۰۰۰ کلمه در دقیقه کد تولید میکنن؟
اینم آمار پروژه:
نسخه اولیه که Claude 3.7/Cursor Agent داد: ۹ تا فایل، ۱۰۶۲ خط کد، ۴۵ تا کامنت (توضیحات)، ۱۵۸ خط خالی.
نسخه نهایی با تغییرات: ۴ تا فایل، ۳۱۸ خط کد، ۹ تا کامنت، ۷۹ خط خالی.
واقعیت اینه که وقتی داشته روی کدبیس کار میکرده، کلی از توان ذهنی صرف این شد که بفهمه هوش مصنوعی چی تولید کرده، و در عین حال درک بهتری هم پیدا کنه از چیزی که واقعاً باید ساخته میشد – و این کار هم زحمت داره و هم زمان میبره. بعضی وقتا نوشتن کد از خوندنش راحتتره! علاوه بر این، خودِ نوشتن کد یه کارکرد خیلی مهم داره و اونم اینه که به شما کمک میکنه کدبیس رو یاد بگیرید و بهتون زمان میده تا پروژه و منطقش قشنگ براتون جا بیفته.
خلاصه که حدود ۷۰٪ کدی که هوش مصنوعی تولید کرده بود رو دور ریخته شد. آیا این چیز خاصی رو نشون میده؟ یعنی کد هوش مصنوعی به درد نخوره چون مجبور شدیم این همه ازش رو پاک کنیم؟ یعنی تو چند دقیقه کد تولید میکنه ولی بازبینی و دیباگ کردنش ساعتها طول میکشه؟ نه لزوما ولی به همون اندازه که درصد کد تولید شده توسط هوش مصنوعی به تنهایی معیار گویایی نیست، درصد کدی هم که بازبینی و اصلاح میشه، به تنهایی چیز زیادی رو نشون نمیده.
شاید یکی بگه که این مثال خیلی خاصه. اینکه یه پروژه کوچیک رو از صفر شروع کنی، تو دنیای واقعی خیلی پیش نمیاد ولی نکته مهمی رو مطرح میکنه و یه سری عدد و رقم هم بهمون میده. همین تمایل به حذف یا بازبینی حجم زیادی از کد تولید شده، موقع نگهداری یه کدبیس بزرگ هم وجود داره. هرچی محدوده کار بزرگتر باشه، جریان کار بیشتر دست ایجنت باشه، و خطوط و فایلهای بیشتری درگیر بشن، شما هم مجبورید چیزای بیشتری رو اصلاح کنید. انگار بهترین ابزارهای هوش مصنوعی هم هنوز نمیتونن «حال و هوای» یه پروژه رو درست و حسابی درک کنن – یعنی تو ایجاد تغییرات یکپارچهای که با «روح» کلی اون کدبیس همخونی داشته باشه، مشکل دارن.
—-
⬅️ ادامه در قسمت بعدی
💡 تا قسمت بعدی مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
داشتم یه مقاله میخوندم عنوانش جالب بود XYZ% of Code is Now Written by AI... Who Care. میگه فکر کن XYZ درصد کُدها رو دیگه هوش مصنوعی مینویسه... خب که چی؟
ساتیا نادلا، مدیرعامل مایکروسافت، گفته که «تا ۳۰ درصد کدهای شرکت رو الان دیگه هوش مصنوعی مینویسه» (این رو تو آوریل ۲۰۲۵ گفته).
مدیرعامل شرکت Anthropic هم پیشبینی کرده که «تا ۱۲ ماه دیگه، ممکنه تو دنیایی باشیم که تقریباً همه کدها رو هوش مصنوعی بنویسه» (اینم مال مارس ۲۰۲۵ هست).
اینجور تیترها یه حسی میده که انگار این عددِ XYZ یه جوری به «نرخ جایگزینی مهندسهای نرمافزار» اشاره داره. یعنی کدی که هوش مصنوعی نوشته، کدیه که آدما ننوشتن، پس دیگه نیازی به اون ۳۰ درصد آدمی که بشینن پای کیبورد نداریم. با این همه سروصدایی که رسانهها برای جلب توجه مخاطب راه میندازن و دنبال هیجانانگیز کردن ماجرا هستن، بعید نمیدونم که بخوان قضیه رو دراماتیکتر هم بکنن...
راستش اینجور گمانهزنیها جالبه (مثلاً اینکه این مدیرعاملها چطوری این آمار رو درمیارن)، ولی خیلی معنی خاصی نداره، جز اینکه بخوایم ببینیم ابزارهای کدنویسی با هوش مصنوعی چقدر سریع دارن جا میفتن و استفاده میشن...
خب، حالا یه جور دیگه به قضیه نگاه کنیم: ۱۰۰٪ کدها رو هوش مصنوعی مینویسه، ولی ۷۰٪ همین کدها بعد از بازبینی پاک میشه!
نویسنده ی مقاله مثال جالبی میزنه میگه میخواسته با MCP و پایتون یه پروژه ی Code Interpreter بسازه و ایده اصلی این بود که یه مفسر پایتون سفارشی، ایزوله و داخلی رو که کتابخونه smolagents از HuggingFace ارائه میده، برداره و توی یه سرور MCP مستقرش کنه.
بعد از اینکه ریپو smolagents رو کلون کرده کدهاش رو یه نگاهی انداخته و یه مثال کوچیک از استفاده جداگونه از مفسرش ساخته، به ایجنتِ Cursor دستور داده که یه پروژه MCP Server جدید براش بسازه. اون مثال رو بهش نشون داده، کد خود مفسر رو هم داده بهش و یه لینک از مستندات MCP Server که شرکت Anthropic نوشته بود هم بهش داده. ایجنت هم یه کدبیس کامل و تر و تمیز، بدون هیچ اخطار لینتری بهش تحویلم داده.
ولی خب، تو چند ساعت بعدی، روی کدی که تولید کرده بود کلی کار کرده و تغییرش داده. بیشتر فایلها و خطوط کد رو حذف کرده. البته تو این مسیر هم خیلی فعال از هوش مصنوعی کمک گرفته، هم از قابلیت تکمیل خودکار کدش و هم از چت کردن باهاش. یعنی خودش خیلی کم پایتون تایپ کرده.
حالا سوال اینجاست: میتونیم بگم ۱۰۰٪ کدها رو هوش مصنوعی تولید کرده؟ احتمالاً آره. ولی آیا این به این معنیه که:
اصلاً تو فرآیند ساخت نرمافزار نیروی انسانی لازم نبود؟
یا اینکه بهرهوری ۳۰۰ برابر شده، چون یه آدم معمولی میتونه مثلاً ۳۰ کلمه در دقیقه تایپ کنه ولی مدلهای خفن هوش مصنوعی حدود ۳۰۰۰ کلمه در دقیقه کد تولید میکنن؟
اینم آمار پروژه:
نسخه اولیه که Claude 3.7/Cursor Agent داد: ۹ تا فایل، ۱۰۶۲ خط کد، ۴۵ تا کامنت (توضیحات)، ۱۵۸ خط خالی.
نسخه نهایی با تغییرات: ۴ تا فایل، ۳۱۸ خط کد، ۹ تا کامنت، ۷۹ خط خالی.
واقعیت اینه که وقتی داشته روی کدبیس کار میکرده، کلی از توان ذهنی صرف این شد که بفهمه هوش مصنوعی چی تولید کرده، و در عین حال درک بهتری هم پیدا کنه از چیزی که واقعاً باید ساخته میشد – و این کار هم زحمت داره و هم زمان میبره. بعضی وقتا نوشتن کد از خوندنش راحتتره! علاوه بر این، خودِ نوشتن کد یه کارکرد خیلی مهم داره و اونم اینه که به شما کمک میکنه کدبیس رو یاد بگیرید و بهتون زمان میده تا پروژه و منطقش قشنگ براتون جا بیفته.
خلاصه که حدود ۷۰٪ کدی که هوش مصنوعی تولید کرده بود رو دور ریخته شد. آیا این چیز خاصی رو نشون میده؟ یعنی کد هوش مصنوعی به درد نخوره چون مجبور شدیم این همه ازش رو پاک کنیم؟ یعنی تو چند دقیقه کد تولید میکنه ولی بازبینی و دیباگ کردنش ساعتها طول میکشه؟ نه لزوما ولی به همون اندازه که درصد کد تولید شده توسط هوش مصنوعی به تنهایی معیار گویایی نیست، درصد کدی هم که بازبینی و اصلاح میشه، به تنهایی چیز زیادی رو نشون نمیده.
شاید یکی بگه که این مثال خیلی خاصه. اینکه یه پروژه کوچیک رو از صفر شروع کنی، تو دنیای واقعی خیلی پیش نمیاد ولی نکته مهمی رو مطرح میکنه و یه سری عدد و رقم هم بهمون میده. همین تمایل به حذف یا بازبینی حجم زیادی از کد تولید شده، موقع نگهداری یه کدبیس بزرگ هم وجود داره. هرچی محدوده کار بزرگتر باشه، جریان کار بیشتر دست ایجنت باشه، و خطوط و فایلهای بیشتری درگیر بشن، شما هم مجبورید چیزای بیشتری رو اصلاح کنید. انگار بهترین ابزارهای هوش مصنوعی هم هنوز نمیتونن «حال و هوای» یه پروژه رو درست و حسابی درک کنن – یعنی تو ایجاد تغییرات یکپارچهای که با «روح» کلی اون کدبیس همخونی داشته باشه، مشکل دارن.
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7 7⚡1🐳1👻1
Md Daily
قسمت اول داشتم یه مقاله میخوندم عنوانش جالب بود XYZ% of Code is Now Written by AI... Who Care. میگه فکر کن XYZ درصد کُدها رو دیگه هوش مصنوعی مینویسه... خب که چی؟ ساتیا نادلا، مدیرعامل مایکروسافت، گفته که «تا ۳۰ درصد کدهای شرکت رو الان دیگه هوش مصنوعی مینویسه»…
قسمت اول
قسمت دوم: ساختن نرمافزار که فقط کد نوشتن نیست!
اصل داستان، یکپارچهسازی و تحویل دادنِ کده. اصلاً شما میدونستید که یه زمانی مایکروسافت هر سه سال یکبار نسخه جدید ویندوز رو منتشر میکرد و «به طور متوسط، آماده شدن هر نسخه از ایده اولیه تا تکمیل نهایی حدود سه سال طول میکشید، اما فقط حدود شش تا نه ماه از این زمان صرف توسعه کدهای «جدید» میشد؟ بقیه زمان صرف یکپارچهسازی، تست، و دورههای آلفا و بتا (نسخههای آزمایشی اولیه) میشد» منبع
نوشتن کد فقط یه بخش خیلی مهمه، ولی تنها بخش ماجرا نیست. اصلاً خبر داشتید که (طبق یه تحقیق جدید خود مایکروسافت) توسعهدهندهها فقط ۲۰ درصد از وقتشون رو صرف کدنویسی یا بازنویسی و مرتبسازی کد (که بهش میگن رفکتورینگ) میکنن؟ (همونجایی که اون آمار XYZ درصدی تولید کد توسط هوش مصنوعی مطرح میشه و به این بخش مربوطه).
وقتی با تیمها و مشتریها سر و کار داریم و نرمافزار میسازیم، خیلی جاها میبینم که هوش مصنوعی به زور میتونه کمکی بکنه.
فکرشو بکنید، اگه ذینفعان پروژه (همونهایی که پروژه براشون مهمه و توش نقش دارن) دیگه جواب تلفن و ایمیل شما رو ندن، درگیر بازیهای سیاسی داخلی شرکت خودشون بشن، و نتونن تکلیفشون رو با نیازمندیهای پروژه روشن کنن چی؟ آیا ChatGPT (یا هر «ایجنت» خفن دیگهای که فکرشو بکنید) میتونه بیفته دنبال مشتری، تمام تناقضات توی نیازمندیها رو پیدا کنه و به رخشون بکشه، با کل تیم ارتباط برقرار کنه و ریسکهای اصلی پروژه رو کم کنه؟
حتی اگه نیازمندیهایی داشته باشید که به نظر خیلی دقیق و پالایش شده میان... چقدر طول میکشه تا هر کدوم از اعضای تیم واقعاً متوجه بشن اون «چیزی» که دارن برای رسیدن بهش تلاش میکنن، دقیقاً چیه؟ چقدر طول میکشه تا تیم به یه توافق داخلی برسه که چطور باید دور اون هدف اصلی سازماندهی بشن، محدوده کار رو چطور خُرد کنن، و چطور نیازمندیهای بیزینسی رو به جزئیات فنی و پیادهسازی ربط بدن؟ آیا ابزارهای هوش مصنوعی مولد (Gen-AI) میتونن اونقدر به دینامیک تیم سرعت بدن که تیم به جای چند هفته، فقط تو چند روز از مراحل اولیه شکلگیری و بحث و جدل (forming and storming) عبور کنه و سریع به هماهنگی و عملکرد بالا (norming and performing) برسه؟
من اینو همیشه به چشم میبینم: آدما ذاتاً تو فکر کردن کُند هستن، مغز ما تو اینکه چقدر اطلاعات میتونه پردازش کنه، یا اینکه چقدر ارتباطات اجتماعی میتونیم بسازیم و حفظ کنیم، محدودیتهای طبیعی داره. اینکه یه عالمه متن تولید کنیم که کمتر کسی حوصله خوندنش رو داره (و تعداد خیلی کمتری هم سعی میکنن واقعاً بفهمنش) هیچ مشکلی رو حل نمیکنه.
با توجه به وضعیت فعلی و مسیری که ابزارهای هوش مصنوعی تو توسعه نرمافزار دارن پیش میرن، من اونا رو بیشتر شبیه ابزارهای افزایش بهرهوریِ جدا افتاده میبینم که تهش، این آدمیزاده که گلوگاه کاره. پیشرفت خیلی کمی تو این زمینه شده که ایجنتهای هوش مصنوعی بتونن تمام اون کارهای ریز و درشتی رو که یه کارمند آدم تو کارای روزمرهاش انجام میده، پوشش بدن. حتی اگه هوش مصنوعی خیلی خیلی مستقلتر هم بشه (autonomy بالاتری پیدا کنه)، آدما هنوزم نیاز به زمان دارن تا تصمیم بگیرن، دیدگاههاشون رو کاملتر کنن و تغییر بدن، با هم حرف بزنن، و به توافق برسن.
بهرهوری
آخرش، کسبوکارها دنبال اینن که کار بیشتری با تلاش و هزینه کمتری انجام بشه. اینکه هوش مصنوعی رو بیاریم تو تیمهای توسعه و بعد هزینهها یا تعداد نیروها رو با یه عدد جادویی (که نمیدونم چرا همیشه بین ۲۰ تا ۳۰ درصده!) کم کنیم – به نظر نمیاد این روش خیلی جواب بده. هنوز تا یه جهش و تغییر خفن بزرگ تو بهرهوری توسعهدهندهها تو کل این صنعت فاصله داریم.
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
قسمت دوم: ساختن نرمافزار که فقط کد نوشتن نیست!
اصل داستان، یکپارچهسازی و تحویل دادنِ کده. اصلاً شما میدونستید که یه زمانی مایکروسافت هر سه سال یکبار نسخه جدید ویندوز رو منتشر میکرد و «به طور متوسط، آماده شدن هر نسخه از ایده اولیه تا تکمیل نهایی حدود سه سال طول میکشید، اما فقط حدود شش تا نه ماه از این زمان صرف توسعه کدهای «جدید» میشد؟ بقیه زمان صرف یکپارچهسازی، تست، و دورههای آلفا و بتا (نسخههای آزمایشی اولیه) میشد» منبع
نوشتن کد فقط یه بخش خیلی مهمه، ولی تنها بخش ماجرا نیست. اصلاً خبر داشتید که (طبق یه تحقیق جدید خود مایکروسافت) توسعهدهندهها فقط ۲۰ درصد از وقتشون رو صرف کدنویسی یا بازنویسی و مرتبسازی کد (که بهش میگن رفکتورینگ) میکنن؟ (همونجایی که اون آمار XYZ درصدی تولید کد توسط هوش مصنوعی مطرح میشه و به این بخش مربوطه).
وقتی با تیمها و مشتریها سر و کار داریم و نرمافزار میسازیم، خیلی جاها میبینم که هوش مصنوعی به زور میتونه کمکی بکنه.
فکرشو بکنید، اگه ذینفعان پروژه (همونهایی که پروژه براشون مهمه و توش نقش دارن) دیگه جواب تلفن و ایمیل شما رو ندن، درگیر بازیهای سیاسی داخلی شرکت خودشون بشن، و نتونن تکلیفشون رو با نیازمندیهای پروژه روشن کنن چی؟ آیا ChatGPT (یا هر «ایجنت» خفن دیگهای که فکرشو بکنید) میتونه بیفته دنبال مشتری، تمام تناقضات توی نیازمندیها رو پیدا کنه و به رخشون بکشه، با کل تیم ارتباط برقرار کنه و ریسکهای اصلی پروژه رو کم کنه؟
حتی اگه نیازمندیهایی داشته باشید که به نظر خیلی دقیق و پالایش شده میان... چقدر طول میکشه تا هر کدوم از اعضای تیم واقعاً متوجه بشن اون «چیزی» که دارن برای رسیدن بهش تلاش میکنن، دقیقاً چیه؟ چقدر طول میکشه تا تیم به یه توافق داخلی برسه که چطور باید دور اون هدف اصلی سازماندهی بشن، محدوده کار رو چطور خُرد کنن، و چطور نیازمندیهای بیزینسی رو به جزئیات فنی و پیادهسازی ربط بدن؟ آیا ابزارهای هوش مصنوعی مولد (Gen-AI) میتونن اونقدر به دینامیک تیم سرعت بدن که تیم به جای چند هفته، فقط تو چند روز از مراحل اولیه شکلگیری و بحث و جدل (forming and storming) عبور کنه و سریع به هماهنگی و عملکرد بالا (norming and performing) برسه؟
من اینو همیشه به چشم میبینم: آدما ذاتاً تو فکر کردن کُند هستن، مغز ما تو اینکه چقدر اطلاعات میتونه پردازش کنه، یا اینکه چقدر ارتباطات اجتماعی میتونیم بسازیم و حفظ کنیم، محدودیتهای طبیعی داره. اینکه یه عالمه متن تولید کنیم که کمتر کسی حوصله خوندنش رو داره (و تعداد خیلی کمتری هم سعی میکنن واقعاً بفهمنش) هیچ مشکلی رو حل نمیکنه.
با توجه به وضعیت فعلی و مسیری که ابزارهای هوش مصنوعی تو توسعه نرمافزار دارن پیش میرن، من اونا رو بیشتر شبیه ابزارهای افزایش بهرهوریِ جدا افتاده میبینم که تهش، این آدمیزاده که گلوگاه کاره. پیشرفت خیلی کمی تو این زمینه شده که ایجنتهای هوش مصنوعی بتونن تمام اون کارهای ریز و درشتی رو که یه کارمند آدم تو کارای روزمرهاش انجام میده، پوشش بدن. حتی اگه هوش مصنوعی خیلی خیلی مستقلتر هم بشه (autonomy بالاتری پیدا کنه)، آدما هنوزم نیاز به زمان دارن تا تصمیم بگیرن، دیدگاههاشون رو کاملتر کنن و تغییر بدن، با هم حرف بزنن، و به توافق برسن.
بهرهوری
آخرش، کسبوکارها دنبال اینن که کار بیشتری با تلاش و هزینه کمتری انجام بشه. اینکه هوش مصنوعی رو بیاریم تو تیمهای توسعه و بعد هزینهها یا تعداد نیروها رو با یه عدد جادویی (که نمیدونم چرا همیشه بین ۲۰ تا ۳۰ درصده!) کم کنیم – به نظر نمیاد این روش خیلی جواب بده. هنوز تا یه جهش و تغییر خفن بزرگ تو بهرهوری توسعهدهندهها تو کل این صنعت فاصله داریم.
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👨💻2🤔1 1
چند وقت پیش دانشگاه یه ارائه ی ai داشتم به بچه ها گفتم این چیزی که الان میبینید مال الان هست تا هفته ی دیگه مطالبی که بهتون راجب ابزار ها گفتم معتبر نیست. تا همین الان بعد از کنفرانس google io، فعال شدن ویس Grok توی نسخه ی اندروید، اپن سورس شدن گیت هاب کوپایلت و معرفی گیت هاب کوپایلت agent نصف مطالب ارائه شده راجب ابزار ها منسوخ شدن :)
🆔 @MdDaily
🆔 @MdDaily
⚡13 3❤2👍1🤣1👻1🦄1
پست بعدی رو با محوریت حافظه ی مغزمون رو دارم می نویسیم و توی همین چند روز آماده و منتشر میشه . بخشی از مقدمه ی پست :
برای موضوع بعدی داشتم فکر میکردم راجب android reverse engineering بنویسم و یه اپ رو شروع کنیم به آنالیزش و اینکه چطوری میتونیم api هاشا پیدا کنیم و چه مراحلی رو باید پیش ببریم.
توی کامنت ها اگه اپی رو مد نظر دارید معرفی کنید تا بریم سراغش (ترجیحا اپی که بعد مشکل کپی رایت نخوریم )
ما برنامهنویسها دوست داریم باور کنیم موجودات منطقیای هستیم. مشکل حل میکنیم. سیستمهای مقیاسپذیر میسازیم. اما وقتی پای یادآوری اینکه چطوری اون مشکل لعنتی timeout ایپیآی رو ماه پیش حل کردیم میاد وسط؟ کلاً دچار فراموشی میشیم. انگار مغزمون هر اسپرینت یه rm -rf /knowledge اجرا میکنه!
برای موضوع بعدی داشتم فکر میکردم راجب android reverse engineering بنویسم و یه اپ رو شروع کنیم به آنالیزش و اینکه چطوری میتونیم api هاشا پیدا کنیم و چه مراحلی رو باید پیش ببریم.
توی کامنت ها اگه اپی رو مد نظر دارید معرفی کنید تا بریم سراغش (ترجیحا اپی که بعد مشکل کپی رایت نخوریم )
❤6👍1👻1🦄1
قسمت اول: چرا هر برنامهنویسی به یک ژورنال کدنویسی نیاز داره؟ نه، حافظهتون کافی نیست
داشتم دوتا مقاله ی متفاوت میخوندم (ریفرنس ها رو قسمت اخر میذارم) که راجب عملکرد مغزمون تو برنامه نویسی بود. تا حالا شده کدیو ببینید بگید دیگه کدوم نابلدی این کدو نوشته بعد بفهمید کار خودتون بوده؟ یا کدی که چند وقت پیش نوشتید رو دیگه یادتون نمیاد یا هم ممکنه یه مشکلی که کلی برای حلش وقت گذاشته باشید دفعه بعدی که بهش برخوردید به یاد نیارید قبلا چیکار کرده بودید. خبر خوب اینکه تمام اینا دلایل علمی پشتشونه :)
برنامهنویسی بیشتر از اینکه به حفظ کردن سینتکس ربط داشته باشه، یک فرآیند حل مسئله ست. مشاغل کمی هستن که به حافظهی طوطیوار نیاز دارن، اما در کدنویسی، مهم اینه که چطور از منطق برای رسیدن به یک هدف خاص استفاده کنی. توسعهدهندهها همیشه در حال یادگیری ابزارها، فریمورکها و روشهای جدید برای انجام کارها هستن؛ برای همین، تمرکزشون بیشتر روی حل مشکلات به بهینهترین شکل ممکنه تا به خاطر سپردن خط به خط کدها.
به مغز انسان خوش اومدید. یه کَش پر زرقوبرق که هیچ لایه ذخیرهسازی دائمی نداره :)
اصل مطلب اینه: مغز شما برای حل مسئله بهینه شده، نه برای ذخیرهسازی.
حالا فکر کن وسط این همه حل مسئله، تکنولوژی با سرعت زیادی در حال پیشرفته. زبانهای برنامهنویسی، کتابخونهها و فریمورکها مدام تغییر میکنن و این باعث میشه که توسعهدهندهها مجبور باشن همیشه خودشون رو با روشهای جدید بهروز نگه دارن. این تحول دائمی یعنی کدی که دیروز نوشتید، شاید امروز دیگه کاربردی نداشته باشه. برای برنامهنویسها، یادگیری اینکه چطور با تغییرات جدید خودشون رو وفق بدن، در اولویت قرار داره تا اینکه کدهای قبلی رو به حافظه بسپارن.
مغز ما حافظه کوتاهمدت و بلندمدت رو به شکل متفاوتی مدیریت میکنه. وقتی برنامهنویسها عمیقاً در حال کدنویسی هستن، ساختار و منطق کد رو توی حافظه کوتاهمدتشون نگه میدارن. وقتی که سراغ یک پروژه جدید میرن، اون کد ممکنه به حافظه بلندمدت منتقل نشه و همین باعث میشه بعداً به یاد آوردنش سخت باشه و برنامهنویسی میتونه از نظر ذهنی خیلی خستهکننده باشه، چون مجبوری همزمان چندین وظیفه، متغیر و منطق رو توی ذهنت نگه داری. مغز فقط میتونه حجم محدودی از اطلاعات رو در یک زمان پردازش کنه. وقتی با وظایف جدیدی روبرو میشه، اطلاعات قدیمیتر (مثل کدهای قبلی) به بیرون هل داده میشن تا فضا برای حل مسائل جدید باز بشه.
اما راه حل چیه؟
قبل از راه حل بریم ببینیم مشکل از کجا میاد. ما همه چیز رو مستند میکنیم به جز سفر خودمون: تلاشهای ناموفق، بردهای کوچیک، راهحلهای سریع و درسهایی که به روش سخت یاد گرفتیم. ما برای بقیه فایل
بیاید این مشکل رو حل کنیم.
—-
⬅️ ادامه در قسمت بعدی
💡 تا قسمت بعدی مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
داشتم دوتا مقاله ی متفاوت میخوندم (ریفرنس ها رو قسمت اخر میذارم) که راجب عملکرد مغزمون تو برنامه نویسی بود. تا حالا شده کدیو ببینید بگید دیگه کدوم نابلدی این کدو نوشته بعد بفهمید کار خودتون بوده؟ یا کدی که چند وقت پیش نوشتید رو دیگه یادتون نمیاد یا هم ممکنه یه مشکلی که کلی برای حلش وقت گذاشته باشید دفعه بعدی که بهش برخوردید به یاد نیارید قبلا چیکار کرده بودید. خبر خوب اینکه تمام اینا دلایل علمی پشتشونه :)
برنامهنویسی بیشتر از اینکه به حفظ کردن سینتکس ربط داشته باشه، یک فرآیند حل مسئله ست. مشاغل کمی هستن که به حافظهی طوطیوار نیاز دارن، اما در کدنویسی، مهم اینه که چطور از منطق برای رسیدن به یک هدف خاص استفاده کنی. توسعهدهندهها همیشه در حال یادگیری ابزارها، فریمورکها و روشهای جدید برای انجام کارها هستن؛ برای همین، تمرکزشون بیشتر روی حل مشکلات به بهینهترین شکل ممکنه تا به خاطر سپردن خط به خط کدها.
به مغز انسان خوش اومدید. یه کَش پر زرقوبرق که هیچ لایه ذخیرهسازی دائمی نداره :)
اصل مطلب اینه: مغز شما برای حل مسئله بهینه شده، نه برای ذخیرهسازی.
حالا فکر کن وسط این همه حل مسئله، تکنولوژی با سرعت زیادی در حال پیشرفته. زبانهای برنامهنویسی، کتابخونهها و فریمورکها مدام تغییر میکنن و این باعث میشه که توسعهدهندهها مجبور باشن همیشه خودشون رو با روشهای جدید بهروز نگه دارن. این تحول دائمی یعنی کدی که دیروز نوشتید، شاید امروز دیگه کاربردی نداشته باشه. برای برنامهنویسها، یادگیری اینکه چطور با تغییرات جدید خودشون رو وفق بدن، در اولویت قرار داره تا اینکه کدهای قبلی رو به حافظه بسپارن.
مغز ما حافظه کوتاهمدت و بلندمدت رو به شکل متفاوتی مدیریت میکنه. وقتی برنامهنویسها عمیقاً در حال کدنویسی هستن، ساختار و منطق کد رو توی حافظه کوتاهمدتشون نگه میدارن. وقتی که سراغ یک پروژه جدید میرن، اون کد ممکنه به حافظه بلندمدت منتقل نشه و همین باعث میشه بعداً به یاد آوردنش سخت باشه و برنامهنویسی میتونه از نظر ذهنی خیلی خستهکننده باشه، چون مجبوری همزمان چندین وظیفه، متغیر و منطق رو توی ذهنت نگه داری. مغز فقط میتونه حجم محدودی از اطلاعات رو در یک زمان پردازش کنه. وقتی با وظایف جدیدی روبرو میشه، اطلاعات قدیمیتر (مثل کدهای قبلی) به بیرون هل داده میشن تا فضا برای حل مسائل جدید باز بشه.
اما راه حل چیه؟
قبل از راه حل بریم ببینیم مشکل از کجا میاد. ما همه چیز رو مستند میکنیم به جز سفر خودمون: تلاشهای ناموفق، بردهای کوچیک، راهحلهای سریع و درسهایی که به روش سخت یاد گرفتیم. ما برای بقیه فایل
README.md مینویسیم... اما هیچوقت برای خودمون نه.بیاید این مشکل رو حل کنیم.
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🆒2🙏1👻1🦄1
قسمت دوم: چرا هر برنامهنویسی به یک ژورنال کدنویسی نیاز داره؟ نه، حافظهتون کافی نیست
توی قسمت اول بررسی کردیم که چرا ما کد ها را فراموش میکنیم و مغزمون برای حل مسئله ساخته شده و نه نگهداری اطلاعات و رسیدیم به یک پرسش مهم! حالا راه حل چیه؟
این یه راهه برای دیباگ کردن مغزتون، مقیاس دادن به یادگیریتون و تبدیل شدن به اون برنامهنویسی که خودِ آیندهتون از دیدنش کیف میکنه.
هر روز شما مشکلات رو حل میکنید، با موارد خاص آشنا میشید، خطاهای عجیب و غریب رو دیباگ میکنید و به ترفندهای باحالی برمیخورید. اما اگه پیشرفتتون رو ذخیره نکنید، میشه مثل یه پروسه که توی `top` کیل شده.
یه ژورنال برنامهنویسی، سیستم ذخیرهسازی شخصی شماست که قرار نیست توش مقاله بنویسید. قراره اون زمینه و کانتکست رو حفظ کنید؛ یعنی روند فکری، دلیلی که یه کتابخونه رو به اون یکی ترجیح دادی.
چرا این مهمه:
* دردهای تکراری رو کم میکنه: همون باگی که سه اسپرینت پیش رفع کردی؟ حالا میتونی تو یادداشتهات جستجو کنی به جای اینکه دوباره تو Stack Overflow دنبالش بگردی.
* خودِ آیندهات رو باهوشتر میکنه: شما برای امروز کد نمیزنید، دارید برای نسخه سه ماه بعدِ خودتون سرنخ به جا میذارید.
* کانتکست یعنی طلا: گیت (Git) به شما میگه چی تغییر کرده. ژورنالتون به شما میگه چرا تغییر کرده.
مغزتون رو مثل RAM در نظر بگیرید. سریعه ولی فَرّاره. ژورنالتون مثل SSD شماست؛ نوشتن توش کندتره، اما دائمی و قابل جستجوئه.
پس به جای اینکه با هر روز مثل یه شروع تازه برخورد کنید، مثل یه کمپین باهاش رفتار کنید؛ کمپینی که توش زود به زود ذخیره میکنید و نمیذارید مبارزه با غول آخر، کل پیشرفتتون رو پاک کنه.
چی توی ژورنال برنامهنویسیتون بنویسید که شبیه دفتر خاطرات نشه
بذارید یه چیزی رو همین اول روشن کنیم: قرار نیست بنویسید «دفتر خاطرات عزیزم، امروز دوباره با یه سمیکالن (;) به مشکل خوردم.»
یه ژورنال برنامهنویسی در مورد احساسات نیست. هدفش ثبت سرنخهای فنیه تا بتونید از سردردهای آینده جلوگیری کنید، سرعت کارتون رو بالا ببرید و دیگه هر ماه مجبور نشید همون جواب رو از نو پیدا کنید.
این چیزهاییه که واقعاً باید یادداشت کنید:
بردهای روزانه (حتی کوچیکهاش)
* یه باگ کَشینگ رو رفع کردی؟ بنویس چطوری.
* کانتینر داکر بالاخره بعد از ۳ ساعت کلنجار رفتن با «آخه چرا؟» اجرا شد؟ اون تغییر کوچیک تو کانفیگ رو بنویس.
* چرا؟ اینا الان شاید جزئی به نظر برسن، اما اثرشون مرکب میشه. به علاوه، مرور کردنشون بعداً مثل گرفتن XP میمونه.
چیزایی که گیر کردی و لحظات WTF
* اون پیغام خطایی که هیچ معنیای نمیداد؟ ثبتش کن.
* اون مسیر خرگوشی که رفتی توش و به هیچجا نرسید؟ اونم ارزشمنده.
* ثبت کردن موانع به شما کمک میکنه نه فقط کد، بلکه الگوهای فکری خودتون رو هم دیباگ کنید.
تصمیمهایی که گرفتی و دلیلش
* «من
* «اینجا از unit test صرفنظر کردم چون تست E2E پوششاش میده.»
* این کار باعث میشه خودِ آیندهتون با عصبانیت زیر لب نگه: «این دیگه کار کی بوده...»
دستورات خفن خط فرمان و کانفیگها
* اون دستور تکخطی که کل محیط رو آماده میکنه رو میشناسی؟ اون دستور
چیزایی که مجبور شدی (دوباره) گوگل کنی
* اگه یه چیزی رو بیشتر از یه بار گوگل کردی، جاش توی ژورناله. این قانونه.
* اینجوری ژورنالت تبدیل میشه به Stack Overflow شخصی خودت، ولی بدون اون کامنتهای رو مخ که میگن «داکیومنتها رو بخون.»
خلاصه، ساختاریافته و قابل جستجو نگه داشتنش باعث میشه مفید باشه. این یه وبلاگ نیست. این لاگ دیباگ شما تو زندگی واقعیه.
نکته حرفهای: از لیستهای بالتدار (bullet points)، بلوکهای کد و تگهایی مثل
خب، حالا با ایده موافقید. سوال اصلی اینه: این همه چیز رو کجا بنویسیم؟
برای ژورنالنویسی برنامهنویسها سه روش هست: با VS Code و Git ژورنال مارکداون با کنترل نسخه بسازید، با Obsidian یادداشتهای متصل با بکلینک و تگهایی مثل
حرف آخر: ابزار به اندازه خود عادت مهم نیست. هر چیزی که برای شما اصطکاک رو کمتر میکنه انتخاب کنید. بهترین ابزار ژورنالنویسی اونیه که واقعاً بازش میکنید.
—-
⬅️ هنوز تموم نشده و ادامه در قسمت بعدی
💡 تا قسمت بعدی مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
توی قسمت اول بررسی کردیم که چرا ما کد ها را فراموش میکنیم و مغزمون برای حل مسئله ساخته شده و نه نگهداری اطلاعات و رسیدیم به یک پرسش مهم! حالا راه حل چیه؟
این یه راهه برای دیباگ کردن مغزتون، مقیاس دادن به یادگیریتون و تبدیل شدن به اون برنامهنویسی که خودِ آیندهتون از دیدنش کیف میکنه.
هر روز شما مشکلات رو حل میکنید، با موارد خاص آشنا میشید، خطاهای عجیب و غریب رو دیباگ میکنید و به ترفندهای باحالی برمیخورید. اما اگه پیشرفتتون رو ذخیره نکنید، میشه مثل یه پروسه که توی `top` کیل شده.
یه ژورنال برنامهنویسی، سیستم ذخیرهسازی شخصی شماست که قرار نیست توش مقاله بنویسید. قراره اون زمینه و کانتکست رو حفظ کنید؛ یعنی روند فکری، دلیلی که یه کتابخونه رو به اون یکی ترجیح دادی.
چرا این مهمه:
* دردهای تکراری رو کم میکنه: همون باگی که سه اسپرینت پیش رفع کردی؟ حالا میتونی تو یادداشتهات جستجو کنی به جای اینکه دوباره تو Stack Overflow دنبالش بگردی.
* خودِ آیندهات رو باهوشتر میکنه: شما برای امروز کد نمیزنید، دارید برای نسخه سه ماه بعدِ خودتون سرنخ به جا میذارید.
* کانتکست یعنی طلا: گیت (Git) به شما میگه چی تغییر کرده. ژورنالتون به شما میگه چرا تغییر کرده.
مغزتون رو مثل RAM در نظر بگیرید. سریعه ولی فَرّاره. ژورنالتون مثل SSD شماست؛ نوشتن توش کندتره، اما دائمی و قابل جستجوئه.
پس به جای اینکه با هر روز مثل یه شروع تازه برخورد کنید، مثل یه کمپین باهاش رفتار کنید؛ کمپینی که توش زود به زود ذخیره میکنید و نمیذارید مبارزه با غول آخر، کل پیشرفتتون رو پاک کنه.
چی توی ژورنال برنامهنویسیتون بنویسید که شبیه دفتر خاطرات نشه
بذارید یه چیزی رو همین اول روشن کنیم: قرار نیست بنویسید «دفتر خاطرات عزیزم، امروز دوباره با یه سمیکالن (;) به مشکل خوردم.»
یه ژورنال برنامهنویسی در مورد احساسات نیست. هدفش ثبت سرنخهای فنیه تا بتونید از سردردهای آینده جلوگیری کنید، سرعت کارتون رو بالا ببرید و دیگه هر ماه مجبور نشید همون جواب رو از نو پیدا کنید.
این چیزهاییه که واقعاً باید یادداشت کنید:
بردهای روزانه (حتی کوچیکهاش)
* یه باگ کَشینگ رو رفع کردی؟ بنویس چطوری.
* کانتینر داکر بالاخره بعد از ۳ ساعت کلنجار رفتن با «آخه چرا؟» اجرا شد؟ اون تغییر کوچیک تو کانفیگ رو بنویس.
* چرا؟ اینا الان شاید جزئی به نظر برسن، اما اثرشون مرکب میشه. به علاوه، مرور کردنشون بعداً مثل گرفتن XP میمونه.
چیزایی که گیر کردی و لحظات WTF
* اون پیغام خطایی که هیچ معنیای نمیداد؟ ثبتش کن.
* اون مسیر خرگوشی که رفتی توش و به هیچجا نرسید؟ اونم ارزشمنده.
* ثبت کردن موانع به شما کمک میکنه نه فقط کد، بلکه الگوهای فکری خودتون رو هم دیباگ کنید.
تصمیمهایی که گرفتی و دلیلش
* «من
Zod رو به جای Yup انتخاب کردم چون استنتاج تایپاسکریپتش بهتر بود.»* «اینجا از unit test صرفنظر کردم چون تست E2E پوششاش میده.»
* این کار باعث میشه خودِ آیندهتون با عصبانیت زیر لب نگه: «این دیگه کار کی بوده...»
دستورات خفن خط فرمان و کانفیگها
* اون دستور تکخطی که کل محیط رو آماده میکنه رو میشناسی؟ اون دستور
rsync که همیشه قاطی میکنی؟ اینجا ثبتش کن. دیگه خبری از ژانگولربازی با history | grep نیست.چیزایی که مجبور شدی (دوباره) گوگل کنی
* اگه یه چیزی رو بیشتر از یه بار گوگل کردی، جاش توی ژورناله. این قانونه.
* اینجوری ژورنالت تبدیل میشه به Stack Overflow شخصی خودت، ولی بدون اون کامنتهای رو مخ که میگن «داکیومنتها رو بخون.»
خلاصه، ساختاریافته و قابل جستجو نگه داشتنش باعث میشه مفید باشه. این یه وبلاگ نیست. این لاگ دیباگ شما تو زندگی واقعیه.
نکته حرفهای: از لیستهای بالتدار (bullet points)، بلوکهای کد و تگهایی مثل
#رفعباگ`، `#cli یا #پرفورمنس برای سازماندهی نوشتههاتون استفاده کنید. مارکداون این کار رو به شکل خوبی ساده میکنه.خب، حالا با ایده موافقید. سوال اصلی اینه: این همه چیز رو کجا بنویسیم؟
برای ژورنالنویسی برنامهنویسها سه روش هست: با VS Code و Git ژورنال مارکداون با کنترل نسخه بسازید، با Obsidian یادداشتهای متصل با بکلینک و تگهایی مثل
#debug و #frontend داشته باشید، یا با متن ساده و cron لاگ روزانه خودکار بنویسید. یکم باحال ترش کنیم؟ بدید به notebooklm :)حرف آخر: ابزار به اندازه خود عادت مهم نیست. هر چیزی که برای شما اصطکاک رو کمتر میکنه انتخاب کنید. بهترین ابزار ژورنالنویسی اونیه که واقعاً بازش میکنید.
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10 3⚡2👻2🙏1
قسمت سوم: چرا هر برنامهنویسی به یک ژورنال کدنویسی نیاز داره؟ نه، حافظهتون کافی نیس
قسمت دوم
قسمت اول
اون حسی رو میشناسید که بالاخره یه باگ رو له میکنید و با خودتون فکر میکنید: «من یه نابغهام و لایق افزایش حقوقم»؟
بعد دو هفته بعد، همون باگ برمیگرده و شما هیچ ایدهای ندارید دفعه قبل چیکار کردید؟
نوشتن فقط به یادآوری کمک نمیکنه، بلکه به شما کمک میکنه بهتر فکر کنید. «لاگهای ذهنی» مبهم و پراکندهتون رو به افکار ساختاریافته تبدیل میکنه. وقتی به طور مداوم ژورنال مینویسید، شروع به دیدن الگوها میکنید.
شفافیت در پیچیدگی
گاهی اوقات شما به جواب نیاز ندارید، فقط باید از دل سردرگمی بنویسید.
ژورنالنویسی شما رو مجبور میکنه بپرسید:
* داشتم سعی میکردم چیکار کنم؟
* چی اشتباه پیش رفت؟
* چی رو امتحان کردم؟
* چی بالاخره جواب داد؟
به مرور زمان، ژورنالتون تبدیل به یه گراف دانش از مغز خودتون میشه. متوجه میشید چه نوع مشکلاتی بهتون انرژی میده، سراغ چه ابزارهایی مدام میرید و معمولاً کجاها گیر میکنید و اگه دارید به برنامهنویسهای تازهکار کمک میکنید یا یه تصمیم رو برای تیم توضیح میدید؟ بفرمایید، اینم از اسناد و مدارک تو ژورنالتون.
«نوشتن، روش طبیعته برای اینکه بهت بفهمونه تفکرت چقدر گنگ و مبهمه.»
مغز شما باگ داره. ژورنالنویسی دیباگر شماست. وقتی درست انجام بشه، ژورنال شما خیلی بیشتر از یه سری لاگ و درس میشه؛ تبدیل میشه به پایگاه دانش زنده شما، خاطرات فنی شما و بله، حتی یه رزومه مخفی که هیچکس دیگهای بهش دسترسی نداره (به جز شاید خودِ آیندهتون موقع مصاحبه شغلی).
تا حالا برای جواب دادن به سوال «از زمانی بگو که بر یک چالش غلبه کردی...» به زحمت افتادید؟
حالا تصور کنید ژورنالتون رو باز کنید و بگید:
«اتفاقاً، اینجوری یه مشکل تایماوت مکرر API رو تو یه ساختار میکروسرویس با استفاده از retry queue و exponential backoff حل کردم...»
* باید یادتون بیاد اون سرویس داخلی GraphQL چطوری ساختاردهی شده بود؟
* میخواید یادتون بیاد چرا اون کتابخونه احراز هویتِ رو مخ رو منسوخ کردید؟
* باید یه طرح مهاجرت رو با یه عضو جدید تیم به اشتراک بذارید؟
ژورنالتون هواتون رو داره و به زبان خودتون نوشته شده، نه مثل یه دفترچه راهنمای استاندارد.
برای آنبوردینگ، منتورینگ و رشد تیم
وقتی یه نفر جدید به تیم شما ملحق میشه، دادن دسترسی به بخشهای تمیز شده ژورنالتون (یا مستنداتی که از ژورنال الهام گرفتن) میتونه روند یادگیریاش رو سریعتر کنه. مثل اینه که بهش راهنمای قدم به قدم شکست دادن غول آخر رو بدید به جای اینکه بگید: «موفق باشی، فقط سورس کد رو بخون.»
ردیابی رشد، موانع و بردهاتون به شما مدرک واقعی در طول جلسات یکبهیک یا دورههای ارزیابی میده. لازم نیست برای پیدا کردن مثال دست و پا بزنید، همهشون همونجان.
پس دفعه بعد که یکی گفت: «تو اصلاً تمام روز چیکار میکنی؟» شما لاگ دارید.
بیاید روراست باشیم: کدنویسی حال میده تا وقتی که دیگه حال نده.
یه روز داری کامیتهای تمیز پوش میکنی و با آهنگهای لوفای حال میکنی، روز بعد ۶ ساعته تو جهنم وابستگیها گیر کردی و داری به تمام تصمیمهای زندگیات از زمان نصب Node.js شک میکنی.
فقط نوشتن اینکه چی اشتباه شد، چی داره اذیتت میکنه یا چرا احساس میکنی گیر کردی، میتونه بار شناختی رو از دوشت برداره.
لازم نیست همه چیز رو درست کنی. فقط باید بنویسیش تا دیگه تو سرت تکرار نشه.
اشکالی نداره اگه نوشتهتون این باشه:
> ۲۲ اردیبهشت
> هنوز نمیفهمم چرا کانتینر داکر از ماشین من متنفره.
> ۳ تا ایمیج پایه مختلف رو امتحان کردم. شاید واقعاً گریهام بگیره.
> میرم یه قهوه بزنم. با مغز تازه دیباگ میکنم.
همین هم قبوله.
پیدا کردن الگوها برای مراقبت از خود
وقتی وضعیت عاطفیتون رو در طول زمان ردیابی میکنید، شروع به دیدن چیزهایی مثل این میکنید:
* وقتی استراحت نمیکنید سریعتر فرسوده میشید.
* بعد از پیادهروی صبحگاهی بهتر کد میزنید.
* بعد از جلسههای زیاد، بیشترین کلافگی رو دارید.
این یعنی خودآگاهی. و این به عادتهای پایدار برنامهنویسی منجر میشه.
—-
⬅️ هنوز تموم نشده و ادامه در قسمت بعدی
💡 تا قسمت بعدی مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
قسمت دوم
قسمت اول
اون حسی رو میشناسید که بالاخره یه باگ رو له میکنید و با خودتون فکر میکنید: «من یه نابغهام و لایق افزایش حقوقم»؟
بعد دو هفته بعد، همون باگ برمیگرده و شما هیچ ایدهای ندارید دفعه قبل چیکار کردید؟
نوشتن فقط به یادآوری کمک نمیکنه، بلکه به شما کمک میکنه بهتر فکر کنید. «لاگهای ذهنی» مبهم و پراکندهتون رو به افکار ساختاریافته تبدیل میکنه. وقتی به طور مداوم ژورنال مینویسید، شروع به دیدن الگوها میکنید.
شفافیت در پیچیدگی
گاهی اوقات شما به جواب نیاز ندارید، فقط باید از دل سردرگمی بنویسید.
ژورنالنویسی شما رو مجبور میکنه بپرسید:
* داشتم سعی میکردم چیکار کنم؟
* چی اشتباه پیش رفت؟
* چی رو امتحان کردم؟
* چی بالاخره جواب داد؟
به مرور زمان، ژورنالتون تبدیل به یه گراف دانش از مغز خودتون میشه. متوجه میشید چه نوع مشکلاتی بهتون انرژی میده، سراغ چه ابزارهایی مدام میرید و معمولاً کجاها گیر میکنید و اگه دارید به برنامهنویسهای تازهکار کمک میکنید یا یه تصمیم رو برای تیم توضیح میدید؟ بفرمایید، اینم از اسناد و مدارک تو ژورنالتون.
«نوشتن، روش طبیعته برای اینکه بهت بفهمونه تفکرت چقدر گنگ و مبهمه.»
مغز شما باگ داره. ژورنالنویسی دیباگر شماست. وقتی درست انجام بشه، ژورنال شما خیلی بیشتر از یه سری لاگ و درس میشه؛ تبدیل میشه به پایگاه دانش زنده شما، خاطرات فنی شما و بله، حتی یه رزومه مخفی که هیچکس دیگهای بهش دسترسی نداره (به جز شاید خودِ آیندهتون موقع مصاحبه شغلی).
تا حالا برای جواب دادن به سوال «از زمانی بگو که بر یک چالش غلبه کردی...» به زحمت افتادید؟
حالا تصور کنید ژورنالتون رو باز کنید و بگید:
«اتفاقاً، اینجوری یه مشکل تایماوت مکرر API رو تو یه ساختار میکروسرویس با استفاده از retry queue و exponential backoff حل کردم...»
* باید یادتون بیاد اون سرویس داخلی GraphQL چطوری ساختاردهی شده بود؟
* میخواید یادتون بیاد چرا اون کتابخونه احراز هویتِ رو مخ رو منسوخ کردید؟
* باید یه طرح مهاجرت رو با یه عضو جدید تیم به اشتراک بذارید؟
ژورنالتون هواتون رو داره و به زبان خودتون نوشته شده، نه مثل یه دفترچه راهنمای استاندارد.
برای آنبوردینگ، منتورینگ و رشد تیم
وقتی یه نفر جدید به تیم شما ملحق میشه، دادن دسترسی به بخشهای تمیز شده ژورنالتون (یا مستنداتی که از ژورنال الهام گرفتن) میتونه روند یادگیریاش رو سریعتر کنه. مثل اینه که بهش راهنمای قدم به قدم شکست دادن غول آخر رو بدید به جای اینکه بگید: «موفق باشی، فقط سورس کد رو بخون.»
ردیابی رشد، موانع و بردهاتون به شما مدرک واقعی در طول جلسات یکبهیک یا دورههای ارزیابی میده. لازم نیست برای پیدا کردن مثال دست و پا بزنید، همهشون همونجان.
پس دفعه بعد که یکی گفت: «تو اصلاً تمام روز چیکار میکنی؟» شما لاگ دارید.
بیاید روراست باشیم: کدنویسی حال میده تا وقتی که دیگه حال نده.
یه روز داری کامیتهای تمیز پوش میکنی و با آهنگهای لوفای حال میکنی، روز بعد ۶ ساعته تو جهنم وابستگیها گیر کردی و داری به تمام تصمیمهای زندگیات از زمان نصب Node.js شک میکنی.
فقط نوشتن اینکه چی اشتباه شد، چی داره اذیتت میکنه یا چرا احساس میکنی گیر کردی، میتونه بار شناختی رو از دوشت برداره.
لازم نیست همه چیز رو درست کنی. فقط باید بنویسیش تا دیگه تو سرت تکرار نشه.
اشکالی نداره اگه نوشتهتون این باشه:
> ۲۲ اردیبهشت
> هنوز نمیفهمم چرا کانتینر داکر از ماشین من متنفره.
> ۳ تا ایمیج پایه مختلف رو امتحان کردم. شاید واقعاً گریهام بگیره.
> میرم یه قهوه بزنم. با مغز تازه دیباگ میکنم.
همین هم قبوله.
پیدا کردن الگوها برای مراقبت از خود
وقتی وضعیت عاطفیتون رو در طول زمان ردیابی میکنید، شروع به دیدن چیزهایی مثل این میکنید:
* وقتی استراحت نمیکنید سریعتر فرسوده میشید.
* بعد از پیادهروی صبحگاهی بهتر کد میزنید.
* بعد از جلسههای زیاد، بیشترین کلافگی رو دارید.
این یعنی خودآگاهی. و این به عادتهای پایدار برنامهنویسی منجر میشه.
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7 2🙏1👻1
مجموعه پست ژورنال کدنویسی از چیزی که فکرشو میکردم گسترده تر شد مبحثش و use case هایی میشد براش اورد و مثال زد که دلم نیومد برای مختصر کردن پست چیزی رو حذف کنم چون به نظرم خیلی کاربردین ولی درنهایت قسمت بعدی قسمت آخر و نهاییه.
احتمالا پست بعد ترش قرار راجب گیت هاب کوپایلت و اینکه چطوری دو هفته مونده بود به پایان اشتراکم حسابم رو معمولی کرد بنویسم و اینکه تو تیکت ها گردن گیرشونم خیلی خرابه و خلاصه راجب ابزار های ai یکم قرار نکات منفی کمتر گفته شدش رو بر حسب تجربه ی این دوسال برم سراغش.
فعلا open router رو بردم زیر تست . نتیجش رو توی همون پست خواهم گفت.
خلاصه که کنجکاو بمونید. دنیا به برنامه نویس های بیشتری که مفهوم و ساختار رو درک میکنن نیاز داره :)
احتمالا پست بعد ترش قرار راجب گیت هاب کوپایلت و اینکه چطوری دو هفته مونده بود به پایان اشتراکم حسابم رو معمولی کرد بنویسم و اینکه تو تیکت ها گردن گیرشونم خیلی خرابه و خلاصه راجب ابزار های ai یکم قرار نکات منفی کمتر گفته شدش رو بر حسب تجربه ی این دوسال برم سراغش.
فعلا open router رو بردم زیر تست . نتیجش رو توی همون پست خواهم گفت.
خلاصه که کنجکاو بمونید. دنیا به برنامه نویس های بیشتری که مفهوم و ساختار رو درک میکنن نیاز داره :)
❤🔥9🙏1👻1
فضای لینکدین یه طوری شده (مخصوصا فارسی) پست های مردم توی 🤖 جلوشون محتوای فاخر حساب میشن :)
🆔 @MdDaily
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
قسمت چهارم: چرا هر برنامهنویسی به یک ژورنال کدنویسی نیاز داره؟ نه، حافظهتون کافی نیس
قسمت سوم
قسمت دوم
قسمت اول
رباتها نمیتونن مثل شما ژورنال بنویسن
هوش مصنوعی میتونه کد شما رو کامل کنه، اما نمیتونه احساسات، تصمیمها یا اینکه چرا بعد از دست زدن به CSS نزدیک بود لپتاپت رو پرت کنی، ردیابی کنه. این کار شماست و یه ژورنال جای عالی برای این کاره.
بله، حتی برنامهنویسهای ارشد هم باید این کار رو بکنن
شاید با خودتون فکر کنید: «من به ژورنال نیاز ندارم. من تجربه دارم.» آره... ولی هنوز یادت رفته فصل پیش چطوری اون باگ OAuth رو حل کردی.
ژورنالنویسی فقط برای تازهکارها نیست، یه ضریب فزاینده است، فرقی نمیکنه در چه سطحی باشید. در واقع، هرچی باتجربهتر باشید، افکارتون ارزشمندتر میشه.
ارشد بودن ≠ حافظه فوق بشری
ارشد بودن به این معنی نیست که تمام باگهایی که تو سال ۱۴۰۲ رفع کردی رو یادت میاد. به این معنیه که بیشتر اشتباه کردی و ازشون درس گرفتی.
تفکر شما تبدیل به یه نقشه راه میشه
بهترین مهندسهای ارشد فقط کد نمینویسن — اونا راهنمایی میکنن، الگوهای تصمیمگیری رو نشون میدن و یه رد از کانتکست به جا میذارن که بقیه بتونن دنبال کنن. یه ژورنال، مدلهای ذهنی شما رو ثبت میکنه.
یه روز یکی سوال ازتون میپرسه. شما ژورنالتون رو باز میکنید:
> «اردیبهشت ۱۴۰۳: منطق تلاش مجدد رو بعد از مشکل race condition تو رولاوت کوبرنتیز اضافه کردم. قطعی ۴۰ درصد کم شد. اینم از راهحل...»
این یعنی به اشتراکگذاری دانش.
رسید برای رهبری
وقتی تو جلسات استراتژی هستید یا گزارشهای فصلی رو مینویسید، ژورنالتون تبدیل به منبع حقیقت شما میشه. نه برد جیراتون، نه اسلک.
اینجوری ثابت میکنید که:
👈 شما اون مشکل رو از قبل پیشبینی کرده بودید.
👈 شما تصمیم درست رو گرفتید.
👈 شما نه فقط در کد، بلکه در شفافیت هم رشد کردید.
چطوری واقعاً این کار رو به یه عادت تبدیل کنیم
خب، تا الان احتمالاً دارید سر تکون میدید و میگید: «آره آره، ژورنالنویسی باحال به نظر میرسه، باید انجامش بدم...»
اما بیاید روراست باشیم، همه ما قبلاً اینو گفتیم.
مبارزه با غول آخر واقعی؟ ثبات قدم.
شما به یه چیزی به طرز احمقانهای ساده نیاز دارید که حتی وقتی خسته و بداخلاقید هم کار کنه.
اینجوری این عادت رو بسازید بدون اینکه هفته دوم از عصبانیت ولش کنید:
با روزی ۵ دقیقه شروع کنید
هدفتون «لاگهای زیبا و خوشساخت» نباشه. فقط هدفتون این باشه:
👈 روی چی کار کردم.
👈 کجا گیر کردم.
👈 چی یاد گرفتم (یا از یاد بردم).
واقعاً یه تایمر ۵ دقیقهای تنظیم کنید. وقتی زنگ خورد، کارتون تمومه.
اون رو به کاری که همین الان هم انجام میدید بچسبونید
یه تمپلیت قابل استفاده مجدد توی کامنت ها براتون گذاشتم که ازش استفاده کنید.
اون رو سرگرمکننده (یا حداقل قابل تحمل) کنید
👈 میم اضافه کنید. جدی میگم.
👈 از اموجی برای حال و هوا استفاده کنید (😤, 🤓, 😵💫).
👈 لینک آهنگهایی که موقع دیباگ کردن گوش میدادید رو بذارید.
👈 با ژورنالتون مثل چنجلاگ شخصیتون رفتار کنید.
ثبات قدم به معنی بینقص بودن نیست. به معنی حاضر شدنه. حتی یه بالت پوینت هم از هیچی بهتره.
خودِ آیندهتون از شما تشکر میکنه.
نتیجهگیری: وقتی بیشتر مینویسید، بهتر کد میزنید
📖 اینم خلاصه کلام برای اونایی که حال نداشتن بخونن (TL;DR):
مغزتون ۳ روز دیگه همهچیو فراموش میکنه، مگه اینکه ژورنال بنویسید:
مغز شما گیت نیست پس:
👈 تغییرات رو ردیابی نمیکنه.
👈 کانتکست رو ذخیره نمیکنه.
👈 و قطعاً از ریبوت شدن جون سالم به در نمیبره.
یه ژورنال برنامهنویسی یه نمایش بهرهوری نیست، یه ابزار بقاست. به شما کمک میکنه:
👈 یادتون بمونه چطور و چرا مشکلات رو حل کردید.
👈 تفکر خودتون رو دیباگ کنید.
👈 رشدتون رو در طول زمان ردیابی کنید.
👈 فرسودگی شغلی رو مدیریت کنید.
👈 استک اورفلو شخصی و قابل جستجوی خودتون رو بسازید.
👈 همتیمی، منتور و معمار بهتری بشید.
فرقی نمیکنه تازهکار باشید یا مدیر، فول-استک باشید یا فرانت-اند؛ نوشتن شما رو تیزتر میکنه. اینجاست که تصمیمها، اشتباهات و موفقیتهای بزرگتون دیگه در خلأ محو نمیشن.
حتی اگه هیچکس دیگهای اون رو نبینه، ژورنال شما مدرکیه که نشون میده شما حاضر بودید، با پیچیدگی دست و پنجه نرم کردید و چیزی یاد گرفتید.
و وقتی باگ بعدی از راه برسه یا مصاحبه بعدی پیش بیاد، شما فقط کد نخواهید داشت، کانتکست هم خواهید داشت.
پس امتحانش کنید. ۷ روز.
فقط روزی یک ورودی. لازم نیست فانتزی باشه. لازم نیست بینقص باشه.
فقط یه فایل باز کنید و بنویسید.
چون بهترین برنامهنویسها فقط کد تحویل نمیدن؛
اونا سفر رو ثبت میکنن.
منابع:
Source 1
Source 2
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
قسمت سوم
قسمت دوم
قسمت اول
رباتها نمیتونن مثل شما ژورنال بنویسن
هوش مصنوعی میتونه کد شما رو کامل کنه، اما نمیتونه احساسات، تصمیمها یا اینکه چرا بعد از دست زدن به CSS نزدیک بود لپتاپت رو پرت کنی، ردیابی کنه. این کار شماست و یه ژورنال جای عالی برای این کاره.
بله، حتی برنامهنویسهای ارشد هم باید این کار رو بکنن
شاید با خودتون فکر کنید: «من به ژورنال نیاز ندارم. من تجربه دارم.» آره... ولی هنوز یادت رفته فصل پیش چطوری اون باگ OAuth رو حل کردی.
ژورنالنویسی فقط برای تازهکارها نیست، یه ضریب فزاینده است، فرقی نمیکنه در چه سطحی باشید. در واقع، هرچی باتجربهتر باشید، افکارتون ارزشمندتر میشه.
ارشد بودن ≠ حافظه فوق بشری
ارشد بودن به این معنی نیست که تمام باگهایی که تو سال ۱۴۰۲ رفع کردی رو یادت میاد. به این معنیه که بیشتر اشتباه کردی و ازشون درس گرفتی.
تفکر شما تبدیل به یه نقشه راه میشه
بهترین مهندسهای ارشد فقط کد نمینویسن — اونا راهنمایی میکنن، الگوهای تصمیمگیری رو نشون میدن و یه رد از کانتکست به جا میذارن که بقیه بتونن دنبال کنن. یه ژورنال، مدلهای ذهنی شما رو ثبت میکنه.
یه روز یکی سوال ازتون میپرسه. شما ژورنالتون رو باز میکنید:
> «اردیبهشت ۱۴۰۳: منطق تلاش مجدد رو بعد از مشکل race condition تو رولاوت کوبرنتیز اضافه کردم. قطعی ۴۰ درصد کم شد. اینم از راهحل...»
این یعنی به اشتراکگذاری دانش.
رسید برای رهبری
وقتی تو جلسات استراتژی هستید یا گزارشهای فصلی رو مینویسید، ژورنالتون تبدیل به منبع حقیقت شما میشه. نه برد جیراتون، نه اسلک.
اینجوری ثابت میکنید که:
چطوری واقعاً این کار رو به یه عادت تبدیل کنیم
خب، تا الان احتمالاً دارید سر تکون میدید و میگید: «آره آره، ژورنالنویسی باحال به نظر میرسه، باید انجامش بدم...»
اما بیاید روراست باشیم، همه ما قبلاً اینو گفتیم.
مبارزه با غول آخر واقعی؟ ثبات قدم.
شما به یه چیزی به طرز احمقانهای ساده نیاز دارید که حتی وقتی خسته و بداخلاقید هم کار کنه.
اینجوری این عادت رو بسازید بدون اینکه هفته دوم از عصبانیت ولش کنید:
با روزی ۵ دقیقه شروع کنید
هدفتون «لاگهای زیبا و خوشساخت» نباشه. فقط هدفتون این باشه:
واقعاً یه تایمر ۵ دقیقهای تنظیم کنید. وقتی زنگ خورد، کارتون تمومه.
اون رو به کاری که همین الان هم انجام میدید بچسبونید
یه تمپلیت قابل استفاده مجدد توی کامنت ها براتون گذاشتم که ازش استفاده کنید.
اون رو سرگرمکننده (یا حداقل قابل تحمل) کنید
ثبات قدم به معنی بینقص بودن نیست. به معنی حاضر شدنه. حتی یه بالت پوینت هم از هیچی بهتره.
خودِ آیندهتون از شما تشکر میکنه.
نتیجهگیری: وقتی بیشتر مینویسید، بهتر کد میزنید
مغزتون ۳ روز دیگه همهچیو فراموش میکنه، مگه اینکه ژورنال بنویسید:
مغز شما گیت نیست پس:
یه ژورنال برنامهنویسی یه نمایش بهرهوری نیست، یه ابزار بقاست. به شما کمک میکنه:
فرقی نمیکنه تازهکار باشید یا مدیر، فول-استک باشید یا فرانت-اند؛ نوشتن شما رو تیزتر میکنه. اینجاست که تصمیمها، اشتباهات و موفقیتهای بزرگتون دیگه در خلأ محو نمیشن.
حتی اگه هیچکس دیگهای اون رو نبینه، ژورنال شما مدرکیه که نشون میده شما حاضر بودید، با پیچیدگی دست و پنجه نرم کردید و چیزی یاد گرفتید.
و وقتی باگ بعدی از راه برسه یا مصاحبه بعدی پیش بیاد، شما فقط کد نخواهید داشت، کانتکست هم خواهید داشت.
پس امتحانش کنید. ۷ روز.
فقط روزی یک ورودی. لازم نیست فانتزی باشه. لازم نیست بینقص باشه.
فقط یه فایل باز کنید و بنویسید.
چون بهترین برنامهنویسها فقط کد تحویل نمیدن؛
اونا سفر رو ثبت میکنن.
منابع:
Source 1
Source 2
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7 2❤🔥1👻1
Audio
پادکست مجموعه سری چرا هر برنامهنویسی به یک ژورنال کدنویسی نیاز داره؟ نه، حافظهتون کافی نیس
تولید شده توسط notebooklm
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
تولید شده توسط notebooklm
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3❤1👻1
داشتم تو یه پروژه های گیت هاب میگشتم رسیدم به این شاهکار :)
تاحالا شده برای تبدیل فایل هاتون به فرمت های مختلف مجبور شده باشید برید سراغ نرم افزار های شخص ثالث یا کرکی یا سایت های آنلاینی که نگران حریم شخصیتون باشید و شامل محدودیت و تبلیغ باشند؟
پروژه VERT میاد با استفاده از وب اسمبلی و روی لوکال دستگاهتون تبدیل ها رو انجام میده.
میتونید نسخه ی شخصی خودتون رو بیارید بالا یا از https://vert.sh/ استفاده کنید.
🌐 وبسایت:
https://vert.sh/
👩💻 گیت هاب:
https://github.com/VERT-sh/VERT
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
تاحالا شده برای تبدیل فایل هاتون به فرمت های مختلف مجبور شده باشید برید سراغ نرم افزار های شخص ثالث یا کرکی یا سایت های آنلاینی که نگران حریم شخصیتون باشید و شامل محدودیت و تبلیغ باشند؟
پروژه VERT میاد با استفاده از وب اسمبلی و روی لوکال دستگاهتون تبدیل ها رو انجام میده.
میتونید نسخه ی شخصی خودتون رو بیارید بالا یا از https://vert.sh/ استفاده کنید.
https://vert.sh/
https://github.com/VERT-sh/VERT
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤8👻2 2 1
هوش مصنوعی تو کدنویسی: تجربه بیتعارف!
مدتها بود دلم میخواست در مورد تجربههام و ابزارهایی که تو زمینه هوش مصنوعی برای کدنویسی استفاده میکنم، بنویسم. ولی خب، تو یه منطقه امن بودم و نیاز داشتم کلی چیزهای مختلف رو تو بازههای زمانی متفاوت تست کنم تا بتونم یه قضاوت درست و حسابی داشته باشم.
این روزها که بازار هوش مصنوعی داغه، شرکتهای مختلف با انتشار بنچمارکهای جورواجور، حسابی تو بوق و کرنا هستن و میخوان بهت ثابت کنن که با محصول اونا، بهرهوری تو کدنویسی میره بالا و دیگه نیازی نیست خودت کد بزنی. بذارین همین الان، بیمقدمه، ته قضیه رو براتون رو کنم: تو کوتاهمدت آره، بهرهوری میره بالا، ولی تو بلندمدت نه، و حتی ممکنه بهرهوریت بیاد پایین. حالا چطوری؟
"بیخیال، بذار خودم فکر کنم!"
جز اون وقتا که یه کار واقعاً روتین دارم – کارهایی که سر و تهشون رو دقیق میدونم، میدونم چی باید چطوری نوشته بشه، و انقدر مطمئنم که اطلاعاتی که ابزار تکمیل خودکار هوش مصنوعی داره دقیقه که با زدن چندتا `Tab`، نیازی به نوشتن اون کدهای تکراری و تغییرات مشخص نیست – تو بقیه وقتا، بجز اون تکمیل خودکار پیشفرض و کلاسیک IDEام، بقیه ابزارهای هوش مصنوعی خاموش هستن. میپرسی چرا؟
خب، وقتی دارم یه مسئلهای رو حل میکنم یا حجم کدی که قراره تغییر کنه زیاده، مغزت نمیتونه همزمان هم روی این تمرکز کنه که الان باید چیکار کنه و هم تحلیل کنه چیزی که هوش مصنوعی داره پیشنهاد میده درسته یا نه. بارها ممکنه پیش بیاد یه کدی هوش مصنوعی بهت پیشنهاد بده، تو دکمه `Tab` رو بزنی و کد هم به ظاهر درست باشه، ولی پسر! همونجایی که باید کار کنه، کار نمیکنه و باید تازه بری دیباگ کنی ببینی هوش مصنوعی چی زده. این کار چندین برابر ازت وقت و انرژی میگیره تا اینکه از اول با درک کامل خودت، درستش رو میزدی. پس اینجا به جای افزایش بهرهوری، ممکنه با کاهشش روبرو بشی.
"ساختار رو به هم نریز!"
خیلی باحاله که یه چتبات کنار دستت باشه و فایلهات رو بهش بدی و براش با چند خط متن نوشتن به زبون خودمونی، خودش بره تغییرات رو انجام بده و تنها کاری که تو باید بکنی اینه که بزنی رو دکمه تایید؟ آره، باحاله و کمککنندهست، ولی فقط وقتی کمککنندهست که دقیقاً خودت از ساختار خبر داشته باشی، بدونی چی رو به چه روشی باید حل کرد و قدم به قدم بتونی برای مدلهای زبانی توضیح بدی تا لازم نباشه با فرضیات خودش و تغییر ساختار، مسئلهای رو حل کنه و ساختارت رو به هم بریزه. وگرنه مجبور میشی تمام تغییرات رو برگردونی و از اول انجام بدی.
چه تجربهای که با ابزاری مثل Cursor داشتم و چه تجربه بقیه، اگه خودت ندونی دقیقاً چی میخوای و انتظار معجزه از هوش مصنوعی داشته باشی یا بخوای تغییرات زیادی تو پروژهت ایجاد کنه، احتمال تولید کد اشتباه یا حتی تغییر ساختار فعلی به سلیقه خودش افزایش پیدا میکنه.
حرف آخر و یه دید کلی
به نظر من، هوش مصنوعی تو کدنویسی یه ابزار خیلی قویه، ولی مثل هر ابزار دیگهای، اینکه چقدر ازش بهرهوری ببری، به مهارت و درک خودت بستگی داره. برای کارهای روتین و تکراری، هوش مصنوعی میتونه یه موتور جت باشه! اما برای حل مسائل پیچیده، طراحی معماری یا ایجاد تغییرات ساختاری بزرگ، تکیه کردن به هوش مصنوعی بدون درک عمیق، میتونه منجر به تولید کدهای مشکلدار، نیاز به دیباگینگ طولانیتر و در نهایت کم شدن بهرهوریت بشه.
نکته اصلی برای استفاده موثر از هوش مصنوعی تو کدنویسی این نیست که برنامهنویس رو کلاً بندازه کنار، بلکه اینه که تواناییهاش رو چند برابر کنه. یعنی برنامهنویس باید همچنان مرکز تصمیمگیری و درک عمیق از پروژه باشه و از هوش مصنوعی به عنوان یه دستیار باهوش برای سرعت بخشیدن به کارهای تکراری و پیشنهاد راهحلها استفاده کنه. تهش، مسئولیت کیفیت و درستی کد، بازم پای خود برنامهنویسه.
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
مدتها بود دلم میخواست در مورد تجربههام و ابزارهایی که تو زمینه هوش مصنوعی برای کدنویسی استفاده میکنم، بنویسم. ولی خب، تو یه منطقه امن بودم و نیاز داشتم کلی چیزهای مختلف رو تو بازههای زمانی متفاوت تست کنم تا بتونم یه قضاوت درست و حسابی داشته باشم.
این روزها که بازار هوش مصنوعی داغه، شرکتهای مختلف با انتشار بنچمارکهای جورواجور، حسابی تو بوق و کرنا هستن و میخوان بهت ثابت کنن که با محصول اونا، بهرهوری تو کدنویسی میره بالا و دیگه نیازی نیست خودت کد بزنی. بذارین همین الان، بیمقدمه، ته قضیه رو براتون رو کنم: تو کوتاهمدت آره، بهرهوری میره بالا، ولی تو بلندمدت نه، و حتی ممکنه بهرهوریت بیاد پایین. حالا چطوری؟
"بیخیال، بذار خودم فکر کنم!"
جز اون وقتا که یه کار واقعاً روتین دارم – کارهایی که سر و تهشون رو دقیق میدونم، میدونم چی باید چطوری نوشته بشه، و انقدر مطمئنم که اطلاعاتی که ابزار تکمیل خودکار هوش مصنوعی داره دقیقه که با زدن چندتا `Tab`، نیازی به نوشتن اون کدهای تکراری و تغییرات مشخص نیست – تو بقیه وقتا، بجز اون تکمیل خودکار پیشفرض و کلاسیک IDEام، بقیه ابزارهای هوش مصنوعی خاموش هستن. میپرسی چرا؟
خب، وقتی دارم یه مسئلهای رو حل میکنم یا حجم کدی که قراره تغییر کنه زیاده، مغزت نمیتونه همزمان هم روی این تمرکز کنه که الان باید چیکار کنه و هم تحلیل کنه چیزی که هوش مصنوعی داره پیشنهاد میده درسته یا نه. بارها ممکنه پیش بیاد یه کدی هوش مصنوعی بهت پیشنهاد بده، تو دکمه `Tab` رو بزنی و کد هم به ظاهر درست باشه، ولی پسر! همونجایی که باید کار کنه، کار نمیکنه و باید تازه بری دیباگ کنی ببینی هوش مصنوعی چی زده. این کار چندین برابر ازت وقت و انرژی میگیره تا اینکه از اول با درک کامل خودت، درستش رو میزدی. پس اینجا به جای افزایش بهرهوری، ممکنه با کاهشش روبرو بشی.
"ساختار رو به هم نریز!"
خیلی باحاله که یه چتبات کنار دستت باشه و فایلهات رو بهش بدی و براش با چند خط متن نوشتن به زبون خودمونی، خودش بره تغییرات رو انجام بده و تنها کاری که تو باید بکنی اینه که بزنی رو دکمه تایید؟ آره، باحاله و کمککنندهست، ولی فقط وقتی کمککنندهست که دقیقاً خودت از ساختار خبر داشته باشی، بدونی چی رو به چه روشی باید حل کرد و قدم به قدم بتونی برای مدلهای زبانی توضیح بدی تا لازم نباشه با فرضیات خودش و تغییر ساختار، مسئلهای رو حل کنه و ساختارت رو به هم بریزه. وگرنه مجبور میشی تمام تغییرات رو برگردونی و از اول انجام بدی.
چه تجربهای که با ابزاری مثل Cursor داشتم و چه تجربه بقیه، اگه خودت ندونی دقیقاً چی میخوای و انتظار معجزه از هوش مصنوعی داشته باشی یا بخوای تغییرات زیادی تو پروژهت ایجاد کنه، احتمال تولید کد اشتباه یا حتی تغییر ساختار فعلی به سلیقه خودش افزایش پیدا میکنه.
حرف آخر و یه دید کلی
به نظر من، هوش مصنوعی تو کدنویسی یه ابزار خیلی قویه، ولی مثل هر ابزار دیگهای، اینکه چقدر ازش بهرهوری ببری، به مهارت و درک خودت بستگی داره. برای کارهای روتین و تکراری، هوش مصنوعی میتونه یه موتور جت باشه! اما برای حل مسائل پیچیده، طراحی معماری یا ایجاد تغییرات ساختاری بزرگ، تکیه کردن به هوش مصنوعی بدون درک عمیق، میتونه منجر به تولید کدهای مشکلدار، نیاز به دیباگینگ طولانیتر و در نهایت کم شدن بهرهوریت بشه.
نکته اصلی برای استفاده موثر از هوش مصنوعی تو کدنویسی این نیست که برنامهنویس رو کلاً بندازه کنار، بلکه اینه که تواناییهاش رو چند برابر کنه. یعنی برنامهنویس باید همچنان مرکز تصمیمگیری و درک عمیق از پروژه باشه و از هوش مصنوعی به عنوان یه دستیار باهوش برای سرعت بخشیدن به کارهای تکراری و پیشنهاد راهحلها استفاده کنه. تهش، مسئولیت کیفیت و درستی کد، بازم پای خود برنامهنویسه.
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍12❤1⚡1👌1👻1
🖤👑 🖤
درود به همگی
امیدوارم هرجایی هستید در سلامتی باشید و خیلی مراقب خودتون باشید.
با توجه به شرایط فعلی و وضعیت پیش اومده، شهادت هم وطنانمون با این حملات، فعلا تا مساعد تر شدن شرایط کشور و حال روحی خودم مطلبی منتشر نمیشه، مگر چیزی که بتونه تو این شرایط کمک کننده باشه.
🕊 به امید دنیایی بدون جنگ و در صلح
درود به همگی
امیدوارم هرجایی هستید در سلامتی باشید و خیلی مراقب خودتون باشید.
با توجه به شرایط فعلی و وضعیت پیش اومده، شهادت هم وطنانمون با این حملات، فعلا تا مساعد تر شدن شرایط کشور و حال روحی خودم مطلبی منتشر نمیشه، مگر چیزی که بتونه تو این شرایط کمک کننده باشه.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👎2👍1🕊1👻1
یکی از مشکلاتی که این چند وقته برای اتصال به اینترنت داشتم این بود که مثلا بعضی وقتا من قطع بودم بقیه وصل بودن و بعضی وقتا من وصل بودم ولی بقیه قطع بودن و دنبال راهی بودم که بشه کانفیگ هامون رو باهم به اشتراک بگذاریم. به دلیل مسائلی مثل حریم شخصی هم ترجیحم استفاده از سرویس های آنلاین موجود نبود.
برای همین پروژه ی subgen رو نوشتم. فقط کافیه رو یک سرور ایران اجراش کنید و بهتون یه نسخه ی cli برای مدیریت ادمین ها میده و در نهایت یه پنل ادمین تحت وب برای مدیریت کانفیگ هاتون. در آخر بهتون یه لینک ساب میده که uuid اشم میتونید تغییر بدید و در اختیار دوستاتون بذارید.
توی README مراحل اجراش نوشته شده ولی اگه بازم مشکلی بود توی کامنت ها یا ایشوی گیت هاب بپرسید.
👩💻 https://github.com/mdpe-ir/subgen
—-
💡 مثل همیشه کنجکاو بمونید :)
🕊 به امید دنیایی بدون جنگ و در صلح
🆔 @MdDaily
برای همین پروژه ی subgen رو نوشتم. فقط کافیه رو یک سرور ایران اجراش کنید و بهتون یه نسخه ی cli برای مدیریت ادمین ها میده و در نهایت یه پنل ادمین تحت وب برای مدیریت کانفیگ هاتون. در آخر بهتون یه لینک ساب میده که uuid اشم میتونید تغییر بدید و در اختیار دوستاتون بذارید.
توی README مراحل اجراش نوشته شده ولی اگه بازم مشکلی بود توی کامنت ها یا ایشوی گیت هاب بپرسید.
پیشنهاد میشه به دلیل وضعیت بد سرور های ایران در ارتباط با خارج روی سیستم خودتون بیلد اش رو بگیرید و به همراه فایل های assets زیپ کنید و آپلود کنید توی سرورتون
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
🕊8❤4🔥1👻1
واقعا خلاقیت :)
قضیه از این قراره که این دوستمون داشته یه مستند از Supabase تماشا میکرده که به یه چیز عجیب و غریب برمیخوره: یه کافیشاپ ترمینالی به اسم @terminaldotshop که کلاً باید با SSH توش میچرخیدی.
همین موضوع عجیب و باحال، یه ایدهای رو تو سرش میندازه:
«چی میشه اگه یه نمونه کار (پورتفولیو) برای دولوپرها درست کنم که طرف بتونه کامل از تو ترمینال بازش کنه؟»
اینجوری میشه
نه خبری از مرورگره، نه CSS. فقط و فقط ترمینال!
با چه ابزارهایی این کار رو کرده؟
برای این که این ایدهاش رو عملی کنه، چندتا از ابزارهای مورد علاقهاش رو با هم ترکیب کرده:
🧠 React + Ink
اومده رابط کاربری (UI) ترمینال رو با Ink درآورده. Ink یه کتابخونه شبیه React هست که برای ساختن ابزارهای خط فرمان (CLI) تعاملی استفاده میشه. اینطوری تونسته ساختار رابط کاربریش رو با کامپوننتهای آشنای React بچینه.
فکرش رو بکنید،
🖥 سرور SSH با Golang
برای اینکه بشه با دستور
🧪 چالشهایی که داشته
* رندر کردن UI داینامیک توی ترمینال: میگه لایه انتزاعی (abstraction) که Ink میده خیلی کمک کرده، ولی در کل طراحی تجربه کاربری (UX) برای CLI یه دنیای دیگهست و ذهنیت متفاوتی میخواد.
* تجربه کاربری SSH: برخلاف سایتها، توی SSH خبری از هاور (hover)، اسکرول راحت یا انیمیشنهای نرم و روون نیست. باید کاری میکرده که حس کار با خود خط فرمان رو بده.
اصلاً چرا یه پورتفولیو ترمینالی؟
به نظرش راه باحالی بوده تا React، Golang و مفاهیم شبکه سطح پایین (low-level networking) رو با هم قاطی کنه و در کل، برای دل خودش یه پروژه فان ساخته باشه.
شبکه اجتماعی Abde Laziz:
✖️ https://x.com/gugocharade
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
قضیه از این قراره که این دوستمون داشته یه مستند از Supabase تماشا میکرده که به یه چیز عجیب و غریب برمیخوره: یه کافیشاپ ترمینالی به اسم @terminaldotshop که کلاً باید با SSH توش میچرخیدی.
همین موضوع عجیب و باحال، یه ایدهای رو تو سرش میندازه:
«چی میشه اگه یه نمونه کار (پورتفولیو) برای دولوپرها درست کنم که طرف بتونه کامل از تو ترمینال بازش کنه؟»
اینجوری میشه
terminalfolio.xyz رو میسازه. یعنی شما میتونید با این دستور بهش وصل بشید:ssh terminalfolio.xyz
نه خبری از مرورگره، نه CSS. فقط و فقط ترمینال!
با چه ابزارهایی این کار رو کرده؟
برای این که این ایدهاش رو عملی کنه، چندتا از ابزارهای مورد علاقهاش رو با هم ترکیب کرده:
🧠 React + Ink
اومده رابط کاربری (UI) ترمینال رو با Ink درآورده. Ink یه کتابخونه شبیه React هست که برای ساختن ابزارهای خط فرمان (CLI) تعاملی استفاده میشه. اینطوری تونسته ساختار رابط کاربریش رو با کامپوننتهای آشنای React بچینه.
فکرش رو بکنید،
useState() رو با Box و Text و حتی منطق مسیریابی (routing) ترکیب کرده، اونم همهاش توی ترمینال!🖥 سرور SSH با Golang
برای اینکه بشه با دستور
ssh terminalfolio.xyz به اپلیکیشن دسترسی داشت، یه سرور SSH سفارشی با Go نوشته. کار این سرور اینه که اتصال رو مدیریت کنه، اپلیکیشن CLI رو اجرا کنه و به کاربرها یه تجربهی روون و باحال بده، انگار که دارن با یه اپلیکیشن ترمینالی واقعی کار میکنن.🧪 چالشهایی که داشته
* رندر کردن UI داینامیک توی ترمینال: میگه لایه انتزاعی (abstraction) که Ink میده خیلی کمک کرده، ولی در کل طراحی تجربه کاربری (UX) برای CLI یه دنیای دیگهست و ذهنیت متفاوتی میخواد.
* تجربه کاربری SSH: برخلاف سایتها، توی SSH خبری از هاور (hover)، اسکرول راحت یا انیمیشنهای نرم و روون نیست. باید کاری میکرده که حس کار با خود خط فرمان رو بده.
اصلاً چرا یه پورتفولیو ترمینالی؟
به نظرش راه باحالی بوده تا React، Golang و مفاهیم شبکه سطح پایین (low-level networking) رو با هم قاطی کنه و در کل، برای دل خودش یه پروژه فان ساخته باشه.
شبکه اجتماعی Abde Laziz:
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤1👻1
Md Daily
قبل تر ها توی کانال موضوعات مختلفیو به صورت کرش کورس میذاشتم که لیستشون رو از طریق این پیام میتونید ببیند :) یکی از بچه ها پیشنهاد کرد دوباره کرش کورس ها رو داشته باشیم. موضوعات پیشنهادی خودتون رو توی کامنت بهم بگید.
از اونجایی که یکی از بچه ها پیشنهاد ansible رو داد و یکی دیگه هم گفت با go یه چیز فان پیاده کنیم.
گفتم خب بیایم این دوتا رو باهم ترکیب کنیم :)
میتونیم یه پروژه جاست فور فان نوشتنش شروع کنیم و ایده ی اولیم اینکه یه ابزار با گو باشه که وصله به یه ربات تلگرامی.
میشه از طریق ربات تنظمیش کرد که هر چند وقت یک بار و تو یه چه موضوعاتی بره وصل بشه به یه ای پی یه ai ای مطالبش رو تولید (تصویر و متن) کنه. بعد بیایم توی canva یه تمپلیت درست کنیم که مطالب تولید شده بره بشینه روش و در نهایت پست بشه به اینستاگرام. حتی امار پیچ اینستاگرام هم میتونیم از رباتمون بگیریم. در نهایت هم برای اماده سازیه سرور از ansible استفاده کنیم.
نظرتون چیه؟ یا اگه ایده ای دارید خوشحال میشم بشنوم.
به نظرتون به صورت پست تلگرامی منتشر کنم یا به صورت پست وبلاگ؟
- پست تلگرامی ری اکشن 🤝
- پست وبلاگ ری اکشن ✍
گفتم خب بیایم این دوتا رو باهم ترکیب کنیم :)
میتونیم یه پروژه جاست فور فان نوشتنش شروع کنیم و ایده ی اولیم اینکه یه ابزار با گو باشه که وصله به یه ربات تلگرامی.
میشه از طریق ربات تنظمیش کرد که هر چند وقت یک بار و تو یه چه موضوعاتی بره وصل بشه به یه ای پی یه ai ای مطالبش رو تولید (تصویر و متن) کنه. بعد بیایم توی canva یه تمپلیت درست کنیم که مطالب تولید شده بره بشینه روش و در نهایت پست بشه به اینستاگرام. حتی امار پیچ اینستاگرام هم میتونیم از رباتمون بگیریم. در نهایت هم برای اماده سازیه سرور از ansible استفاده کنیم.
نظرتون چیه؟ یا اگه ایده ای دارید خوشحال میشم بشنوم.
به نظرتون به صورت پست تلگرامی منتشر کنم یا به صورت پست وبلاگ؟
- پست تلگرامی ری اکشن 🤝
- پست وبلاگ ری اکشن ✍
✍13🤝13❤🔥1👍1👎1👻1
#ام_دی_کورس
ترکیب Go و Ansible: محتوای AI با طعم اینستاگرام! (قسمت اول)
لینک مقاله:
🔗 https://mddaily.ir/ترکیب-go-و-ansible-محتوای-ai-با-طعم-اینستاگرام-قس/
—-
💡 مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
ترکیب Go و Ansible: محتوای AI با طعم اینستاگرام! (قسمت اول)
خب به اولین قسمت از این مجموعه آموزشی خوش آمدید. طبق پستی که توی کانال منتشر کردم . قرار شد باهم با استفاده از Go یه تولید کننده ی محتوایی اینستاگرامی بسازیم که تنظیماتش از طریق یه ربات تلگرامی قابل انجام هست و در نهایت برای دیپلوی و تنظیمات سرور از Ansible استفاده کنیم. خبر خوب برای این آموزش اینکه شما نیازی نیست حتما یک سرور داشته باشید و قرار همه چیز رو به صورت لوکال پیاده کنیم از نصب یک سرور اوبونتو روی مجازی ساز گرفته تا بقیه ی کار ها. ولی خب در صورتی هم که سرور دارید میتونید روی سرور تست کنید 🙂
قبل از اینکه بریم سراغ ربات تلگرامی و کانفیگ سرور اول از همه بیاید باهم یه mvp از چیزی که میخوایم داشته باشید اماده کنیم. هدف چیه؟ پیاده سازی یک Core با گولنگ که بتونه در مرحله ی اول وص.....
لینک مقاله:
—-
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8😐1👻1