یک راه خوب برای ارتقای مهارت در زمان یادگیری کدنویسی، حل کردن مشکلات چالش برانگیز است. حل کردن چالش ها و پازل های مختلف می تواند به شما کمک کند تا به یک «حل کننده مشکل» ماهر تبدیل شوید، پیچیدگی های یک زبان برنامه نویسی را یاد بگیرید، برای یک مصاحبه کاری آماده شوید، الگوریتم های جدیدی را یاد بگیرید و چیزهای دیگر.
در زیر شما می توانید لیستی از وبسایت هایی که شما را به چالش های کدنویسی دعوت می کنند، را ببینید. برای هر کدام از این آیتم ها توضیح کوتاهی نوشته شده که شامل کار اصلی و پیشنهاد کلی هر کدام است.
TopCoder یکی از اصلی ترین پلتفرم هایی است که شرایط برنامه نویسی آنلاین رقابتی را برای برنامه نویسان فراهم می آورد. این پلتفرم برای شما چالش های الگوریتمی را به شما نشان می دهد که شما می توانید به صورت آنلاین و با استفاده از کدنویس آنلاین وبسایت آنها را حل کنید. این پلتفرم همچنین هر چند وقت در ماه مسابقات برنامه نویسی برگزار می کند، که در آن شما برای حل کردن سریع تر چالش های مختلف با دیگران رقابت می کنید و در نهایت امتیاز می گیرید.
رتبه کاربران در TopCoder بسیار خوب است. دلیل این موضوع فعالیت و رقابت مسمتر برنامه نویسان در وبسایت است. بالاترین رتبه در این وبسایت مربوط به یک برنامه نویس روسی به اسم Peter است که در وبلاگ خود هم در مورد کدنویسی، رقابت، الگوریتم، ریاضی و چیزهای بیشتری صحبت می کند.
CoderByte برای شما بیشتر از ۲۰۰ چالش کدنویسی را فراهم آورده است که می توانید به صورت مستقیم با استفاده یکی از ۱۰ زبان برنامه نویسی آن ها را حل کنید. یک مثال از این حالت را می توانید از لینک مشاهده کنید. چالش ها و مثال های این پلتفرم در سطوح مختلفی از پیدا کردن بزرگترین کلمه در یک رشته گرفته تا چاپ یک نمودار کاردینالی را شامل می شود.
آنها همچنین مجموعه ی از دوره های آموزشی مربوط به الگوریتم، معرفی های ویدیویی و مصاحبه ها را فراهم آورده اند. برعکس HackerRank و یا وبسایت های مشابه در این وبسایت شما قادر به دیدن راههای حل مسائل توسط دیگران و راه حل اصلی مسائل که توسط خود CoderByte فراهم شده است را ببینید.
Project Euler مجموعه بزرگی از موضوعات مربوط به علوم کامپیوتر و ریاضیات را برای شما فراهم کرده است. چالش ها عموما شامل نوشتن یک برنامه کوچک برای کشف کردن راه حل برای یک معادله یا فرمول ریاضی است. برای مثال پیدا کردن اعدادی که حاصل جمعشان برابر با عدد X است.
در این پلتفرم شما نمی توانید به صورت مستقیم و با استفاده از کد ادیتور آنلاین جواب دهید، پس شما ابتدا باید راه حل را روی کامپیوتر خود پیدا کنید و سپس آن را روی وبسایت قرار دهید.
HackerRank چالش هایی را در حوضه های مختلفی مانند الگوریتم، ریاضیات، SQL، مبانی برنامه نویسی، هوش مصنوعی و چیزهای دیگر فراهم آورده است. شما می توانید جواب و راه حل این چالش ها را به صورت مستقیم در وبسایت جواب بدهید، برای دیدن یک مثال از سوالات به این لینک مراجعه کنید. آنها همچنین یک مکان برای گفتگو و هیئت مدیره مربوط به یک راه حل را فراهم آورده اند. همچنین در کنار هر چالش یک سرمقاله برای بهتر آشنا شدن با چالش و حل کردن در دسترس شما قرار می دهند. همانطور که در بالا ذکر شد در پلتفرم HackerRank شما نمی توانید جواب راه حل های دیگران را به صورت مستقیم نگاه کنید.
امکان بسیار جالب پلتفرم HackerRank توانایی دادن به کاربران برای ثبت کردن اپلیکیشن های خود و همچنین درخواست دادن برای یک کار از شرکتی که چالش ها را حمایت می کند، است.
CodeChef یک وبسایت رقابتی برنامه نویسی هندی است که صدها چالش مختلف را برای شما فراهم می آورد. شما قادر خواهید بود که در این وبسایت از کد ادیتور آنلاین آن استفاده کنید و از مجموعه ای چالش های مختلف را که در دسته بندی های متفاوت جداسازی شده اند، براساس سطح مهارت خود، استفاده کنید. در این لینک می توانید مثالی از این موارد را مشاهده نمایید. آنها دارای جمع بسیار بزرگی از کدنویس ها هستند که در انجمن ها، نوشتن آموزش ها و بخش رقابتی وبسایت مشارکت می کنند.
CodeEval مشابه به پلتفرم HackerRank است. در این پلتفرم تعدادی از شرکت ها وجود دارد که چالش های کدنویسی را حمایت و اسپانسری می کنند، این کار به شما کمک می کند تا اگر بهترین در امر حل کردن مشکلات باشید، فرصتی برای استخدام شدن پیدا کنید. شرکت های می توانند چالش های جدیدی را خلق کنند و رقابت کنندگان را برای جواب آن میزبانی نمایند. در نهایت این کار باعث می شود که آنها بتوانند توسعه دهنده جدیدی را در کارشان استخدام کند. شما می توانید لیستی از این گونه چالش ها را در این لینک مشاهده کنید.
Codewars مجموعه ای بزرگ از چالش های کدنویسی که توسط اجتماع خودشان نوشته و یا ویرایش می شود را برای شما فراهم می آورد. شما می توانید جواب چالش ها را به صورت مستقیم با استفاده از کد ادیتور آنلاین در محدوده چند زبان برنامه نویسی مختلف جواب بدهید. شما می توانید بحث های مربوط به هر کدام از چالش ها را در کنار آن بیابید. این موضوع برای جواب های حل مربوط به چالش نیز صدق می کند.
LeetCode یک قاضی آنلاین (Online Judge) است. و به شما قابلیت دسترسی به بیش از ۱۹۰ مسئله چالش برانگیز را می دهد. در نهایت این سیستم هدف دارد تا شما را برای یک مصاحبه کاری آماده کند. شما می توانید جواب مسائل را به صورت مستقیم و آنلاین در یکی از ۹ زبان برنامه نویسی قابل دسترس در این پلتفرم پیدا کنید. شما نمی توانید جواب حل های دیگران را مشاهده کنید اما قادر خواهید بود که برای راه حل خود یک سیستم آمار کوچکی مثلا اینکه کد شما چقدر سریع اجرا خواهد شد را فراهم کنید.
آنها همچنین بخشی تحت عنوان Mock Interview دارند که مخصوصا برای مصاحبه های کاری آماده شده است. بخش های دیگری نیز برای جدل های کدنویسی و مقالات در وبسایت وجود دارد که می توانید از آنها استفاده کنید.
SPOJ نیز یک قاضی آنلاین است که برای شما بیشتر از ۲۰ هزار چالش کدنویسی را فراهم آورده است. شما قادر خواهید بود که کدهای خود را در ابزار کدنویسی آنلاین قرار دهید. SPOJ همچنین بخشی برای جدل های کدنویسی و فراهم آورده است که کاربران می توانند از طریق آن روی چالش های کدنویسی گفتگو کنند. تفاوت این وبسایت با بقیه در این است که هیچگونه راه حل رسمی یا مقاله برای حل مسائل فراهم نشده است.
CodinGame با ۹ وبسایتی که تا حالا با آنها آشنا شدیم کاملا متفاوت است، در این پلتفرم بجای نوشتن کد مربوط به چالش ها در یک ادیتور، شما به صورت واقعی در ساختن یک بازی که در حال اجرای آن هستید به صورت آنلاین مشارکت دارید. شما می توانید لیستی از بازی ها را اینجا و نمونه ای از یکی را اینجا نگاه کنید. بازی ها اغلب همراه با توضیحات راجب به مسئله، حالت های آزمایشی و یک کد ادیتور می باشد که در آن می توانید با بیش از بیست زبان برنامه نویسی کدنویسی بکنید. رقابت کردن در این پلتفرم نیز به صورت کامل با پلتفرم های دیگر متفاوت است. این پلتفرم هنوز هم یکی از بهترین انتخاب ها برای برنامه نویس های است که علاقه مند به حل کردن چالش های برنامه نویسی هستند، است.
این لیست براساس چند چیز نوشته شده است: اول از همه تجربه شخصی من در استفاده از بعضی از آنها، بعد از آن چند جستجوی گوگلی، پست های کوئرا و مقالاتی مانند این و این. همچنین در این مقاله از یک تحلیل و شمارش آرا کاربران مختلف در انجمن های برنامه نویسی برای انتخاب پلتفرم استفاده کرده ام.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید