🧩 تفاوت justify-content و align-items (یکبار برای همیشه)
واقعیتش اینه که اکثر بچهها این دو تا رو اینجوری حفظ میکنن: «justify افقیه، align عمودی». این بزرگترین اشتباهه! چون به محض اینکه جهت فلکس باکس (flex-direction) عوض بشه، ذهنیتت میریزه بهم.
نکته کلیدی اینجاست: محورها. فلکسباکس دو تا محور داره. تمام!
1️⃣ محور اصلی (Main Axis) 🛣
تصور کن داری تو یه جاده رانندگی میکنی. جهت حرکتت کجاست؟
اگه flex-direction: row باشه (پیشفرض): جاده از چپ به راسته.
اگه flex-direction: column باشه: جاده از بالا به پایینه.
🔸 دستور justify-content مسئولِ توزیعِ آیتمها توی "طولِ جاده" (محور اصلی) هست.
یعنی چی؟ یعنی بهشون میگه: «آقا تو این مسیر، چجوری وایسید؟»
بچسبید اول جاده؟ (flex-start)
برید وسط جاده؟ (center)
بینتون فاصله بیفته؟ (space-between)
2️⃣ محور فرعی (Cross Axis) 🚦
حالا تصور کن وایسادی وسط همون جاده. سمت چپ و راستت (یا بالا و پایینت بسته به جهت جاده) میشه محور فرعی. یعنی جهتی که جاده رو قطع میکنه.
🔸 دستور align-items مسئولِ چیدمانِ آیتمها توی "عرضِ جاده" (محور فرعی) هست.
یعنی چی؟ یعنی بهشون میگه: «نسبت به لبههای کناری جاده کجایید؟»
وسطِ عرض جاده؟ (center)
کش بیاید تا کل عرض جاده رو بگیرید؟ (stretch)
💣چرا قاطی میکنیم؟
مشکل وقتی پیش میاد که flex-direction رو میکنیم column. اینجا جهت جاده (محور اصلی) میشه عمودی.
پس:
حالا justify-content المانها رو عمودی جابهجا میکنه (چون در طول جادهست).
و align-items المانها رو افقی جابهجا میکنه (چون در عرض جادهست).
✅ به طور خلاصه :
۱. اول ببین فلکسِت کدوم وریه؟ (افقی یا عمودی؟) -> این میشه مسیر حرکت.
۲. میخوای تو جهتِ حرکت جابهجاشون کنی؟ -> justify-content ۳. میخوای خلافِ جهتِ حرکت (عمود بر حرکت) جابهجاشون کنی؟ -> align-items
@TahlildadehAcademy
🏷 #CSS #Frontend #Flexbox #Mini_Lesson
واقعیتش اینه که اکثر بچهها این دو تا رو اینجوری حفظ میکنن: «justify افقیه، align عمودی». این بزرگترین اشتباهه! چون به محض اینکه جهت فلکس باکس (flex-direction) عوض بشه، ذهنیتت میریزه بهم.
نکته کلیدی اینجاست: محورها. فلکسباکس دو تا محور داره. تمام!
1️⃣ محور اصلی (Main Axis) 🛣
تصور کن داری تو یه جاده رانندگی میکنی. جهت حرکتت کجاست؟
اگه flex-direction: row باشه (پیشفرض): جاده از چپ به راسته.
اگه flex-direction: column باشه: جاده از بالا به پایینه.
🔸 دستور justify-content مسئولِ توزیعِ آیتمها توی "طولِ جاده" (محور اصلی) هست.
یعنی چی؟ یعنی بهشون میگه: «آقا تو این مسیر، چجوری وایسید؟»
بچسبید اول جاده؟ (flex-start)
برید وسط جاده؟ (center)
بینتون فاصله بیفته؟ (space-between)
2️⃣ محور فرعی (Cross Axis) 🚦
حالا تصور کن وایسادی وسط همون جاده. سمت چپ و راستت (یا بالا و پایینت بسته به جهت جاده) میشه محور فرعی. یعنی جهتی که جاده رو قطع میکنه.
🔸 دستور align-items مسئولِ چیدمانِ آیتمها توی "عرضِ جاده" (محور فرعی) هست.
یعنی چی؟ یعنی بهشون میگه: «نسبت به لبههای کناری جاده کجایید؟»
وسطِ عرض جاده؟ (center)
کش بیاید تا کل عرض جاده رو بگیرید؟ (stretch)
💣چرا قاطی میکنیم؟
مشکل وقتی پیش میاد که flex-direction رو میکنیم column. اینجا جهت جاده (محور اصلی) میشه عمودی.
پس:
حالا justify-content المانها رو عمودی جابهجا میکنه (چون در طول جادهست).
و align-items المانها رو افقی جابهجا میکنه (چون در عرض جادهست).
✅ به طور خلاصه :
۱. اول ببین فلکسِت کدوم وریه؟ (افقی یا عمودی؟) -> این میشه مسیر حرکت.
۲. میخوای تو جهتِ حرکت جابهجاشون کنی؟ -> justify-content ۳. میخوای خلافِ جهتِ حرکت (عمود بر حرکت) جابهجاشون کنی؟ -> align-items
@TahlildadehAcademy
🏷 #CSS #Frontend #Flexbox #Mini_Lesson
👍7
#اشتباهات_رایج
🛑 اعتیاد به important!
هممون حداقل یکبار این لحظه رو تجربه کردیم: ددلاین نزدیکه، کدت کار نمیکنه، استایل اعمال نمیشه و اعصابت خورده. سریع یه important میچسبونی تنگش و تامام! درست شد. ✅
اما در واقعیت این "راه حل سریع" در واقع یه تلهست🫠
چرا انجامش میدیم؟ بیشتر وقتا دلیلش تنبلی یا عدم درک CSS Specificity (اولویتبندی سلکتورها) هست. وقتی نمیدونیم چرا مرورگر داره استایل ما رو نادیده میگیره، به جای حل مسئله، با !important سرش داد میزنیم تا حرفمون رو گوش بده.
چرا کار نادرستیه؟ این کار مثل استفاده از چکش برای بستن پیچه! شاید الان کار راه بیفته، ولی داری روال طبیعی آبشاری (Cascading) بودن CSS رو از بین میبری. نتیجه؟ دو ماه دیگه که برگردی سراغ کد، هیچ استایلی رو نمیتونی تغییر بدی مگر اینکه یه !important دیگه استفاده کنی و بیشتر بری تو باتلاق.
راه حل چیه؟ به جای زور گفتن، منطق Specificity رو یاد بگیر. اگه کلاست زور نداره، سلکتور رو دقیقتر کن، نه اینکه قانون رو بشکنی.
پس کجا از important استفاده کنم؟ فقط برای کلاسهای Utility (مثل d-none.) یا وقتی مجبوری استایلهای یه کتابخونهی خارجی رو override کنی مجازه، نه برای استایلدهیهای عادی!
@TahlildadehAcademy
#CSS #WebDevelopment #Frontend #CodingTips
🛑 اعتیاد به important!
هممون حداقل یکبار این لحظه رو تجربه کردیم: ددلاین نزدیکه، کدت کار نمیکنه، استایل اعمال نمیشه و اعصابت خورده. سریع یه important میچسبونی تنگش و تامام! درست شد. ✅
اما در واقعیت این "راه حل سریع" در واقع یه تلهست🫠
چرا انجامش میدیم؟ بیشتر وقتا دلیلش تنبلی یا عدم درک CSS Specificity (اولویتبندی سلکتورها) هست. وقتی نمیدونیم چرا مرورگر داره استایل ما رو نادیده میگیره، به جای حل مسئله، با !important سرش داد میزنیم تا حرفمون رو گوش بده.
چرا کار نادرستیه؟ این کار مثل استفاده از چکش برای بستن پیچه! شاید الان کار راه بیفته، ولی داری روال طبیعی آبشاری (Cascading) بودن CSS رو از بین میبری. نتیجه؟ دو ماه دیگه که برگردی سراغ کد، هیچ استایلی رو نمیتونی تغییر بدی مگر اینکه یه !important دیگه استفاده کنی و بیشتر بری تو باتلاق.
راه حل چیه؟ به جای زور گفتن، منطق Specificity رو یاد بگیر. اگه کلاست زور نداره، سلکتور رو دقیقتر کن، نه اینکه قانون رو بشکنی.
پس کجا از important استفاده کنم؟ فقط برای کلاسهای Utility (مثل d-none.) یا وقتی مجبوری استایلهای یه کتابخونهی خارجی رو override کنی مجازه، نه برای استایلدهیهای عادی!
@TahlildadehAcademy
#CSS #WebDevelopment #Frontend #CodingTips
👍4
💀 تلهای به نام ==
جاوااسکریپت بعضی وقتا سعی میکنه زیادی "باهوش" باشه و همین کار دست ما میده! تفاوت
❌ عملگر == (Loose Equality) : این عملگر "تغییر نوع" (Type Coercion) انجام میده. یعنی قبل از مقایسه، زورکی سعی میکنه نوع دادهها رو یکی کنه. نتیجه؟ فاجعه!
✅ عملگر === (Strict Equality) : این یکی شوخی نداره! هم مقدار رو چک میکنه و هم نوع داده رو. اگه نوعشون یکی نباشه، سریع میگه false
💡 قانون طلایی: همیشه و همهجا از سه تایی (===) استفاده کن، مگر اینکه دلیل خیلی خاصی داشته باشی (که احتمالاً نداری!). پس نذار JS برات تصمیم بگیره🙂↔️
@TahlildadehAcademy
#JavaScript #JS #WebDev #CodingTips
جاوااسکریپت بعضی وقتا سعی میکنه زیادی "باهوش" باشه و همین کار دست ما میده! تفاوت
=== و == فقط یه علامت مساوی نیست؛ تفاوت بین "باگهای عجیب" و "کد تمیزه".❌ عملگر == (Loose Equality) : این عملگر "تغییر نوع" (Type Coercion) انجام میده. یعنی قبل از مقایسه، زورکی سعی میکنه نوع دادهها رو یکی کنه. نتیجه؟ فاجعه!
JavaScript
console.log(0 == " "); // true 🤯
console.log(false == "0"); // true 😱
✅ عملگر === (Strict Equality) : این یکی شوخی نداره! هم مقدار رو چک میکنه و هم نوع داده رو. اگه نوعشون یکی نباشه، سریع میگه false
JavaScript
console.log(0 === " "); // false ✅
💡 قانون طلایی: همیشه و همهجا از سه تایی (===) استفاده کن، مگر اینکه دلیل خیلی خاصی داشته باشی (که احتمالاً نداری!). پس نذار JS برات تصمیم بگیره🙂↔️
@TahlildadehAcademy
#JavaScript #JS #WebDev #CodingTips
❤6👍1
⛔️ لطفاً کدهای «خفن» ننویسید! (در ستایش سادگی)
خیلی از برنامهنویسها، بهخصوص توی شروع کار، فکر میکنن «کدنویسی» یعنی میدون جنگ برای اثبات هوش! فکر میکنن هرچقدر کد پیچیدهتر، تودرتو تر و کوتاهتر باشد، یعنی برنامهنویسِ خفنتری هستن.
اما واقعیت توی دنیای مهندسی نرمافزار چیز دیگهایه:
🟢 طبق اصل KISS (Keep It Simple, Stupid)، هنرِ واقعی این نیست که یک منطق پیچیده رو توی یه خط جا بدید. هنر اینه که کدی بنویسید که ۶ ماه بعد، وقتی خسته و کلافهاید و پروژه ۳ تا باگِ حیاتی داده، بتونید با یه نگاه بفهمید قضیه از چه قراره.
💡 تفاوت جونیور و سنیور هم همینجاست: جونیورها کد مینویسن تا ماشین بفهمه. سنیورها کد مینویسن تا همتیمیها (و خودِ آیندهشون🙂↔️) بفهمن.
@TahlildadehAcademy
#CodingTips #KISS_Principle #CleanCode
خیلی از برنامهنویسها، بهخصوص توی شروع کار، فکر میکنن «کدنویسی» یعنی میدون جنگ برای اثبات هوش! فکر میکنن هرچقدر کد پیچیدهتر، تودرتو تر و کوتاهتر باشد، یعنی برنامهنویسِ خفنتری هستن.
اما واقعیت توی دنیای مهندسی نرمافزار چیز دیگهایه:
نوشتن کدی که فقط خودت و خدا میفهمید چیه، نشانه نبوغ نیست؛ نشانه خودخواهیه.
🟢 طبق اصل KISS (Keep It Simple, Stupid)، هنرِ واقعی این نیست که یک منطق پیچیده رو توی یه خط جا بدید. هنر اینه که کدی بنویسید که ۶ ماه بعد، وقتی خسته و کلافهاید و پروژه ۳ تا باگِ حیاتی داده، بتونید با یه نگاه بفهمید قضیه از چه قراره.
💡 تفاوت جونیور و سنیور هم همینجاست: جونیورها کد مینویسن تا ماشین بفهمه. سنیورها کد مینویسن تا همتیمیها (و خودِ آیندهشون🙂↔️) بفهمن.
@TahlildadehAcademy
#CodingTips #KISS_Principle #CleanCode
❤🔥8❤1
سریعترین راه (با کمترین کد) برای اینکه یک div رو دقیقاً در وسط والدش (هم عمودی و هم افقی) قرار بدیم چیه؟
Anonymous Quiz
5%
استفاده از Position absolute و transform translate
43%
استفاده از Flexbox و تنظیم justify-content و align-items
14%
استفاده از display: grid و place-items: center
38%
استفاده از margin: auto
#اشتباهات_رایج
⛔️ جنگ با z-index: 999999 !
تا حالا شده یه منو یا دکمه زیر بقیه المانها گیر کنه، بهش z-index: 100 بدی کار نکنه، عصبانی بشی و z-index: 999999 بدی و باز هم کار نکنه؟ 🤯
مشکل تعداد صفرها نیست! مشکل دو تا قانون اساسیه که معمولاً فراموش میشه:
1️⃣ قانون پوزیشن: خاصیت z-index روی المانی که position: static (حالت پیشفرض) داره، هیچ تاثیری نداره.
✅ راه حل: حتماً باید پوزیشن رو به relative، absolute یا fixed تغییر بدی.
2️⃣ تلهی پدر (Stacking Context): اگر المان "پدر"، z-index پایینتری نسبت به بقیه بخشهای سایت داشته باشه، "فرزند" نمیتونه از اون محدوده بزنه بیرون. حتی اگه به فرزند z-index: 1000000 بدی، باز هم توی لایهی پدرش حبس شده.
✅ راه حل: z-index پدر رو بررسی کن، نه بچه رو!
@TahlildadehAcademy
#CSS #Frontend #WebDesign
⛔️ جنگ با z-index: 999999 !
تا حالا شده یه منو یا دکمه زیر بقیه المانها گیر کنه، بهش z-index: 100 بدی کار نکنه، عصبانی بشی و z-index: 999999 بدی و باز هم کار نکنه؟ 🤯
مشکل تعداد صفرها نیست! مشکل دو تا قانون اساسیه که معمولاً فراموش میشه:
1️⃣ قانون پوزیشن: خاصیت z-index روی المانی که position: static (حالت پیشفرض) داره، هیچ تاثیری نداره.
✅ راه حل: حتماً باید پوزیشن رو به relative، absolute یا fixed تغییر بدی.
2️⃣ تلهی پدر (Stacking Context): اگر المان "پدر"، z-index پایینتری نسبت به بقیه بخشهای سایت داشته باشه، "فرزند" نمیتونه از اون محدوده بزنه بیرون. حتی اگه به فرزند z-index: 1000000 بدی، باز هم توی لایهی پدرش حبس شده.
✅ راه حل: z-index پدر رو بررسی کن، نه بچه رو!
💡 کد تمیز یعنی z-index های تکرقمی (1, 2, 3)؛ نه شماره موبایل! :))
@TahlildadehAcademy
#CSS #Frontend #WebDesign
❤6
آکادمی تحلیل داده | برنامه نویسی و هوش مصنوعی
Photo
🔥 تلهی "Soft Delete" در دیتابیس (چرا is_deleted=true ایده بدیه؟)
تا حالا شده بخوای یه رکوردی رو از دیتابیس پاک کنی، ولی دلت نیاد؟ احتمالا پیش خودت میگی: «نفعلا پاکش نمیکنم! یه ستون
به این کار میگن Soft Delete. در نگاه اول خیلی امن و راحت به نظر میاد، اما این شروع یه کابوسه که به مرور زمان پروژه رو خراب میکنه!
چرا این روش یه تلهی بزرگه؟ 👇
1️⃣ کابوس کوئریها (The WHERE Curse): از لحظهای که این ستون رو اضافه میکنی، باید توی تکتک کوئریهای SELECT پروژه، یادت باشه شرط
2️⃣ بنبست Unique Index : فرض کن ایمیل یوزرها باید یکتا (Unique) باشه. کاربر ali@example.com رو سافت دیلیت میکنی. حالا اگه همین علی بخواد دوباره با همین ایمیل ثبتنام کنه، دیتابیس ارور میده که: "ایمیل تکراریه!". چرا؟ چون رکورد قبلی هنوز توی جدول هست، فقط یه پرچم داره که دیتابیس بهش اهمیتی نمیده. مجبور میشی یونیک بودن رو بیخیال بشی یا کلی شرط عجیب غریب به ایندکسهات اضافه کنی.
3️⃣ چاقی مفرط جدول (Bloating) : جدول اصلیت، که باید سریعترین جدول باشه، پر میشه از دادههای آشغال که ۹۹٪ مواقع بهشون نیاز نداری، ولی همیشه روی سرعت ایندکسها، حجم بکاپ و سرعت اسکنها تاثیر منفی میذارن.
✅ راه حل چیه؟ اگه واقعاً (تکرار میکنم، واقعاً) نیاز داری دادههای حذف شده رو نگه داری، از الگوی Archive Table استفاده کن. وقتی قراره چیزی پاک بشه، توی یک تراکنش (Transaction)، اول اون سطر رو کپی کن توی یه جدول جداگانه (مثلاً users_archive) و بعد از جدول اصلی DELETE واقعی بزن.
اینجوری هم جدول اصلیت همیشه تمیز و سریعه، هم دادههای قدیمی رو برای روز مبادا داری، هم کوئریهات ساده و استاندارد میمونن.
@TahlildadehAcademy
#Database #Backend #SQL
تا حالا شده بخوای یه رکوردی رو از دیتابیس پاک کنی، ولی دلت نیاد؟ احتمالا پیش خودت میگی: «نفعلا پاکش نمیکنم! یه ستون
is_deleted به جدول اضافه میکنمو هر وقت خواستم پاک کنم، این ستون رو true میکنم. شاید بعداً لازم شد.»به این کار میگن Soft Delete. در نگاه اول خیلی امن و راحت به نظر میاد، اما این شروع یه کابوسه که به مرور زمان پروژه رو خراب میکنه!
چرا این روش یه تلهی بزرگه؟ 👇
1️⃣ کابوس کوئریها (The WHERE Curse): از لحظهای که این ستون رو اضافه میکنی، باید توی تکتک کوئریهای SELECT پروژه، یادت باشه شرط
WHERE is_deleted = false رو اضافه کنی. فقط کافیه یه جا (مثلاً توی یه گزارشگیری پیچیده) یادت بره؛ دیتای مرده زنده میشه و نتایج رو به گند میکشه.2️⃣ بنبست Unique Index : فرض کن ایمیل یوزرها باید یکتا (Unique) باشه. کاربر ali@example.com رو سافت دیلیت میکنی. حالا اگه همین علی بخواد دوباره با همین ایمیل ثبتنام کنه، دیتابیس ارور میده که: "ایمیل تکراریه!". چرا؟ چون رکورد قبلی هنوز توی جدول هست، فقط یه پرچم داره که دیتابیس بهش اهمیتی نمیده. مجبور میشی یونیک بودن رو بیخیال بشی یا کلی شرط عجیب غریب به ایندکسهات اضافه کنی.
3️⃣ چاقی مفرط جدول (Bloating) : جدول اصلیت، که باید سریعترین جدول باشه، پر میشه از دادههای آشغال که ۹۹٪ مواقع بهشون نیاز نداری، ولی همیشه روی سرعت ایندکسها، حجم بکاپ و سرعت اسکنها تاثیر منفی میذارن.
✅ راه حل چیه؟ اگه واقعاً (تکرار میکنم، واقعاً) نیاز داری دادههای حذف شده رو نگه داری، از الگوی Archive Table استفاده کن. وقتی قراره چیزی پاک بشه، توی یک تراکنش (Transaction)، اول اون سطر رو کپی کن توی یه جدول جداگانه (مثلاً users_archive) و بعد از جدول اصلی DELETE واقعی بزن.
اینجوری هم جدول اصلیت همیشه تمیز و سریعه، هم دادههای قدیمی رو برای روز مبادا داری، هم کوئریهات ساده و استاندارد میمونن.
@TahlildadehAcademy
#Database #Backend #SQL
❤3
احتمالا همهتون با کدهای معروف مثل 404 (پیدا نشد) یا 500 (سرور ترکید) آشنا هستید. اما توی داکیومنتهای رسمی HTTP یک کد وضعیت وجود داره که رسماً شاهکار مهندسی نرمافزاره:
داستانش چیه؟ سال ۱۹۹۸ مهندسای IETF برای "دروغ اول آوریل" یه پروتکل مندرآوردی نوشتن به اسم HTCPCP (پروتکل کنترل قوری قهوه!). توی این پروتکل، اگه شما از یک «قوری» بخواید براتون «قهوه» دَم کنه، سرور موظفه که درخواست شما رو رد کنه و ارور 418 برگردونه با این پیام: "من یک قوریام! (نمیتونم قهوه بدم)"
چرا جالبه؟ شاید فکر کنید فقط شوخیه، اما این کد هنوز هم توی خیلی از فریمورکهای جدی مثل Node.js یا Go و Python تعریف شده و استاندارد داره. یعنی اگه حوصلهتون سر رفت میتونید توی پروژههای واقعیتون این کد رو برگردونید!
حتی گوگل هم یه صفحه اختصاصی براش داره که اگه برید توش و روی قوری کلیک کنید، براتون چای میریزه:
🌐 google.com/teapot :))
@TahlildadehAcademy
#FunFact #HTTP #WebDev #History
HTTP 418: I'm a teapot
داستانش چیه؟ سال ۱۹۹۸ مهندسای IETF برای "دروغ اول آوریل" یه پروتکل مندرآوردی نوشتن به اسم HTCPCP (پروتکل کنترل قوری قهوه!). توی این پروتکل، اگه شما از یک «قوری» بخواید براتون «قهوه» دَم کنه، سرور موظفه که درخواست شما رو رد کنه و ارور 418 برگردونه با این پیام: "من یک قوریام! (نمیتونم قهوه بدم)"
چرا جالبه؟ شاید فکر کنید فقط شوخیه، اما این کد هنوز هم توی خیلی از فریمورکهای جدی مثل Node.js یا Go و Python تعریف شده و استاندارد داره. یعنی اگه حوصلهتون سر رفت میتونید توی پروژههای واقعیتون این کد رو برگردونید!
حتی گوگل هم یه صفحه اختصاصی براش داره که اگه برید توش و روی قوری کلیک کنید، براتون چای میریزه:
🌐 google.com/teapot :))
@TahlildadehAcademy
#FunFact #HTTP #WebDev #History
🔥3😁2
🤯 روزی که کدنویسی تبدیل به سلاح جنگی شد: داستان ترسناک Stuxnet ☢️
تا قبل از سال ۲۰۱۰، وقتی حرف از «ویروس کامپیوتری» میشد، نهایت تصور ما دزدیده شدن پسوردها، پاک شدن فایلها یا کند شدن سیستم بود. اما استاکسنت (Stuxnet) همه معادلات رو بهم ریخت.
این بدافزار، اولین «سلاح سایبری» واقعی جهان بود که ثابت کرد با چند خط کد، میشه خرابی فیزیکی در دنیای واقعی ایجاد کرد، بدون اینکه حتی یک گلوله شلیک بشه.
🕵️♂️ استاکسنت چی بود و چیکار میکرد؟
استاکسنت یک کرم کامپیوتری (Worm) فوقالعاده پیچیده بود که برخلاف ویروسهای معمولی که دنبال دزدی اطلاعات بانکی بودن، یک هدف خیلی خاص داشت: تأسیسات غنیسازی اورانیوم نطنز در ایران.
این بدافزار مثل یک مأمور مخفی عمل میکرد:
1️⃣ نفوذ بیسروصدا: از طریق فلش مموریهای آلوده وارد شبکه میشد (چون تأسیسات هستهای به اینترنت متصل نبودن)
2️⃣ تشخیص هدف: استاکسنت وقتی روی یک کامپیوتر مینشست، چک میکرد که آیا این سیستم به کنترلکنندههای صنعتی خاصی (PLCهای شرکت زیمنس) متصله یا نه. اگر نبود، هیچ کاری نمیکرد و مخفی میموند.
3️⃣ حمله فیزیکی: اگر هدف رو پیدا میکرد، کدهای مخربش رو به PLCها تزریق میکرد. کارش چی بود؟ سرعت چرخش سانتریفیوژهای غنیسازی اورانیوم رو به طرز دیوانهواری بالا میبرد و بعد ناگهان پایین میاورد. این تغییرات شدید باعث میشد سانتریفیوژها از نظر فیزیکی متلاشی بشن. 💥
4️⃣ دروغ بزرگ: ترسناکترین بخش ماجرا این بود که همزمان که داشت دستگاهها رو نابود میکرد، به سیستمهای مانیتورینگ اتاق کنترل گزارش میداد که «همه چیز مرتبه و دستگاهها نرمال کار میکنن»! اپراتورها میدیدن دستگاهها دارن میشکنن، ولی مانیتورها وضعیت سبز نشون میدادن.
💡 چرا استاکسنت شاهکار مهندسی بود؟
استفاده از ۴ زیرو-دی (Zero-Day): برای نفوذ، از ۴ آسیبپذیری ناشناخته ویندوز همزمان استفاده کرد که در دنیای امنیت بیسابقهست.
امضای دیجیتال جعلی: از گواهیهای دزدی شده شرکتهای معتبر Realtek و JMicron استفاده میکرد تا آنتیویروسها بهش شک نکنن.
کدنویسی در سطح دولتی: پیچیدگی این بدافزار جوری بود که کارشناسها گفتن نوشتنش کار یه هکر یا یه گروه کوچک نیست، بلکه کار سازمانهای اطلاعاتی چند کشور بزرگه.
⚠️ نتیجه اخلاقی برای برنامهنویسها: استاکسنت شروع عصر جدیدی بود که بهش میگن "Cyber Warfare". این ویروس نشون داد که کدی که مینویسیم، اگر در جای درست (یا غلط!) استفاده بشه، قدرتی مخربتر از بمب داره.
@TahlildadehAcademy
#CyberSecurity #Stuxnet #Malware #برنامه_نویسی #امنیت #هک
تا قبل از سال ۲۰۱۰، وقتی حرف از «ویروس کامپیوتری» میشد، نهایت تصور ما دزدیده شدن پسوردها، پاک شدن فایلها یا کند شدن سیستم بود. اما استاکسنت (Stuxnet) همه معادلات رو بهم ریخت.
این بدافزار، اولین «سلاح سایبری» واقعی جهان بود که ثابت کرد با چند خط کد، میشه خرابی فیزیکی در دنیای واقعی ایجاد کرد، بدون اینکه حتی یک گلوله شلیک بشه.
🕵️♂️ استاکسنت چی بود و چیکار میکرد؟
استاکسنت یک کرم کامپیوتری (Worm) فوقالعاده پیچیده بود که برخلاف ویروسهای معمولی که دنبال دزدی اطلاعات بانکی بودن، یک هدف خیلی خاص داشت: تأسیسات غنیسازی اورانیوم نطنز در ایران.
این بدافزار مثل یک مأمور مخفی عمل میکرد:
1️⃣ نفوذ بیسروصدا: از طریق فلش مموریهای آلوده وارد شبکه میشد (چون تأسیسات هستهای به اینترنت متصل نبودن)
2️⃣ تشخیص هدف: استاکسنت وقتی روی یک کامپیوتر مینشست، چک میکرد که آیا این سیستم به کنترلکنندههای صنعتی خاصی (PLCهای شرکت زیمنس) متصله یا نه. اگر نبود، هیچ کاری نمیکرد و مخفی میموند.
3️⃣ حمله فیزیکی: اگر هدف رو پیدا میکرد، کدهای مخربش رو به PLCها تزریق میکرد. کارش چی بود؟ سرعت چرخش سانتریفیوژهای غنیسازی اورانیوم رو به طرز دیوانهواری بالا میبرد و بعد ناگهان پایین میاورد. این تغییرات شدید باعث میشد سانتریفیوژها از نظر فیزیکی متلاشی بشن. 💥
4️⃣ دروغ بزرگ: ترسناکترین بخش ماجرا این بود که همزمان که داشت دستگاهها رو نابود میکرد، به سیستمهای مانیتورینگ اتاق کنترل گزارش میداد که «همه چیز مرتبه و دستگاهها نرمال کار میکنن»! اپراتورها میدیدن دستگاهها دارن میشکنن، ولی مانیتورها وضعیت سبز نشون میدادن.
💡 چرا استاکسنت شاهکار مهندسی بود؟
استفاده از ۴ زیرو-دی (Zero-Day): برای نفوذ، از ۴ آسیبپذیری ناشناخته ویندوز همزمان استفاده کرد که در دنیای امنیت بیسابقهست.
امضای دیجیتال جعلی: از گواهیهای دزدی شده شرکتهای معتبر Realtek و JMicron استفاده میکرد تا آنتیویروسها بهش شک نکنن.
کدنویسی در سطح دولتی: پیچیدگی این بدافزار جوری بود که کارشناسها گفتن نوشتنش کار یه هکر یا یه گروه کوچک نیست، بلکه کار سازمانهای اطلاعاتی چند کشور بزرگه.
⚠️ نتیجه اخلاقی برای برنامهنویسها: استاکسنت شروع عصر جدیدی بود که بهش میگن "Cyber Warfare". این ویروس نشون داد که کدی که مینویسیم، اگر در جای درست (یا غلط!) استفاده بشه، قدرتی مخربتر از بمب داره.
@TahlildadehAcademy
#CyberSecurity #Stuxnet #Malware #برنامه_نویسی #امنیت #هک
❤🔥1❤1🔥1
🕒 سفر در زمان اجباری: ماجرای عجیب سال ۲۰۳۸
تا حالا شنیدید که میگن «تاریخ تکرار میشه»؟ تو دنیای کامپیوتر قراره این موضوع واقعا اتفاق بیفته!
داستان از این قراره که سیستمهای قدیمی (سیستم های 32 بیتی)، زمان رو با شمردن ثانیهها یادشون میمونه. اما خب، این «حافظه» یه جایی تموم میشه. کجا؟ دقیقاً ساعت ۳ و ۱۴ دقیقه صبحِ ۱۹ ژانویه ۲۰۳۸.
چه اتفاقی میفته؟ درست تو اون لحظه، کنتورِ این سیستمها پر میشه. اما جای اینکه وایسن، قاطی میکنن و یهو برمیگردن عقب! چقدر عقب؟ میرن به سال ۱۹۰۱! 😐 یعنی یه دستگاه قدیمی ممکنه فکر کنه هنوز جنگ جهانی اول هم شروع نشده!
ما باید نگران باشیم؟ اصلاً! . گوشیها و لپتاپهای امروزیِ من و شما دیگه اون محدودیت رو ندارن. مهندسها یه جوری طراحیشون کردن که تا ۲۹۲ میلیارد سال دیگه آخ نگن (تا اون موقع خورشید هم خاموش شده، پس خیلی نگران نباشید🙂↔️)
@TahlildadehAcademy
تا حالا شنیدید که میگن «تاریخ تکرار میشه»؟ تو دنیای کامپیوتر قراره این موضوع واقعا اتفاق بیفته!
داستان از این قراره که سیستمهای قدیمی (سیستم های 32 بیتی)، زمان رو با شمردن ثانیهها یادشون میمونه. اما خب، این «حافظه» یه جایی تموم میشه. کجا؟ دقیقاً ساعت ۳ و ۱۴ دقیقه صبحِ ۱۹ ژانویه ۲۰۳۸.
چه اتفاقی میفته؟ درست تو اون لحظه، کنتورِ این سیستمها پر میشه. اما جای اینکه وایسن، قاطی میکنن و یهو برمیگردن عقب! چقدر عقب؟ میرن به سال ۱۹۰۱! 😐 یعنی یه دستگاه قدیمی ممکنه فکر کنه هنوز جنگ جهانی اول هم شروع نشده!
ما باید نگران باشیم؟ اصلاً! . گوشیها و لپتاپهای امروزیِ من و شما دیگه اون محدودیت رو ندارن. مهندسها یه جوری طراحیشون کردن که تا ۲۹۲ میلیارد سال دیگه آخ نگن (تا اون موقع خورشید هم خاموش شده، پس خیلی نگران نباشید🙂↔️)
@TahlildadehAcademy
❤3
⚠️ هوش مصنوعی جایگزین تو نمیشه، اما کسی که بلده باهاش کار کنه، قطعاً جات رو میگیره!
تا سال ۲۰۳۰، بخشی از مهارت های ما منقضی میشه. با اتوماسیون ۹۲ میلیون شغل حذف ولی ۱۷۰ میلیون شغل جدید ساخته میشه و بازار کار دیگه مدرکمحور نیست و دنبال «انسانِ قابل ارتقا» میگرده. جالبه بدونی مهارت عملی در زمینه AI حقوق رو تا ۲۳٪ بالا میبره، در حالی که مدارک آکادمیک فقط ۱۳٪ تأثیر داره!
شاید خیلی جاها وبینارهای مشابهی رو دیده باشی که در نهایت فقط چندتا ابزار رایگان و بعضا ناکارآمد رو معرفی میکنن ولی ما توی این وبینار رایگان قراره در مورد موضوعات زیر صحبت کنیم:
✅ حقایق آینده شغلی و این که چرا مدرک دانشگاهی از بازار عقب مونده؟
✅ پایتون؛ زبانی که برای ارتباط با ماشینها باید یاد بگیری
✅ نقشه راه پروژهمحور؛ از مبانی کدنویسی تا تشخیص چهره و پیشبینی بورس
👤مدرس: سعید مصطفایی (مدرس دوره های هوش مصنوعی)
تاریخ : دوشنبه - 15 دی
🔗 لینک ثبتنام
تا سال ۲۰۳۰، بخشی از مهارت های ما منقضی میشه. با اتوماسیون ۹۲ میلیون شغل حذف ولی ۱۷۰ میلیون شغل جدید ساخته میشه و بازار کار دیگه مدرکمحور نیست و دنبال «انسانِ قابل ارتقا» میگرده. جالبه بدونی مهارت عملی در زمینه AI حقوق رو تا ۲۳٪ بالا میبره، در حالی که مدارک آکادمیک فقط ۱۳٪ تأثیر داره!
شاید خیلی جاها وبینارهای مشابهی رو دیده باشی که در نهایت فقط چندتا ابزار رایگان و بعضا ناکارآمد رو معرفی میکنن ولی ما توی این وبینار رایگان قراره در مورد موضوعات زیر صحبت کنیم:
✅ حقایق آینده شغلی و این که چرا مدرک دانشگاهی از بازار عقب مونده؟
✅ پایتون؛ زبانی که برای ارتباط با ماشینها باید یاد بگیری
✅ نقشه راه پروژهمحور؛ از مبانی کدنویسی تا تشخیص چهره و پیشبینی بورس
👤مدرس: سعید مصطفایی (مدرس دوره های هوش مصنوعی)
تاریخ : دوشنبه - 15 دی
🔗 لینک ثبتنام
🔥4❤2
آکادمی تحلیل داده | برنامه نویسی و هوش مصنوعی
Photo
☢️ فاجعه Therac-25 | وقتی یک باگ نرمافزاری آدم کُشت
داستان Therac-25 از اون لحظههای تلخ تاریخ تکنولوژیه که یادت میاندازه «کُد» فقط چند خط برنامه نیست؛ بعضی وقتها مستقیما به جون آدمها وصله. Therac-25 یه دستگاه پرتودرمانی بود، اوایل دهه ۸۰ میلادی، برای درمان سرطان. نسلهای قبلیش (Therac-6 و Therac-20) هم همین کار رو میکردن، اما یه فرق مهم داشتن:
پر بودن از قفلها و محافظهای سختافزاری.
یعنی اگه نرمافزار سوتی میداد، سختافزار ترمز رو میکشید. ولی توی Therac-25 طراحها گفتن: «نرمافزار خودش حواسش هست.» و دقیقاً همین جمله، شروع فاجعه بود. بین سالهای ۱۹۸۵ تا ۱۹۸۷، حداقل ۶ بیمار دوزی از اشعه رو گرفتن که دهها تا حتی صدها برابر حد مجاز بود. بعضیها همون لحظه دچار سوختگی شدید شدن، بعضیها هم بعدتر جونشون رو از دست دادن.
اما اپراتور چی میدید؟
فقط یه ارور روی صفحه:
نه هشدار درست، نه توقف دستگاه.
اصل ماجرا چی بود؟
یه race condition کلاسیک؛ یعنی چند تا کار همزمان که ترتیب اجرایشون درست مدیریت نشده.
اگه اپراتور (که اتفاقاً حرفهای هم بود) خیلی سریع بین حالتهای مختلف دستگاه سوییچ میکرد، نرمافزار به یه نتیجه کاملاً اشتباه میرسید و فکر میکرد که «همهچی امنه.» در حالی که سختافزار عملاً آماده بود یه دوز اشعه مرگبار شلیک کنه. هیچ سنسور مستقلی هم نبود که بگه: «صبر کن، داری اشتباه میکنی.»
چند تا نکته ترسناکتر:
📍شرکت سازنده فکر میکرد چون بخشی از کد از نسخههای قدیمی اومده، پس «قبلاً تست شده». در حالی که شرایط جدید، ریسکهای جدید ساخته بود.
📍لاگ درستوحسابی وجود نداشت؛ بعد از حادثه حتی مهندسها دقیق نمیفهمیدن چی شده.
📍گزارشهای اولیه پزشکها و بیماران جدی گرفته نشد، چون خب… «کامپیوتر که اشتباه نمیکنه».
داستان Therac-25 یه درس خیلی بزرگ داره:
حذف افزونگی (redundancy) به اسم اعتماد به نرمافزار، یه قمار مرگباره.
تو سیستمهای حیاتی، نرمافزار نباید خوشبین باشه؛
باید بدبین، شکاک، و چندبار-چککننده باشه.
هر فرضی باید با سختافزار مستقل، سنسور جدا، و مکانیزم fail-safe تأیید بشه.
این داستان فقط مال دهه ۸۰ نیست.
امروز هم هر وقت شنیدی:
«این الگوریتم خودش همهچی رو هندل میکنه»
«کاربر اشتباه نمیکنه»
«این کیس نادره، ولش کن»
یادت بیاد ک روح Therac-25 دارد از گوشه اتاق نگات میکنه.
تکنولوژی وقتی خطرناک میشه که بیش از حد بهش ایمان بیاریم و کمتر از حد بهش شک کنیم. و این فقط داستان یه باگ نیست؛ داستان غرور مهندسیه.
@TahlildadehAcademy
داستان Therac-25 از اون لحظههای تلخ تاریخ تکنولوژیه که یادت میاندازه «کُد» فقط چند خط برنامه نیست؛ بعضی وقتها مستقیما به جون آدمها وصله. Therac-25 یه دستگاه پرتودرمانی بود، اوایل دهه ۸۰ میلادی، برای درمان سرطان. نسلهای قبلیش (Therac-6 و Therac-20) هم همین کار رو میکردن، اما یه فرق مهم داشتن:
پر بودن از قفلها و محافظهای سختافزاری.
یعنی اگه نرمافزار سوتی میداد، سختافزار ترمز رو میکشید. ولی توی Therac-25 طراحها گفتن: «نرمافزار خودش حواسش هست.» و دقیقاً همین جمله، شروع فاجعه بود. بین سالهای ۱۹۸۵ تا ۱۹۸۷، حداقل ۶ بیمار دوزی از اشعه رو گرفتن که دهها تا حتی صدها برابر حد مجاز بود. بعضیها همون لحظه دچار سوختگی شدید شدن، بعضیها هم بعدتر جونشون رو از دست دادن.
اما اپراتور چی میدید؟
فقط یه ارور روی صفحه:
MALFUNCTION 54
نه هشدار درست، نه توقف دستگاه.
اصل ماجرا چی بود؟
یه race condition کلاسیک؛ یعنی چند تا کار همزمان که ترتیب اجرایشون درست مدیریت نشده.
اگه اپراتور (که اتفاقاً حرفهای هم بود) خیلی سریع بین حالتهای مختلف دستگاه سوییچ میکرد، نرمافزار به یه نتیجه کاملاً اشتباه میرسید و فکر میکرد که «همهچی امنه.» در حالی که سختافزار عملاً آماده بود یه دوز اشعه مرگبار شلیک کنه. هیچ سنسور مستقلی هم نبود که بگه: «صبر کن، داری اشتباه میکنی.»
چند تا نکته ترسناکتر:
📍شرکت سازنده فکر میکرد چون بخشی از کد از نسخههای قدیمی اومده، پس «قبلاً تست شده». در حالی که شرایط جدید، ریسکهای جدید ساخته بود.
📍لاگ درستوحسابی وجود نداشت؛ بعد از حادثه حتی مهندسها دقیق نمیفهمیدن چی شده.
📍گزارشهای اولیه پزشکها و بیماران جدی گرفته نشد، چون خب… «کامپیوتر که اشتباه نمیکنه».
داستان Therac-25 یه درس خیلی بزرگ داره:
حذف افزونگی (redundancy) به اسم اعتماد به نرمافزار، یه قمار مرگباره.
تو سیستمهای حیاتی، نرمافزار نباید خوشبین باشه؛
باید بدبین، شکاک، و چندبار-چککننده باشه.
هر فرضی باید با سختافزار مستقل، سنسور جدا، و مکانیزم fail-safe تأیید بشه.
این داستان فقط مال دهه ۸۰ نیست.
امروز هم هر وقت شنیدی:
«این الگوریتم خودش همهچی رو هندل میکنه»
«کاربر اشتباه نمیکنه»
«این کیس نادره، ولش کن»
یادت بیاد ک روح Therac-25 دارد از گوشه اتاق نگات میکنه.
تکنولوژی وقتی خطرناک میشه که بیش از حد بهش ایمان بیاریم و کمتر از حد بهش شک کنیم. و این فقط داستان یه باگ نیست؛ داستان غرور مهندسیه.
@TahlildadehAcademy
❤3
🛡 تایپاسکریپت: سادیسمِ کدنویسی یا لازمهی حرفهای بودن؟
وقتی از دنیای «هرچی نوشتی، نوشتیِ» جاوااسکریپت میای سمت TS، اولش حس میکنی وارد پادگان شدی! 👮♂️
تعریف کردن
اما چرا پروژه بزرگ بدون TS یعنی خودزنی؟
1️⃣پیشگیری قبل از درمان: JS باگ رو وقتی لو میده که کاربر داره با سایت کار میکنه (Runtime). اما TS یقه شما رو همون لحظه تو ادیتور میگیره (Compile Time).
2️⃣امنیت در تغییرات: تو پروژههای بزرگ، تغییر دادن ساختار کد تو JS مثل خنثی کردن بمبه! ولی با TS، یه تغییر میدی و خیالت راحته که اگه جایی بشکنه، اصلا کدت بیلد نمیشه که بخواد بره روی سرور.
خلاصه:
تایپاسکریپت «کدنویسی» رو سخت میکنه تا «نگهداری» آسون بشه. دردی که اول میکشید، جلوی دردسرهای آینده رو میگیره.
@TahlildadehAcademy
وقتی از دنیای «هرچی نوشتی، نوشتیِ» جاوااسکریپت میای سمت TS، اولش حس میکنی وارد پادگان شدی! 👮♂️
تعریف کردن
Type برای هر متغیر و جنگیدن با ارورهای قرمز، شاید اوایلش خیلی رو مخ باشه!اما چرا پروژه بزرگ بدون TS یعنی خودزنی؟
1️⃣پیشگیری قبل از درمان: JS باگ رو وقتی لو میده که کاربر داره با سایت کار میکنه (Runtime). اما TS یقه شما رو همون لحظه تو ادیتور میگیره (Compile Time).
2️⃣امنیت در تغییرات: تو پروژههای بزرگ، تغییر دادن ساختار کد تو JS مثل خنثی کردن بمبه! ولی با TS، یه تغییر میدی و خیالت راحته که اگه جایی بشکنه، اصلا کدت بیلد نمیشه که بخواد بره روی سرور.
خلاصه:
تایپاسکریپت «کدنویسی» رو سخت میکنه تا «نگهداری» آسون بشه. دردی که اول میکشید، جلوی دردسرهای آینده رو میگیره.
@TahlildadehAcademy
❤3
دنبال یه راه مطمئن برای وارد شدن به دنیای برنامهنویسی میگردی؟ 🐍🚀
شاید کلی ویدیو تو یوتیوب دیده باشی یا مقالههای مختلف خونده باشی، اما هنوز نمیدونی دقیقاً چطور باید یه پروژه واقعی رو از صفر پیاده سازی کنی. دوره پایتون آموزشگاه تحلیلداده دقیقاً همون جاییه که مسیرت شفاف میشه. ما از صفرِ صفر شروع میکنیم و تا پیشرفتهترین مباحث (مثل شیگرایی، دیتابیس و وباسکرپینگ) همراهت هستیم.
چرا این دوره با بقیه فرق داره؟ 👇
✅ کاملاً پروژهمحور
✅ مدرک معتبر و قابل ترجمه برای مهاجرت
✅ پشتیبانی دائمی در گروه واتساپ
✅ آمادگی برای بازار کار و همچنین برای ورود به دنیای هوش مصنوعی
👤 مدرس: مهندس مصطفایی (کارشناس ارشد IT و فعال حوزه هوش مصنوعی)
📅 شروع دوره: پنجشنبه ۱۸ دی
📍 نحوه برگزاری: هم حضوری و هم آنلاین
فرصت رو از دست نده و همین الان جای خودت رو رزرو کن! 👇
🔗 لینک ثبتنام و مشاهده جزئیات بیشتر
📍 مشاوره ثبت نام
شاید کلی ویدیو تو یوتیوب دیده باشی یا مقالههای مختلف خونده باشی، اما هنوز نمیدونی دقیقاً چطور باید یه پروژه واقعی رو از صفر پیاده سازی کنی. دوره پایتون آموزشگاه تحلیلداده دقیقاً همون جاییه که مسیرت شفاف میشه. ما از صفرِ صفر شروع میکنیم و تا پیشرفتهترین مباحث (مثل شیگرایی، دیتابیس و وباسکرپینگ) همراهت هستیم.
چرا این دوره با بقیه فرق داره؟ 👇
✅ کاملاً پروژهمحور
✅ مدرک معتبر و قابل ترجمه برای مهاجرت
✅ پشتیبانی دائمی در گروه واتساپ
✅ آمادگی برای بازار کار و همچنین برای ورود به دنیای هوش مصنوعی
👤 مدرس: مهندس مصطفایی (کارشناس ارشد IT و فعال حوزه هوش مصنوعی)
📅 شروع دوره: پنجشنبه ۱۸ دی
📍 نحوه برگزاری: هم حضوری و هم آنلاین
فرصت رو از دست نده و همین الان جای خودت رو رزرو کن! 👇
🔗 لینک ثبتنام و مشاهده جزئیات بیشتر
📍 مشاوره ثبت نام
❤3
دنیای آینده دست اوناییه که «هوش مصنوعی» رو بلدن! 🧠🤖
خیلی وقتها آموزشها پراکندهست و آدم نمیدونه مسیر رو از کجا شروع کنه. ما توی این دوره، مسیر رو برات شفاف کردیم
توی این دوره قراره چه اتفاقی بیفته؟ ⏳
✅ از پایه شروع میکنیم: کار با ابزارهای تحلیل داده مثل Numpy و Pandas
✅ یادگیری ماشین: یادگیری الگوریتمهای کلاسیک (مثل SVM و درخت تصمیم)
✅ یادگیری عمیق: کار با PyTorch و ورود به دنیای شبکههای عصبی و حتی مدلهای خفنی مثل GPT-2
✅ پروژههایی که رزومهت رو میسازه: پیشبینی بورس، تشخیص سرطان، پیشبینی قیمت خونه در تهران
چرا آموزشگاه تحلیلداده؟ 👇
🏅 مدرک معتبر و قابل ترجمه برای مهاجرت
🎞 دسترسی به فیلم های دوره تا دوسال
👥 پشتیبانی دائمی در گروه واتساپ
📍 نحوه برگزاری به صورت حضوری آنلاین همزمان
⚠️ پیشنیاز: آشنایی با برنامه نویسی پایتون
📅 شروع دوره: پنجشنبه ۱۸ دی
همین حالا برای آیندهت سرمایهگذاری کن! 👇
🔗 لینک ثبتنام و مشاهده سرفصلهای کامل
📍 مشاوره ثبت نام
خیلی وقتها آموزشها پراکندهست و آدم نمیدونه مسیر رو از کجا شروع کنه. ما توی این دوره، مسیر رو برات شفاف کردیم
توی این دوره قراره چه اتفاقی بیفته؟ ⏳
✅ از پایه شروع میکنیم: کار با ابزارهای تحلیل داده مثل Numpy و Pandas
✅ یادگیری ماشین: یادگیری الگوریتمهای کلاسیک (مثل SVM و درخت تصمیم)
✅ یادگیری عمیق: کار با PyTorch و ورود به دنیای شبکههای عصبی و حتی مدلهای خفنی مثل GPT-2
✅ پروژههایی که رزومهت رو میسازه: پیشبینی بورس، تشخیص سرطان، پیشبینی قیمت خونه در تهران
چرا آموزشگاه تحلیلداده؟ 👇
🏅 مدرک معتبر و قابل ترجمه برای مهاجرت
🎞 دسترسی به فیلم های دوره تا دوسال
👥 پشتیبانی دائمی در گروه واتساپ
📍 نحوه برگزاری به صورت حضوری آنلاین همزمان
⚠️ پیشنیاز: آشنایی با برنامه نویسی پایتون
📅 شروع دوره: پنجشنبه ۱۸ دی
همین حالا برای آیندهت سرمایهگذاری کن! 👇
🔗 لینک ثبتنام و مشاهده سرفصلهای کامل
📍 مشاوره ثبت نام
❤3
سلام خدمت همه ی دوستان عزیز
امیدوارم که حالتون خوب باشه.
در شرایط فعلی تا برقراری مجدد اینترنت بین الملل، اطلاع رسانی دوره های آموزشگاه از طریق کانال مربوطه در پیام رسان بله به آدرس http://ble.ir/tahlildadehacademy انجام خواهد شد. برای دریافت مشاوره و پشتیبانی دوره نیز میتوانید با آی دی tahlildadehadmin (شماره 09905283471) در پیام رسان بله، ارتباط داشته باشید.
امیدوارم که حالتون خوب باشه.
در شرایط فعلی تا برقراری مجدد اینترنت بین الملل، اطلاع رسانی دوره های آموزشگاه از طریق کانال مربوطه در پیام رسان بله به آدرس http://ble.ir/tahlildadehacademy انجام خواهد شد. برای دریافت مشاوره و پشتیبانی دوره نیز میتوانید با آی دی tahlildadehadmin (شماره 09905283471) در پیام رسان بله، ارتباط داشته باشید.
ble.ir
بله | کانال آموزشگاه تحلیل داده | هوش مصنوعی و برنامه نویسی
اطلاع رسانی در خصوص دوره های هوش مصنوعی و برنامه نویسی