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

 

در ادامه مطلب با سیرن همراه باشید.

 

۱- مسابقه‌ی برنامه نویسی گوگل

google code jam2
 

 

Google Code Jam مسابقه‌ ای است که گوگل هر ساله برگزار می‌کند. این مسابقات بیشتر با هدف شناسایی استعداد های بالقوه در زمینه‌ی برنامه نویسی و کامپیوتر انجام می‌شود و برنده‌ مسابقه علاوه بر اینکه جایزه نقدی دریافت می‌کند، شانس استخدام در این شرکت را بدست می‌آورد.

در این رقابت شرکت کنندگان ۲۷ ساعت فرصت دارند تا امتیاز لازم برای راه‌یابی به مرحله اول مسابقه را بدست آورند. نحوه‌ برگزاری مسابقه نیز به جز مرحله‌ پایانی که در ساختمان گوگل انجام می‌شود، به صورت آنلاین است. سبک سوالات Code Jam تا حدودی مشابه رقابت های ACM است اما امکان استفاده از هر زبان برنامه‌نویسی، تکنولوژی و یا محیط توسعه‌ای برای حل مسائل آن وجود دارد.

اولین مسابقه Code Jam در سال ۲۰۰۳ برگزار شد و بعد از پنج سال، یعنی در سال ۲۰۰۸ تعداد شرکت کنندگانش به ۱۱۰۰۰ نفر رسید که از ۱۲۸ کشور دنیا برای رسیدن به جایزه‌ی ۱۰۰۰۰ دلاری گوگل رقابت می‌کردند. در آخرین دور این مسابقات که سال گذشته برگزار شد، تعداد شرکت کنندگان از ۲۵۰۰۰ نفر بیشتر بود و برندگان نهایی مسابقه هم شرکت کنندگانی از کشور های چین، بلاروس و روسیه بودند.

۲- مسابقات Facebook Hacker Cup

 

ec007-5
 

 

مسابقات Facebook Hacker Cup رقابت های بین المللی برنامه نویسی است که توسط فیسبوک برگزار می‌شود. این رقابت‌ها در سال ۲۰۱۱ با هدف شناسایی استعدادهای مهندسی برای کار در فیسبوک راه اندازی شده است. این رقابت مجموعه الگوریتم هایی است که باید در مدت زمان مشخصی حل شوند. برای حل مسایل هیچ گونه محدودیتی وجود ندارد و از هر زبان و محیطی می‌توان برای ارائه‌ی راه حل درست استفاده کرد.

در سال ۲۰۱۱ بیش از ۱۱۰۰۰ نفر در این رقابت آنلاین شرکت کردند که برندگان آن، شرکت کنندگانی از کشور ویتنام و چین بودند.

۳- مسابقات آنلاین TopCoder

TopCoder_Arena
 

 

TopCoder یکی از معروف‌ترین سایت هایی است که در زمینه‌ی مسابقات برنامه نویسی وجود دارد. این سایت هر دو هفته یکبار، یک مسابقه به صورت آنلاین برگزار می‌کند و سالانه دو مسابقه‌ حضوری نیز برای تعیین برنده‌ نهایی برگزار می‌شود.

سوالات TopCoder در دو سطح مطرح می‌شوند. سطح اول سوالات آسانتری دارد و هر فرد بعد از اینکه امتیاز خاصی را بدست آورد، می‌تواند در سطح دوم شرکت کند. مسابقات TopCoder زنده برگزار می‌شود، به این معنی که شرکت کننده باید در زمان خاص در مسابقه شرکت کرده و طی یک زمان محدود نیز به سوالات پاسخ دهد. بعد از هر مسابقه هم می‌توان از راهنمای حل مسائل استفاده کرد و همین هم منبع خوبی برای آموزش شرکت کنندگان خواهد بود.

نکته‌ای که برای استفاده از این سایت وجود دارد، این است که برای شرکت در مسابقات باید از نرم افزار خاصی بنام Arena استفاده کرد. البته مراحل ثبت نام در مسابقات این سایت کمی طولانی است و کاربر را سردرگم می‌کند. ولی شرکت در رقابت های آنلاین TopCoder ارزش این سختی را خواهد داشت.

۴- مسابقات برنامه‌نویسی بیان

bayan
 

 

مسابقات برنامه نویسی بیان یک رویداد جهانی است که در سه دوره‌ی متوالی در ایران برگزار شده است و فینال دور سوم آن به زودی در تهران برگزار خواهد شد. این مسابقات را که اولین دوره‌ی آن در سال ۱۳۹۰ برگزار شد، می‌توان بزرگترین رویداد قدرتمند حوزه‌ی برنامه‌نویسی در منطقه دانست. شرکت در این مسابقه انفرادی بوده و تمام مراحل آن به جز فینال به صورت آنلاین برگزار می‌شوند.

تفاوتی که سبک برگزاری مسابقه‌ی بیان با مسابقات ACM دارد، در سبک ارسال پاسخ سوال ها است. در این مسابقه شرکت کنندگان پس از یافتن راه حل مسئله، ورودی مخصوص به خود را از سایت مسابقه دانلود کرده و خروجی تولید شده را در سایت آپلود می‌کنند. با این روش شرکت کنندگان می‌توانند از هر زبان برنامه نویسی برای پاسخ به مسائل استفاده کنند. کافی است تا راه حل ارائه شده، پاسخ درست را نتیجه دهد.

در دوره‌ی قبل این مسابقات، از میان ۳۱۸۲ شرکت کننده‌ که از ۵۴ کشور جهان در رقابت حضور داشته اند، تعداد ۱۷۲۸ نفر از آن‌ها ایرانی بودند. سومین دوره مسابقات برنامه نویسی بیان، آمار و ارقام جالبی را تا قبل از برگزاری دور نهایی از خود به جای گذاشته است. مرحله مقدماتی این مسابقات به پایان رسیده و ۶۰ نفر برگزیده نهایی برای رقابت در فینال اردیبشهت ماه مشخص شده اند.

۲۰ نفر شرکت کننده خارجی برتر (با رعایت شرط از هر کشور یک نفر) به همراه ۴۰ نفر برتر شرکت کنندگان ایرانی، ۶۰ فرد حاضر در دور نهایی را تشکیل می دهند. به طور کلی تعداد ۱۰ هزار و ۲۶۶ نفر برنامه نویس از ۱۰۳ کشور جهان برای شرکت در سومین دوره مسابقات برنامه نویسی بیان ثبت نام کردند.

۵- مسابقات دانشجویی ACM

acm
 

 

مسابقات ACM توسط شرکت IBM و تحت نظارت انجمن ماشین آلات محاسباتی (ACM)، میان دانشجویان سراسر جهان برگزار می‌شود و بعنوان یکی از معتبرترین و بزرگترین رقابت های برنامه نویسی جهان شناخته می‌شود.

تاریخچه‌ی برگزاری این رقابت ها به سال ۱۹۷۷ بازمی‌گردد. از سال ۱۹۷۷ تا سال ۱۹۸۹ بیشتر شرکت کنندگان این مسابقه تنها از دو کشور آمریکا و کانادا بودند اما در سال ۲۰۰۵ و پس از حمایت هایی که از این مسابقات صورت گرفت، ACM به یک رقابت جهانی تبدیل شد که تیم های مختلفی از بیشتر کشورهای دنیا در آن شرکت می‌کردند.

در این مسابقات تیم ها در قالب گروه هایی ۳ نفره با هم رقابت می‌کنند و به هر تیم یک رایانه جهت برنامه نویسی داده می‌شود. مسابقه به این صورت است که حدودا ۸ سوال محاسباتی و الگوریتمی به هر گروه داده می‌شود. هر تیمی که سوال های بیشتری را در مدت زمان کمتر و با خطای کمتری حل کند، رتبه‌ی بهتری کسب خواهد کرد. البته پاسخ به مسائل تنها از طریق دو زبان C، C++، C# و جاوا امکان پذیر خواهد بود. شرط رسیدن به مسابقات جهانی ACM، پیروزی در رقابت های منطقه ای و راه یافتن به مراحل بعدی است.

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

۶- مسابقات IEEEXtreme

Bilkent-Team-Wins-IEEExtreme-8.0620-x-459
 

 

این مسابقات با پشتیبانی موسسه‌ بین المللی IEEE و میان دانشجویان برق و کامپیوتر سراسر جهان برگزار می‌شود. در این مسابقه گروه ‌های ۲ یا ۳ نفره‌ی شرکت‌کننده طی ۲۴ ساعت و به صورت آنلاین به حل مسائل برنامه‌نویسی می‌پردازند. شرکت کنندگان می‌توانند تمام این ۲۴ ساعت را کد بنویسند یا اینکه فقط استراحت کنند!

در این مسابقه هیچ محدودیتی برای سیستم عامل مورد استفاده وجود ندارد ولی سوالات باید با یکی از زبان‌های C و ++C یا جاوا پاسخ داده شوند. برنده مسابقه هزینه‌ی کامل شرکت در یکی از کنفرانس‌های IEEE در هر یک از کشورهای جهان را دریافت خواهد کرد. گرچه اعتبار شرکت در این مسابقه خیلی بیشتر از این جایزه ارزش خواهد داشت.

اولین دوره‌ی مسابقات IEEEXtreme در سال ۲۰۰۶ برگزار شد. در این رقابت ۴۷ تیم شامل ۱۵۰ نفر شرکت کننده، در مسابقه حضور داشتند. این رقم در سال ۲۰۰۸ به ۱۳۰ تیم رسید و سال گذشته نیز ۲۲۰۰ تیم با بیش از ۵۰۰۰ دانشجو در رقابت های IEEEXtreme ثبت نام کردند.

سیستم امتیاز دهی در این رقابت ها بر اساس مدت زمان حل مسئله و راه حل ارائه شده است. داوری میان شرکت کننده ها نیز توسط اعضای IEEE صورت می‌گیرد.

۷- وب سایت داوری آنلاین CodeChef

chef_in_press
 

 

وب‌سایت CodeChef گذشته از برگزاری مسابقات برنامه نویسی، شامل یک سری سوالات است که در چهار سطح سخت، متوسط، همتا و آسان طبقه بندی شده است. شما می‌توانید این سوالات را ببینید و بعد از طی مراحل عضویت رایگان، به آن ها پاسخ دهید.

برنامه نویسان می‌توانند از این پلت فرم برای افزایش سرعت کد نویسی خود و یادگیری مسایل برنامه نویسی استفاده کنند. CodeChef در همان لحظه‌ی پاسخگویی، خطا های برنامه را مشخص می‌کند و در صورت درست بودن جواب، راه حل کاربر را ثبت می‌نماید.بسته به نوع سوال نیز امتیاز خاصی برای هر شرکت کننده ثبت می‌شود. فردی که بیشترین امتیاز را در طول ماه کسب نماید، عنوان “برنامه نویس ماه” را خواهد گرفت.

CodeChef در سال ۲۰۰۹ با هدف ارائه‌ی بستری مناسب برای دانش آموزان و برنامه نویسان هندی آغاز به کار کرد. با استقبالی که برنامه نویسان نشان دادند، CodeChef در سال ۲۰۱۳ به یکی از وب سایت‌های معتبر جهانی تبدیل شد که مسابقات برنامه نویسی برگزار می‌کند.

۸- سایت UVa Online Judge

6398547488376860763
 

 

UVa Online Judge یکی از معتبرترین وب سایت‌هایی است که به میزبانی دانشگاه والادولید اسپانیا مسابقات برنامه نویسی برگزار می‌کند. این سایت مجموعه‌ی بزرگی از سوالات برنامه نویسی را گرد هم آورده و در حال حاضر بیش از ۱۰۰ هزار کاربر دارد. شرکت کنندگان باید با استفاده از یکی از زبان های برنامه نویسی جاوا، پاسکال، ANSI و ++C سوالات پرسیده شده را پاسخ دهند.

UVa برای اولین بار در سال ۱۹۹۵ برای دانشجویان دانشگاه والادولید راه اندازی شد. آن زمان تنها سه نفر در مسابقات آن شرکت کردند. UVa دو سال بعد برای استفاده‌ی عموم آزاد شد و در سال ۲۰۰۰ نیز میزبان برگزاری مسابقات ACM جهانی شد.

۹- مسابقات آنلاین Sphere online judge یا SPOJ

spj
 

 

این سایت یکی از پر طرفدارترین مسابقات برنامه نویسی آنلاین را برگزار می‌کند. بیش از ۲۰۰ هزار کاربر عضو SPOJ هستند که می‌توانند سوالات برنامه نویسی آن را با استفاده از ۴۰ زبان مختلف پاسخ دهند.

سیستم امتیازدهی در این مسابقه متفاوت است. به اینصورت که امتیاز هر سوال با تعداد کسانی که آن را حل می‌کنند، رابطه‌ی عکس دارد. این یعنی مسائلی که افراد کمی موفق به حل آن شده اند، امتیاز بیشتری خواهد داشت و سؤالاتی که بیشتر افراد به آن پاسخ داده اند، امتیاز کمی را به همراه خواهد داشت.

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

۱۰- مسابقات Internet Problem Solving Contest

378795rbot
 

 

این مسابقات در قالب تیم هایی سه نفره و به صورت سالانه برگزار می‌شود. رقابت میان تیم هایی سه نفره صورت می‌گیرد و شامل الگوریتم هایی است که باید در مدت زمان مشخصی پاسخ داده شوند. سوالات به دو دسته‌ی آسان و سخت تقسیم می‌شود که حل مسائل آسان یک امتیاز و پاسخ به مسائل سخت، دو امتیاز را برای شرکت کنندگان به همراه خواهد داشت.

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