بوتکمپ مهندسی نرمافزار «نیمبو» (شروع مسیر حرفهای در سحاب)
ما در «سحاب» دنبال آدمهایی هستیم که وقتی با یه مسئله پیچیده مواجه میشن، عقب نمیکشن؛ بلکه اون رو یه فرصت واقعی برای یادگیری و به چالش کشیدن خودشون میبینن. رشد کل مجموعه ما، حاصل حضور همین روحیه در تیمهاست. اگر از مواجه شدن با ابهام و کار با تکنولوژیهای جدید نمیترسی، دوست داری کنار مهندسان باهوش و باسابقه کار کنی و با تلاش خودت سقف تواناییهات رو بالا ببری، جای تو پیش ما خالیه. اگر چشمانداز چند سال آیندهات اینه که به یک مهندس نرمافزار ارشد در حوزه سیستمهای توزیعشده و دادههای کلان (Big Data) تبدیل بشی، نیمبو بهترین نقطه شروعه.
«نیمبو» چیه؟
نیمبو یک دوره فشرده و دوماهه برای یادگیری عمیق، کار تیمی روی پروژههای واقعی و در نهایت یک مسیر مستقیم برای ورود به تیمهای فنی سحاب است. ما معتقدیم پتانسیل و مهارتهای یک نفر رو نمیشه تو یک جلسه مصاحبه چند دقیقهای قضاوت کرد؛ برای همین، این دو ماه فرصتیه تا کنار هم کار کنیم، فرهنگ همدیگه رو بشناسیم و تواناییهات رو در عمل ببینیم. معیار اصلی ما اشتیاق، پتانسیل یادگیری و تفکر حل مسئله است؛ پس نگران نداشتن سابقه کاری زیاد نباش!
در نیمبو قراره چه کارهایی انجام بدی:
- کدنویسی تمیز و بازآفرینی (Clean Code & Refactoring): یادگیری عملی استانداردهای نرمافزاری، اصول SOLID و معماری کد برای نوشتن کدهایی بهینه، خوانا و نگهداریپذیر.
- فرهنگ مهندسی و بازبینی کد (Code Review): تجربه واقعی توسعه تیمی؛ چطور کدهای دیگران رو به شکل سازنده نقد کنی، بازخورد فنیِ اثربخش بدی و کیفیت خروجی تیم رو بالا ببری.
- توسعه آرتیفکتهای پیچیده پلتفرم داده: فراتر از نوشتن خطوط ساده داده (Data Pipelines)، یاد میگیری چطور اپلیکیشنها و اجزای ساختاریافته یک Data Platform واقعی رو طراحی و پیادهسازی کنی.
- مهندسی کلانداده در عمل (Big Data): پردازش و مدیریت حجم عظیمی از دادهها با استفاده از ابزارهای قدرتمند دنیای سیستمهای توزیعشده مثل Kafka و Spark.
- تفکر معماری در سیستمهای توزیعشده: درک چالشهای بزرگ مثل هماهنگی بین کلاسترها، مدیریت پارتیشنها و نرخ پردازش دادهها در ابعاد کلان.
پیشنیازهایی که برای شروع مسیر لازمه:
- تفکر الگوریتمی و حل مسئله: داشتن ذهن تحلیلگر برای شکستن و حل مسائل پیچیده.
- مفاهیم پایهای نرمافزار: آشنایی با یک زبان شیءگرا (ترجیحاً جاوا)، مفاهیم OOP و الگوهای طراحی (Design Patterns).
- مبانی علوم کامپیوتر: درک خوب از ساختمان دادهها (Data Structures)، مفاهیم پایگاه داده و برنامهنویسی همروند (Concurrency).
- ابزارهای اولیه توسعه: آشنایی با Git (برای مدیریت کدها) و Unit Testing (برای سنجش صحت کد خودت).
- روحیه تیمی: اشتیاق بالا برای یادگیری دوطرفه، به اشتراکگذاری دانش و کار در کنار دیگران.
خوشحال میشیم اگه اینا رو هم بلد باشی (وگرنه با هم یاد میگیریم):
- آشنایی با مفاهیم معماری REST و ابزارهای متداول CI/CD.
- آشنایی اولیه با ابزارهای اکوسیستم کلانداده (Hadoop, HBase, Redis, Zookeeper و...).
- تجربه کار در محیط لینوکس (مفاهیم Sysadmin و اسکریپتنویسی Shell).
- دید اولیه نسبت به ابزارهای زیرساخت و کانتینریسازی (Docker, Kubernetes, Ansible).