Drcain بدون دیدگاه

برنامه نویسی و سرگرمی

احتمالا اسم  ACM را شنیده اید. یک رقابت از نوع برنامه نویسی! لذت مسابقات برنامه نویسی در حل سوال است و به نوعی گیک بودن تو  کدنویسی رو طلب میکند. روال کار خیلی سادست و شما کافیه داخل هر سایت programming contest عضو بشوید و شروع به حل مسأله کنید. یکی از سایت های در حال پیشرفت ایرانی کوئرا است و معروف ترین سایت خارجی نیز codeforces.

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

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

از مباحث مهم و غیر قابل گریز گراف است! که حداقل ۲ سوال در هر مسابقه مرتبط با گراف است. با استفاده از دانش از رشته ها , مرتب سازی , جست و جو  و الگوریتم های greedy معمولا قادر به حل ۲ تا ۳ سوال هستید. معمولا سخت ترین سوال ها نیز در dynamic programming مطرح میشود که هم ایده حل سوال سخت است و هم نیاز به درک عمیق به حل مسائل بازگشتی و داینامیک دارید.

در هر حال اگر به زبان خاصی تسلط دارید احتمالا حل ۳ سوال کار سختی نباشید.

اگر دانشجوی رشته های مرتبط با علوم کامپیوتر و یا مهندسی کامپیوتر هستید که جزء دروس اصلی هستند! اگر خیر به نظر بنده برای تسلط به مطالب فوق نیاز به مطالعه کتاب های مرتبط ابتدا هستد بعد هم سراغ پیاده سازی بروید.

یعنی با رشته ها آشنا شوید و مثلا با پایتون شروع به حل مسائل رشته در سایت codeforces کنید. با مرتب سازی ها آشنا شوید به همین ترتیب و جست و جو و گراف و روش های داینامیک و بازگشتی… آشنایی با مسا‌ئل NP و در نهایت نظریه بازی ها.

به صورت کلی هم از نظر زبانی با سینتکس یا پیاده سازی صف و درخت و استک و هیپ و لیست و آرایه و … حتما آشنا باشید(‌ یا بشوید!) از نظر دانش ریاضی آشنایی با نظریه اعداد و ترکیبیات  و ماتریس و … هم کمک میکند.( همان مطالبی که در ریاضیات گسسته آشنا میشویم! در نهایت هم میتوان به صورت تخصصی از آمار و احتمال و ریاضی در زمینه های به روز هوش مصنوعی مثل  یادگیری ماشینی استفاده کرد.

البته اگر به دنبال طراحی سایت(به طور کلی  developer)  هستید داستان کاملا متفاوت است و تقریبا ربطی به این مطالب ندارد و معمولا مقام آوردن در مسابقات برنامه نویسی نیز کار خیلی سختی است. نکته ی خیلی  مثبت آن  افزایش مهارت ها و بهبود شیوه فکر کردن در حل مساله است که خیلی کمک به برنامه نویس میکند( در هر مقطعی)

موفق باشید

حسین شفیعیان بدون دیدگاه

آموزش پایتون [گام 4] ورودی و خروجی داده ها

در چهارمین قسمت از دوره آموزش پایتون ورودی و خروجی داده ها رو برسی میکنیم. این درس یکی از مباحث مهم برنامه نویسیه چرا که ورودی داده ها هستند که پردازش و در نهایت خروجی برنامه رو تعیین میکنند. ویدیو این جلسه رو میتونید از راه های زیر دانلود کنید :

بیشتر بدانید

حسین شفیعیان 2 دیدگاه

آموزش پایتون [گام 3] عملگر ها و دستورات شرطی

در سومین جلسه از دوره آموزشی پایتون بحث عملگر ها و دستورات شرطی رو برسی میکنیم.

از طریق عملگر ها در برنامه نویسی برای پردازش استفاده میشه ، مواردی مثل جمع ، ضرب ، تقسیم و … رو در ریاضی دبستان ( اگه یادتون باشه 🙂 ) خوندین

بیشتر بدانید