همیارآنلاین

کانال ایتا https://eitaa.com/hamyaronline

همیارآنلاین

کانال ایتا https://eitaa.com/hamyaronline

مچ اندازی یا رقابت برنامه نویس ها


  

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

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

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

سازوکار رقابت‌ها

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

در حالت معمول برنامه‌نویسان برای حل یک مساله ابتدا الگوریتمی برای آن تهیه می‌کنند سپس کدهای مربوط به آن را می‌نویسند. در رقابت‌های برنامه‌نویسی جهانی هم معمولا چنین روندی در پیش گرفته می‌شود.

در برخی رقابت‌های برنامه‌نویسی، از شرکت‌کنندگان خواسته می‌شود فقط از یک زبان برنامه‌نویسی (مثلا ویژوال بیسیک یا جاوا) برای کدنویسی استفاده کنند؛ با این حال بسیاری از رقابت‌ها هم دست شرکت‌کنندگان را در انتخاب زبان مورد نظر خود باز می‌گذارند.

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

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

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

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

کوتاه‌مدت یا بلندمدت؟

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

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

باز هم گوگل

شرکت گوگل که در بسیاری از حوزه‌های دیجیتال پیشتاز است، چند تا از مهم‌ترین رقابت‌های برنامه‌نویسی دنیا را هم برگزار می‌کند. یکی از معروف‌ترین این رقابت‌ها «گوگل کد جم» (Google Code jam) نام دارد که از سال 1382 خورشیدی آغاز شده است و هر ساله تعداد زیادی برنامه‌نویس در این رقابت شرکت می‌کنند.

سال 1391 بیش از 35 هزار نفر از سراسر دنیا در این رقابت شرکت کردند. برندگان هر دوره علاوه بر جایزه نقدی، ممکن است از سوی گوگل هم استخدام شوند.

رقابت دانشگاه‌ها

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

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

جام‌جهانی هکرها

شرکت فیسبوک رقابتی دیگر را با نام جام هکر فیسبوک (Facebook Hacker Cup) برگزار می‌کند. هدف از این رقابت‌ها که از سه سال پیش آغاز شده جذب نیروی با استعداد از سراسر دنیا برای این شرکت است.

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

دانشجو، تابستان و گوگل

«تابستان کدنویسی گوگل» (Summer of Code Google) نام برنامه‌ای است که از سال 1385 خورشیدی از سوی شرکت گوگل برگزار شده است. دانشجویان با حداقل 18 سال می‌توانند از سراسر دنیا در این برنامه شرکت کنند. شرکت‌کنندگان باید طی تابستان یک پروژه کدنویسی برای ساخت نرم افزاری متن باز را به انجام برسانند. به برنده مبلغ 5500 دلار تعلق می‌گیرد و ممکن است شرکت‌های معروفی برنامه نوشته شده را از برنده خریداری کنند.

گوگل برای نوجوانان

گوگل همواره جزو طرفداران نرم افزارهای متن باز و نیز نرم افزارهای آزاد بوده است. به همین دلیل از سال 2007 برنامه‌هایی را برای تشویق نوجوانان به نرم افزارهای متن باز تدارک دید. این برنامه از سال 2010 با عنوان گوگل کد این (Google Code-in) اجرا شد و در چند سال اخیر بیش از 1500 دانش‌آموز از 78 کشور در این رقابت آنلاین شرکت کرده‌اند.

در این برنامه، گوگل با همکاری شرکت‌های پیشرو در تهیه برنامه‌های متن باز، پروژه‌های کوچکی برای نوجوانان تهیه می‌کند تا به این ترتیب آنها تجربه کار روی برنامه‌های متن باز را بیابند. کلاس‌های آموزشی آنلاین برگزار شده برای نوجوانان شرکت‌کننده در این برنامه، از مهم‌ترین بخش‌های این رویداد است.

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

صالح سپهری‌فر

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد