اولین دوره کارآموزی من: همچنان در جستجو، همچنان در حال ساختن

من هزاران ساعت را صرف تلاش برای به دست آوردن اولین دوره کارآموزی مهندسی نرم‌افزار خود کردم.

من مسائل DSA را حل کردم. برای شغل‌ها درخواست فرستادم. با ریجکت‌های زیادی روبرو شدم. برخی شرکت‌ها هرگز پاسخی ندادند. تعداد کمی مرا به مصاحبه دعوت کردند.

یک مصاحبه دیدگاه مرا تغییر داد. مصاحبه‌کننده درباره پروژه‌ام پرسید. او یک سوال پرسید:

«آیا کاربر واقعی داری؟»

نداشتم. من پروژه‌ها را برای یادگیری می‌ساختم. آن‌ها را برای مردم نمی‌ساختم.

آن سوال رویکرد مرا تغییر داد.

من همچنین در آزمون گواهینامه AZ-900 شکست خوردم. آماده نبودم. این موضوع مثل یک عقب‌گرد به نظر می‌رسید. مهارت‌هایم را زیر سوال بردم. سپس تمرکزم را از شکست برداشتم و روی بهبود بخشیدن به خودم تمرکز کردم.

تماشای آموزش‌ها را متوقف کردم. تصمیم گرفتم CloudStash را بسازم.

می‌خواستم سیستم‌های عملیاتی (production systems) را درک کنم. یک پلتفرم ذخیره‌سازی فایل ابری با استفاده از این ابزارها ساختم:

• Node.js and TypeScript • PostgreSQL • Redis • BullMQ workers • JWT authentication • Docker • Object storage • Background processing • Real-time upload progress

کدنویسی بخش سخت کار نبود. استقرار (Deployment) بخش سخت بود. من با Docker، متغیرهای محیطی (environment variables) و اتصالات Redis دست و پنجه نرم کردم.

بالاخره پلتفرم را راه‌اندازی کردم. انتظار کاربر داشتم. تقریباً هیچ‌کس نیامد.

یک حقیقت تلخ را یاد گرفتم. ساختن نرم‌افزار با وادار کردن مردم به استفاده از نرم‌افزار متفاوت است. کدنویسی تنها بخشی از کار است. شما همچنین باید قابلیت استفاده (usability)، مستندسازی (documentation) و اعتماد را درک کنید.

من هنوز به دنبال اولین دوره کارآموزی خود هستم. هنوز ایمیل‌های ریجکت دریافت می‌کنم. هنوز احساس استرس دارم.

اما هدف من اکنون متفاوت است. من پروژه‌ها را فقط برای پر کردن پروفایل GitHub خود نمی‌سازم. من نرم‌افزار می‌سازم تا مشکلات واقعی را حل کنم.

CloudStash ممکن است Dropbox بعدی نباشد. اهمیتی ندارد. این پروژه بیش از هر دوره‌ای به من آموخت.

اگر به دنبال اولین موقعیت شغلی خود هستید، این را به خاطر بسپارید:

• رد شدن به این معنا نیست که در حال پیشرفت نیستید. • هر مصاحبه به شما نشان می‌دهد که مرحله بعد چه چیزی را باید یاد بگیرید. • هر استقرار (deployment) درسی به شما می‌آموزد. • هر باگ (bug) از شما مهندس بهتری می‌سازد.

تنها یک فرصت نیاز دارید. من هنوز منتظر فرصت خود هستم. تا آن زمان، به ساختن ادامه خواهم داد.

چه چیزی به شما کمک کرد تا اولین شغل مهندسی نرم‌افزار خود را به دست آورید؟ آیا متن‌باز (open source) بود، شبکه‌سازی (networking) یا یک پروژه خاص؟

منبع: https://dev.to/asb_it/my-first-internship-still-searching-still-building-1bn1