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

شاید ده‌ها بار کلمه برنامه نویسی رو شنیده باشی. توی جمع‌های دوستانه بهت گفته باشن برنامه نویسی کامپیوتر، طراحی سایت یا برنامه نویسی اندروید مشاغل پر درآمد یا جالبی هستن و برات جای سوال بوده باشه که اصلا برنامه نویسی چیست؟ از چه جایی می‌تونم یه آموزش برنامه نویسی، آموزش برنامه نویسی اندروید یا آموزش طراحی سایت خوب ببینم؟ درآمد برنامه نویسی چقدره؟ استخدام برنامه نویس توی شرکت‌ها چطوریه؟ یا اینکه اصلا از کجا باید شروع کنی؟ توی این مقاله و مقالات بعدی جواب تمام این سوالات رو پیدا می‌کنی و بعد، نوبت توست که راهت رو پیدا و انتخاب کنی!برنامه نویس کیست؟تصور خیلی‌ها اینه که یه برنامه نویس کامپیوتر کسیه که تمام زندگیش رو تو یه زیرزمین تاریک و نمور، پشت چند تا مانیتور بزرگ می‌شینه. یا کسی که به تمام چراغ‌های راهنمایی شهر و سیستم‌های کنترل هواپیماهای دنیا دسترسی داره و از طریق صفحه مانیتورها آدم‌ها رو هیپنوتیزم می‌کنه! خوب البته باید بگم من اینی که میشناسی رو میشناسم! فرانکشتاین برنامه نویس ها!باید بگم برنامه نویس‌ها قیافه‌های کاملا عادی دارن... معمولا پشت کامپیوترهای کاملا عادی میشینن... و کاملا عادی آدم هارو از طریق مانیتور هیپنوتیزم می‌کنن! نه نه! شوخی کردم! برنامه نویس موفق یه غول حل مسئله است! برنامه نویسی یعنی حل مسئله، حل مسئله، حل مسئله و تمام! برنامه نویس‌ها لزوما کدهای سبز رو روی یه صفحه مشکی تایپ نمی‌کنن، البته مگر اینکه خودشون از طریق تنظیمات ویرایشگر، رنگ سبز روی زمینه مشکی رو انتخاب کنن! و البته اکثرشون به بانک اطلاعاتی پلیس دسترسی ندارن!ممکنه خیلی کسل کننده به نظر بیاد اما قسمت هیجان انگیز ماجرا اینه که برنامه نویس‌ها توی مانیتورهاشون چیزهایی رو خلق می‌کنن... چیزهایی که ممکنه با خلاقیت، زیبایی یا مفید بودنشون تو رو هیپنوتیزم کنه! پس در دو صورت اجازه داری ادامه مقاله رو بخونی:اول اینکه عاشق حل مسئله‌های کوچک و بزرگ باشی!دوم اینکه دلت بخواد با دست‌ها و ذهنت از طریق خلق ایده‌های خودت یا دیگران آدم‌ها رو هیپنوتیزم کنی!برنامه نویسی چیست؟اگر کامپیوتر رو یه موجود زنده در نظر بگیریم، برای ارتباط با اون تو باید یک سری ورودی رو بهش بدی و در آخر یک سری خروجی دریافت کنی، یعنی درست همونطور که با یه آدم صحبت می‌کنی. اون آدم ورودی یا صحبت‌های شما رو به مغزش که همون مموری و cpu کامپیوتره وارد، اونارو پردازش و در آخر در قالب خروجی یا جواب صحبت هات بهت تحویل میده.در تمام دستگاه هایی که کامپیوتر رو در خودشون دارن مثل دستگاه‌های موبایل، کنسول‌های بازی، ماشین لباسشویی و... دقیقا همین اتفاق می‌افته. اما این پردازش یا دریافت و ارسال ورودی و خروجی توی کامپیوتر چطور انجام میشه؟ در واقع همه این عملیات با برنامه نویسی برای کامپیوتر تعریف شدن.فرض کنید که توی یه کتابفروشی بزرگ دنبال یه کتاب از نویسنده مورد علاقه ات هستی. مثلا داستایوسکی! در این صورت قاعدتا به پیشخوان کتابفروشی میری و از متصدی می‌خوای که لیست کتاب‌های داستایوسکی که در فروشگاه موجوده رو بهت بده. متصدی اسم داستایوسکی رو به عنوان ورودی در قسمت جستجوی کتاب بر اساس نویسنده نرم افزار کتابفروشی وارد می‌کنه. داستایوسکی توی قسمتی از مموری کامپیوتر متصدی به عنوان متغیر، ذخیره میشه.حالا نرم افزار کتابفروشی باید یک دور به طور کامل توی لیست کتاب‌های کتابفروشی بگرده تا اسم تک تک کتاب‌های داستایوسکی رو پیدا کنه و در یک لیست بریزه. توی این حالت برنامه وارد یک حلقه یا لوپ شده! در هر بار بررسی هر کتاب از لیست، کلمه داستایوسکی با اسم نویسنده کتابی که از لیست انتخاب شده مقایسه میشه و اگر اسم نویسنده کتاب، داستایوسکی بود اسم کتاب وارد لیست انتخاب شده کتاب‌های داستایوسکی میشه. این یعنی در هر بار یک شرط و یک مقایسه اجرا میشه. بعد از یک حلقه یا لوپ کامل حالا لیست کتاب‌های داستایوسکی آماده است و به عنوان خروجی در مانیتور متصدی نمایش داده میشه! خروجی‌های برنامه ما عبارت اند از: خاطرات خانه مردگان، قمارباز، ابله، جنایت و مکافات و ...نرم افزار کتابفروشی یک نمونه از هزاران نرم افزاری بود که با زبان‌های مختلف برنامه نویسی نوشته میشه. توی برنامه نویسی تو تقریبا همیشه با ورودی‌ها و خروجی‌ها (به عنوان متغیر)، حلقه‌ها یا لوپ ها، مقایسه متغیر ها، شرط‌ها و لیست‌های مختلف از متغیر‌ها سر و کار داری.حالا سوال اینه که کامپیوتر که فقط زبان ماشین یا 0 و 1 رو می‌فهمه چطور از این زبان‌های برنامه نویسی و دستورات اونا سر در میاره و اونا رو اجرا می‌کنه؟ جواب کامپایلره! زبان‌های برنامه نویسی در نهایت توسط برنامه ای به اسم کامپایلر به زبان ماشین ترجمه میشن و تمام!تاریخچه برنامه نویسی چیست؟برنامه نویسی در سال 1883 متولد شد! زمانی که ایدا لاولیس ریاضی دان و نویسنده انگلیسی در حال کار روی پروژه موتور تحلیلی دانشمند معروف چارلز ببیج بود متوجه شد این کامپیوتر ابتدایی می‌تونه کارهای جالب‌تری از محاسبات ساده ریاضی رو انجام بده بنابراین شروع به نوشتن اولین الگوریتم برنامه نویسی تاریخ برای ارتباط با این موتور کرد و به این ترتیب، تبدیل به اولین برنامه نویس تاریخ شد! ایدا در تئوری هاش پیش بینی کرد در آینده روزی می‌رسه که کامپیوتر‌ها می‌تونن موزیک بنوازن و شطرنج بازی کنن! بنابراین من الان از آینده مورد بحث، به ایدا درود می‌فرستم!زبان‌های برنامه نویسی اولیه که به عنوان اصلی ترینشون میشه از اسمبلی یاد کرد برای نوشتن برنامه‌ها مشکل بودن چون سه ایراد خیلی بزرگ داشتن: اول، متغیر‌ها می‌تونستن از هر جای کد دستکاری بشن بنابراین کد زدن نمونه کامل شهر هرت بود! دوم، برنامه از هرجایی می‌تونست به جای قبل یا بعد منتقل بشه و کد‌ها حسابی پیچیده و در هم می‌شد! و سوم، بین کد‌ها و دیتا‌ها هیچ مرزبندی وجود نداشت! مثلا این پدیده که دیتا روی برنامه در حال اجرا بازنویسی بشه کاملا ممکن بود!بنابراین زبان‌های سطح بالا وارد میدون شدن! اولین زبان سطح بالا به نام فرترن توسط جان بکاس در سال 1954 ساخته شد! زبان‌های سطح بالا حالا به زبان انسان خیلی نزدیک شده بودن و کدنویسی با اون‌ها راحت‌تر بود! بعد‌ها با زبان‌های برنامه نویسی شی گرا مثل جاوا و سی شارپ، دیگه لازم نبود کد‌های یکسان بارها و بارها نوشته بشن و کار تیمی روی پروژه‌های برنامه نویسی از همیشه آسون‌تر شد!حالا تو توی دنیایی هستی که پر از زبان‌های مختلف برنامه نویسیه. هرکدوم از این زبان‌ها به درد کار خاصی می‌خورن. حتی به درد دستگاه‌های خاصی! حالا تو می‌تونی حتی برای ساعت‌ها و یخچال‌ها برنامه بنویسی! می‌تونی پروژه‌های تحت وب یا اپلیکیشن‌های موبایل برای انواع گوشی‌های اندروید و IOS خلق کنی یا حتی یک روبات انسان نما رو وادار کنی صبح‌ها با لبخند بهت صبح به خیر بگه!برنامه نویسی در ایران مدت زیادی نیست که ترند شده و رونق گرفته. اما توی این مدت تونسته جای خودش رو به عنوان یک حرفه تخصصی موفق در بین رشته‌ها باز کنه. شاید تا مدتی پیش افراد ناآشنا با تکنولوژی به تو به عنوان یک برنامه نویس، به چشم یک فرد بیکار یا کسی که همیشه با کامپیوتر مشغول بازی و سرگرمیه نگاه می‌کردن. اما امروز، بعد از ظهور استارت آپ‌های کوچک و بزرگ فعال، تو می‌تونی به عنوان یه برنامه نویس سرت رو بالا بگیری و به روش‌های مختلف از حرفه رویایی مورد علاقه ات کسب درآمد کنی!نیجه گیری !؟توی این بخش فهمیدی برنامه نویسی چیست و فهمیدی برنامه نویس کیه و چه چیز هایی در موردش چیزی بیش از یک افسانه نیست! فهمیدی برنامه نویسی چیه و به طور مقدماتی با مفاهیم اولیه برنامه نویسی آشنا شدی! در ضمن با تاریخچه برنامه نویسی هم آشنا شدی و به اولین‌های این هنر درود فرستادی! اول از همه ممنون از خانم زهرا فرحمند از این همه انعطاف جمله و زیبایی بیان جهان برنامه نویسی و دوم اینکه اگه بخوام خودم یه تعریف از این دنیا داشته باشم اینه (زیبایی مطلق همراه با قدرت خالق)negarad