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