خرسِ برنامه نویس
5. Usability comes down to two key principles: common sense and research. At the start of a project, when data may be limited, designers must rely on experience and intuition to create simple, practical solutions. Overthinking should be avoided—do what makes…
6. Solving problems and creating user-friendly designs isn’t enough—stakeholder support is essential for progress. Even the most innovative solution will struggle if your team doesn’t understand or align with your vision.
Without clear buy-in, you risk repeating the same discussions, defending decisions that weren’t effectively communicated. Unconvinced stakeholders will continue to suggest alternatives, expanding the project scope with new features and requests. This slows down development and dilutes the user experience. Ultimately, lack of alignment can result in a compromised product—not because the design was flawed, but because it wasn’t clearly explained or supported.
حل مسئله و ساختن طراحیهایی کاربرپسند بهتنهایی کافی نیست—حمایت ذینفعان برای پیشرفت ضروری است. حتی نوآورانهترین راهحل هم اگر تیم نتواند دیدگاه تو را درک کند یا با آن همراه نباشد، به سختی پیش خواهد رفت.
بدون جلب حمایت شفاف، احتمال اینکه گفتگوهای تکراری پیش بیاید و مجبور شوی از تصمیمهایی که خوب منتقل نشدهاند دفاع کنی، زیاد است. ذینفعانی که قانع نشدهاند، مدام پیشنهادهای جایگزین میدهند و با ویژگیها و درخواستهای جدید، دامنه پروژه را گسترش میدهند. این روند توسعه را کند میکند و تجربه کاربری را از هدف اصلیاش دور میسازد.
در نهایت، نبود همراستایی میتواند به محصولی ناقص منتهی شود—نه به این دلیل که طراحی بد بوده، بلکه چون خوب توضیح داده نشده یا از آن حمایت کافی نشده است.
#BetterSoftwareEngineer
Without clear buy-in, you risk repeating the same discussions, defending decisions that weren’t effectively communicated. Unconvinced stakeholders will continue to suggest alternatives, expanding the project scope with new features and requests. This slows down development and dilutes the user experience. Ultimately, lack of alignment can result in a compromised product—not because the design was flawed, but because it wasn’t clearly explained or supported.
حل مسئله و ساختن طراحیهایی کاربرپسند بهتنهایی کافی نیست—حمایت ذینفعان برای پیشرفت ضروری است. حتی نوآورانهترین راهحل هم اگر تیم نتواند دیدگاه تو را درک کند یا با آن همراه نباشد، به سختی پیش خواهد رفت.
بدون جلب حمایت شفاف، احتمال اینکه گفتگوهای تکراری پیش بیاید و مجبور شوی از تصمیمهایی که خوب منتقل نشدهاند دفاع کنی، زیاد است. ذینفعانی که قانع نشدهاند، مدام پیشنهادهای جایگزین میدهند و با ویژگیها و درخواستهای جدید، دامنه پروژه را گسترش میدهند. این روند توسعه را کند میکند و تجربه کاربری را از هدف اصلیاش دور میسازد.
در نهایت، نبود همراستایی میتواند به محصولی ناقص منتهی شود—نه به این دلیل که طراحی بد بوده، بلکه چون خوب توضیح داده نشده یا از آن حمایت کافی نشده است.
#BetterSoftwareEngineer
خرسِ برنامه نویس
6. Solving problems and creating user-friendly designs isn’t enough—stakeholder support is essential for progress. Even the most innovative solution will struggle if your team doesn’t understand or align with your vision. Without clear buy-in, you risk repeating…
7. To effectively communicate your design decisions, you should be able to answer three key questions:
- What problem does it solve?
- How does it impact the user?
- Why is it better than the alternative?
Answering these questions isn’t just for documentation—it’s a way to clarify your own thinking. By doing so, you’ll be better prepared to defend your choices and address stakeholder concerns with confidence. These responses become the foundation for meaningful discussions around your design.
برای اینکه بتوانی تصمیمهای طراحیات را بهطور مؤثر منتقل کنی، باید بتوانی به سه سؤال کلیدی پاسخ بدهی:
- این طراحی چه مشکلی را حل میکند؟
- چه تأثیری بر کاربر دارد؟
- چرا از گزینههای دیگر بهتر است؟
پاسخدادن به این سؤالها فقط برای مستندسازی نیست—بلکه راهی است برای شفافسازی افکارت. با این کار، آمادگی بیشتری برای دفاع از انتخابهایت خواهی داشت و میتوانی با اطمینان به نگرانیهای ذینفعان پاسخ بدهی. این پاسخها پایهای برای گفتوگوهای معنادار درباره طراحی تو خواهند بود.
#BetterSoftwareEngineer
- What problem does it solve?
- How does it impact the user?
- Why is it better than the alternative?
Answering these questions isn’t just for documentation—it’s a way to clarify your own thinking. By doing so, you’ll be better prepared to defend your choices and address stakeholder concerns with confidence. These responses become the foundation for meaningful discussions around your design.
برای اینکه بتوانی تصمیمهای طراحیات را بهطور مؤثر منتقل کنی، باید بتوانی به سه سؤال کلیدی پاسخ بدهی:
- این طراحی چه مشکلی را حل میکند؟
- چه تأثیری بر کاربر دارد؟
- چرا از گزینههای دیگر بهتر است؟
پاسخدادن به این سؤالها فقط برای مستندسازی نیست—بلکه راهی است برای شفافسازی افکارت. با این کار، آمادگی بیشتری برای دفاع از انتخابهایت خواهی داشت و میتوانی با اطمینان به نگرانیهای ذینفعان پاسخ بدهی. این پاسخها پایهای برای گفتوگوهای معنادار درباره طراحی تو خواهند بود.
#BetterSoftwareEngineer
خرسِ برنامه نویس
7. To effectively communicate your design decisions, you should be able to answer three key questions: - What problem does it solve? - How does it impact the user? - Why is it better than the alternative? Answering these questions isn’t just for documentation—it’s…
7/1.
این وسط یه نکته ریز!
بیان کردن روش حل مسئله از تلاش برای پیدا کردن راه حل پرفکت مهم تره!
این وسط یه نکته ریز!
بیان کردن روش حل مسئله از تلاش برای پیدا کردن راه حل پرفکت مهم تره!
درک ریاضیات و مدل کردن مسائل به زبان ریاضی دیروز کمکم کرد، مسئله یکی از دوستان رو درمورد نرم افزارش که دوسال هست باهاش درگیره رو حل کنیم. ( مسئله بیشتر فلسفی بود و حول محور تعریف پروژه میگشت )
این شد به این سوال فکر کنم که آیا یک کورس خیلی کوتاه (تماما متنی!) درمورد درک ریاضیاتی از پدیده ها در مدل کردن نرم افزار بسازم؟
پ.ن: من تحصیلاتم ریاضیات نیست صرفا مطالعه شخصی بوده
این شد به این سوال فکر کنم که آیا یک کورس خیلی کوتاه (تماما متنی!) درمورد درک ریاضیاتی از پدیده ها در مدل کردن نرم افزار بسازم؟
پ.ن: من تحصیلاتم ریاضیات نیست صرفا مطالعه شخصی بوده
خرسِ برنامه نویس
درک ریاضیات و مدل کردن مسائل به زبان ریاضی دیروز کمکم کرد، مسئله یکی از دوستان رو درمورد نرم افزارش که دوسال هست باهاش درگیره رو حل کنیم. ( مسئله بیشتر فلسفی بود و حول محور تعریف پروژه میگشت ) این شد به این سوال فکر کنم که آیا یک کورس خیلی کوتاه (تماما متنی!)…
اشاره کنم کورس رایگانه، اگر استقبال هم خوب باشه شاید بعدش یه ورکشاپ کوچیک ازش دربیاریم (اونم رایگان)
یه سوال کوتاه و مهم، فرض کنیم که شما یک Data Aggregator دارید، که از اپلیکیشن های دیگه دیتا میگیره.
وقتی اوردر دیتا از چند میلیون بیشتر میشه و تو هر API کال فقط 100 تا رکورد برمیگردونه، شرایط رو چطور هندل میکنین؟
وقتی اوردر دیتا از چند میلیون بیشتر میشه و تو هر API کال فقط 100 تا رکورد برمیگردونه، شرایط رو چطور هندل میکنین؟
- منظورم از شرایط (گرفتن دیتا و نورمالایز کردنش و نگهداری)
- سرعت خیلی مهمه
- فرض کنین بیشتر از 1,000 تا کال در ثانیه هم نمیتونید بزنید به provider.
- سرعت خیلی مهمه
- فرض کنین بیشتر از 1,000 تا کال در ثانیه هم نمیتونید بزنید به provider.
Audio
صوت جلسه 22
بعد از تعطیلات عید، یک جلسه جذاب دیگه با همراهی بهنیا عزیز
بعد از تعطیلات عید، یک جلسه جذاب دیگه با همراهی بهنیا عزیز
Forwarded from TondTech (مسعود بیگی)
به نظرم واقعا Vibe Coding عالیه!
اما نه برای ساخت یک محصول برای پروداکشن، بلکه برای تست و تمرین به نظرم خیلی کمک کننده ست.
فرض کنید نشستید کنار یک نوجوان باهوش که چند تا کتاب خونده و کد بیس دیده، ولی هنوز فراموشکار و کم دقته، بهش تسک میدین و نتیجه هر تسک رو بررسی میکنید و مدام تلاشتون اینه که روی یک خط نگهش دارین.
تجربه این چند وقت تست و تمرین من اینو نشون داد که خیلی از نکات که موقع کد زدن خودمون ممکنه فراموش کنیم رو اینجا یادمون میاد و منطقا ارزشمنده این یادآوری و تلاش برای حل مشکلات.
اما نه برای ساخت یک محصول برای پروداکشن، بلکه برای تست و تمرین به نظرم خیلی کمک کننده ست.
فرض کنید نشستید کنار یک نوجوان باهوش که چند تا کتاب خونده و کد بیس دیده، ولی هنوز فراموشکار و کم دقته، بهش تسک میدین و نتیجه هر تسک رو بررسی میکنید و مدام تلاشتون اینه که روی یک خط نگهش دارین.
تجربه این چند وقت تست و تمرین من اینو نشون داد که خیلی از نکات که موقع کد زدن خودمون ممکنه فراموش کنیم رو اینجا یادمون میاد و منطقا ارزشمنده این یادآوری و تلاش برای حل مشکلات.
Forwarded from .NET Internals
هفت عادت آدم های بسیار ناکارآمد!
عادت ۱: واکنش نشان بده React
همه مشکلاتت را گردن رئیس بد، والدین، ژنها، همسر، شریک، اقتصاد یا دولت بینداز. هیچ مسئولیتی قبول نکن. اگر گرسنهای، بخور؛ اگر عصبانی شدی، داد بزن؛ اگر کسی بیادبی کرد، جوابش را بده. فقط واکنش نشان بده.
عادت ۲: بدون هدف شروع کن Begin with Squad in Mind
برنامهریزی نکن، هدف نگذار و نگران پیامدهای کارت نباش. فقط با جریان زندگی حرکت کن و خوش بگذران؛ فردا ممکن است نباشد.
عادت ۳: کارهای مهم را به آخر بینداز Put First Things Last
همیشه کارهای فوری مثل پاسخ دادن به پیامها و نوتیفیکیشنها را اول انجام بده. کارهای مهم مثل تقویت روابط یا ورزش را بگذار برای بعد. روزت را با دیدن ویدیوهای یوتیوب پر کن.
عادت ۴: طرز فکر برد-باخت داشته باش Think Win-Lose
زندگی را یک رقابت بیرحمانه ببین. اگر دیگران برنده شوند، تو بازندهای. پس قبل از اینکه دیگران تو را شکست دهند، تو آنها را شکست بده. اگر هم باختی، مطمئن شو که طرف مقابل را با خودت پایین بکشی.
عادت ۵: اول حرف بزن، بعد وانمود کن گوش میدهی Seek First to Talk, Then Pretend to Listen
زیاد حرف بزن. اول نظرات خودت را به همه بگو. اگر مجبور شدی، فقط وانمود کن گوش میدهی. در ذهن خودت درباره ناهار فکر کن. یا اگر واقعاً خواستی نظر کسی را بدانی، نظرت را به جای او بهش بده!
عادت ۶: جزیرهای برای خودت باش Be an Island
دیگران متفاوتاند و عجیب. چرا وقت تلف کنی که با آنها کنار بیایی؟ همکاری وقتگیر است. خودت همیشه بهترین ایدهها را داری، پس تنهایی کار کن و برای خودت یک جزیرهی خاص باش.
عادت ۷: خودت را فرسوده کن Burn Yourself Out
آنقدر مشغول باش که وقت استراحت کردن یا یادگیری چیزهای جدید نداشته باشی. ورزش را فراموش کن. سراغ کتاب خوب، طبیعت، هنر یا موسیقی نرو. فقط بسوز و بسوز!
نظرتون چیه؟ باید اعتراف کنم عادت 7 رو دارم ولی دارم روش کار میکنم که ترکش کنم
از کتاب:
The 7 Habits Of Highly Effective People (Stephen R. Covey)
عادت ۱: واکنش نشان بده React
همه مشکلاتت را گردن رئیس بد، والدین، ژنها، همسر، شریک، اقتصاد یا دولت بینداز. هیچ مسئولیتی قبول نکن. اگر گرسنهای، بخور؛ اگر عصبانی شدی، داد بزن؛ اگر کسی بیادبی کرد، جوابش را بده. فقط واکنش نشان بده.
عادت ۲: بدون هدف شروع کن Begin with Squad in Mind
برنامهریزی نکن، هدف نگذار و نگران پیامدهای کارت نباش. فقط با جریان زندگی حرکت کن و خوش بگذران؛ فردا ممکن است نباشد.
عادت ۳: کارهای مهم را به آخر بینداز Put First Things Last
همیشه کارهای فوری مثل پاسخ دادن به پیامها و نوتیفیکیشنها را اول انجام بده. کارهای مهم مثل تقویت روابط یا ورزش را بگذار برای بعد. روزت را با دیدن ویدیوهای یوتیوب پر کن.
عادت ۴: طرز فکر برد-باخت داشته باش Think Win-Lose
زندگی را یک رقابت بیرحمانه ببین. اگر دیگران برنده شوند، تو بازندهای. پس قبل از اینکه دیگران تو را شکست دهند، تو آنها را شکست بده. اگر هم باختی، مطمئن شو که طرف مقابل را با خودت پایین بکشی.
عادت ۵: اول حرف بزن، بعد وانمود کن گوش میدهی Seek First to Talk, Then Pretend to Listen
زیاد حرف بزن. اول نظرات خودت را به همه بگو. اگر مجبور شدی، فقط وانمود کن گوش میدهی. در ذهن خودت درباره ناهار فکر کن. یا اگر واقعاً خواستی نظر کسی را بدانی، نظرت را به جای او بهش بده!
عادت ۶: جزیرهای برای خودت باش Be an Island
دیگران متفاوتاند و عجیب. چرا وقت تلف کنی که با آنها کنار بیایی؟ همکاری وقتگیر است. خودت همیشه بهترین ایدهها را داری، پس تنهایی کار کن و برای خودت یک جزیرهی خاص باش.
عادت ۷: خودت را فرسوده کن Burn Yourself Out
آنقدر مشغول باش که وقت استراحت کردن یا یادگیری چیزهای جدید نداشته باشی. ورزش را فراموش کن. سراغ کتاب خوب، طبیعت، هنر یا موسیقی نرو. فقط بسوز و بسوز!
نظرتون چیه؟ باید اعتراف کنم عادت 7 رو دارم ولی دارم روش کار میکنم که ترکش کنم
از کتاب:
The 7 Habits Of Highly Effective People (Stephen R. Covey)
Forwarded from با متمم | هایلایت | محمدرضا شعبانعلی
مشاهدات
اینها صرفاً مشاهدات منه و ممکنه با من موافق نباشید. اما برای من فعلاً در حد "فکت" قطعی محسوب میشه:
فکت اول
اگر کسی اصول و مبانی یک کار رو عمیق و دقیق بلد نباشه، با وجود هوش مصنوعی هم هنوز اون کار رو بلد نیست.
فکت دوم
بسیاری از کسانی که اصول و مبانی یک کار رو بلد هستن، با ترکیب دانش و مهارت خودشون و هوش مصنوعی، اون کار رو ضعیفتر و مزخرفتر از قبل انجام میدن (هر چند در نگاه اول به چشم نیاد).
فکت سوم
گروه کوچکی از کسانی که اصول و مبانی یک کار رو بلدن، با بهکارگیری هوش مصنوعی، اون کار رو بسیار بهتر از قبل انجام میدن. اونقدر خوب که ممکنه خودشون قبل از بهکارگیری ابزار، باور نمیکردن چنین خروجیای داشته باشن.
برداشت من
تفاوت کسانی که در فکت دو و سه بهشون اشاره کردم، بیش از اون که تابع آشنایی با ابزارهای هوش مصنوعی باشه، به شناختشون از ماهیت اون کار (task) برمیگرده.
توضیح یک
اینجا منظورم از هوش مصنوعی، صرفاً شاخهٔ هوش مصنوعی مولد هست. در بقیهی شاخههای هوش مصنوعی، درستی این ادعاها رو باید جداگانه بررسی کرد.
توضیح دو
واضحه که اصول و مبانی خیلی از کارها رو (نه همهٔ کارها) میشه با همون هوش مصنوعی مولد یاد گرفت. اما خود این یادگیری مستلزم دهها، گاه صدها و در برخی موارد هزاران ساعت تلاش هست.
منظور من کسانی هستن که میخوان از روی این مرحله بپرن و مستقیماً خروجی بگیرن.
#هوش_مصنوعی
اینها صرفاً مشاهدات منه و ممکنه با من موافق نباشید. اما برای من فعلاً در حد "فکت" قطعی محسوب میشه:
فکت اول
اگر کسی اصول و مبانی یک کار رو عمیق و دقیق بلد نباشه، با وجود هوش مصنوعی هم هنوز اون کار رو بلد نیست.
فکت دوم
بسیاری از کسانی که اصول و مبانی یک کار رو بلد هستن، با ترکیب دانش و مهارت خودشون و هوش مصنوعی، اون کار رو ضعیفتر و مزخرفتر از قبل انجام میدن (هر چند در نگاه اول به چشم نیاد).
فکت سوم
گروه کوچکی از کسانی که اصول و مبانی یک کار رو بلدن، با بهکارگیری هوش مصنوعی، اون کار رو بسیار بهتر از قبل انجام میدن. اونقدر خوب که ممکنه خودشون قبل از بهکارگیری ابزار، باور نمیکردن چنین خروجیای داشته باشن.
برداشت من
تفاوت کسانی که در فکت دو و سه بهشون اشاره کردم، بیش از اون که تابع آشنایی با ابزارهای هوش مصنوعی باشه، به شناختشون از ماهیت اون کار (task) برمیگرده.
توضیح یک
اینجا منظورم از هوش مصنوعی، صرفاً شاخهٔ هوش مصنوعی مولد هست. در بقیهی شاخههای هوش مصنوعی، درستی این ادعاها رو باید جداگانه بررسی کرد.
توضیح دو
واضحه که اصول و مبانی خیلی از کارها رو (نه همهٔ کارها) میشه با همون هوش مصنوعی مولد یاد گرفت. اما خود این یادگیری مستلزم دهها، گاه صدها و در برخی موارد هزاران ساعت تلاش هست.
منظور من کسانی هستن که میخوان از روی این مرحله بپرن و مستقیماً خروجی بگیرن.
#هوش_مصنوعی
Audio
صوت جلسه 1
مواردی که خارج از کتاب بهشون اشاره شد در جلسه.
- اهمیت دقت هر چه بیشتر به کلمات
- بررسی کلمات Learning و Systems thinking و thinking
مواردی که خارج از کتاب بهشون اشاره شد در جلسه.
- اهمیت دقت هر چه بیشتر به کلمات
- بررسی کلمات Learning و Systems thinking و thinking