اموزش اصول برنامه نویسی و اصطلاحات برنامه نویسی که باید بلد باشید.
ممکن است که در حال مطالعهی این آموزش هستید یکی از افراد علاقهمند به برنامه نویسی بوده و بارها این سوال را از خود پرسیدهاید که چگونه باید برنامهنویسی را شروع کنم؟ چگونه میتوانم برنامههای دلخواه خود را نوشته و ایدههایی که در ذهن دارم را به برنامه تبدیل کنم؟ کدام زبان برنامهنویسی را انتخاب کنم؟
برنامه نویسی نیز مانند هر حرفهی دیگری دارای تعدادی اصطلاح و واژههای تخصصی میباشد که با دانستن آنها خواهید توانست به سادگی مفاهیم اصلی را درک کرده و به یک برنامهنویس ماهر تبدیل شوید، اگر کمی با این حوزه آشنا باشید حتما تا به حال با کلماتی مانند متغیر، تابع، دستور، حلقه، شرط و… برخورد داشتهاید، در این آموزش از شاپینگ سرور قصد داریم برخی از این اصطلاحات پایه را با هم بررسی کرده و بیشتر با معنا، مفهوم و کاربرد آنها آشنا شویم.
در همین ابتدای کار باید به شما بگوییم اگر واقعا به برنامه نویسی علاقهمند هستید این آموزش را دنبال کنید، چرا که به جرئت میتوان گفت مهمترین عامل موفقیت شما در این زمینه داشتن علاقه و گذاشتن زمان برای اینکار است!
هدف ما از برنامهنویسی این است که خواستههای خود را به رایانه منتقل کنیم، اما باید به شما بگوییم رایانه مانند شخصی میماند که هیچ چیز نمیداند! شما باید تمام درخواستهای خود را مرحله به مرحله به او بگویید وگرنه مطمئنا دچار اشتباه خواهد شد، به همین دلیل میگوییم شما باید به اندازهی کافی صبر و حوصله داشته باشید تا بتوانید خواستههای خود را به این “ماشین کند ذهن” بفهمانید!
هرچند در اکثر زبانهای برنامه نویسی توابع و متدهای آمادهی بسیاری وجود دارد که شما میتوانید بعدها در برنامهی خود به راحتی از آنها استفاده کنید، اما در این مجموعه آموزشها ما قصد داریم از شما یک برنامهنویس حرفهای بسازیم در نتیجه سعی میکنیم اصول اولیه را نیز به صورت کامل به شما آموزش دهیم، به گونهی که خودتان بتوانید به راحتی توابع مورد نیاز خود را نوشته و در برنامهتان از آنها استفاده کنید!
طبقه بندی زبان های برنامه نویسی
در حالت کلی سه دسته زبان برنامهنویسی وجود دارد، که شامل زبانهای سطح بالا، زبان سطح میانی و زبان سطح پایین میباشد، در ادامه به توضیح آنها میپردازیم:
زبان های level بالا
این دسته از زبانهای برنامهنویسی شباهت بسیار زیادی به زبان انسان داشته و به راحتی توسط انسانها قابل درک هستند، به همین دلیل به آنها زبان سطح بالا (نزدیک به زبان انسان) میگوییم، به شدت به شما توصیه میکنیم اگر برای اولین بار قصد برنامهنویسی دارید به سراغ این زبانها بروید (جاوا، پایتون، سیشارپ، آبجکتیو سی و… جزو زبانهای سطح بالا هستند)
زبان های level پایین
اینگونه زبانها به طور قابل توجهی برای انسان غیر قابل درک بوده و بیشتر به زبان ماشین شباهت دارند، هرچند فهم آنها برای رایانه آسانتر است، اما از آنجایی که صحبت کردن با زبان انسان برای ما راحتتر است به همین دلیل اکثر افراد سعی میکنند از دستهی اول (زبانهای سطح بالا) استفاده کنند، اگر قصد دارید به طور مستقیم با سختافزار صحبت کنید باید به سراغ این دسته از زبانها بروید، در غیر این صورت به شما توصیه میکنیم از همان دستهی اول استفاده کنید (زبان اسمبلی جزو زبانهای سطح پایین به حساب میآید)
زبان های level میانی
همانگونه که از نام این دسته پیداست این زبانها چیزی بین زبانهای سطح بالا و زبانهای سطح پایین هستند، این زبانها علاوه بر اینکه به زبان انسان نزدیکاند در عین حال برای برقراری ارتباط مستقیم با سختافزار نیز مناسب هستند، اگر وقت و حوصلهی زیادی دارید و میخواهید از پایه برنامهنویسی را بیاموزید میتوانید به سراغ این دسته از زبانها بروید (سی، سیپلاسپلاس و… جزو زبانهای سطح میانی به حساب میآیند)
تقویت زبان انگلیسی
هرچند که بدون آن هم میتوانید وارد دنیای برنامهنویسی شوید اما از آنجایی که ما با زبانهای برنامهنویسی سطح بالا کار میکنیم شدیدا به شما توصیه میکنیم در اولین گام سعی کنید سطح زبان انگلیسی خود را به حد قابل قبولی برسانید، لازم نیست برای برنامهنویس شدن مدرک آیلتس زبان انگلیسی داشته باشید ولی اگر آشنایی نسبتا مناسبی با زبان انگلیسی داشته باشید کار شما بسیار راحت خواهد بود و به راحتی میتوانید با توابع و دستورات برنامهنویسی ارتباط برقرار کنید.
ای تی را بشناسید
اگر قصد دارید یک برنامه نویس حرفهای شوید، به شما توصیه میکنیم در حد قابل قبولی با مبانی دنیای آیتی و فناوری آشنا باشید، هرچند لازم نیست یک مهندس آیتی باشید، تنها اگر آشنایی نسبی با مفاهیم کامپیوتر، سختافزار، نرمافزار، نحوهی عملکرد حافظهی رم و پردازنده در اجرای دستورات و… داشته باشید کافی است!
این آشنایی میتواند به شما در درک مفاهیم برنامهنویسی کمک قابل توجهی کرده و سرعت پیشرفت شما را در این حرفه افزایش دهد.
لزومی برا رفتن به کلاس است برای برنامه نویسی؟
اگر واقعا به برنامهنویسی علاقهمند بوده و برای یادگیری آن مصمم باشید احتیاجی به کلاس رفتن نخواهید داشت، چرا که ما در این سری آموزشها تمام مفاهیم و اصول برنامهنویسی را از پایه به شما آموزش خواهیم داد، اما اگر فکر میکنید ممکن است در میانهی راه تنبلی به سراغ شما بیاید و از زیر تکالیفتان شانه خالی بکنید توصیه میکنیم حتما به کلاس بروید!
در هر صورت قرار گرفتن در جمع تعدادی انسان همفکر با شما (هنرجویان برنامهنویسی) میتواند انگیزهی شما را برای یادگیری بیشتر کند، اما اگر فکر میکنید انگیزهی کافی برای اینکار را دارید احتیاجی به کلاس رفتن نخواهید داشت و میتوانید اینجا تمام ریزهکاریهای مورد نیاز برای برنامهنویس شدن را به رایگان یاد بگیرید!
اموزش اصول برنامه نویسی و اصطلاحات برنامه نویسی که باید بلد باشید.
در ادامه با برخی از اصطلاحات رایج در دنیای برنامهنویسی آشنا خواهیم شد، به یاد داشته باشید هرگاه تمایل داشته باشید میتوانید این کلمات را در دایرکتوری شاپینگ سرور بیابید، توجه داشته باشید که این اصطلاحات، در تمام زبانهای برنامهنویسی مشترک است و فارق از نوع زبان و سینتکس، در تمام زبانهای برنامهنویسی وجود دارد.
ورودی (Input)
مجموعهای از داده و دستورالعملها که با استفاده از ابزارهای ورودی در اختیار رایانه (برنامه) قرار میدهیم.
خروجی (Output)
نتیجهی انجام محاسبات و انجام دستورالعملهای یک برنامه خروجی آن برنامه خواهد بود، این خروجی میتواند به صورت یک پیغام، عملیات یا حتی ورودی بعدی برنامه ظاهر شود.
الگوریتم (Algorithm)
تمام برنامههای موفقی که در اطراف خود میبینید در ابتدا تعدادی طرح و ایده بودهاند که در قالب الگوریتم توسعه یافته و سپس به برنامه تبدیل میشوند، فرض کنید، قصد نوشتن برنامهای را دارید که زوج یا فرد بودن یک عدد ورودی را تشخیص دهد، الگوریتم این برنامه به صورت زیر خواهد بود:
- شروع
- عدد را دریافت کن
- عدد را بر ۲ تقسیم کن
- اگر باقیمانده برابر ۰ شد بنویس عدد زوج در غیر این صورت بنویس عدد فرد.
- پایان
به مجموعه دستورات بالا الگوریتم گفته میشود، از آنجایی که این نوع نوشتن در تمام دنیا استاندارد نیست، برای نشان دادن الگوریتم یک برنامه از فلوچارت (روندنما) استفاده میکنیم، یک فلوچارت مجموعهای از اشکال و تصاویر قراردادی است که مراحل کار یک برنامه را نمایش میدهد، برای آشنایی بیشتر با مفهوم فلوچارت میتوانید به آموزش تبدیل الگوریتم به فلوچارت مراجعه کنید.
متغیر (Variable)
در برنامهنویسی متغیرها مانند ظرفهایی هستند که دادههای مختلف در آنها قرار خواهند گرفت، میتوان در دنیای واقی متغیرهای را به ظرف تشبیه کرد، ظرفی برای نگهداری مایعات، ظرفی برای نگهداری لباس یا ظرفی که آنرا با سیمان پر میکنیم، همانطور که میدانید این ظروف کاملا مجزا از یکدیگر بوده و نمیتوان محتویات آنها را با یکدیگر ترکیب کرد.
در برنامهنویسی این ظرفها متغیر نام دارند و در حقیقت به خانههایی از حافظه اطلاق میشوند که هر کدام برای نگهداری نوع خاصی از دادهها (Data Type) به کار میروند، نوعی از متغیرها برای نگهداری اعداد استفاده میشوند، نوعی دیگر برای نگهداری رشتههای متنی به کار میروند، برخی از آنها برای نگهداری کارکترها مورد استفاده قرار میگیرند و… .
در آموزشهای آینده بیشتر با مفهوم متغیر و Data Type آشنا خواهیم شد و به صورت عملی با آنها کار خواهیم کرد.
دستور (Statement)
بخوان، دریافت کن، بنویس، محاسبه کن، مقایسه کن.
در برنامهنویسی به این عبارات دستور یا Statement گفته میشود، هرگاه قصد نوشتن یک برنامهی کامل را داشته باشید به طور قابل توجهی از دستورات استفاده خواهید کرد.
دستوروضعیتی (Condition)
در حالت عادی رایانه تمام دستورات را یکی پس از دیگری پردازش کرده و آنها را بدون استثنا اجرا میکند، اما گاهی اوقات لازم است این عمل با توجه به موقعیت و تنها تحت شرایطی خاص اجرا شوند، در چنین مواقعی از دستورات شرطی استفاده میکنیم و به رایانه اجازه میدهیم که با توجه به شرایط تصمیم گرفته و دستوری را اجرا کند یا از آن بگذرد.
فرض کنید قصد داریم برنامهای برای تشخصی اعداد زوج و فرد بنویسیم، در چنین شرایطی میتوان با استفاده از دستورات شرطی به راحتی این کار را انجام داد، به این صورت که به رایانه میگوییم:
اگر عدد وارد شده بر ۲ بخشپذیر بود، بنویس زوج و در غیر اینصورت بنویس فرد.
دستور حلقه (Loop)
فرض کنید قصد دارید برنامهای بنویسید که یک دستور مشخص و تکراری ۱۰۰۰۰ را بار انجام دهد، یک روش برای انجام این کار این است که دستور مورد نظر خود را ۱۰۰۰۰ بار به صورت دستی بنویسید، مسلما این کار به هیچ وجه توجیه مناسبی ندارد!
در چنین مواقعی از دستورات تکرار (حلقهها) استفاده میکنیم، همانگونه که از نام آنها پیداست، مانند یک حلقه به دور خود میچرخند و دستور مورد نظر ما را به دفعات مورد نظر یا تحت شرایطی خاص انجام میدهند.
تابع (Function)
کارمندانی را در نظر بگیرید که هرکدام وظیفهی خاصی را بر عهده داشته به طوری که با صدا زدن نامشان حاضر شده و وظیفهی محول شده را انجام میدهند، توابع در برنامهنویسی نیز به همین صورت عمل میکنند، آنها قطعاتی کوچک در یک برنامه هستند که وظایفی خاص را برعهده دارند، میتوانند مقادیری را به عنوان ورودی تحویل گرفته و با توجه به وظیفهای که دارند (کدهای نوشته شده در بدنهی تابع) مقداری خاص را به عنوان نتیجهی کارشان برگردانند، شما میتوانید یک تابع را تنها یکبار بنویسید و در تمام برنامهتان با صدا زدن نام تابع از آن استفاده کنید.
آرایه (Array)
آرایه نیز به نوعی متغیر است، اگر ابتدای آموزش را به درستی خوانده باشید حتما به یاد دارید که متغیرها ظرفهایی بودند که مقادیری را در آنها قرار میدادیم، حال فرض کنید بخواهیم ۱۰۰۰۰ عدد ظرف برای نگهداری مایعات تهیه کنیم، در چنین شرایطی باید از آرایه استفاده کنیم، در واقع آرایهها یک نوع ظرف (متغیر) به تعداد زیاد هستند که با اندیس شمارهگذاری شدهاند، ظرف ۱، ظرف ۲، ظرف ۳ و…
توجه داشته باشید که آرایهها در اکثر زبانهای برنامهنویسی از اندیس ۰ شروع میشوند.
رشته (String)
رشته آرایهای از کاراکترهاست، هنگامی که تعداد زیادی کاراکتر پشت سر هم و به صورت متوالی قرار میگیرند یک رشته را تشکیل خواهند داد، به زبان سادهتر میتوانیم جملات و متون را در برنامهنویسی رشته بنامیم.
محیط توسعهی مجتمع (IDE)
آی دی ای (IDE) که مخفف واژههای Integrated Development Environment میباشد، در واقع یک محیط منسجم است از تمام ابزارهایی که برای نوشتن یک برنامه به آنها نیاز خواهید داشت، آیدیایها معمولا شامل یک ویرایشگر متن، دیباگر، کامپایلر، لینکر و مجموعهای از سایر ابزارهای مورد نیاز برای برنامهنویسی هستند، به عنوان IDEهای معروف میتوان به موارد زیر اشاره کرد:
- Eclipse
- Visual Studio
- Android Studio
- Code::Blocks
- NetBeanse
- IntelliJ IDEA
- Xcode
- و…
ابتدا چه زبانی را برای برنامه نویسی فرا گیریم؟
در ابتدا باید به شما بگوییم قاعدهی کلی برنامهنویسی به یک شکل است، اگر شما با مفاهیم اصلی در برنامهنویسی آشنا باشید برای شما تفاوتی نمیکند کدام زبان را شروع کنید و در هر صورت موفق خواهید بود (به شرطی که مفهوم الگوریتمنویسی را به خوبی درک کرده و بتوانید از آن استفاده کنید) بنابراین اکیدا به شما توصیه میکنیم قبل از هر کاری با مفاهیم مرتبط با الگوریتم آشنا شده و پس از آن مطالعهی این آموزش را از سر بگیرید.
اولین گام برای انتخاب یک زبان برنامهنویسی این است که هدف خود را مشخص کنید، قصد دارید برنامهنویسی را برای چه کاری بیاموزید؟ نوشتن برنامههای تحت وب، اتوماسیونهای اداری، برنامههای دسکتاپ، برنامه برای تلفنهای هوشمند، بازیسازی، علاقه، کسب درآمد؟
برنامهنویسی موبایل
از آنجایی که امروزه استفاده از تلفنهای هوشمند در بین کاربران از اهمیت ویژهای برخوردار است، برنامهنویسی این زمینه نیز میتواند بسیار هیجانانگیز و در عین حال درآمدزا باشد!
برای اینکه بتوانید برای تلفنهای هوشمند برنامه بنویسید باید در ابتدا سیستمعامل مورد نظر خود را انتخاب کنید، برای کدام دسته از کاربران قصد نوشتن برنامه دارید؟ کاربران اندروید، آیاواس یا ویندوزفون؟
برنامهنوی سیستم عامل اندروید
در حال حاضر برای اینکه بتوانید برای پلتفرم اندروید برنامه بنویسید باید با زبان Java آشنایی پیدا کنید.
برنامهنویسی سیتم عامل آیاواس
برای اینکه بتوانید برای سیستمعامل آیاواس برنامه بنویسید باید به سراغ زبان برنامهنویسی Objective-C یا SWIFT بروید.
برنامهنویسی تحت وب
برای اینکه بتوانید برنامههای تحت وب (وب اپلیکیشنها) را بنویسید، باید در سه حیطه تسلط پیدا کنید:
برنامهنویسی سمت کاربر (Client Side)
این کدها توسط مرورگر پردازش و اجرا میشود و اغلب برای طراحی ظاهری و رابط کاربری (UI) یک پروژه به کار میروند، HTML ،CSS ،JavaScript و jQuery جزو زبانهای سمت کاربر محسوب میشوند، در صورت علاقه میتوانید مقالات رایگان زیر را در این خصوص مطالعه کنید:
برنامهنویسی سمت سرور (Server Side)
برای نوشتن وب اپلیکیشنهای داینامیک و پویا باید به یکی از زبانهای سمت سرور آشنا باشید، PHP ،ASP.NET ،Python ،Java و Ruby جزو زبانهای برنامهنویسی تحت وب محسوب میشوند، در این مقاله میتوانید بیشتر با زبان برنامهنویسی PHP آشنا شوید.
دیتابیس ها (Database)
برای اینکه بتوانید یک پروژهی تحت وب را به طور کامل طراحی و اجرا کنید باید با دیتابیس و نحوهی کار با آن نیز آشنایی نسبتا مناسبی داشته باشید، Microsoft SQL Server ،MySQL ،Microsoft Access ،Oracle برخی از محبوبترین بانکهای اطلاعاتی هستند که با توجه به زبان برنامهنویسی مورد نظر خود میتوانید از آنها استفاده کنید.
برنامهنویسی تحت دسکتاپ
برای نوشتن برنامههای تحت دسکتاپ و اتوماسیونهای اداری میتوانید از زبانهای C++ ،C# ،Java و… استفاده کنید.
اگر توضیحات بالا را به دقت مطالعه کرده باشید، یکی از زبانهایی به صورت مشترک در میان تمامی پلتفرمها قابل مشاهده است، زبان جاوا (Java) میباشد، جاوا یک زبان چند سکویی (Cross Platform) میباشد، به بیان سادهتر زبان جاوا از پلتفرمهای مختلفی پشتیبانی میکند، شما میتوانید یکبار برنامهای را به زبان جاوا نوشته و در پلتفرمهای مختلف (ویندوز، لینوکس، مک و…) از آن خروجی بگیرید.
این کار توسط ماشین مجازی جاوا (JVM یا Java Virtual Machine) قابل انجام خواهد بود، در نتیجه شما فارغ از اینکه برای چه سیستمعاملی در حال نوشتن هستید تنها بر روی برنامهنویسی تمرکز خواهید داشت، علاوه بر این سینتکس زبان جاوا تا حدودی شبیه به ++C بوده و البته مدل شئگرایی آن تا حدودی از ++C سادهتر است، از دیگر ویژگیهای زبان جاوا این است که مدیریت حافظه را به صورت خودکار انجام داده و آن را بر عهده میگیرد، در صورتی که دوست دارید بیشتر با این زبان آشنا شوید، میتوانید مقالهی آشنایی با زبان برنامهنویسی جاوا را بخوانید.
با توجه به توضیحات بالا میتوانید تصمیم بگیرید که از کدام زبان برای نوشتن برنامههای خود استفاده کنید، هر چند کسب درآمد میتواند انگیزهی خوبی باشد که شما به سراغ یکی از زبانهای مورد نظر خود بروید اما باید بدانید قبل از هر چیزی داشتن علاقه بسیار مهم است، توصیه میکنیم با توجه به علاقهی خود یکی را انتخاب کرده و سعی کنید به خوبی بر آن تسلط پیدا کنید.
همانگونه که گفتیم قاعدهی کلی برنامهنویسی برای زبانهای مختلف تقریبا یکسان است و تنها تفاوتهایی جزئی در سینتکس زبانها وجود دارد، بنابراین اگر شما در یک زبان به خوبی تسلط پیدا کنید خیلی راحت خواهید توانست سایر زبانها را نیز بیاموزید، همچنین استفاده از تجارت سایرین در این زمینه میتواند کمک شایانی به شما بکند.