تصور کنید که چند ماهی است که وارد دنیای برنامه نویسی شده‌اید و در حال گذراندن دوره های آموزشی هستید و بیشتر وقتتان را با کد و ویدیوی آموزشی و متن های برنامه نویسی درگیر هستید. بعد از این همه مدت که با کدهای مختلف سر و کله زده‌اید الان می‌توانید بگویید که من یک برنامه نویس هستم. اما یک مشکلی هنوز وجود دارد و آن این است که رزومه شما یک بخش ناقص دارد و آن تجربه کاری و نمونه کار است که این بخش اتفاقاً خیلی از نظر شرکت ها مهم است. خبر خوب این است که پورتفولیو شما همان تجربه کاری شما است و در این مقاله قرار است به شما بگویم که چطوری می‌توانید با پروژه هایی این بخش را پر کنید. البته اشتباه نکنید قرار نیست که به شما لیست بدهم که بروید و این لیست از پروژه ها مثل ماشین حساب و … را پیاده‌سازی کنید، بلکه ۵ نوع پروژه استراتژیک به شما معرفی خواهیم کرد که می‌تواند در مصاحبه‌های فنی به شما بسیار کمک کند و در رزومه شما هم یک نقطه مثبت خواهد بود.

حال شاید بپرسید که چرا پورتفولیو در این حد مهم است؟ به صورت خیلی ساده اگر بیان کنیم، شما مثلاً در رزومه خودتان گفته‌اید که به React تسلط دارید و آن را بلد هستید. اما وقتی در پورتفولیو یک اپلیکیشن کامل با React پیاده‌سازی کرده باشید ثابت می‌کنید که ادعای رزومه شما درست بوده است. پس برویم و این ۵ نوع پروژه را ببینیم.

5 نوع پروژه کلیدی برای استخدام

در ابتدا بگویم که خیلی اهمیت ندارد که شما در بخش فرانت اند کار می‌کنید و یا بک اند این 5 نوع پروژه می‌تواند به شما کمک کند.

۱. برنامه استفاده کننده از API

امروزه اکثر یا شاید همه اپلیکیشن ها از سرویس های وب و API ها استفاده می کنند. اگر شما یک پروژه بسازید که از API ها استفاده می‌کند شما بیان می‌کنید که در کار با وب سرویس ها و دریافت و ارسال داده‌ها مشکلی ندارید. همچنین با محیط وب و درخواست های http آشنا هستید. از طرفی چون کار با داده‌های وب سرویس ها به صورت Asynchronous یا غیرهمگام صورت می‌گیرد شما با این پروژه مشخص می‌کنید که با مکانیزم های async آشنا هستید و می‌توانید آن‌ها را مدیریت کنید. حالا به هر زبانی که در حال برنامه نویسی هستید. از طرفی فرمت داده‌های ارسالی توسط وب سرویس ها معمولاً Json و یا به صورت نادر xml است که با نوشتن این پروژه قدرت خود را در کار با این نوع فرمت انتقال داده‌ها هم به نمایش خواهید گذاشت. همچنین این نوع پروژه ها داده‌ها را به صورت پویا به کاربر نشان می‌دهند و جذاب هستند.

اگر بخواهیم چند ایده در مورد این نوع پروژه ها بیان کنیم می‌توانیم اپلیکیشن های زیر را معرفی کنیم.

  • اپلیکیشن آب و هوا: برنامه‌ای که اطلاعات را از API های رایگان دریافت کرده و نمایش می دهد.
  • جستجوی و نمایش فیلم ها: می‌توانید یک موتور جستجوی فیلم بسازید و از API های سایت tmdb استفاده کنید.
  • نمایشگر قیمت ارز دیجیتال: می‌توانید قیمت های لحظه‌ای ارزهای دیجیتال را از سایتی مثل CoinGecko دریافت کرده و نمایش دهید.

2. پروژه فول استک Full-stack

تقریباً هیچ اپلیکیشنی نیست که عملیات CRUD (Create, Read, Update, Delete) را انجام ندهد. این چهار عمل اصلی تقریباً روی همه برنامه‌ها وجود دارد و شاید در برنامه‌های مختلف با موضوعات متفاوت دیده شود ولی اصول همه آن‌ها یکی است. پس اگر پروژه ای داشته باشید که این عملیات را در آن پیاده‌سازی کرده باشید مهارت شما را نشان خواهد داد. شما با نوشتن یک برنامه فول استک ثابت خواهید کرد که می‌توانید بک اند و API های یک اپلیکیشن را پیاده‌سازی کنید و حتی دیتابیس آن را طراحی و مدیریت کنید. همچنین می‌توانید فرانت اند را به بک اند متصل کنید و ارسال و دریافت داده‌ها داشته باشید. به نوعی یک اپلیکیش را از صفر تا صد مدیریت کرده اید. اگر بخواهیم چند تا ایده از این نوع پروژه ها معرفی کنیم می‌توانیم به پروژه های زیر اشاره کنیم.

  • برنامه لیست انجام کار(to-do list): با اینکه این برنامه دیگه برای نمونه کار کلیشه ای شده ولی می تونید از خلاقیت خودتون استفاده کنید و امکانات جالب به آن اضافه کنید که کاربر تجربه خوبی با آن داشته باشد.
  • وبلاگ: ساخت یک وبلاگ که امکان ساخت مقالات جدید و لیست مقالات و و مدیریت آن‌ها را دارد می‌تواند پروژه خوبی باشد همچنین می‌توانید مطالب مختلف آموزشی و نکات را در آن به اشتراک بگذارید.

3. کپی یک سایت محبوب

این نوع پروژه ها بسیار قابل توجه هستند و نشان می‌دهند که شما چشم طراحی دارید و می‌توانید یک رابط کاربری استاندارد و پیچیده را پیاده‌سازی کنید. دقت داشته باشید که فقط کپی نکنید و یک تغییر خلاقانه در آن می‌تواند بسیار قابل توجه باشد. مثلاً اگر صفحه اصلی یک فروشگاه را کپی می‌کنید می‌توانید یک دکمه bookmark برای محصولات برای خودتان قرار دهید اگر سایت اصلی آن را ندارد. با انجام یک پروژه اینچنینی شما نشان می‌دهید که تسلط خوبی بر html, css ابزارهای مرتبط با آن را دارید و می‌توانید به جزئیات مختلف توجه کنید و با انواع عملیات در دنیای واقعی آشنا هستید.

4. یک ابزار یا اسکریپت کاربردی

اگر شما یک ابزار یا اسکریپت کاربردی نوشته باشید این نشان دهنده ی خلاقیت و توانایی حل مسأله شما است. این نشان می‌دهد که شما یک مشکل (حتی کوچک) را در زندگی واقعی پیدا کرده‌اید و برای آن یک راه حل ساخته اید. پروژه های این شکلی نشان می‌دهد که می‌توانید نیاز کاربر را درک کنید و برای آن راه حل بسازید و این خیلی مهم است. اگر بخواهیم چند ایده از این نوع معرفی کنیم می‌توانیم

  • یک اسکریپت پایتون یا برنامه به زبان دیگر بنویسید که فایل‌های پوشه دانلود را بر اساس پسوند پوشه بندی کند زیرا معمولاً پوشه دانلود همه شلوغ است.
  • یک ربات تلگرامی که قیمت لحظه‌ای یک محصول را به شما اعلام می کند.

5. پروژه گروهی یا مشارکت در پروژه های متن باز (open source)

اگر شما در شرکتی استخدام شوید قرار است که در یک تیم کار کنید. پس اگر پروژه ای باشد که نشان دهد که شما کار تیمی را به خوبی انجام می‌دهید. می‌تواند در روند استخدام شما تأثیر مثبتی داشته باشد. شرکت ها معمولاً یک برنامه نویس تنها را زیاد نمی پسندند. همچنین شرکت در این نوع پروژه ها نشان می‌دهد که شما مهارت های نرم (soft skill) و فنی کار گروهی را بلد هستید. پس می‌توانید در گیت هاب به دنبال پروژه های اوپن سورس بگردید و یک باگ کوچک و یا یک غلط املایی در مستندات را پیدا کرده و آن را تصحیح کنید. همین تغییرات ریز هم مشارکت محسوب خواهند شد.

چطور پروژه ها را به نمایش بگذاریم؟

نحوه به نمایش گذاشتن پروژه از خود پروژه مهم‌تر است.زیرا که اگر نتوانید پروژه خود را به درستی ارائه کنید پروژه شما بی‌ارزش نشان داده خواهد شد. برای نمایش پروژه های خود در دنیای واقعی می‌توانید از روش‌های زیر استفاده کنید.

۱. فایل Readme.md عالی

این فایل ویترین کار شما است که در داخل آن باید به صورت واضح توضیح دهید که پروژه شما چیست و چه مشکلی را حل خواهد کرد. همچنین برای ساخت پروژه از چه تکنولوژی هایی استفاده شده. اگر لوگوی تکنولوژی ها را بیاورید فایل شما جذاب‌تر خواهد شد. نحوه نصب پروژه و استفاده از پروژه را هم باید به صورت قدم به قدم توضیح دهید. دقت داشته باشید که در این فایل حتماً اسکرین شات یا یک gif کوتاه از محیط برنامه در این فایل قرار دهید.

2. پروژه خودتان را دیپلوی کنید.

پروژه ای که فقط روی سیستم شما اجرا می‌شود با پروژه ای که قابل دسترس توسط همه باشد بسیار متفاوت است. وقتی شما پروژه ای را دیپلوی می‌کنید در فرایند استخدام نتیجه کار شما به وضوح قابل مشاهده است. مدیر استخدام باید بتواند که پروژه شما را ببیند و بتواند با آن کار کند. پس می‌توانید با استفاده از سرویس های رایگان مثل vercel , netlify برای فرانت اند و Render برای بک اند استفاده کنید و لینک آن را در فایل Readme.md قرار دهید.

۳. کد تمیز بنویسید.

اگر شخصی که قرار است شما را استخدام کند و در استخدام شما نقشی داشته باشد و قرار باشد که کد شما را بخواند که البته در بیشتر موارد کد شما خوانده می‌شود کدهای شما باید خوانا و مرتب و منظم و با ساختار درست باشند. پس به این نکته دقت کنید و حتماً کد تمیز بنویسید.

جمع‌بندی

این 5 نوع پروژه به شما این امکان را می‌دهد که بتوانید از نظر توانایی شخص مصاحبه کننده را قانع کنید که شما یک برنامه نویس مسلط هستید. با داشتن این ۵ نوع پروژه شما اعلام می‌کنید که شما توانایی کار کردن با API ها را دارید و منطق اصلی بک اند و دیتابیس را درک کرده‌اید و چشم طراحی دارید و خلاق هستید و توانایی حل مسأله دارید و قادر هستید در تیم ها به خوبی کار کنید. پس آن‌ها را دست کم نگیرید و قدم به قدم شروع به انجام آن‌ها بکنید. البته لازم نیست که همه ۵ تا را با هم شروع کنید. یکی از دسته بندی ها را که حس می‌کنید در آن ضعیف هستید را انتخاب کنید و ساختن آن را شروع کنید تا به اتمام برسانید.