برنامه نویسی را از کجا شروع کنیم؟

برنامه نویسی یکی از مشاغل پر تقاضای امروزی است. به همین خاطر هر روزه بر محبوبیت این شغل افزوده می‌شود. با این حال مسیر یادگیری و پیشرفت در این شغل به دلیل شاخه های متعدد آن و مفاهیم و ابزار متنوع مورد نیاز، پیچیده است. در این پست سعی داریم نگاهی کلی به این شغل و مسیر یادگیری آن داشته باشیم.برنامه نویسی چیست؟برنامه نویسی فرایند تبدیل مسائل و نیازمندی های زندگی واقعی به الگوریتم ها و نهایتا کد های برنامه نویسی قابل اجرا بر روی پردازنده کامپیوتر، موبایل و ... می‌باشد. خروجی کار برنامه نویسی می‌تواند یک نرم افزار، یک اپلیکیشن موبایل، یک اپلیکیشن وب و ... باشد.برای اطلاعات بیشتر صفحه ویکی‌پدیای برنامه نویسی ‌رایانه‌ای را بخوانید.پیشنیاز برنامه نویسی چیست؟پیشنیاز برنامه نویسی، آشنایی با کامپیوتر، اینترنت و موبایل است. یک برنامه نویس ابتدا باید یک کاربر حرفه‌ای کامپیوتر باشد، لازم است با تعدادی نرم افزار (اپلیکیشن) تجربه کار کردن داشته باشد و بهتر است تعدادی سیستم عامل همانند ویندوز، لینوکس، مک، اندروید و iOS را بررسی کرده باشد. هر چقدر مهارت شخص در استفاده از اپلیکیشن ها بیشتر باشد احتمال کسب مهارت در تولید آنها نیز بالاتر است.پیشنیاز دیگر برنامه نویسی، علاقه به ریاضیات و حل مسائل ریاضی است. لازم نیست روش حل انتگرال دوگانه در مختصات قطبی را بلد باشید؛ اما اینکه از ریاضیات فراری باشید احتمالا علاقه‌ای به برنامه نویسی هم ندارید.قدم اول در برنامه نویسی چیست؟قدم اول یادگیری الگوریتم و فلوچارت است. پس از یادگیری این مبحث شما می‌توانید مسائل واقعی را به الگوریتم و فلوچارت تبدیل کنید. الگوریتم و فلوچارت روشی برای تعریف مسائل هستند بطوری که قابلیت تبدیل شدن به کد های برنامه نویسی دارند. در واقع پس از یادگیری یک زبان برنامه نویسی در مرحله بعد، می‌توانید الگوریتم ها و فلوچارت های طراحی شده را به آن زبان برنامه نویسی بنویسید.با جستجوی عبارتی مانند کتاب الگوریتم و فلوچارت می‌توانید انواعی از کتاب های رایگان و پولی درباره این مبحث را پیدا کنید.از چه زبانی شروع کنیم؟در این باره نظرات متفاوتی وجود دارد و من هم نظر خودم را می‌نویسم!من زبان C را پیشنهاد می‌کنم. این زبان به مادر زبان های برنامه نویسی معروف است و بیشتر زبان های امروزی از این زبان الهام گرفته و یا آنرا توسعه داده اند. از ویژگی های این زبان می‌توان به موارد زیر اشاره کرد:برای انجام تمرین های مقدماتی ساده است و یادگیری آن راحت است.برنامه نویس را با مفاهیم پایه برنامه نویسی آشنا می‌کند.مشابه زبان های برنامه نویسی امروزی است.انواع دوره های آموزشی آن برای افراد کاملا مبتدی وجود دارد.در ادامه برای یادگیری مسائلی همچون شی گرایی، می‌توانید به سراغ زبان ++C بروید که در واقع نسخه توسعه داده شده C است و قابلیت های جدیدی همچون شی گرایی را به آن افزوده شده است.سایت های زیر منابع خوبی برای یادگیری این زبان برنامه نویسی هستند و بعضی از آنها محیط اجرای این زبان را نیز در اختیار شما قرار می‌دهد تا نیازی به نصب آن بر روی دستگاه خود نباشید.https://www.tutorialspoint.com/cprogramming/index.htmhttps://www.learn-c.orghttps://www.w3schools.in/c-tutorialهمنیاز های برنامه نویسیدر کنار زبان برنامه نویسی که یاد می‌گیرید، باید مباحث دیگری نیز بیاموزید. این مباحث عبارت‌اند از:ساختمان داده (نحوه ساختاردهی به داده های موجود در برنامه)https://www.tutorialspoint.com/data_structures_algorithms/index.htmالگوریتم (بررسی میزان بهینه بودن الگوریتم ها)https://www.tutorialspoint.com/data_structures_algorithms/index.htmشبکه (طرز کار شبکه های کامپیوتری و اینترنت)https://www.tutorialspoint.com/data_communication_computer_network/index.htmپایگاه داده یا Database (نحوه ذخیره سازی اطلاعات)https://www.tutorialspoint.com/dbms/index.htmمهندسی نرم افزار (فرایند های تولید نرم افزار)https://www.tutorialspoint.com/software_engineering/index.htmشاخه های برنامه نویسیپس از یادگیری حداقل یک زبان برنامه نویسی و مباحثی مانند پایگاه داده و شبکه، بهتر است شاخه های مختلف برنامه نویسی را بررسی و تست کنید و در نهایت شاخه مورد علاقه خود را انتخاب و تمام تمرکز خود را بر روی آن شاخه بگذارید. برخی از شاخه های پرکابرد امروزی در ادامه شرح داده شده اند.برنامه نویسی Androidسیستم عامل اندروید (Android) یکی از سیستم عامل های محبوب برای موبایل است. برنامه نویسی Android به معنی برنامه نویسی اپلیکیشن های موبایل قابل اجرا بر روی سیستم عامل Android می‌باشد. برنامه نویس های اندریود معمولا از زبان Java و Kotlin برای ساخت اپلیکیشن های Android استفاده می‌کنند.برنامه نویسی iOSسیستم عامل iOS ساخت شرکت Apple و بر روی iPhone و iPad نصب می‌باشد. برنامه نویسی iOS به معنی برنامه نویسی اپلیکیشن های قابل اجرا بر روی دستگاه های iPhone ،iPad و دیگر دیوایس های ساخت شرکت Apple است. برنامه نویس های iOS معمولا از زبان Swift برای ساخت اپلیکیشن های iOS استفاده می‌کنند.برنامه نویسی وبعنوان برنامه نویسی وب یک عنوان قدیمی است و امروزه عنوانی نامشخص محسوب می‌شود که بهتر است از آن استفاده نکنیم. به جای آن از عنوان های برنامه نویسی Front-end و Back-end استفاده کنیم. این دو دنیای برنامه نویسی در ادامه توضیح داده می‌شوند.برنامه نویسی Front-endبرنامه نویسی Front-end یا بطور خلاصه فرانت به معنی برنامه نویسی برای ساخت اپلیکیشن های تحت وب می‌باشد. برنامه نویس های Front-end از زبان JavaScript (جاوا اسکریپت)‌ برای ساخت وب اپلیکیشن ها استفاده می‌کنند.برنامه نویسی Back-endبرنامه نویسی Back-end یا برنامه نویسی سمت سرور به معنی برنامه نویسی برای طراحی اپلیکیشن های قابل اجرا بر روی سرور است. اپلیکیشن سمت سرور همان برنامه ای است که اپلیکیشن موبایل و وب با آن ارتباط برقرار می‌کنند. برای مثال در سرویس اینستاگرام، اپلیکیشن موبایل اینستاگرام اطلاعات کاربر را جهت نام‌نویسی به اپلیکیشن سرور اینستاگرام ارسال می‌کند و پس از آن هر بار که اپلیکیشن موبایل اینستاگرام را باز می‌کنید، اپلیکیشن موبایل اطلاعات اینبار از اپلیکیشن سرور دریافت می‌کند و به کاربر نمایش می‌دهد.برنامه‌نویسی Back-end دنیای وسیع تری نسبت به اپلیکیشن های وب و موبایل به حساب می‌آید و زبان ها و ابزار های گوناگونی برای آن وجود دارد که معروف ترین آنها Go، جاوا، PHP، جاوا اسکریپت، #C،‌ پایتون هستند.برنامه نویسی بازیبرنامه نویسی بازی یا Game developement بخشی از فرایند طراحی بازی های رایانه‌ای است که در کنار طراحی گرافیک بازی منجر به تولید بازی های رایانه‌ای می‌شود. از محبوب ترین زبان های برنامه نویسی مورد استفاده در توسعه بازی ها می‌توان به ++C، جاوا، #C و جاوااسکریپت اشاره کرد.برای اطلاعات بیشتر صفحه ویکی‌پدیای توسعه بازی های ویدویی را بخوایند.هوش مصنوعی و یادگیری ماشینهوش مصنوعی و زیرشاخه اصلی آن یعنی یادگیری ماشین از شاخه های برنامه نویسی هستند که معمولا به کمک اپلیکیشن های Back-end و بازی ها می‌آیند. در این شاخه ها با استفاده از مفاهیم ریاضی و آمار و احتمالات الگوریتم هایی جهت شبیه سازی انسان، یادگیری، بهبود پیشنهاد ها به کاربران و ... طراحی می‌شود.برای مطالعه بیشتر صفحه ویکی‌پدیای هوش مصنوعی را بخوایند.