دروس هایی که به برنامه نویسی کمک میکنن ، چه چیزهایی هستن؟

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
سلام
بعد از یادگیری نسبی یه زبان برنامه نویسی (البته من سی شارپ رو یه کم بلدم و فکر نکنم فرق چندانی با سی پلاس پلاس و بقیه ی زبان ها داشته باشه) ، چه دروس هایی لازم هست که پیگیری و خوندنش به درک بیشتر برنامه نویسی و یادگیری و تجزیه و تحلیل کدها کمک میکنه؟
در واقع لازمه که درس هایی مثل طراحی الگوریتم و هوش مصنوعی و نظریه ی زبان ها و ماشین و یادگیری ماشین و خیلی درس های دیگه از این جور چیزا را دنبال کنم؟ چون من با هیچ کدوم شون آشنا نیستم . هر کدوم شون ، چه تاثیری در قدرت و تجزیه و تحلیل برنامه نویسی دارن؟
سئوال بعدی اینکه خیلی از الگوریتم ها با نام های مختلف ، برای چی هستن و کاربردشون کجاست؟ برای ماها که پروژه های دسکتاپ کار میکنیم ، به درد میخوره؟ مثلا الگوریتم مورچگان و الگوریتم pso و خیلی از الگوریتم های دیگه که فقط نام شون رو یه کم بلدم
ممنون
 

the_king

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

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

جدیدترین ارسال ها

بالا