شاید شما هم قصد داشته باشید که شروع به برنامه نویسی کنید و این سوال برای شما پیش اومده که چگونه برنامه نویسی را شروع کنیم و یا چطور برنامه نویسی کنیم این سوال اکثر کسایی هست که با شغل محبوب برنامه نویسی آشنا میشوند و قصد دارند برنامه را حرفه ای شروع کنند . خوندن این مقاله کمکت میکنه با ویژگیهای مختلفی که بین زبانهای برنامه نویسی تمایز ایجاد میکنه آشنا بشی. این کار باعث میشه بتونی راحتتر مسیرت رو انتخاب کنی. به علاوه انتخابت منطقیتر و مطمئنتر میشه. پس تا پایان مقاله همراهم باش!
عجله نکن ، دوست داری برنامه نویسی یاد بگیری ؟ دکتر لقمان آوند در دوره الفبای برنامه نویسی خیلی قشنگ با زبان ساده بهت مسیریادگیری برنامه نویسی رو آموزش داده تازه یک کد تخفیف 50 درصدی start50 هم برات گذاشتیم که راحتتر شروع کنی، فقط کافیه در این دوره خیلی ارزون شرکت کنی و از مشاوره رایگان مشاوران ما هم بهرهمند بشی !
برای انتخاب زبان برنامه نویسی مورد علاقه ات لازمه ویژگیها و کاربردهای زبانهای برنامه نویسی رو بدونی. باید بدونی که میخوای برای چه پلتفرمی برنامه بنویسی. اصلا چی میخوای بنویسی! دوست داری چه جور شغلی داشته باشی؟ اون ویژگی چه مزایایی رو در اختیارت قرار میده و…
هر ویژگی که یک زبان برنامه نویسی خاص داره نباید به دید مزیت یا عیب مطلق اون زبان برنامه نویسی دیده بشه. نکته مهم اینه که معیار خوبی و بدی، انتخاب هر زبان برنامه نویسی در جای درست خودشه.
اگر به دنبال یادگیری یک زبان برنامه نویسی باشی به احتمال زیاد اسامی زبانهای “سطح بالا” و “سطح پایین” تا به حال زیاد به گوشت خورده. باید بگم که مفهوم سطح بالا یا سطح پایین بودن یک زبان مسئله ای نسبیه یعنی بسته به زبان هایی که دارن با هم مقایسه میشن یک زبان برنامه نویسی ممکنه سطح بالا یا سطح پایین محسوب بشه.
به این خاطر که تنها مفهوم قابل فهم برای کامپیوتر اعداد صفر و یکه، زبان ماشین به عنوان تنها زبان قابل فهم برای کامپیوتر فقط از اعداد صفر و یک تشکیل شده. اما حرف زدن با کامپیوتر به زبان صفرها و یکها کار خیلی طاقت فرساییه بنابراین زبانهای برنامه نویسی وارد میدان شدن. زبان برنامه نویسی اسمبلی به عنوان نزدیکترین زبان به زبان کامپیوتر به وجود اومد و بنابراین از لحاظ نزدیکی به زبان انسان در پایینترین سطح ممکنه. هرچه میزان نزدیکی به زبان انسان و abstraction یا انتزاع یک زبان برنامه نویسی زیادتر باشه اون زبان سطح بالاتر و از زبان ماشین دور تره!
اولین زبانهای سطح بالا فرترن و کوبول بودن. ممکنه در نگاه اول به زبانهای برنامه نویسی سطح پایین برچسب بد یا ضعیف و به زبانهای برنامه نویسی سطح بالا برچسب خوب یا قوی بزنید. اما باید بگم این باور کاملا اشتباهه! ضعیف یا قوی بودن یک زبان کاملا بستگی به مورد استفاده شما داره و زبانهای برنامه نویسی سطح بالا و سطح پایین مزایا و معایب خاص خودشون رو دارن.
زبانهای بسیار سطح پایین میتونن مستقمیا و بدون نیاز به کامپایلر یا مفسر اجرا بشن. با اونها میتونید کنترل کاملی روی مموری کامپیوتر داشته باشی. به همین خاطر کارایی بسیار بسیار خوبی دارن. با زبانهای سطح پایین میتونی برای سخت افزارها برنامه بنویسی و یا سیستم عامل بسازی. اما با وجود همه این مزایا برنامه نوشتن با اونا بسیار سخته. بنابراین مدت زمان توسعه نرم افزار با اونها به شدت افزایش پیدا میکنه.
بر خلاف زبانهای برنامه نویسی سطح پایین، خوندن، نوشتن و نگهداری و بهبود برنامههای نوشته شده به زبانهای برنامه نویسی سطح بالا مثل جاوا، سی شارپ و PHP بسیار راحته. زبانهای سطح بالا به معماری سخت افزار وابسته نیستن و با اونها شما به جای سر و کار داشتن با خونههای حافظه، با توابع، اشیا و … سر و کار دارید.
برای اینکه به مبحث انواع پلتفرمها بپردازیم نیازه که اول بدونیم پلتفورم چیه. پلتفورم در واقع بستریه که یه نرم افزار میتونه در اون اجرا بشه. معمولا پلتفورم با سیستم عامل اشتباه گرفته میشه در حالی که پلتفورم به مجموع سخت افزار (مثل موبایل، کامپیوترهای دسکتاپ یا لپتاپ، کنسولها و…) و سیستم عاملهای مختلف (مثل ویندوز 32 بیت یا 64 بیت، مکینتاش، اندروید، IOS و…) و حتی نسخههای اونها (مثل ویندوز 2008 یا مک او اس سیرا) گفته میشه.
با احتساب توضیحات بالا به طور کلی ما میتونیم روی سه بستر یا پلتفورم مهم موبایل، وب و دسکتاپ برنامه بنویسیم. البته من توی این مقاله با این سه نوع از پلتفورمهای اصلی سر و کار دارم و صد البته که پلتفورمهای دیگه ای مثل ساعتهای هوشمند، لوازم خانگی هوشمند و… با سیستمهای عامل و نسخههای مختلف وجود دارن.
برنامههای موبایل معمولا به دو دسته برنامههای اندرویدی و برنامههای IOS تقسیم میشن. حتما با این دو سیستم عامل از قبل آشنا هستی. برای نوشتن اپلیکیشنهای اندروید میتونی از زبانهای برنامه نویسی مثل جاوا، سی شارپ، کاتلین، سی پلاس پلاس و… استفاده کنی. اما توی ایران زبان جاوا برای این کار رایج تره.
به علاوه برای نوشتن اپلیکیشنهای IOS میتونی از زبان هایی مثل swift و objective c استفاده کنی.
برنامههای وب به دو دسته برنامههای سمت کاربر (client side) و برنامههای سمت سرور (server side) تقسیم میشن. برنامههای سمت کاربر برنامه هایی هستن که روی مرورگر کاربر اجرا میشن و برنامههای سمت سرور برنامه هایی هستن که روی یک کامپیوتر سرور اجرا میشن ونتایج اجرای اون ها، به کامپیوتر کاربران نرم افزار ارسال میشه.
اگر قصد وارد شدن به حوزه برنامه نویسی وب رو داری برای انتخاب زبان برنامه نویسی اول باید مشخص کنی اون زبان رو برای سمت کاربر میخوای یا برای سمت سرور. البته معمولا در موقع شروع کار برنامه نویسی وب اولین قدم ها، چه قصد رفتن به سمت کلاینت رو داشته باشید و چه سمت سرور یادگیری زبانهای html و css هست. چون این دو زبان پایه برنامه نویسی وب محسوب میشن ولی بدون اونها هم شروع یادگیری برنامه نویسی سمت سرور ممکنه.
برای حوزه سمت کاربر زبان جاوا اسکریپت رو یاد بگیر. برای حوزه سمت سرور به تناسب نیاز و هدف گذاریت میتونی بین زبانهای برنامه نویسی زیادی مثل PHP، جاوا اسکریپت، روبی و… زبان برنامه نویسی مورد علاقه ات رو انتخاب کنی.
برنامه نویسی دسکتاپ بیشتر به برنامه نویسی برای نرم افزارهای ویندوز و مکینتاش (به علاوه لینوکس) اشاره میکنه. میتونی با استفاده از زبان هایی مثل جاوا، سی شارپ، پایتون و… که اغلب کراس پلتفورم هستن برنامه بنویسی.
با برنامه نویسی کراس پلتفورم میتونی برای همه پلتفورمها مثل اندروید، ios، کامپیوترهای ویندوزی و … فقط با یک بار کد زدن برنامه بنویسی. برنامه نویسی کراس پلتفورم همینطور با عنوان برنامه نویسی مالتی پلتفورم شناخته میشه. این نوع برنامه نویسی به دو دسته اصلی تقسیم میشه:
هر سیستم عامل موبایلی روی بسته توسعه نرم افزاری یا software development kit (SDK) خاص خودش اجرا میشه. هر SDK از زبان برنامه نویسی خاصی پشتیبانی میکنه. مثلا اپلیکیشنهای IOS روی swift و objective c اجرا میشن و اپلیکیشنهای اندروید روی java. اپلیکیشن هایی که مستقیما تحت این SDKها اجرا میشن به اپلیکیشنهای بومی یا native معروف هستن.
اما میشه کاری کرد که یک API یا framework واحد بین این SDK و اپلیکیشن به عنوان یک واسط قرار بگیره .به این ترتیب اجرای اون اپلیکیشن از زبان برنامه نویسی مستقل میشه! سازنده این API معمولا یک نرم افزار IDE یا محیط توسعه نرم افزار یکپارچه رو در اختیار برنامه نویسها قرار میده تا برنامه نویسها بتونن به راحتی و با استفاده از اون IDEها با نوشتن یک بار کد، برای همه پلتفورمهای پشتیبانی شده خروجی بگیرن.
با این روش این اپلیکیشنها در نهایت از SDK بومی هر پلتفورم برای اجرا شدن استفاده میکنن .یعنی در نهایت تفاوت آنچنانی با برنامههای بومی ندارن. به طور مثال Xamarinو React Native جز این دسته هستن!
روش برنامه نویسی کراس پتلفورم مزایا و معایب خاص خودش رو داره:
مزایا شروع برنامه نویسی کراس پلتفورم
معایب شروع برنامه نویسی کراس پلتفورم
در برنامههای موبایلی بیشتر بار پردازشی در سمت سرور یا بک اند انجام میشه. بنابراین بزرگترین بخش این برنامهها به رابط کاربری یا GUI اختصاص داره. بستههای نرم افزار یا SDKهای اندروید و IOS امکانی به اسم Webview در خودشون دارن که با استفاده از اون یک مرورگر به اپلیکیشن اضافه میشه. این موضوع چه خبر خوشی برای ما داره؟
با استفاده از webview میتونی به سادگی با استفاده از HTML، CSS و جاوا اسکریپت اپلیکیشنهای موبایل بسازی! به همین دلیل به این برنامه ها، برنامههای ترکیبی میگن. اما مشکل این نوع از برنامه نویسی اینه که برای ارتباط با APIهای بومی مثل مکان یابی و دسترسی به حافظه به یک واسط بین جاوا اسکریپت و زبان برنامه نویسی بومی احتیاج هست. این روش هم مثل روش قبل مزایا و معایب خاص خودش رو داره:
مزایا
معایب
توی این مطلب با انواع زبانهای برنامه نویسی آشنا شدی و فهمیدی چطور برنامه نویسی را شروع کنیم. همینطور متوجه شدی پلتفرم چیه و برای برنامه نوشتن برای هر پلتفرم به چه زبانهای برنامه نویسی احتیاج داری. حالا نوبت توست که تصمیم بگیری! یادت نره که حتما تمام تلاشت رو بکنی قبل از شروع برنامه نویسی مسیر و چشم انداز روشنی برای خودت داشته باشی. تو باید مزایا و معایب هر مسیر رو با دید باز و بدون تعصب بسنجی.
اگر ایده خاصی داری و دلت میخواد برای اجرای اون، برنامه نویسی رو یاد بگیری بررسی کن که بهترین پلتفرم برای اجرای ایده ات کدومه. با کدوم پلتفورم از نظر بازاریابی و تجربه کاربری میتونی ارتباط بهتر و مستقیمتری با مشتریها یا کاربر هات داشته باشی؟ چقدر زمان برای اجرای اون داری؟ اگر دوست داری در یک شرکت برنامه نویسی استخدام بشی علاقه داری فیلد کاریت در چه سمتی باشه؟ در چه صورت میتونی حقوق بیشتری دریافت کنی؟ در چه صورت میتونی زودتر به نتیجه برسی؟
اینا همه شرایط مختلفی هستن که ممکنه هر شخص علاقه مند به وارد شدن به حوزه برنامه نویسی لازم داشته باشه بهشون فکر کنه. پس سعی کن با دید باز و منطقی تصمیم بگیری. تصمیم تو چیه؟ اونو با ما در میون بذار تا برای ادامه مسیر کمکت کنیم!
باید برنامه ریزی دقیقی داشته باشید. برنامه نویسی تمرکز میخواد و نمیتونید با مشغله فکری زیاد از پسش بربیاد. برای مثال ما نیروی آتش نشان با شرایط شما داشتیم (البته وظایف مادری رو نداشته) که با زمان بندی تونسته مباحث رو پیش بره.
بنده در حالت عادی پایتون رو برای مهاجرت توصیه میکنم اما به شرطی که با برنامه پیش برید. اگر فعلا این امکان رو ندارید بهتره برای شروع وردپرس رو شروع کنید که دغدغه کمتری نیاز داره.