17 سایت برای افزایش توانایی حل مسائل برنامه نویسی

‏  10 دقیقه
۲۸ خرداد ۱۳۹۹
17 سایت برای افزایش توانایی حل مسائل برنامه نویسی

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

فهرست محتوای این مقاله

سایت 1 - Programming Praxis

puzzle programming website 01 حل مسائل برنامه نویسی

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

سایت 2 - CodeKata

puzzle programming website 02 حل مسائل برنامه نویسی

این وبلاگ که توسط دیو توماس نوشته شده ‌است، ( نویسنده‌ی کتاب Pragmatic Programmer) شامل مسائل بسیاری است که به‌طور مستقیم با برنامه‌ نویسی دنیای واقعی مرتبط هستند، بنابراین این وب سایت فرصت خوبی است تا مهارت‌های کدنویسی خود را بهبود دهید.

سایت 3 - TopCoder

puzzle programming website 03 حل مسائل برنامه نویسی

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

کاربران رده بالا در TopCoder برنامه نویسان رقابتی بسیار خوبی هستند و به طور منظم در رقابت‌های برنامه ‌نویسی شرکت می‌کنند. همچنین یکی از برترین کاربران که همواره در بالای جدول رده‌بندی قرار دارد (فعلا اول است) پتر میتریچف (Petr Mitrichev) نام دارد. این کاربر یک وبلاگ شخصی با نام الگوریتمهای هفتگی (Algorithms Weekly) دارد که هر هفته در آن در مورد رقابت‌های کد نویسی، الگوریتم‌ها، ریاضی و سایر موارد مربوط می‌نویسد.

سایت 4 - Coderbyte

puzzle programming website 04 حل مسائل برنامه نویسی

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

سایت 5 - Project Euler

puzzle programming website 05 حل مسائل برنامه نویسی

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

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

سایت 6 - HackerRank

puzzle programming website 06 حل مسائل برنامه نویسی

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

سایت 7 - CodinGame

puzzle programming website 07 حل مسائل برنامه نویسی

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

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

سایت 8 - CodeChef

puzzle programming website 08 حل مسائل برنامه نویسی

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

سایت 9 - Exercism

puzzle programming website 09 حل مسائل برنامه نویسی

Exercism یک وب سایت چالش برنامه‌نویسی است که بالای ۳۱۰۰ چالش‌ را بین ۵۲ زبان برنامه‌نویسی مختلف ارایه می‌دهد. بعد از انتخاب زبانی که می‌خواهید در آن حرفه‌ای شوید، با چالش‌های کدنویسی روبه رو خواهید شد. با این حال، این وب سایت کمی متفاوت از دیگر وب سایت‌های رقیب است، زیرا شما پس از تکمیل هر چالش با یک مربی کار می‌کنید. مربی پاسخ‌های شما را به صورت آنلاین بررسی می‌کند و به شما کمک می‌کند. زمانی که پاسخ‌های شما ارسال و تایید شود، وب سایت چالش‌ها بیشتری را باز خواهد کرد.

سایت 10 - Codewars

puzzle programming website 10 حل مسائل برنامه نویسی

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

سایت 11 - LeetCode

puzzle programming website 11 حل مسائل برنامه نویسی

LeetCode یک وب سایت محبوب آنلاین است که لیستی از ۱۹۰ چالشی که می‌توانند به شما در آماده‌سازی برای مصاحبه‌های فنی و شغلی کمک کند، ارائه می‌دهد. شما می‌توانید این چالش‌ها را مستقیما با یکی از ۹ زبان برنامه‌نویسی در ویرایشگر خود وب سایت حل کنید. البته باید توجه داشت که قادر به مشاهده‌ی راه‌حل‌های دیگر کاربران نیستید، اما برای مقایسه‌ی سرعت اجرای راه‌حل‌های خودتان با کد کاربران دیگر امکاناتی در نظر گرفته شده است.

این وب سایت همچنین یک بخش مصاحبه‌ی آزمایشی دارند که به طور خاص برای آماده‌سازی مصاحبه‌ی شغلی است. برگزاری رقابت‌های کدنویسی و بخش مقالات آموزشی به شما کمک می‌کنند تا با خطاها و مشکلات مربوط به این حوزه آشنا شده و راه‌حل‌ها را بهتر درک کنید.

سایت 12 - SPOJ

puzzle programming website 12 حل مسائل برنامه نویسی

یکی دیگر از وب سایت‌های رقابتی این حوزه است که بیش از ۲۰ چالش کدنویسی را ارائه می‌دهد. شما می‌توانید کد خود را تحت ویرایشگر آنلاین خود وب سایت ارسال کنید. علاوه بر آن، SPOJ بخش مشخصی برای کاربران دارد تا درباره چالش‌های کدنویسی بحث و تبادل نظر کنند، هرچند در حال حاضر برخلاف سایر وب سایت‌های رقیب، هیچ راه‌حل رسمی برای حل سوالات ارائه نمی‌کنند.

سایت 13 - Python Challenge

puzzle programming website 13 حل مسائل برنامه نویسی

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

سایت 14 - Al Zimmermann's

puzzle programming website 14 حل مسائل برنامه نویسی

Al Zimmermann's سایتی است که هر 6 ماه یکبار یک رقابت را بین برنامه نویسان راه انداخته و می‌توانید در آن شرکت کنید و جایزه دریافت کرده و قدرت حل مسئله خود را محک بزنید.

سایت 15 - Ruby Quiz

puzzle programming website 15 حل مسائل برنامه نویسی

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

سایت 16 - C Puzzles

puzzle programming website 16 حل مسائل برنامه نویسی

در سایت C Puzzles تعدادی معما یا مسئله قرار داده شده است که مربوط به زبان برنامه نویسی C هستند و می‌توانید آن‌ها را حل کنید. برای هر مسئله یک راهنما یا Hint نیز قرار داده شده است که برای کمک گرفتن از آن‌ها استفاده می‌شود.

سایت 17 - Prolog Problems

puzzle programming website 17 حل مسائل برنامه نویسی

در سایت Prolog Problems مسائل مربوط به زبان Prolog قرار داده شده ولی راه حل‌ها در زبان‌های دیگر از جمله Python و Ruby و Haskell و Scala و ... نیز قابل قبول است. با کار کردن با این موارد می‌توانید یک زبان جدید را به راحتی یاد بگیرید.

جمع‌بندی:

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

هدف مجموعه سون لرن افزایش سطح کیفیت آموزش و ساختن راهی برای ورود دانشجویان به بازار کار تخصصی است.

چه امتیازی به این مقاله می دید؟
نویسنده نازنین کریمی مقدم
رویاهاتون رو دنبال کنید ... :)
ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 

نظرات کاربران

nahid

سلام من سایتارو مشاهده کردم و codbyte خیلی به دردم خورد ولی متاسفانه پولیه سایتی میشناسید که چالشای حل مسِله در حد متوسط و راحت بزاره واسه کسی که تازه شروع کرده و همین طور رایگان باشه؟

نازنین کریمی مقدم

درود، بابت تاخیر در پاسخگویی پوزش میطلبیم.
بنظرم سایت edabit رو هم امتحان کنید، یکم تعداد زبانهای برنامه نویسیش کمه اما برای شروع خیلی سایت خوبیه. کوئرای فارسی هم انتخاب مناسبی میتونه باشه.

رحیم

سلام روزتون بخیر
در کدوم سایت های می اد از اسان به سخت تعیین می کنه یعنی برای افرادی که مبتدی هستن هم نمونه سوال داره؟؟؟
با تشکر

نازنین کریمی مقدم

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

محمد

سلام و خسته نباشید
اگه امکانش هست وبسایت های معادل فارسی رو هم بگید
اگه هم که درباره راه جل یا راه حل های اون مسئله توضیح داده باشند که دیگه عالیه
خیلی ممنون از وبسایت خوبتون و تلاش بی نظیرتون

نازنین کریمی مقدم

درود.
فکر کنم سایت کوئرای فارسی چیزی هست که به دنبالش هستید. حتما بهش سر بزنید.

M

کاملا با نوشته موافقم . میشه برای من تازه کار به صورت مشخص بگین که چه کارهای بخصوصی به طور مشخص باعث میشه مهارت حل مسئله من بهتر بشه ؟ (چون من مهارت حل مسئلم افتضاحه !) من تنها راهی که پیدا کردم کسب تجربه و تمرین هست من میخواهم برنامه های ویندوزی با استفاده از سی شارپ بنویسم

نازنین کریمی مقدم

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

فارسی پور

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

نازنین کریمی مقدم

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

Mohammad

خسته نباشید، واقعا مفید بود.

نازنین کریمی مقدم

سلام. ممنون که با ما همراه هستید.

حسین سلیمی

مرسی از مقالتوت عاشق چالششمم

نازنین کریمی مقدم

سلام. خوشحالیم که مقاله براتون مفید بوده.

ما در سون لرن با محدودسازی دسترسی آزاد به اینترنت مخالفیم     اطلاعات بیشتر