campaign-edianeh-98

چگونه برنامه نویسی را شروع کنیم ؟



visibility  
mode_comment   ۲

برنامه نویسی

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

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

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

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

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

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

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

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

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

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

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

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

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

برای اینکه به مبحث انواع پلتفرم ها بپردازیم نیازه که اول بدونیم پلتفورم چیه. پلتفورم در واقع بستریه که یه نرم افزار می تونه در اون اجرا بشه. معمولا پلتفورم با سیستم عامل اشتباه گرفته میشه در حالی که پلتفورم به مجموع سخت افزار (مثل موبایل، کامپیوتر های دسکتاپ یا لپتاپ، کنسول ها و...) و سیستم عامل های مختلف (مثل ویندوز 32 بیت یا 64 بیت، مکینتاش، اندروید، IOS و...) و حتی نسخه های اون ها (مثل ویندوز 2008 یا مک او اس سیرا) گفته میشه.

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

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

برنامه نویسی

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

به علاوه برای نوشتن اپلیکیشن های IOS می تونی از زبان هایی مثل swift و objective c استفاده کنی.

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

برنامه های وب به دو دسته برنامه های سمت کاربر (client side) و برنامه های سمت سرور (server side) تقسیم میشن. برنامه های سمت کاربر برنامه هایی هستن که روی مرورگر کاربر اجرا میشن و برنامه های سمت سرور برنامه هایی هستن که روی یک کامپیوتر سرور اجرا میشن ونتایج اجرای اون ها، به کامپیوتر کاربران نرم افزار ارسال میشه.

برنامه نویسی

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

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

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

برنامه نویسی دسکتاپ بیشتر به برنامه نویسی برای نرم افزارهای ویندوز و مکینتاش (به علاوه لینوکس) اشاره می کنه. می تونی با استفاده از زبان هایی مثل جاوا، سی شارپ، پایتون و... که اغلب کراس پلتفورم هستن برنامه بنویسی.

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

با برنامه نویسی کراس پلتفورم می تونی برای همه پلتفورم ها مثل اندروید، ios، کامپیوتر های ویندوزی و ... فقط با یک بار کد زدن برنامه بنویسی. برنامه نویسی کراس پلتفورم همینطور با عنوان برنامه نویسی مالتی پلتفورم شناخته میشه. این نوع برنامه نویسی به دو دسته اصلی تقسیم میشه:

برنامه نویسی کراس پلتفورم بومی native cross-platform

هر سیستم عامل موبایلی روی بسته توسعه نرم افزاری یا software development kit (SDK) خاص خودش اجرا میشه. هر SDK از زبان برنامه نویسی خاصی پشتیبانی می کنه. مثلا اپلیکیشن های IOS روی swift و objective c اجرا میشن و اپلیکیشن های اندروید روی java. اپلیکیشن هایی که مستقیما تحت این SDK ها اجرا میشن به اپلیکیشن های بومی یا native معروف هستن.

اما میشه کاری کرد که یک API یا framework واحد بین این SDK و اپلیکیشن به عنوان یک واسط قرار بگیره .به این ترتیب اجرای اون اپلیکیشن از زبان برنامه نویسی مستقل میشه! سازنده این API معمولا یک نرم افزار IDE یا محیط توسعه نرم افزار یکپارچه رو در اختیار برنامه نویس ها قرار می ده تا برنامه نویس ها بتونن به راحتی و با استفاده از اون IDE ها با نوشتن یک بار کد، برای همه پلتفورم های پشتیبانی شده خروجی بگیرن.

با این روش این اپلیکیشن ها در نهایت از SDK بومی هر پلتفورم برای اجرا شدن استفاده می کنن .یعنی در نهایت تفاوت آنچنانی با برنامه های بومی ندارن. به طور مثال Xamarinو React Native جز این دسته هستن!

روش برنامه نویسی کراس پتلفورم مزایا و معایب خاص خودش رو داره:

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

  • رابط کاربری تقریبا بومی
  • پرفورمنس یا کارایی بالا تقریبا نزدیک به اپلیکیشن های بومی
  • کاهش هزینه های منابع انسانی و مالی
  • توسعه سریع
  • امکان استفاده از API های بومی هر پلتفورم مانند مکان یابی، دسترسی به حافظه و...

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

  • نیاز به تایید مجدد مارکت های اپلیکیشن مثل اپ استور برای هر بار به روزرسانی
  • کاملا بومی نبودن رابط کاربری بخاطر تفاوت های زیاد رابط کاربری اندروید و IOS
  • امنیت پایین

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

برنامه نویسی کراس پلتفورم ترکیبی hybrid cross-platform  

در برنامه های موبایلی بیشتر بار پردازشی در سمت سرور یا بک اند انجام میشه. بنابراین بزرگ ترین بخش این برنامه ها به رابط کاربری یا GUI اختصاص داره. بسته های نرم افزار یا SDK های اندروید و IOS امکانی به اسم Webview در خودشون دارن که با استفاده از اون یک مرورگر  به اپلیکیشن اضافه میشه. این موضوع چه خبر خوشی برای ما داره؟

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

مزایا

  • نوشتن یک بار کد برای همه پلتفرم ها
  • کم کردن هزینه های نگهداری اپلیکیشن به دلیل مشترک بودن کد ها
  • دیباگ و اشکال گیری بدون احتیاج به شبیه ساز هر پلتفورم
  • صرفه جویی در هزینه های منابع انسانی و زمان (به همین دلیل برای موقعیت های با مهلت زمانی کم یکی بهترین انتخاب هاست!)
  • راحتی کدنویسی برای برنامه نویسان وب

معایب

  • دسترسی محدود به برخی امکانات پلتفورم
  • احتیاج به وجود یک واسط جاوا اسکریپت به native برای دسترسی به API های بومی
  • آسیب پذیری و امنیت پایین
  • وجود نداشتن رابط کاربری مجزا و بومی برای هر پلتفورم

نتیجه گیری

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

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

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

متخصص PHP
دوست داری از طریق برنامه نویسی کسب درآمد کنی؟ اگر می خوای با برنامه نویسی وب و موبایل کسب درآمد کنی، جایی استخدام شی و یا حتی اینکه درامد ارزی داشته باشی، حتما دوره های متخصص سون لرن رو یه نگاه بنداز : متخصص شو arrow_back
comment دیدگاه کاربران
ab replyپاسخ

ممنون از سایت خوبتون

زهرا فرحمند

ممنونم از همراهی شما 🙂

add_circle ارسال دیدگاه

خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :