برنامه نویسی چیست
برنامهنویسی فرایند طراحی و ساخت یک برنامه کامپیوتری قابل اجرا برای دستیابی به یک نتیجه محاسباتی خاص است. برنامهنویسی شامل کارهایی از قبیل: آنالیز، تولید الگوریتمها، پروفایل دقیق الگوریتمها و مصرف منابع و اجرای الگوریتمها به زبان برنامهنویسی انتخاب شده (معمولاً به عنوان رمزگذاری است).
کد منبع برنامه
کد منبع برنامه به یک یا چند زبان نوشته شدهاست که برای برنامه نویسان قابل درک است و نه کد ماشین، که مستقیماً توسط واحد پردازش مرکزی اجرا میشود. هدف از برنامهنویسی یافتن دنباله ای از دستورالعملها است که باعث میشود عملکرد یک کار (که میتواند به عنوان یک سیستم عامل پیچیده باشد) به صورت خودکار انجام شود، اغلب برای حل یک مشکل معین؛ بنابراین، برنامهنویسی ماهرانه نیاز به تخصص در چندین موضوع مختلف، از جمله دانش در مورد دامنه برنامه، الگوریتمهای تخصصی و منطق رسمی دارد.
روش حل مسئله به کمک کامپیوتر
برنامهنویسی یک روش حل مسئله به کمک کامپیوتر است. فرض کنید که وارد بانک میشوید و کدملی خود را به متصدی بانک اعلام میکنید. متصدی به کمک تنها یک کد تمامی اطلاعات حساب بانکی شما را پیدا میکند. مشخصات شما، گردشهای مالی، موجودی و … . این امکان به کمک برنامهنویسی ایجاد شده است. سیستمی که برای بانک طراحی شده با دریافت کدملی شما، اطلاعات شما را از میان میلیونها اطلاعات دیگر پیدا کرده و در قالب جداول نمایش می دهد.
در واقع یک تیم برنامهنویسی این سیستم را به این صورت برنامهنویسی کردهاند. بنابراین میتوان گفت برنامهنویسی یک علم است که به کمک آن میتوان به کامپیوتر دستوراتی برای اجرا داد. دستورات را در قالب کدهایی به کامپیوتر میدهیم این اطلاعات و دستورات در مغز کامپیوتر (CPU) پردازش میشوند و خروجی کار به کاربر نمایش داده میشود.
برنامه نویسی به زبان ساده
به زبان خیلی ساده، برنامه نویسی عبارت است از نوشتن دستوراتی که یک سیستم -مثل کامپیوتر- آنها را متوجه شده و دستورات ما را یکی پس از دیگری اجرا می کند. حال، یک زبان برنامه نویسی لغات، دستورات و قوانینی را در اختیار ما به عنوان یک برنامه نویس قرار میدهد که از آن طریق میتوانیم با کامپیوترها و سیستمهای کامپیوتری ارتباط برقرار کنیم.
وظایف همراه و مرتبط با برنامهنویسی
وظایف همراه و مرتبط با برنامهنویسی عبارتند از: تست، اشکال زدایی، نگهداری کد منبع، اجرای سیستمهای ساخت (build system) و مدیریت مصنوعات مشتق شده مانند کد ماشین برنامههای رایانه ای. اینها ممکن است بخشی از فرایند برنامهنویسی در نظر گرفته شود، اما غالباً اصطلاح توسعه نرمافزار برای این فرایند بزرگتر با اصطلاح برنامهنویسی، پیادهسازی یا کدگذاری برای نوشتن واقعی کد استفاده میشود. مهندسی نرمافزار تکنیکهای مهندسی را با شیوههای توسعه نرمافزار ترکیب میکند. مهندسی معکوس فرایند مخالف است. یک هکر هر متخصص کامپیوتر ماهر است که از دانش فنی خود برای غلبه بر یک مشکل استفاده میکند، اما همچنین میتواند به معنای یک هکر امنیتی به زبان مشترک باشد.
برنامه نویس چه کسی است؟
حالا که با مفهوم برنامه نویسی آشنا شدید میتوانید بگویید که یک برنامه نویس کیست! برنامهنویس شخصی است که سعی میکند برای مسئلهها بهترین پاسخها را پیدا کند و آنها را به کمک زبانهای برنامهنویسی به کامپیوتر منتقل کند. بدین صورت کامپیوتر اطلاعات دریافتی را پردازش میکند و خروجی کار را نمایش می دهد.
پس شخص برنامهنویس باید به فرآیند حل مسئله، تحلیل دادهها، عیبیابی و… مسلط باشد.
دستگاه های قابل برنامه ریزی
دستگاههای قابل برنامهریزی قرن هاست که وجود دارند. در اوایل قرن نهم میلادی، یک ترتیب سنج موسیقی قابل برنامهریزی توسط برادران فارسی بانو موسی اختراع شد که یک دستگاه پخش خودکار فلوت را در کتاب دستگاههای مبتکر توصیف کرد. در سال ۱۲۰۶، مهندس کوردالجزاری یک دستگاه درام قابل برنامهریزی را اختراع کرد که در آن میتوان از اتوماتیک مکانیکی موسیقی برای پخش ریتمهای مختلف و الگوهای طبل، از طریق میخها و کامپها استفاده کرد.
تاریخچه ی برنامه نویسی
در سال ۱۸۰۱، با تغییر دادن برنامه «ژاکارد»، بافندگی ژاکارد میتواند بافتهای کاملاً متفاوتی تولید کند – مجموعه ای از کارتهای کارتن با سوراخهایی که در آنها وجود دارد.
الگوریتمهای رمزگشایی و تحلیل رمز کد نیز قرنها وجود داشتهاست. در قرن نهم میلادی، ریاضیدان عرب آل کندی، الگوریتم رمزنگاری را برای رمزگشایی کد رمزگذاری شده، در «دستنوشته در رمزگشایی پیامهای رمزنگاری» شرح داد. او اولین توصیف رمزپزشکی را با استفاده از آنالیز فراوانی، اولین الگوریتم رمزگشایی کد ارائه داد.
اگرچه برنامه نویسی یک اختراع جدید محسوب میشود اما این در حالی است که ایده ی مجبور کردن یک ماشین یا دستگاه برای انجام یکسری دستورات خاص به سالها پیش -چیزی در حدود یک قرن پیش- باز می گردد. در واقع، یکی از ابتدایی ترین طرح ها برای یک ماشین قابل برنامهریزی -یا همان کامپیوتر- از کسی به نام Charles Babbage در سال 1834 گرفته شد.
در واقع وی پیشنهاد ساخت یک ماشین بخار که به صورت مکانیکی یکسری کارها را انجام دهد -که تحت عنوان موتور تحلیلگر شناخته میشود- را داده بود. برخلاف سیستمهای محاسبه ی آن روز که تنها می توانستند یک عمل محاسباتی را انجام دهند، موتور تحلیلگر آقای چارلز بابج چندین کار همزمان را میتوانست انجام دهد. دستوراتی که به ماشین داده میشد از طریق یکسری کارت ها انجام می پذیرفت که با تغییر تعداد این کارت ها و نوع آن ها، هر کسی میتوانست دستورات مد نظر خود را به ماشین برای محاسبه ی آنها بدهد.
ایده ی ماشینهای قابل برنامهریزی توجه خانمی به نام Ada Lovelace را به خود جلب کرد که یک ریاضیدان بود. لذا او برنامهای نوشت -یا بهتر است بگوییم کارت هایی ترتیب داد- که تعدادی عدد خاص را پشت سر هم چاپ میکرد (با توجه به این که این خانم اولین کسی بود که کار خاصی را با Analytical Engine یا همان موتور تحلیلگر انجام داد، وی را میتوان به نوعی اولین برنامه نویس دنیا نیز تلقی کرد که نامگذاری زبان برنامه نویسی Ada هم به احترام وی صورت گرفته است.)
چیزی پس از گذشت یکصد سال، اولین کامپیوتر به معنای واقعی کلمه در سال 1943 توسط ارتش ایالات متحده طراحی شد. این ماشین که Electronic Numerical Integrator and Computer یا به اختصار ENIAC نامیده شد، از کابل ها و سوییچ های مختلفی تشکیل شده بود و برای دستور دادن به آن، برنامه نویس می بایست جای کابل ها و سوییچ ها را تغییر دهد (جالب است بدانیم که اولین برنامه نویسان این کامپیوتر همگی خانم بوده اند!) نکته ی اصلی اینجا است که کامپیوترهای آن موقع بسیار حجیم و گران بودند و کار کردن با آن ها واقعا تخصص نیاز داشت!
برای یادگیری برنامه نویسی چکار کنیم؟
شاید از هر کسی که اکنون برنامه نویس است بپرسید با چه روشی توانسته برنامه نویس را یاد بگیرد به شما جواب های متفاوتی بدهند. بعضی ها بر روی کتاب تاکید دارند چون معتقند بسیار منسجم است مخالفان نیز یادگیری از روی کتاب را واقعا خسته کننده میدانند. عده ای هم اینترنت را بهترین استاد می دانند چون اعتقاد دارند هرچیزی درآن یافت میشود مخالفان نیز میگوید اینترنت در واقع انبوهی از اطلاعات است که میتواند شما را سردرگم کند همچنین هرکسی میتواند آنها را تولید کرده باشد و معتبر نباشد.
یک عده هم رفتن به کلاس های رو به دلیل پروژه محور بودند پیشنهاد میدهد، مخالفان این روش یادگیری را استاد محور و متکی به دانش مدرس میدانند. فیلم های آموزشی شرکت های معتبر آموزشی هم روشی که است که بعضی ها پیشنهاد میدهد که در اینجا مخالفان حرفی برای گفتند ندارند. چون تمام ویژگی های خوب روش های قبلی را باهم دارد: منسجم است، بهترین اساتید جهان مدرس آنهایند، ارزان قیمت است و پروژه محور هستند.
ممنون از این مقاله کاربردی