Forwarded from انجمن علوم کامپیوتر بهشتی (Ali Aarefi)
مدرسه تکمیلی دانشکده مهندسی و علوم کامپیوتر دانشگاه شهید بهشتی با همکاری سحاب (sahab.ir) برگزار میکند:
دوره ۴۵ ساعته مهندسی داده به همراه پروژه های عملی
📝سرفصلهای دوره:
- مفاهیم مهندسی داده
- ذخیرهسازی و بازیابی داده توزیع شده
- پردازش دستهای و جویباری
- کار عملی با ابزارهای HBase / MapReduce / Spark / HDFS / Kafka
👤مدرسین:
سید محمد غفاریان، دکترای مهندسی کامپیوتر از دانشگاه صنعتی امیرکبیر
مهدی صفرنژاد، دکترای مهندسی کامپیوتر از دانشگاه صنعتی شریف
محمدحمزهئی، دکترای مهندسی کامپیوتر از دانشگاه علم و صنعت ایران
⏰زمان:
چهارشنبهها ساعت ۱۵:۰۰ الی ۱۸:۰۰ شروع از ۷ مهرماه
ثبتنام:
در سامانه انتخاب واحد گلستان همزمان با انتخاب واحد
*امکان اخذ درس به طور اختیاری برای دانشجویان سایر دانشکده های دانشگاه شهید بهشتی نیز فراهم است.
#BigData #Java #Spark
دوره ۴۵ ساعته مهندسی داده به همراه پروژه های عملی
📝سرفصلهای دوره:
- مفاهیم مهندسی داده
- ذخیرهسازی و بازیابی داده توزیع شده
- پردازش دستهای و جویباری
- کار عملی با ابزارهای HBase / MapReduce / Spark / HDFS / Kafka
👤مدرسین:
سید محمد غفاریان، دکترای مهندسی کامپیوتر از دانشگاه صنعتی امیرکبیر
مهدی صفرنژاد، دکترای مهندسی کامپیوتر از دانشگاه صنعتی شریف
محمدحمزهئی، دکترای مهندسی کامپیوتر از دانشگاه علم و صنعت ایران
⏰زمان:
چهارشنبهها ساعت ۱۵:۰۰ الی ۱۸:۰۰ شروع از ۷ مهرماه
ثبتنام:
در سامانه انتخاب واحد گلستان همزمان با انتخاب واحد
*امکان اخذ درس به طور اختیاری برای دانشجویان سایر دانشکده های دانشگاه شهید بهشتی نیز فراهم است.
#BigData #Java #Spark
👍2
معرفی سایت DataNerd.tech؛ مرجعی برای تحلیل مهارتها و حقوق مشاغل دادهای
سایت DataNerd.tech به عنوان یک مرجع تحلیلی📊، با هدف کمک به متخصصان داده ایجاد شده است تا بتوانند با آگاهی بیشتر، مسیر شغلی خود را انتخاب کنند.
این پلتفرم با جمعآوری روزانه حدود ۶۵۰۰ آگهی شغلی از نتایج جستجوی گوگل و تحلیل آنها از طریق پردازش زبان طبیعی (NLP)، پرطرفدارترین مهارتها و متوسط حقوق هر موقعیت شغلی را ارائه میدهد.
آدرس سایت : https://datanerd.tech
در بخش مربوط به مهندسین داده، مهارتهایی مانند #SQL، #Python، #AWS، #Azure و #Spark جزو پرجستجوترین مهارتها هستند. این دادهها به کاربران کمک میکند تا بدانند چه مهارتهایی در بازار کار بیشتر مورد توجه قرار دارند و بر چه زمینههایی تمرکز بیشتری داشته باشند. همچنین سایت دارای بخشی برای مشاهده روند تغییرات محبوبیت مهارتها در طول زمان است که تصویری دقیقتر از تحولات بازار ارائه میدهد. 📈
بر اساس تحلیلهای ارائهشده در DataNerd.tech، پردرآمدترین مشاغل 💵 به ترتیب شامل مهندس نرمافزار، مهندس یادگیری ماشین و مهندس داده هستند.
از سوی دیگر، گرانترین مهارتهای 💎 بازار عبارتند از #Scala، #Spark، #Snowflake، #Java و #Python که توجه به آنها میتواند در افزایش فرصتهای شغلی و درآمد تأثیر قابل توجهی داشته باشد.
هدف اصلی این سایت، شفافسازی مسیر یادگیری و جلوگیری از هدررفت زمان متخصصان داده در مهارتهای کمارزش است. DataNerd.tech در مسیر خود به سوی ایجاد یک منبع باز از اطلاعات بازار کار، به کاربران کمک میکند تا تصمیمات آگاهانهتر و بهینهتری برای توسعه مهارتهای حرفهای خود بگیرند. 🚀
یک حقیقت تلخ : دنیا امروز به مهارتهای کلاد نیاز بیشتری دارد، اما در ایران، به دلیل محدودیتها، ما بیشتر مجبوریم روی پروژههای اپن سورس که امکان اجرا روی سرورهای خودمان را دارند، کار کنیم.
#مهندسی_داده #تحلیل_داده #علم_داده #بازار_کار_داده #هوش_مصنوعی #Data_Engineering #Data_Science #Data_Analytics #Machine_Learning #Career_Growth
سایت DataNerd.tech به عنوان یک مرجع تحلیلی📊، با هدف کمک به متخصصان داده ایجاد شده است تا بتوانند با آگاهی بیشتر، مسیر شغلی خود را انتخاب کنند.
این پلتفرم با جمعآوری روزانه حدود ۶۵۰۰ آگهی شغلی از نتایج جستجوی گوگل و تحلیل آنها از طریق پردازش زبان طبیعی (NLP)، پرطرفدارترین مهارتها و متوسط حقوق هر موقعیت شغلی را ارائه میدهد.
آدرس سایت : https://datanerd.tech
در بخش مربوط به مهندسین داده، مهارتهایی مانند #SQL، #Python، #AWS، #Azure و #Spark جزو پرجستجوترین مهارتها هستند. این دادهها به کاربران کمک میکند تا بدانند چه مهارتهایی در بازار کار بیشتر مورد توجه قرار دارند و بر چه زمینههایی تمرکز بیشتری داشته باشند. همچنین سایت دارای بخشی برای مشاهده روند تغییرات محبوبیت مهارتها در طول زمان است که تصویری دقیقتر از تحولات بازار ارائه میدهد. 📈
بر اساس تحلیلهای ارائهشده در DataNerd.tech، پردرآمدترین مشاغل 💵 به ترتیب شامل مهندس نرمافزار، مهندس یادگیری ماشین و مهندس داده هستند.
از سوی دیگر، گرانترین مهارتهای 💎 بازار عبارتند از #Scala، #Spark، #Snowflake، #Java و #Python که توجه به آنها میتواند در افزایش فرصتهای شغلی و درآمد تأثیر قابل توجهی داشته باشد.
هدف اصلی این سایت، شفافسازی مسیر یادگیری و جلوگیری از هدررفت زمان متخصصان داده در مهارتهای کمارزش است. DataNerd.tech در مسیر خود به سوی ایجاد یک منبع باز از اطلاعات بازار کار، به کاربران کمک میکند تا تصمیمات آگاهانهتر و بهینهتری برای توسعه مهارتهای حرفهای خود بگیرند. 🚀
یک حقیقت تلخ : دنیا امروز به مهارتهای کلاد نیاز بیشتری دارد، اما در ایران، به دلیل محدودیتها، ما بیشتر مجبوریم روی پروژههای اپن سورس که امکان اجرا روی سرورهای خودمان را دارند، کار کنیم.
#مهندسی_داده #تحلیل_داده #علم_داده #بازار_کار_داده #هوش_مصنوعی #Data_Engineering #Data_Science #Data_Analytics #Machine_Learning #Career_Growth
👍2
چرا بسیاری از تیمها ORM را کنار میگذارند و سراغ SQL خام میروند؟
اخیرا در مدیوم با تعداد زیادی از مقالهها مواجه میشوم که یک پیام مشترک دارند:
نکته جالب اینجاست که این تصمیمها معمولاً از سر عشق به SQL گرفته نشدهاند، بلکه از دل دردسرهای #ORM زاده شدهاند.
در چند مقالهی اخیر که مطالعه کردم، تیمهای مختلفی با تکنولوژیهای مختلف (از #Java + #Postgres گرفته تا #Go + #SQLAlchemy) تجربهی مهاجرت از ORM را به اشتراک گذاشتهاند — نه فقط برای بهبود سرعت، بلکه برای بازگشت به شفافیت، کنترل و عقلانیت.
⚠️مشکل کجا بود؟ چرا ORM جوابگو نبود؟
اگرچه ORM در شروع پروژهها خیلی مفید است (خصوصاً برای CRUDهای سریع و MVPها)، اما با رشد سیستم، مشکلاتی کمکم خود را نشان میدهند:
🧨معضل N+1 Query
کوئریهایی که ساده به نظر میرسند، در باطن دهها یا صدها درخواست اضافه تولید میکنند.
🌀 کدهای پیچیده اما غیرشفاف
برای کوئریهای پیچیدهتر مثل Window Function، CTE یا Join چندجدولی، باید به انواع annotationها، chainهای مبهم، یا زبانهای خاص ORM (مثل JPQL) متوسل شد — که در نهایت باز هم میرسیم به نوشتن SQL، فقط با دردسر بیشتر.
🔍 ضعف در دیباگ و پروفایلینگ
در ORM، بهسختی میشود فهمید دقیقاً چه کوئریای به دیتابیس رفته. این یعنی دیباگِ کندیها تقریباً کورکورانه است.
💡 ناسازگاری با مدل واقعی دادهها
دیتابیس با row و index و join کار میکند؛ ORM با کلاس و رابطه شیگرایانه. این تطبیق، بهویژه در سیستمهای پیچیده، منجر به کدهایی میشود که بیشتر شبیه «جنگیدن با ORM» هستند.
🎯چرا SQL خام یک تفاوت واقعی ایجاد کرد؟
بعد از مهاجرت، همه تیمها روی این دستاوردها تأکید داشتند:
✅ کنترل کامل
میدانیم چه کوئری نوشتهایم، چه زمانی اجرا میشود، و چگونه میتوان آن را بهینه کرد.
✅ شفافیت
کوئری واضح است، بدون «جادوی مخفی». این یعنی همه تیم — از جونیور تا لید — متوجه میشود چه اتفاقی میافتد.
✅ هماهنگی بیشتر با منطق دامنه
بهجای تعریف business logic در repository و annotation، همهچیز در لایههای مشخص خدماتی و use-case محور قرار میگیرد.
✅ استفاده کامل از قدرت دیتابیس
ویژگیهایی مثل Window Function، CTE، JSONB و Partial Index که در ORM اغلب یا پشتیبانی نمیشوند یا با پیچیدگی زیاد ممکناند، در SQL خام بهراحتی قابل استفادهاند.
📌نگهداری و مقیاسپذیری چطور مدیریت شد؟
برای جلوگیری از بینظمی، تیمها:
- کوئریها را در فایلهای جدا و نسخهدار نگه داشتند
- از template و query loaderهای سبک استفاده کردند
- روی هر کوئری تست (یا حداقل EXPLAIN) نوشتند
- قواعد ساده ولی سختگیرانهای برای امنیت (مثل پارامترگذاری) اعمال کردند
در نتیجه، برخلاف تصور اولیه، نگهداشت SQL خام هم قابل مدیریت و حتی لذتبخش شد.
💡کی باید ORM را کنار گذاشت؟
تجربهی مشترک تیمها نشان میدهد:
✅برای پروژههای کوچک، MVPها یا پنلهای ادمین، ORM عالی است.
✅اما در پروژههای دادهمحور، با ترافیک بالا، کوئریهای پیچیده و نیاز به کنترل عملکرد، ORM بهجای کمک، تبدیل به مانع میشود.
📚 جمعبندی
بسیاری از ما با ORMها بزرگ شدهایم اما آیا هنوز ORM بهترین ابزار ماست؟ یا فقط آسانترین است؟
در دنیایی که عملکرد، شفافیت و کنترل ارزش بیشتری از سرعت اولیه دارند، شاید وقت آن است که دوباره به SQL خام یا ترکیب آن با ORm فکر کنیم — این بار با بلوغ بیشتر و ابزارهای بهتر.
اخیرا در مدیوم با تعداد زیادی از مقالهها مواجه میشوم که یک پیام مشترک دارند:
🔁 «ما #ORM را کنار گذاشتیم و به #SQL خام مهاجرت کردیم — و دیگر برنمیگردیم.»
نکته جالب اینجاست که این تصمیمها معمولاً از سر عشق به SQL گرفته نشدهاند، بلکه از دل دردسرهای #ORM زاده شدهاند.
در چند مقالهی اخیر که مطالعه کردم، تیمهای مختلفی با تکنولوژیهای مختلف (از #Java + #Postgres گرفته تا #Go + #SQLAlchemy) تجربهی مهاجرت از ORM را به اشتراک گذاشتهاند — نه فقط برای بهبود سرعت، بلکه برای بازگشت به شفافیت، کنترل و عقلانیت.
⚠️مشکل کجا بود؟ چرا ORM جوابگو نبود؟
اگرچه ORM در شروع پروژهها خیلی مفید است (خصوصاً برای CRUDهای سریع و MVPها)، اما با رشد سیستم، مشکلاتی کمکم خود را نشان میدهند:
🧨معضل N+1 Query
کوئریهایی که ساده به نظر میرسند، در باطن دهها یا صدها درخواست اضافه تولید میکنند.
🌀 کدهای پیچیده اما غیرشفاف
برای کوئریهای پیچیدهتر مثل Window Function، CTE یا Join چندجدولی، باید به انواع annotationها، chainهای مبهم، یا زبانهای خاص ORM (مثل JPQL) متوسل شد — که در نهایت باز هم میرسیم به نوشتن SQL، فقط با دردسر بیشتر.
🔍 ضعف در دیباگ و پروفایلینگ
در ORM، بهسختی میشود فهمید دقیقاً چه کوئریای به دیتابیس رفته. این یعنی دیباگِ کندیها تقریباً کورکورانه است.
💡 ناسازگاری با مدل واقعی دادهها
دیتابیس با row و index و join کار میکند؛ ORM با کلاس و رابطه شیگرایانه. این تطبیق، بهویژه در سیستمهای پیچیده، منجر به کدهایی میشود که بیشتر شبیه «جنگیدن با ORM» هستند.
🎯چرا SQL خام یک تفاوت واقعی ایجاد کرد؟
بعد از مهاجرت، همه تیمها روی این دستاوردها تأکید داشتند:
✅ کنترل کامل
میدانیم چه کوئری نوشتهایم، چه زمانی اجرا میشود، و چگونه میتوان آن را بهینه کرد.
✅ شفافیت
کوئری واضح است، بدون «جادوی مخفی». این یعنی همه تیم — از جونیور تا لید — متوجه میشود چه اتفاقی میافتد.
✅ هماهنگی بیشتر با منطق دامنه
بهجای تعریف business logic در repository و annotation، همهچیز در لایههای مشخص خدماتی و use-case محور قرار میگیرد.
✅ استفاده کامل از قدرت دیتابیس
ویژگیهایی مثل Window Function، CTE، JSONB و Partial Index که در ORM اغلب یا پشتیبانی نمیشوند یا با پیچیدگی زیاد ممکناند، در SQL خام بهراحتی قابل استفادهاند.
📌نگهداری و مقیاسپذیری چطور مدیریت شد؟
برای جلوگیری از بینظمی، تیمها:
- کوئریها را در فایلهای جدا و نسخهدار نگه داشتند
- از template و query loaderهای سبک استفاده کردند
- روی هر کوئری تست (یا حداقل EXPLAIN) نوشتند
- قواعد ساده ولی سختگیرانهای برای امنیت (مثل پارامترگذاری) اعمال کردند
در نتیجه، برخلاف تصور اولیه، نگهداشت SQL خام هم قابل مدیریت و حتی لذتبخش شد.
💡کی باید ORM را کنار گذاشت؟
تجربهی مشترک تیمها نشان میدهد:
✅برای پروژههای کوچک، MVPها یا پنلهای ادمین، ORM عالی است.
✅اما در پروژههای دادهمحور، با ترافیک بالا، کوئریهای پیچیده و نیاز به کنترل عملکرد، ORM بهجای کمک، تبدیل به مانع میشود.
📚 جمعبندی
بسیاری از ما با ORMها بزرگ شدهایم اما آیا هنوز ORM بهترین ابزار ماست؟ یا فقط آسانترین است؟
در دنیایی که عملکرد، شفافیت و کنترل ارزش بیشتری از سرعت اولیه دارند، شاید وقت آن است که دوباره به SQL خام یا ترکیب آن با ORm فکر کنیم — این بار با بلوغ بیشتر و ابزارهای بهتر.
👍5❤1