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

عادت‌های برنامه نویسی

  • برنامه نویس بد کد را بدون اینکه درک کند، استفاده می‌کند

در خیلی از انجمن‌های برنامه نویسان، کدهای زیادی وجود دارند که بسیاری از برنامه‌نویس‌ها برای صرفه‌جویی در زمان خود از آن‌ها استفاده می‌کنند. البته این کار هیچ ایرادی ندارد و مشکل اصلی زمانی است که این کد را بدون درک کردن آن استفاده کنیم. این عادت بد، اشتباهات زیادی را برای شما به وجود می‌آورد.

  • نام‌گذاری نادرست متغیر و توابع

این عادت بد را طیف عظیمی از برنامه نویسان دارند. شما به عنوان برنامه نویس مختارید تا به هر شکلی که دوست دارید، متغیرها و توابعی که مشغول نوشتن آن‌ها هستید را نام‌گذاری کنید اما باید توجه داشته باشید که اگر اصولی این کار را انجام ندهید، نه تنها شخص دیگری قادر به درک کدها شما نخواهد بود، بلکه اگر برنامه‌ای که می‌نویسید بزرگ باشد، بعد از یک ماه که به توابع و متغیرهای اولیه خود برگردید، شما نیز در درک آن‌ها به مشکل خواهید خورد.

عادت‌های برنامه نویسی

  • استفاده از کدهای تکراری

یکی از مهم‌ترین اصول برنامه نویسی، قانون   Don’t Repeat Yourself یا “دوباره کاری نکن” است. یک برنامه نویس حرفه‌ای همیشه در تلاش است تا متوجه شود کدام قسمت‌های کدش مشابه هستند. برنامه نویس حرفه‌ای کلاس‌ها و توابع خود را جوری می‌نویسد که میزان کدهای تکراری به حداقل برسد. این کار علاوه بر تمیز شدن کد، وجود باگ در آینده را نیز کمتر خواهد کرد.

  • کد نویسی بدون ساختار

رعایت اصول و قواعد برنامه نویسی کار سختی است. اما هیچ کاری بدون سختی به سرانجام نخواهد رسید. فرق بین برنامه نویس حرفه‌ای و یک برنامه نویس ساده در همین مسائل است. هستند برنامه نویسانی که قبل از شروع یک پروژه ساختاری برای کد زنی مشخص نمی‌کنند که همین موضوع باعث می‌شود که هنگام کار تیمی اغلب به مشکل بخورند و نتوانند کنترل خوبی بر روی کدهای خود داشته باشند. پس اگر شما می‌خواهید به برنامه نویسی حرفه‌ای تبدیل شوید؛ حتماً قبل از شروع کد زنی، ساختاری را برای آن انتخاب کنید.

سخن پایانی

در این مقاله سعی کردیم بزرگ‌ترین مشکلات و عادت‌های بد و فنی برنامه نویسان را به شما نشان دهیم. برنامه نویس شدن کار سختی است و برای رسیدن به بالاترین درجات در این حوزه، مسیر دشواری را باید طی کرد. مسیری که نیاز به صبر و تلاش مستمر دارد. پس اگر تاکنون مطالعه‌ی برنامه نویسی را شروع نکرده‌اید، همین حالا عزم خود را جزم کنید و کد زنی را شروع کنید.

گاهی اوقات ما به یک مهارت و یا تخصص علاقه‌ی زیادی داریم اما نمی‌دانیم استعدادی در آن زمینه داریم یا نه، برای مثال افرادی هستند که به برنامه‌نویسی علاقه‌ی زیادی دارند اما تصور، عدم داشتن استعداد برنامه نویسی در این زمینه، آن‌ها را از همان ابتدای راه مأیوس می‌کند. در واقع در این مقاله قصد داریم فاکتور و ویژگی‌هایی را مورد تحلیل و بررسی قرار دهیم، که داشتن حتی چند مورد از این فاکتورها به معنی توانایی و استعداد شما در زمینه‌ی برنامه‌نویسی است. و در آخر شما می‌توانید به‌آسانی به سؤال آیا برنامه‌نویسی با توانایی‌های شما سازگار است یا نه پاسخ  مناسبی بدهید.

داشتن استعداد برنامه‌نویسی

برنامه‌نویسی یکی از شیرین‌ترین و البته چالش انگیزترین مباحثی است که در دنیای کامپیوتر وجود دارد. ما در ادامه‌ی مطلب ۱۰ مورد از ویژگی‌هایی بارز یک شخصیت برنامه‌نویس را آماده کرده‌ایم. اگر حتی شما ۸ مورد از این ویژگی‌ها را در وجود خود می‌بینید باید بدانید شما برای برنامه‌نویسی ساخته‌شده‌اید و استعداد یک برنامه‌نویس خوب شدن را دارید.

  • حل مسئله
  • آنالیز
  • تمرکز
  • چالش
  • خلاقیت
  • کارهای روتین
  • تکنولوژی
  • حل مشکل
  • کسب درآمد
  • ارتباطات

برنامه‎‌نویسی

حل مسئله

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

داشتن چنین شخصیتی به شما کمک می‌کند که  در حوزه‌ی برنامه‌نویسی جایگاه ویژه‌ای را از آن خود خواهید کنید اما برخلاف این دسته از افراد، کسانی نیز هستند که هیچ گونه علاقه‌ای به حل مسائل ندارند. با این وجود ممکن است طی کردن مسیر برنامه‌نویس شدن، برای این دسته از افراد دشوار باشد. با این حال به برنامه‌نویسی و کد زدن علاقه دارید باید مسائل زیادی را حل کنید و به این کار علاقه مند شوید.

آنالیز

یکی دیگر از ارکان اصلی برنامه‌نویس شدن قدرت تحلیل و آنالیز است. معمولا برنامه‌نویسان قدرت بالایی در تفکیک و آنالیز مسائل دارند. اگر شما هم از آن دسته افرادی هستید که هر موضوع، و یا حتی یک موسیقی و تابلوی نقاشی را می‌توانید به خوبی آنالیز کنید، بدانید که داشتن استعداد برنامه‌نویسی در وجود شما نهفته است.

تمرکز

همه‌ی ما می‌دانیم هر چقدر روی یک موضوع دقت و تمرکز بیشتری به خرج دهیم در فراگیری آن از بقیه جلوتر هستیم. داشتن دقت و تمرکز بالا به شما کمک می‌کند هر چه زودتر به هدف و مقصد خود برسید. برای مثال افرادی که قصد یادگیری رانندگی را دارند هر چه بیشتر روی آموزش و فراگیری راهنما و رانندگی تمرکز بیشتری به خرج دهند خیلی سریع‌تر از بقیه می‌توانند این مهارت را کسب کنند. با توجه به این موضوع اگر شما آدم کم حوصله‌ای هستند  و به خوبی نمی‌توانید روی یک موضوع و مسئله تمرکز کنید به شما پیشنهاد می‌کنیم به دنبال برنامه‌نویسی نروید. البته باید بدانید فراگیری و کسب هر دانش و مهارتی به صرف دقت و تمرکز نیاز دارد.

چالش

برنامه‌نویسی یکی از حوزه‌هایی است که شما را با چالش‌های متعددی رو به رو می‌کند. اگر شما یک فرد چالش پذیر هستید و از چالش لذت می‌برید، برنامه‌نویسی و برنامه‌نویس شدن بهترین گزینه‌ای است که می‌توانید به آن روی آورید. مثلا ممکن است حین کد زدن و نوشتن یک پروژه مشکلی در اجرای برنامه بوجود آید و یا شما با یک ارور نفس گیر و غیر منتظره رو به رو شوید، از این رو باید بتوانید مشکل پیش آمده را برطرف کنید. اما خوشبختانه  می‌بینیم که در حال حاضر اکثر جوانان ما افرادی چالش پذیر هستند و با مواجه شدن با این مسئله ابایی ندارند.

خلاقیت

برنامه‌نویسان  معمولا افراد خلاقی هستند. با توجه به این ویژگی حین نوشتن یک برنامه  سعی می‌کنند بهترین، موثرترین و البته کوتاه‌ترین مسیر را برای حل یک مسئله انتخاب کنند. حقیقتا برنامه‌نویسانی که کد زدن را با خلاقیت ترکیب می‌کنند نسبت به افرادی که از یک حالت روتین و اصولی برای نوشته برنامه استفاده می‌کنند افراد موفق تری هستند.

کارهای روتین

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

تکنولوژی

اگر فردی هستید که عاشق دنیای تکنولوژی هستید و به خوبی می‌توانید با تکنولوژی‌های جدید ارتباط برقرار کنید می‌توانید در حیطه‌ی برنامه‌نویسی خوش بدرخشید.

 در غیر این صورت ما برنامه‌نویسی را به شما پیشنهاد نمی‌کنیم. چرا که برنامه‌نویسی با دنیای تکنولوژی عجین شده است و ردپای پر رنگی از برنامه‌نویسی در دنیای تکنولوژی به چشم می‌خورد.

حل مشکل

اگر شما فردی هستید که به حل مشکل علاقه دارید باید بگوییم داشتن استعداد برنامه‌نویسی در وجود شما نهفته است. چرا که برنامه‌نویسی شما را با ارور و مشکلات ناگهانی مواجه می‌کند که باید در رابطه با  حل آن‌ها شانه خالی نکنید.

کسب درآمد

برخی از افراد از همان اول که وارد دنیای برنامه‌نویسی می‌شوند هدفشان کسب درآمد بالا است. آن‌ها توقع دارند در همان ابتدای مسیر به درآمد چشم گیری برسند. و در صورتی که درآمد مدنظرشان را از این حیطه به دست نیاوند برنامه‌نویسی را ترک می‌کنند. اما باید بدانید کسب درآمد بالا تنها با گذشت زمان و و صرف تلاش بالا میسر می‌شود.

برنامه‌نویسی

ارتباطات

توانایی در برقراری ارتباط با سایرین یکی دیگر از فاکتورهایی است که خبر از داشتن استعداد در برنامه‌نویسی در وجود شما را می‌دهد. اگر شما فردی هستید که می‌توانید به راحتی با دیگران ارتباط برقرار کنید و از گفتگو و معاشرت با دیگران نوعی حس رضایت و خرسندی به شما دست  می‌دهد. باید بگوییم شما فردی هستید که اگر وارد دنیای برنامه‌نویسی شوید می‌توانید موفقت‌های شگفت انگیزی را در کارنامه‌ی خود به ثبت برسانید.

سخن نهایی…

ما در این مقاله ۱۰ فاکتور اساسی، داشتن استعداد برنامه‌نویسی را مورد بحث و بررسی قرار دادیم. حال اگر شما به برنامه‌نویسی و برنامه‌نویس شدن علاقه دارید و اما فاکتورهای مذکور را در وجود خود نمی‌بینید نا امید نشوید چرا که داشتن اشتیاق و علاقه اصلی‌ترین و محکم‌ترین پلی است که در نهایت شما را به یک برنامه‌نویس قهار تبدیل می‌کند. فاکتورهای ذکر شده می‌توانند مسیر یک برنامه‌نویس شدن را برای شما آسان‌تر کنند اما اگر صاحب برخی از این ویژگی‌ها نیستید باید بگوییم همه‌ی آن‌ها نوعی فاکتور و ویژگی‌هایی اکتسابی هستند که به‌آسانی  و با پشتکار می‌توانید آن‌ها به دست آورید.

اگر شما هم علاقمند به حوزه برنامه نویسی و نرم افزار باشید، احتمالا کلمه فریمورک به گوشتان خورده است. فریمورک‌های برنامه نویسی مجموعه ای از کدها هستند که برنامه نویسی را به کاری جذاب و لذت بخش تبدیل می‌کنند. اگر شما نیز به بحث برنامه نویسی علاقمند هستید و قصد کسب اطلاعات بیشتر در مورد فریمورک را دارید؛ با ما تا انتهای این مقاله همراه باشید.

فریمورک

یک اسکلت بندی ساختمان را در نظر بگیرید. وظیفه و کاری که این اسکلت بندی انجام می‌دهد چیست؟ اسکلت بندی ساختمان باعث می‌شود تا محتوای درون آن (دیوار‌ها و … ) سختار منظم تر و بهتری داشته باشند. به عنوان مثال می‌توان گفت اسکلت بندی ساختمان به عنوان یک قالب (Frame) به ما کمک می‌کند تا ساختمان را با نظم بهتر و اصولی بسازیم. فریمورک‌ها نیز در برنامه نویسی همین وظیفه را دارند. به صورت دقیق تر می‌توان گفت فریمورک‌ها به برنامه نویس‌ها کمک می‌کنند تا عملیات کد نویسی را سریع تر، بهتر، دقیق تر و منظم تر انجام دهند. اکنون که با مفهوم فریمورک و روش کار آن آشنا شدیم، وقت آن رسیده است تا با تعریف کلی آن‌ها آشنا شویم:

فریمورک

فریمورک‌ها چهارچوب و ساختارهای کد نویسی هستند که توسط بهترین برنامه نویسان جهان به صورت مجموعه کدها و ابزارها و قوانین ارائه شده اند که تنها یک هدف دارند و آن نیز راحت تر کردن برنامه نویسی برای علاقمندان به این حوزه است.

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

حال ممکن است برایتان سوال پیش آمده باشد که چرا باید از فریمورک‌ها استفاده کنیم و یا استفاده از فریمورک‌ها واجب و ضروری است یا خیر؟ در ادامه نکاتی را مطرح خواهیم کرد که تا حدی پاسخگوی سوالات شما است.

هیچگاه دوباره چرخ را اختراع نمی‌کنید

استفاده از فریمورک‌های برنامه نویسی به شما کمک می‌کند که چرخ را از ابتدا اختراع نکنید. به عنوان برای نوشتن یک برنامه با زبان PHP و با استفاده از فریمورک‌ها می‌توانید خیلی راحت از ابتدایی ترین قسمت‌های کد نویسی گذر کرده و به سراغ بخش اصلی برنامه خود بروید.

سرعت کد نویسی را افزایش می‌دهد

از دیگر مزایای استفاده از فریمورک‌ها این است که باعث افزایش کد نویسی شما می‌شود. دلیل این اتفاق این است که استفاده از فریمورک‌ها باعث می‌شود خیلی از کارها از قبل تعبیه شده باشد و به شما این امکان را می‌دهد تا تمام تمرکز خود را بر روی بخش منطقی برنامه بگذارید.

فریمورک

کدهای منظم تری خواهید داشت

همانطور که در ابتدای مقاله عنوان شد؛ نحوه کار فریمورک‌ها به این صورت است که با ایجاد ساختار و قالبی از پیش تعیین شده، این امکان را می‌دهند تا عملیات کد نویسی با نظم بیشتری انجام شود و کدها ساختاری منظم داشته باشند.

تمرکز بر بخش اصلی پروژه

تمامی‌ ‌مزایایی که در بالاترعنوان شد نهایت به این موضوع ختم می‌شود که تمرکز شما بر روی بخش اصلی پروژه باشد و دیگر بخش‌های کدنویسی را با کمک فریمورک انجام دهید.

جمع بندی

همانطور که گفته شد، فریمورک‌ها یکی از مهم ترین و موثر ترین ابزارهای کمکی برنامه نویسی هستند که به توسعه دهندگان کمک می‌کنند تا برنامه ای تمیز و با ساختاری منظم بنویسند. اما نکته ای که قبل از استفاده از فریمورک‌ها وجود دارد؛ انتخاب مناسب ترین فریمورک برای شما است. فریمورک‌های زیادی برای هر زبان برنامه نویسی وجود دارد که ما در مقالات دیگر وبسایت‌ هاتف تعدادی از آن‌ها از جمله فریمورک‌های مطرح جاوا اسکریپت، فریمورک لاراول و دیگر فریمورک‌ها را بررسی کردیم. شما نیز قبل از کار با فریمورک‌ها، لازم است تا انواع مختلف آن را بررسی کرده و مناسب ترین و کارآمد ترین آن‌ها را انتخاب کنید.

اگر شما هم از علاقمندان به حوزه طراحی وب هستید، حتما نام فریمورک لاراول را شنیده اید. لاراول یکی از محبوب ترین فریمورک‌های PHP است. اگر شما نیز از علاقمندان به حوزه طراحی وب هستید و یا قصد آشنایی بیشتر با این فریمورک را دارید؛ با ما تا انتهای این مطلب همراه باشید.

زبان Php

طراحی وب یکی از محبوب ترین و همچنین پردرآمدترین مشاغل امروزی است که افراد زیادی را به خود جذب کرده است. طراحی وب دنیایی وسیع و پیچیده دارد و روش‌های زیادی برای وارد شدن به این دنیا وجود دارد که از مهم ترین آن‌ها می‌توان به زبان برنامه نویسی php  اشاره کرد. Php یک زبان تفسیر شونده است که اساس و بنیان آن طراحی و ایجاد صفحات پویای وب است. php را می‌توان محبوب ترین زبان برنامه نویسی در حوزه طراحی وب دانست. php نیز مانند دیگر زبان‌های برنامه نویسی، دارای فریمورک‌های زیادی است که از مهم ترین این فریمورک‌ها می‌توان به YII، ZEND، Codeigniter، CakePHP، SYMFONY و LARAVEL  (لاراول) اشاره کرد.

 

لاراول

لاراول

همانطور که گفته شد، php از محبوب ترین زبان‌های برنامه نویسی حوزه طراحی وب است و فریمورک‌های زیادی دارد که Laravel یکی از آن‌ها است. لاراول مبتنی بر معماری MVC است که به صورت رایگان و متن باز ارائه شده است. لاراول را می‌توان محبوب ترین فریمورک PHP دانست زیرا علاوه بر ویژگی‌های منحصر به فرد، توانسته در کمترین زمان به اولین گزینه طراحان وب تبدیل شود. مهم ترین ویژگی‌های لاراول را می‌توان امنیت و سرعت توسعه بیشتر نسبت به دیگر فریمورک‌های php دانست. لاراول کتابخانه‌های متنوعی دارد و سرویس‌های زیادی از جمله تایید هویت، پرداخت و صورت حساب و … در اختیار توسعه دهندگان می‌گذارد.

تاریخچه

اکنون که با فریمورک لاراول آشنا شدیم، نوبت بررسی تاریخچه این فریمورک محبوب است.  Tylor otwell خالق فریورک لاراول، با هدف ارائه یک راح حل پیشرفته نسب به فریمورک Codeigniter این فریورک را ارائه کرد. تا کنون ۷ نسخه از این فریورک در دسترس توسعه دهندگان قرار گرفته که اولین نسخه آن در سال ۲۰۱۱ و با ایرادات جزئی منتشر شد. پس از آن و در همان سال ۲۰۱۱، لاراول ۲ با هدف بهبود ایرادات نسخه اول به بازار عرضه شد و توانست به عنوان نسخه پایدار و پشتیبانی کننده از معماری MVC در بین توسعه دهندگان شناخته شود. بعد از آن و تا به امروز ۵ نسخه دیگر از لاراول منتشر شده که در هر کدام از آن‌ها ویژگی‌های جدیدی اضافه و مشکلاتی از این فریمورک حذف شده اند.

لاراول

مزایای لاراول

لاراول که به آن به دلیل ویژگی‌های منحصر به فردش جادوگر وب نیز گفته می‌شود؛ ویژگی‌ها و مزایای پرشماری دارد که تعداد این قابلیت‌ها با هر بروزرسانی افزایش می‌یابد. در لاراول با کمترین میزان کد نویسی کارهای بزرگی انجام داد. از مهم ترین ویژگی‌های این فریمورک می‌توان به:

  • استفاده از معماری MVC
  • متن باز بودن
  • یادگیری آسان
  • سرعت توسعه بالا
  • امنیت بالا
  • بروزرسانی آسان
  • آسان بودن عملیاتی مانند احراز هویت، مسیریابی و Cache
  • افزایش سرعت کد نویسی
  • جامعه کاربری بزرگ
  • کاهش حجم کد نویسی

اشاره کرد.

لاراول

کلام آخر

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

انواع زبان‌های برنامه نویسی می‌توانند در بخش‌ها و صنف‌های مختلف مورد استفاده قرار بگیرند و متخصصان خاص خودشان را داشته باشند. علاقمندان به برنامه‌ نویسی بهتر است برای وارد شدن به این حوزه‌ شناخت لازم را بدست آورند و ابتدا متوجه شوند که کدام یک از سطوح مختلف زبان های برنامه نویسی با آن‌ها هماهنگی دارد. زبان برنامه نویسی سطح بالا و پایین دو نمونه از سطح‌های زبان‌ برنامه نویسی هستند که هر کدام از آن‌ها ویژگی‌هایی دارند که آشنایی با آن‌ها خالی از لطف نیست و می‌تواند در کیفیت ورود شما به این حوزه تاثیرگذار باشد.

مقاله‌ای که در حال خواندن آن هستید و در جریان محوریت موضوع آن قرار گرفتید قرار است به بررسی زبان‌های برنامه‌نویسی سطح بالا و پایین بپردازد و تا حدی شما را با ویژگی‌ها، انواع و موارد استفاده‌ از آن‌ها آشنا کند. اگر قصد ورود به حوزه‌ی برنامه‌نویسی را دارید پیشنهاد میکنم علاوه بر مطالعه‌ی این مطلب سایت لینکدین را نیز بررسی کنید.

زبان برنامه نویسی سطح بالا و پایین و بررسی آن‌ها

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

 زبان برنامه نویسی سطح بالا

زبان‌های برنامه‌ نویسی سطح بالا زبان‌هایی هستند که نسبت به زبان‌های سطح پایین به زبان کاربر نزدیک‌تر هستند. وقتی می‌گوییم زبانی سطح بالاست به این معنی نیست که از زبان‌های سطح پایین بسیار فوق‌العاده‌تر است، بلکه به این معناست که کار کردن با آن راحت‌تر است. زبان برنامه نویسی سطح بالا و پایین هر دو می‌توانند نیاز ما را برطرف کنند اما نحوه‌ی نوشتن برنامه‌ در آن‌ها با هم متفاوت است. نکته‌ی دیگری که شاید حائز اهمیت باشد این است که استفاده کردن از عبارت سطح پایین یا بالا بودن برای زبان‌های برنامه نویسی کاملا نسبی است و ممکن است نظر برنامه‌نویسان مختلف راجع‌به آن‌ها متفاوت باشد.

برخی از ویژگی‌هایی که این نوع زبان برنامه‌نویسی را از زبان‌های سطح پایین متمایز می‌کند عبارت‌اند از کاربرپسند بودن، ارائه‌ی مفاهیم در قالب‌های گرافیکی، سهولت در یادگیری و استفاده از قواعد و دستورالعمل‌ها، داشتن سرعتی کمتر از زبان‌های سطح پایین، اشغال نمودن فضای کمتری نسبت به زبان‌های سطح پایین. از زبان‌های برنامه نویسی سطح بالایی که مطرح هستند و مورد استفاده قرار می‌گیرند می‌توان به زبان‌های پاسکال، فرترن، سی پلاس پلاس، سی شارپ، پایتون، جاوا، دلفی، ویژوال بیسیک و ویژوال بیسیک دات نت اشاره کرد.

زبان برنامه نویسی سطح پایین

همانطور که بیان شد زبان برنامه نویسی سطح بالا و پایین ویژگی‌هایی دارند که باعث شده است کاربردهای مختلفی داشته باشند. زبان‌های سطح پایین که به آن‌ها زبان برنامه نویسی کوتاه‌تراز نیز می‌گویند به زبان سخت افزار نزدیک‌تر هستند و به دو گروه نسل اول و نسل دوم تقسیم بندی می‌شوند. نسل اول زبان‌های برنامه‌ نویسی‌ کد ماشین هستند. این زبان تنها زبان برنامه نویسی‌ای است که به طور مستقیم تحت نظر ریزپردازنده کنترل می‌شود.

این روزها برنامه نویسان دیگر از زبان ماشین استفاده نمی‌کنند زیرا مانند زبان اسمبلی به جزئیات بسیاری نیاز دارد و اگر از زبان‌های سطح بالا استفاده شود دیگر نیازی به برطرف نمودن آن‌ها نمی‌باشد به این‌صورت که نیازی نیست برای هر دستور، کد متناسبی در نظر گرفته شود. زبان نسلِ دوم همان زبان اسمبلی است که سطح انتزاع بالاتری از زبان ماشین دارد؛ ولی با وجود این سطح انتزاع باز هم ریزپردازنده‌هایی مانند دستورالعمل‌ها و ثبات‌ها مورد بررسی و توجه قرار گرفته می‌شوند.

زبان برنامه نویسی سطح بالا و پایین و مدل‌های اجرایی زبان‌های سطح بالا

زبان‌های برنامه نویسی سطح بالا یا مدرن برای اجرا شدن سه روش عمومی دارند که عبارت‌اند از ترجمه شده، تفسیر شده و ترجمه‌ی بین زبانی یا کد به کد. در روش ترجمه شده وقتی کدی را به زبان برنامه نویسی‌ای ترجمه می‌کنیم، تمامی دستورها پیش از اجرا شدن به فرمی که قابلیت اجرا داشته باشد تبدیل می‌شوند. در این روش ۲ نوع ترجمه داریم که یکی از آن‌ها “تولید کد ماشین” و دیگری “نمایش میانی” می‌باشد.

در روش بعدی که روش تفسیر شده می‌باشد، بعد از نوشتن کدها، خط به خط برنامه تفسیر می‌شود و به اجرا در می‌آید به این صورت که برنامه‌ی مفسر بعد از خواندن هر عبارت جریان را پیگیری می‌کند و بعد تصمیم می‌گیرد که چه کاری باید انجام شود. در واقع در این روش می‌توان گفت که ادغام کارهای یک مترجم و مفسر، عبارت‌ها را به زبان ماشین برمی‌گرداند و به اجرا می‌رساند. و بعد از تمام شدن اجرای برنامه، کدها از بین می‌روند و اگر نیاز به اجرای دوباره باشد، باید تمام مراحل دوباره تکرار شوند.

روش سوم ترجمه‌ی بین زبانی یا کد به کد است که کدهای نوشته شده در یک زبان برنامه نویسی به کدهای زبان برنامه‌ نویسیِ سطح پایین‌تر ترجمه می‌شوند؛ و دلیل این کار این است که مترجم‌های این زبان‌ها بیشتر در دسترس هستند.

کلام آخر

بررسی ویژگی زبان برنامه نویسی سطح بالا و پایین و آشنایی با تفاوت‌هایی که دارند را در این مطلب از سایت hatefco مطالعه نمودید؛ اگر به مطالب دیگری در این حوزه علاقه‌مند هستید می‌توانید با مراجعه به بخش مقالات برنامه نویسی، مطالبی مانند آشنایی با انواع زبان های برنامه نویسی، زبان برنامه نویسی چند منظوره و یا زبان های برنامه نویسی میانی و… را هم مطالعه کنید و اطلاعات خود را در این حوزه بیشتر کنید و در نهایت از هر کدام از آموزش‌هایی که مدنظرتان است استفاده کنید و به فعالیت و کسب درآمد بپردازید.

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

باگ در لغت

باگ در لغت به معنای اشکال نرم افزاری است. باگ به نوعی از خطا یا اشتباه در یک سیستم گفته می‌شود که در پی آن، نرم افزار یا سیستم عملکردی ناقص یا اشتباه داشته باشد و یا به طور کل اجرا نشود. البته لازم به ذکر است که معنای تحت اللفظی باگ، حشره است.

تاریخچه باگ

باگ باگ نرم افزاری گری هاپرتاریخچه باگ مطابق با منابع موجود در فضای مجازی به سال ۱۹۴۵ باز می‌گردد. در سال ۱۹۴۵ و در دانشگاه هاروارد، هنگام عیب یابی یک ماشین حساب به نام MARK II، کلمه باگ به کار برده شده است. اولین کسی که از کلمه باگ برای اشکال در آن زمان استفاده کرد، خانمی به نام گریس هاپر است که در نیروی دریایی کار می‌کرده است. گریس هارپر ریاضی دان آمریکایی بود که به در جهان به عنوان اولین بانوی نرم افزار و نخسیتین مادر و مدرس برنامه نویسی کامپیوتر شناخته می‌شود. از مهم ترین فعالیت های خانم هاپر می‌توان به اختراع اولین زبان برنامه نویسی برای رایانه های MARK I و MARK II اشاره کرد. همچنین هاپر نخستین مترجم کامپایلر نیز هست. گریس هاپر از موفق ترین زنان دنیا است.

 

گفته می‌شود که در آن هنگام که ماشین حساب MARK II کار نمی‌کرد، بعد از مدت طولانی جست و جو برای حل مشکل متوجه می‌شوند که یک سوسک بین کنتاکتورهای رله شماره ۷۰ گیر کرده است. از این رو می‌توان گفت اولین استفاده از باگ دقیقا در معنای اصلی آن بوده است.

 

 

درست است که منابع مختلف استفاده از کلمه باگ را به خانم هاپر و رویداد بالا نسبت می‌دهند؛ اما لازم است بدانید که در قبل از آن هم از باگ استفاده می‌شده است. در سال ۱۸۷۸ ادیسون در نامه ای خطاب به دوستش باگ را اشتباهاتی کوچک که خودشان را نشان میدهند و برای حل آن‌ها به ماه‌ها تلاش، سختی و مطالعه لازم است؛ معرفی کرده است. این نوع تعریف ادیسون از باگ نشان دهنده این است که باگ در زمان‌های قبل از ۱۸۷۸ نیز وجود داشته است و ادیسون صرفا این موضوع را نقل کرده است.

انواع باگ

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

باگ باگ نرم افزاری

سینتکسی

سینتکس به معنای نحوه نوشتن و قرارگیری کلمات و عبارات به صورت درست در یک زبان برنامه نویسی است. مسئله ای که ما بین زبان‌های برنامه نویسی تفاوت ایجاد می‌کند، تفاوت میان سینتکس‌هاست. باگ سینتکسی زمانی اتفاق میافتد که قواعد نوشتاری یک زبان برنامه نویسی رعایت نشود.
منطقی

باگ منطقی نیز زمانی نشان داده می‌شود که قواعد منطقی نرم افزار درست پیاده نشده باشد. به عنوان مثال کد به صورتی نوشته شده باشد که اجرای یک نرم افزار در یک حلقه بی نهایت قرار گیرد.

محاسباتی

باگ بعدی که در این مقاله آن را معرفی خواهیم کرد، باگ محاسباتی نام دارد. این باگ هر موقع محاسبات ریاضی نرم افزار به مشکل برخورد کنند و یا با خطا رو به رو شوند به وجود می‌آید. به عنوان مثال در قسمتی از برنامه عددی تقسیم بر ۰ شود

منابع

باگ منابع نیز مورد دیگر از انواع باگ‌ها است. این نوع باگ نیز زمانی رخ می‌دهد که در به کارگیری از منابع نرم افزاری خطایی رخ دهد. به عنوان مثال به متغیری که در نرم افزار تعریف نشده اشاره شود.

کار تیمی

در بسیاری از پروژه‌های بزرگ، چند برنامه نویس به صورت همزمان مشغول کد نویسی هستند. در خلال این کار تیمی و در بعضی موارد مشکلاتی اعم از تفاوت در نام گذاری و یا مستندسازی برنامه نویسان ایجاد می‌شود. به این خطاها باگ کار تیمی گفته می‌شود.

تعامل

هر گاه یک برنامه در تعامل با دیگر بخش‌های نرم افزاری و یا سخت افزاری دچار مشکل و خطا شود، باگ تعامل رخ می‌دهد.

چند رشته‌ای

آخرین نوع باگ که در این مقاله بررسی خواهیم کرد، باگ چند رشته ای نام دارد. باگ چند رشته ای را به صورت زیر تعریف می‌کنند:
زمانی که اجرای thread‌ها در نرم‌افزارها دچار مشکل می‌شوند. مثلا جایی که وظیفه A تا زمانی که وظیفه B تمام نشده باشد، ادامه نخواهد یافت، اما در عین حال، وظیفه B نمی‌تواند ادامه یابد تا زمانی که کار A تمام شود.

 

باگ باگ نرم افزاری

وجود باگ در یک برنامه چه خطراتی را در پی خواهد داشت؟

حال که با باگ برنامه نویسی، تاریخچه باگ و انواع باگ آشنا شدیم، بد نیست تا نگاهی به بد ترین باگ‌های تاریخ بیاندازیم که خسارات جبران ناپذیری را موجب شده اند.

۱- در ۴ ژوئن ۱۹۹۶ موشک آریان ۵ موتورهای خود را روشن کرد و شروع به دور شدن از ساحل گویان فرانسه شد. بعد از ۳۷ ثانیه موشک با ۹۰ درجه در جهت نادرست چرخید و دو ثانیه بعد در ارتفاع ۴ کیلو متری از سطح زمین، تقویت کننده‌ها شکافته شده و از پایه اصلی جدا شدند. این موضوع باعث شد خودتخریبی موشک فعال شدن و ۳۷۰ میلیون دلار در آتشی عظیم از هیدروژن مایع نابود شد. خطایی که در این پروژه رخ داد، یک خطای عمل وند بود.

۲- مورد بعدی از خطاهای بزرگ که خسارات جبران ناپذیری را شکل داده اند، مربوط به شرکت سرمایه گذاری نایت است. در یکم آگوست ۲۰۱۲ بروزرسانی نرم افزاری را بر روی سرور‌های عملیاتی خود دیپلوی کردند. حدود ساعت ۸ صبح تعداد ۹۷ ایمیل هشدار برای کارکنان رسید که حاکی از وجود یک پیکربندی نادرست در برنامه بود. ساعت ۹ صبح بورس نیویورک باز شد و شرکت نایت دستورالعمل خرید و فروش دارایی‌های خود را اعلام کرد. ۴۵ دقیقه بعد ایراد نرم افزاری کار خود را کرد و سرور‌های شرکت نایت ۴ میلیون معامله ایجاد کردند که در آن‌ها ۴۶۰ میلیون دلار هزینه شد و شرکت در آستانه ورشکستگی رفت. در پی این اتفاق سهم‌های بورس نیویورک جهشی بیش از ۳۰۰ درصدی داشتند. در آخر کار این شرکت به علت نقض قوانینی مختلف از سمت سازمان بورس ۱۲ میلیون دلار جریمه شد.

برای کسب اطلاعات بیشتر در مورد این نوع خطاها و مشاهده موارد بیشتر به لینک زیر مراجعه کنید:

https://www.bugsnag.com/blog/bug-day-ariane-5-disaster

تعاریف تخصصی، پیچیده و گسترده ای برای برنامه نویسی وجود دارد. اما به زبان ساده می‌توان برنامه نویسی را علم نوشتن دستوراتی خواند که یک سیستم آن را فهمیده و یکی پس از دیگری آن ها را اجرا کند. زبان برنامه نویسی لغات، دستورات و قوانین نوشتن دستورات را در اختیار ما می‌گذارد و ما با استفاده از این واژگان و قوانین، دستورات قابل فهمی را به کامپیوتر وارد کرده و برنامه‌های مورد نظر خود را می‌سازیم.

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

اکنون که با تعریف برنامه نویسی آشنا شدیم، بهتر است تا بیشتر با مزایای برنامه نویسی آشنا شده تا بالاخره بفهیم به چه دلیل لازم است تا برنامه نویسی را یاد بگیریم.

برنامه نویسی

درآمد مناسبی دارد

شاید اولین چیزی که یک فرد را مجاب به یاد گرفتن برنامه نویسی می‌کند، بحث درآمد خوب آن باشد. حوزه برنامه نویسی یکی از پردآمدترین حوزه‌های شغلی در جهان است. البته که این موضوع در ایران کمی ‌با دیگر کشور‌ها متفاوت است اما باز هم تفاوتی در اصل داستان ندارد.

طبق آمار منتشر شده، میانگین درآمد یک برنامه نویس در تهران ۴ میلیون و در دیگر شهرهای بزرگ ۳ میلیون تومان است. در خارج و کشور‌های دیگر نیز یک برنامه نویس متوسط  به طور میانگین در کشور سوئد ۹۳ هزار دلار در سال و در آمریکا ۱۰۸ هزار دلار در سال دریافت می‌کند.

البته تمامی‌ عددهای بالا متناسب با حوزه فعالیت برنامه نویس‌ها،  موقعیت جغرافیایی و یا جنسیت متغیر است.

می‌توانید ایده‌های خود را اجرا کنید

از دیگر ویژگی‌های مثبت برنامه نویسی که افراد را مجاب به ورود به این حوزه می‌کند، توانایی اجرایی کردن ایده‌ها با استفاده از برنامه نویسی است. از نمونه‌های بارز این ویژگی می‌توان به شرکت فیسبوک اشاره کرد. زاکربرگ جوان برنامه نویسی بود که توانست با دانش خود و ایده ای که داشت شرکت خود را تاسیس کند و به درآمد بالایی برسد. و یا در نمونه‌های ایرانی وبسایت آپارات. مدیر وبسایت آپارات نیز برنامه نویسی است که تمامی‌ فعالیت های وبسایت را خودش انجام داده است.

پس می‌توان نتیجه گرفت برنامه نویسی این توانایی را به ما می‌دهد تا ایده های خود را اجرا کنیم و از طریق آن ها به کسب درآمد بپردازیم.

آینده خوبی دارد

از دیگر ویژگی های مثبت برنامه نویسی، آینده پیش روی این حوزه است. اگر شما تصمیم دارید که برنامه نویس شوید، لازم است بدانید که برنامه نویسی شغل آینده داری است . مطابق سخنان مارک زاکربرگ، احتمالا در آینده ای نه چندان دور، برنامه نویسی از سنین کودکی و در دوران ابتدایی به کودکان آموزش داده می‌شود. از این رو پیش بینی می‌شود که آینده خوبی در انتظار صنعت برنامه نویسی در دنیا باشد.

برنامه نویسی

یک ورزش ذهنی است

افراد در هنگام پیری به حل جدول و یا کارهای ذهنی از این دست برای جلوگیری از آلزایمر روی می‌آورند. برنامه نویسی نیز یکی از فعالیت هایی است که انجام دادن آن در دوران جوانی به شما کمک می‌کند تا در پیری به بیماری هایی از قبیل آلزایمر دچار نشوید.

روش‌های حل مسائل را به شما می‌آموزد

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

برنامه نویسی

چون بزرگان می‌گویند

آخرین نکته ای که در این مقاله با عنوان دلایل یادگیری برنامه نویسی بررسی خواهیم کرد؛ نظر بزرگان حوزه تکنولوژی در مورد برنامه نویسی است. در میانه مقاله هم عنوان کردیم که مارک زاکربرگ موسس فیس بوک، عقیده دارد که در سال های آینده علم برنامه نویسی را در دوران ابتدایی به عنوان یک درس به کودکان آموزش می‌دهند. از طرفی استیو جابز نیز عقیده داشت که بر همه مردم واجب است تا برنامه نویسی را فراگیرند؛ زیرا برنامه نویسی به افراد کمک می‌کنند تا فکر کنند.

فیلم از اهمیت یادگیری برنامه نویسی می‌گوید:

 

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

توضیحاتی درباره نرم افزار

شما حتما در مورد نرم افزار و سخت افزار بسیار شنیده‌اید ولی آیا به درستی می‌دانید که این دو واژه به چه معنا هستند؟ آیا در مورد کاربرد آن‌ها می‌دانید؟ ما در این بخش به تعریف این دو واژه می‌پردازیم.

ساده ترین پاسخی که برای این سوال می‌توانیم بیان کنیم این است که سخت افزار کامپیوتر، قابلیت لمس دارد ولی نرم افزار آن خیر!

ازاین پاسخ ساده که بگذریم، در حقیقت نرم افزار برنامه‌ای است که در رایانه اجرا می‌شود. دنیای نرم افزارها و برنامه‌های رایانه‌ای به موازات گسترش برنامه نویسی و زبان‌های آن گسترش پیدا کرده است. پس هنگامی که به مطالعه روند گسترش برنامه نویسی بپردازیم، به تاریخچه برنامه نویسی دست می‌یابیم. در ادامه این مبحث به تعریف برنامه نویسی و برنامه کامپیوتری می‌پردازیم. با ما همراه باشید.

تاریخچه برنامه نویسی

تعریف برنامه کامپیوتری و برنامه نویسی

یک عمل مشخص در رایانه، با اجرای یک سری دستورات به صورت متوالی انجام می‌شود. این مجموعه دستورات که برای انجام یک عمل مشخص به طور مرتب در یک فایل تهیه می‌شوند را برنامه کامپیوتری گویند. شخصی که این برنامه را تدوین می‌کند برنامه نویس و به محتویات فایل یا دستور، سورس یا منطق برنامه می‌گویند.

محتویات یک برنامه کامپیوتری، صرفا دستوراتی است که توسط رایانه قابل اجرا هستند. این دستورات به صورت از قبل تعیین شده و بر اساس یک روش منطقی و پشت سرهم هستند. اگر این دستورات به درستی پیاده شوند، در انتها عملی را که مورد نظر برنامه نویس است به انجام می‌رسد. در بخش بعدی این بحث به قدیمی‌ترین برنامه‌های کامپیوتری در تاریخ جهان اشاره می‌کنیم.

قدیمی‌ترین برنامه‌های کامپیوتری جهان

قدیمی‌ترین برنامه نویسی مربوط به سال ۱۸۰۱ در کشور فرانسه است. شخص برنامه نویس که جکارد نام داشت، یک دستگاه بافندگی را طراحی کرد. به وسیله این طراحی، اعمالی از بافندگی را که روی کارت‌های سوراخ دار هک شده بودند را به ترتیب انجام می‌داد. این فناوری قابلیت تولید بافت‌های پیچیده و با کیفیت‌تر را به کارگران می‌داد. با وجود این برنامه نویسی صرفا یک نفر برای مدیریت کل دستگاه کافی بود.

در حدود ۵۰ سال بعد نظریه ماشین‌هایی که قابلیت برنامه نویسی دارند مورد توجه “خانم آدا لاولیک” قرار گرفت. او تصمیم گرفت که برنامه ای بنویسد. این برنامه به صورت کارت‌هایی بود که تعدادی عدد خاص را به ترتیب چاپ کرده بود. خانم لاولیک از نظر اینکه اولین کار خاص را بر روی موتور تحلیلگر انجام داد، می توان به عنوان اولین برنامه نویس دنیا دانست. زبان برنامه نویسی هم به احترام این خانم “آدا” نام گرفت.

جالب است بدانید که وقتی به تاریخچه برنامه نویسی که نگاه کنیم می‌بینیم که اولین برنامه نویسان جهان همگی خانم هستند.

در زمان انقلاب صنعتی در انگلیس یک روند مشابه در کشور فرانسه به وقوع پیوست. در ادامه استفاده از ماشین‌های اتوماتیک و کاهش نیروی انسانی، حرکتی با نام لودیت‌ها به وجود آمد. این جنبش را افرادی که مخالف توسعه فناوری بودند و برای شغل و کار خود می‌جنگیدند به وجود آوردند.

در این دوره زمانی برنامه نویسی دوشادوش ساخت ماشین‌های مدرن آن روزگار که توسط پاسکال، شوالتز و بابیج ساخته شده بود، گسترش می‌یافت. در سال ۱۸۴۷ میلادی، شخصی به نام جورج بول با ارائه جبر منطقی، مرتبط بودن علم ریاضیات را با منطق اثبات کرد. جورج برای اولین بار اثبات کرد که علم منطق بیشتر مربوط به ریاضیات است تا فلسفه و به این ترتیب تفکر بشریت در محاسبات کامپیوتری به کار گرفته شد.

بعد از بررسی اولین برنامه‌ها رایانه‌ای در جهان به ساخت اولین کامپیوتر الکترونیکی و مشخصات آن اشاره می‌کنیم.

تاریخچه برنامه نویسی

اولین برنامه‌های کامپیوتری و سیر تکامل آن‌ها

در دهه ۴۰ میلادی اولین رایانه الکترونیکی ساخته شد که حافظه و سرعت بسیار پایینی داشت. دهه ۴۰ که به عصر ارتباطات معروف بود، اجرای برنامه رایانه‌ای مستلزم تنظیمات مختلف بود. برای اجرای برنامه‌های کامپیوتری باید کلیدها، اتصال سیم‌های برق و سوئیچ‎‌ها تنظیم می‌شدند که این تنظیمات، منطق برنامه را مشخص می‌کرد.

در چنین حالتی، برنامه نویسی یعنی تنظیم تعداد زیادی سیم. در آن دوران برای برنامه نویسی، جای سوییچ و کابل‌ها را تغییر می‌دادند. برای هر کاری در رایانه، یک سخت افزار خاص طراحی شده بود که باید توسط اتصال پورت‌ها و سیم‌ها، برنامه اصلی شکل بگیرد. جالب است بدانید، برنامه نویسان اولیه همگی خانم بودند.

در سال ۱۹۴۵ میلادی “نیومن” دو اصل اساسی را ارائه کرد که تاثیر مستقیمی بر روی مسیر توسعه برنامه نویسی گذاشت. این دو اصل عبارت بودند از:

الف- تکنیک برنامه مشترک
مطابق اصل اول کامپیوترها باید بسیار ساده باشند و تجهیز شدن آن ها به صورت دستی، نیازی نیست.

ب- انتقال کنترل به صورت شرطی
مطابق اصل دوم در هر جای برنامه اصلی می تواند برنامه کامپیوتری شامل بلاک های کوچکتری از دستورات به نام subroutine  جای گیرند. این بلاک‌ها به هر تعداد که لازم است می تواند در برنامه اصلی جای بگیرد.

ادامه سیر تکاملی زبان‌های کامپیوتری

ارائه تئوری ریاضی ارتباطات در سال ۱۹۴۸ توسط شخصی به نام کلود شانن انجام گردید. این تز روش استفاده از منطق باینری در محاسبه نرم افزاری را توضیح می‌داد. تئوری ارائه شده دنیای صفر و یک‌ها که همان منطق باینری و اساس و پایه کامپیوترهای امروزی هستند را تشکیل داد. اولین رایانه باینری در زمان جنگ جهانی دوم توسط یک آلمانی ساخته شد.

در سال ۱۹۴۹ زبان برنامه نویسی یعنی کد کوتاه (Short Code) به وجود آمد. شورت کد از یک سری دستورات به صورت صفر و یک تشکیل شده بود که اولین زبان برنامه‌های کامپیوتری به شمار می‌رود. این زبان اولین قدم برای ساخت دنیایی از زبان‌های برنامه نویسی امروزی بود.

در سال ۱۹۵۱ میلادی  به نام A-0 اولین کامپایلر کامپیوتر نوشته شد. اولین کامپایلر توسط هاپر نوشته شد. کامپایلر به برنامه‌ای گفته می‌شود که دستورات برنامه نویسی را به صفر و یک مبدل می‌کند. در این زمان به سبب اینکه برنامه نویس نیازی به ورود کدهای صفر و یک نداشت، سرعت برنامه نویسی رایانه‌ای چند برابر شد.  در ادامه مختصری درباره نسل‌های زبان برنامه کامپیوتری شرح می‌دهیم.

زبان های برنامه کامپیوتری به چند نسل تقسیم می‌شوند؟

پیشرفت در برنامه‌ها و کد نویسی به مرور ادامه داشت تا در سال ۱۹۷۲ بیش از ۲۰۰ زبان برای برنامه‌ها تعریف شد. بیشتر این زبان‌ها به جهت کاربرد ویژه‌ای توسعه پیدا کرده بودند. برای این زبان‌ها می‌توان پنج نسل در نظر گرفت که در سالهای مختلف به وجود آمدند.

نسل اول در سال‌های دهه ۱۹۵۰ بوده که همان تغییر سیم و تنظیم کلید است.

نسل دوم زبان برنامه نویسی در اواسط دهه ۱۹۵۰ که استفاده از نماد به جای دستورات یک و صفر بوده است.

نسل سوم هم در اواخر دهه ۱۹۵۰ صورت گرفت و مفسرهای زبان طبیعی و کامپایلرها به وجود آمدند. قدیمی‌ترین برنامه نویسی نسل سوم که توسط IBM ساخته شد، FORTRAN بوده است. زبان‌های برنامه نویسی که در سطح بالا قرار داشتند، در این دوره به وجود آمدند مانند: ALGOL, PASCAL, BASIC

نسل چهارم این زبان‌ها، برنامه نویس را قادر می‌سازد که کارهایی با سطح بالاتر را با کد کمتری انجام دهد. برنامه‌هایی که با زبان نسل چهارم نوشته می‌شود، برای اجرا شدن نیاز به یک محیط سخت افزاری و امکاناتی خاص دارند. در دهه ۱۹۹۰ استفاده از این زبان‌ها بسیار درخواست شد.

تاریخچه برنامه نویسی

زبان‌های برنامه نویسی نسل پنجم هنوز در مرحله تئوری هستند و هنوز نمونه عملی آن ‌ها ساخته نشده است. برخی از تلاش‌ها به سبب محدود بودن سخت افزارها، به مرحله عمل در نیامده‌اند. استفاده از زبان روزمره برای تفهیم امور به رایانه از ویژگی‌های این نسل از زبان‌ها هستند. از دیگر ویژگی‌های نسل چهارم زبان‌های کامپیوتری، استفاده از هوش مصنوعی و Agent به جهت انجام امور در رایانه است.

تاریخچه برنامه نویسی از گذشته تاکنون دارای فراز و نشیب زیادی بوده است. اولین زبان که همان سیم کشی کامپیوتری محسوب می‌شد تا نسل پنجم که امروزه کاربرد دارد، همه در اثر تفکر و تلاش بهبود یافتند. این قدم‌ها هر کدام امکانات جدیدتری در اختیار برنامه نویس قرار می‌دهد. با پیشرفت زبان کامپیوتر، نرم افزارهای آن نیز پیشرفته تر شدند.

هر کدام از این خدمات باید به طور کامل و با دقت زیاد و سرعت بالا ارائه گردد تا بتوانند موجب تامین توقع کاربران شوند.

کلام آخر

برنامه نویسی و تولید نرم افزارهای رایانه‌ای در جهان کنونی، نتیجه ساعت‌ها تفکر و تلاش افراد مختلف در طول تاریخ است. و همانطور که گفته شد، تاریخچه برنامه نویسی از گذشته فراز و نشیب زیادی را داشته است. رایانه‌های امروزی از نظر سخت افزاری، طراحی بسیار ساده‌ای دارند و این نرم افزار است که توانسته است ارزش بسیار والایی را به سخت افزار بدهد. همانطور که زبان و ابزارهای برنامه‌های رایانه‌ای بهبود پیدا کرده‌اند، توقع بشر از نرم افزارها نیز بیشتر شده است. هر کدام از این خدمات باید به موازات هم تکامل پیدا کرده و گسترش یابند.

اگر تا کنون هر گونه فعالیتی در راستای برنامه نویسی و کد زنی انجام داده باشید حتما نام برنامه نویسی شی گرا به گوشتان خورده است. برنامه نویسی شی گرا یا  OOP (Object Oriented Programming) سبک جدیدی از برنامه نویسی است که  مطالب فنی زیاد و گسترده ای در مورد آن وجود دارد.

اگر شما نیز قصد شروع برنامه نویسی را دارید و سعی دارید با مفهوم برنامه نویسی شی گرا به طور ساده و کامل آشنا شوید؛ با ما تا انتهای این مقاله همراه باشید.

برنامه نویسی شی گرا

زبان برنامه نویسی شی گرا

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

این نوع زبان ها تا مدت ها قابل استفاده بود و برخی نیز هم اکنون از آن ها استفاده می‌کنند اما زبان های رویه ای برای هنگامی‌که برنامه نویس میبایست کاری خارج از ترتیب انجام دهد، مدیریت زبان های برنامه نویسی دشوار می‌شد. به خاطر همین مسئله، زبان های برنامه نویسی شی گرا وارد عرصه برنامه نویسی شدند.

مفاهیم

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

 

برنامه نویسی شی گرا

چهار اصل برنامه نویسی شی گرا

اکنون که تا حدی با برنامه نویسی شی گرا اشنا شدیم لازم است تا بدانیم چه خصوصیاتی زبان برنامه نویسی شی گرا را از زبان های رویه ای متمایز می‌کند. به طور کلی زبان های شی گرا مانند جاوا و پایتون، امکان سازمان دهی داده ها و کد ها را نوعی فراهم می‌کنند تا در پروژه های بزرگتر سازگاری بیشتری داشته باشند. زبان های برنامه نویسی شی گرا ۴ اصل کلی دارند که به نام های  تجرید، محصور سازی، وراثت و قابلیت استفاده مجدد شناخته می‌شوند.

تجرید

تجرید به معنای نادیده گرفتن جنبه هایی از مسئله است که فعلا مورد نیاز نیستند. همچنین نیز می‌توانیم یک دید کلی از مسئله داشته باشیم.

وراثت

زبان های برنامه نویسی شی گرا علاوه بر کلاس دارای زیر کلاس نیز می‌باشند. این زیرکلاس ها دارای خصوصیاتی هستند که سرگروه آن ها دارند اما می‌توانند خصوصیات دیگری را نیز بپذیرند.

برنامه نویسی شی گرا

چند ریختی

چند ریختی نتیجه وراثت است. درک کامل پند ریختی نیازمند حداقلی از دانش برنامه نویسی است. چند ریختی به برنامه نویس این امکان را می‌دهد تا متدهایی با نام یکسان را بر روی اشیا مختلف استفاده کند.

کپسوله سازی

اصل آخری که از اصول برنامه نویسی شی گرا بررسی خواهیم کرد، مفهوم کپسوله سازی است. کپسوله سازی یکی از روش هایی است که برنامه نویس برای ساخت تجرید استفاده می‌کند. هر شی مجموعه ای از داده ها است که با آن به عنوان یک واحد مجزا برخورد می‌شود.  این روش یکی از راه هایی است که برنامه نویس از طریق آن انتزاع را ایجاد می‌کند. هر شی مجموعه ای از داده ها است که با آن به عنوان موجودیتی واحد رفتار خواهد شد. برای مثال یک مهره شطرنج می‌تواند متغیری با نام position  داشته باشد. این متغیر برای استفاده در متد move() می‌تواند حیاتی باشد.

با خصوصی قراردادن متغیر position  و عمومی ‌کردن move() برنامه نویس از تاثیر ناپذیری متغیر توسط متد مطمئن خواهد شد که این همان مفهوم کپسوله سازی است.

برای سهولت کار و کمک به برنامه نویسان در این پست از هاتف به پرداز به بررسی بهترین IDE برای برنامه نویسی در زبان های مختلف برنامه نویسی پرداخته ایم که در ادامه این مطلب می توانید با آنها آشنا شوید.

محیط توسعه یکپارچه یا Integrated Development Environmen که به اختصار IDE نامیده می شود؛ بهترین ابزار یک برنامه نویس است. IDE مانند جعبه ابزاری برای برنامه نویس است که تمامی پیش نیاز‌های لازم برای تبدیل شدن یک کد به نرم افزار را برای یک برنامه نویس فراهم کرده است. از دیگر کاربردهای IDE این است که برنامه نویس را در مسیر کدنویسی صحیح و تمیز یاری خواهد کرد. هر کدام از IDE‌ها  برای کار در یک حوزه مشخص برنامه نویسی یا زبانی خاص ایجاد شده اند.

IDE , برترین IDE های برنامه نویسی

Text Editor چیست؟

از دیگر ابزار‌های مورد نیاز برنامه نویسی می توان به ویرایشگر متن و یا Text Editor  اشاره کرد. ویرایشگرهای متن به طور پیش فرض امکانات کمتری نسبت به IDE‌ها دارند ولی افزونه‌های زیادی برای آن‌ها وجود دارد که کارایی این ویرایشگرها را افزایش می دهند.

تفاوت IDE  و  Text Editor چیست؟

هر کدام از این دو ابزار معایب و مزایای خاص خود را دارند. ویرایشگرهای متن نرم افزار‌های سبک تری نسبت به IDE‌ها هستند بنابر این سرعت کد نویسی را افزایش می دهندو از طرفی IDE‌ها نرم افزارهای کامل تری نسبت به ویرایشگرهای متن هستند و نیاز به افزونه‌های زیادی برای کار با آن نیست.

Microsoft Visual Studio Code

جدید ترین Ide  شرکت مایکروسافت که در سال ۲۰۱۵ به بازار عرضه شد؛ Visual Studio Code  نام دارد. این IDE که قابلیت اجرا بر روی اکثر سیستم عامل‌ها را دارد کاملا رایگان و متن باز است. VS Code  از بیش از ۳۰ زبان برنامه نویسی پشتیبانی میکند  و در نظرسنجی سال ۲۰۱۸  وبسایت معروف StackOverflow  به عنوان محبوب ترین ابزار توسعه با کسب بیش از۳۰ درصد آرا انتخاب شد.

IDE , برترین IDE های برنامه نویسی

بهترین محیط توسعه برای طراحی وب

Sublime Text  را می توان بهترین ویرایشگر متن برای کد نویسی و طراحی وب نامید. این ویرایشگر متن در نظرسنجی سال ۲۰۱۸ چهارمین ابزار توسعه برتر شناخته شد و رابط کاربری جذابی دارد. از نکات منفی این ویرابشگر متن می توان به پشتیبانی نکردن از زبان فارسی اشاره کرد. Sublime Text بر روی سیستم عامل‌های Linux، macOS و  Windows قابل اجراست و به کاربر امکان ویرایش چندین خط به صورت همزمان را می دهد.

بهترین IDE برای PHP

بهترین IDE برای برنامه نویسی PHP را می توان PhpStorm نامید.این ابزار که توسط شرکت JetBrains توسعه داده شده است، از امکانات هوشمندی مانند نکمیل خودکار کد‌ها، رفع خطای هوشمند و هدایت پیشرفته برخوردار است. PhpStorm نیز مانند دیگر ابزارهای توسعه در سیستم عامل‌های Linux، macOS و  Windows قابل اجراست.

IDE , برترین IDE های برنامه نویسی

بهترین IDE برای پایتون

PyCharm که یکی از محبوب ترین محیط‌های کد نویسی است را می توان بهترین IDE برای برنامه نویسی به زبان پایتون دانست. این IDE مانند PhpStorm توسط شرکت JetBrains توسعه داده شده است. این IDE از AngularJS ، Coffee Script ، CSS ، Cython ، HTML ، JavaScript ، Node.js  و Python پشتیبانی می کند و در سیستم عامل‌های Linux، macOS و  Windows قابل اجراست.

بهترین IDE برای اندروید

برنامه نویس اندروید طرفداران زیادی دارد و خیلی از افراد هستند که ترجیح می دهند در این حوزه اقدام به برنامه نویسی کنند. از این رو IDE‌های زیادی برای این حوزه وجود دارد که قدرتمند ترین آن‌ها را می توان Android Studio نامید. این IDE  قدرتمند که توسط شرکت  Google  ساخته شده و ویژگی‌های مثبت زیادی مانند خطایابی کدها، شبیه سازی اندروید، پشتیبانی از Proguard و امضای برنامه اشاره کرد.

در مقاله بالا بهترین IDE‌های حوزه‌های مختلف برنامه نویسی را بررسی کردیم. اکنون شما باید متناسب با نیاز خود و حوزه ای که علاقه به فعالیت در آن دارید؛ IDE  مناسب را برای خود انتخاب کنید.