
بسیاری از دوستانی که تازه اقدام به یادگیری برنامهنویسی میکنند مدام به این فکر هستند که آیا آموزههای من در راستای بازار کار هست یا صرفا یک سری آموزش آکادمیک است که در دنیای واقعی کاربرد ندارد. همچنین بعد از یادگیری برنامهنویسی مسئلیه ای که ذهن را به خود مشغول میکند این است که آیا به ادازه کافی مهارت دارم که به بازار کار ورود کنم ؟
بهترین راه برای پاسخ این این سوالات انحام پروژه است ولی مشکلی اصلی پیدا کردن پروژه متناسب با بازار کار است که با آن خود را بسنجیم.
آکادمی آموزشی مدرن سی پلاس پلاس برای پاسخ به این نیاز کاربران اقدام به تهیه یک لیست از پروژهها با موضوعات مختلف برای سنجش و یادگیری برنامه نویسان کرده است.
کدهای خود را در حساب github یا gitlab یا gitee خود به صورت عمومی (public) منتشر کنید و لینک ریپازتوری را به همراه اطلاعات فردی خود شامل
- نام
- نام خانوادگی
- سن
- شماره تماس
- آدرس ایمیل
- میزان تحصیلات
به ایمیل training@moderncpp.ir ارسال کنید.
تلاش ما بر این است که کدهای ارسالی توسط دوستان بررسی شده و نکاتی که منجر به بهبود کیفیت کد دوستان میشود را هم برای ایشان ارسال کنیم و هم به عنوان مقاله در سایت منتشر کنیم تا دوستان دیگر هم امکان استفاده از این نکات را داشته باشند.
آزمونها
مبتدی
- آزمون مبتدی (عمومی)
متوسط
- آزمون شبکه و سرور
- آزمون رابط کاربری
- گرافیک دو بعدی
- آزمون گرافیک سه بعدی
- آزمون بازی سازی
- پردازش تصویر
حرفهای
در رده حرفهای انجام پروژه اهممیت کمتری دارد و چیزی که باید مورد توجه قرار گیرد توان همکاری و درک زبان مشترک دیگر برنامهنویسان است به همین منظور برای سنجش برنامهنویسان حرفهای آزمون مشارکت در پروژههای متن باز است که در زمینههای مختلف وجود دارند که در ادامه به برخی از آنها میپردازیم:
- مهاجرت رابط کاربری audacity از WXWidget به Qt
- پروژه gnuradio
- موتور بازی مانند Unreal Engine یا Cry Engine
- کتابخانه trantor
- فریمورک drogon
آزمونهای مبتدی
عمومی
برنامهای بنویسید که امکان ثبت نام کاربر وجود داشته باشد و بعد از این که کاربر وارد شد لیست معماهای قابل اجرا نمایش داده شود و کاربر بتواند با انتخاب هر معما سوال را ببیند و جواب را وارد کند و پیام متناسب با جواب خود را دریافت کند. و با توجه به میزان معماهای درست جواب داده شده امتیاز مثبت دریافت کند و در صورتی که سه جواب اشتباه داشت به اندازه امتیاز یک جواب درست از او کم شود.
امکان بارگذاری سوال از فایل یا دیتابیس وجود داشته باشد.
آزمونهای متوسط
آزمون شبکه و سرور
یک سیستم محاسبات توزیع شده بنویسید که شامل برنامههای زیر باشد:
1. سرور
2. کلاینت کارگر
3. کلاینت کارفرما
روند کاربرد به این صورت است که کلاینت کارگر به سرور متصل شده و منتظر دریافت دیتا و عملیات میماند و یک کلاینت کارفرما نیز وجود دارد که وقتی به سرور متصل میشود از بین عملیات های موجود انتخاب کرده و دیتای مورد نظر خود را برای سرور میفرستد داده بین کارگرها تقسیم شده و پس از انجام عملیات نتیجه نهایی در پاسخ به درخواست کلاینت کارفرما ارسال شود.
عملیاتهای مورد پشتیبانی
1. جمع
2. ضرب
دیتا میتواند به صورت csv یا باینری باشد.
پروتکل ارتباطی باید بر پایه یک پروتکل قابل اعتماد (reliable) مانند TCP باشد.
آزمون رابط کاربری
کلاینت برای یکی از سایتهای مشهور طراحی و پیاده سازی کنید برای یافتن API های قابل پیادهسازی ایرانی میتوانید به لینک لیست API های ارائه شده توسط سایتهای ایرانی مراجعه کنید و برنامهای شکیل برای یکی از APIهای موجود طراحی کرده و منتشر کنید. در صورتی که برنامه موبایل توسعه دادید در یکی از فروشگاههای موبایلی منتشر کرده و لینک را به همراه لینک ریپازتوری آن منتشر کنید.
گرافیک دو بعدی
یک بازی دو بعدی طراحی کنید و در صورتی که به طرح و منابع برای طراحی بازی نیاز داشتید میتوانید آنها را از سایتهای مرتبط مانند opengameart دریافت کنید.
گرافیک سه بعدی
یک نرمافزار طراحی کنید که بتواند در چند فرمت مختلف فایلهای سه بعدی را خوانده و نمایش دهد و در زمان ذخیره به هرکدام از فرمتهای مورد پشتیبانی که لازم شد ذخیره کند.
آزمون بازی سازی
برنامهای بنویسید که کاربر بعد از ورود به آن موضوع مورد نظر خود را از بین موضوعات ارائه شده اتخاب کند و به سوالات چهار گزینهای پاسخ دهد و به ازای سوالاتی که در موضوعات مختلف پاسخ میدهد امتیاز دریافت کند و یک نمودار راداری برای نمایش مهارت کاربر به آن نشان دهید.
آزمون پردازش تصویر
یک نرمافزار تشخیص چهره بنویسید. که تصویر را تشخیص داده و آن را در عکس یا ویدئو با یک مربع سبز مشخص کند.
با انجام پروژههای بالا میتوانید توانایی خود را تقویت کرده و همینطور برای خود نمونهکار ایجاد کنید. در صورتی که در موضوعات دیگر برنامه خود را توسعه دادهاید در نظرات برای ما بنویسید.