تصویری از چند زبان برنامه نویسی چند دستگاه کامپیوتر و چند صفحه کد و چند سرور و مانیتور

نقشه راه برنامه نویسی (3 حوزه وب، موبایل و دسکتاپ)

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

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

نقشه راه چیست؟

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

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

یک تصویر نمایانگر نقشه راه

توضیح کوتاهی در مورد تیتر های مقاله

در بخش “انتخاب حوزه” شما با بخش های مختلفی که میتوانید در آنها به عنوان یک برنامه نویس فعالیت کنید آشنا میشوید و یک دید نسبی به آن حوزه ها که شامل، وب، موبایل و دسکتاپ میشود، به دست می آورید.

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

در بخش “نقشه راه برنامه نویسی” به اصل مطلب این مقاله میرسیم و به شما توضیح میدهیم که چگونه میتوانید در حوزه انتخابی خود به یادگیری بپردازید و برای متخصص شدن در آن حوزه به تحقیق در مورد چه مباحث و مطالبی نیازمندید.


روش مطالعه مقاله

  1. اول از همه، لطفا با خواندن بخش “انتخاب حوزه” با حوزه های مختلفی که میتوانید در آنها به برنامه نویسی بپردازید آشنا شوید و تصمیم بگیرید که میخواهید در کدام یک از آنها فعالیت کنید.
  2. بخش “فرانت اند، بک اند و فول استک” یک بخش عمومی است و به شما نقش های مختلف در توسعه یک اپلیکیشن را آموزش میدهد که شامل سه نقش ذکر شده در نام این بخش میباشد.
  3. بعد از انتخاب حوزه، با مراجعه به زیر بخش حوزه انتخابی در بخش “نقشه راه برنامه نویسی” میتوانید ببینید که برای هر روش برنامه نویسی در آن حوزه، چه انتخاب هایی دارید.
    مثلا: من به حوزه برنامه نویسی وب علاقه مند هستم، پس با مراجعه به زیر بخش “وب” در بخش “نقشه راه برنامه نویسی” میتوانم بفهمم که کدام زبان ها و/یا کدام فریمورک ها را برای یادگیری میتوانم انتخاب کنم.
  4. در نهایت بعد از مطالعه “نقشه راه برنامه نویسی” و زیر بخش مورد نظر، شما باید تمام اطلاعات لازم برای شروع سفر یادگیری خود در دنیای برنامه نویسی را داشته باشید. در بخش آخر، “نتیجه”، آخرین نکته ای که در این مسیر یاریتان میکند، ذکر شده است تا شما نقشه راه برنامه نویسی خود را در ذهنتان به صورت کامل پرورش دهید.

انتخاب حوزه

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

حوزه های برنامه نویسی شامل موبایل، دسکتاپ و وب به صورت شماتیک نشان داده شده است

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

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

قبل از شروع، پیشنهاد میکنم که مقاله برنامه نویسی چیست؟ را مطالعه کنید تا اطلاعات کاملتری در مورد برنامه نویسی داشته باشید. برای آشنا شدن با زبان های برنامه نویسی، پیشنهاد میکنم مقاله زبان های برنامه نویسی و فریمورک ها را مطالعه بفرمایید.

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

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

برنامه نویسی وب، در واقع نوشتن متن، نشانه گذاری و برنامه نویسی (کد زنی)، مربوط به توسعه وب میباشد، که شامل محتوای وب، کلاینت وب، اسکریپت سرور و امنیت شبکه میشود.

از معمول ترین زبان های استفاده شده در وب (لزوما زبان برنامه نویسی نیستند) میتوان به HTML، XML، CSS، JavaScript، PHP اشاره کرد. برنامه نویسی وب با برنامه نویسی معمولی تفاوت دارد. به این صورت که در وب، برنامه نویس نیاز به دانش میان رشته ای در مورد سرور، خود اپلیکیشن تخت وب، اسکریپت نویسی سرور و تکنولوژی پایگاه داده دارد.

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

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

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

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

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

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


فرانت اند، بک اند و فول استک

در حوزه های نام برده شده، سه حالت یا انتخاب برای برنامه نویس شدن وجود دارد. شما برای بهتر درک کردن نقش خود در این تخصص باید، یکی از آنها را انتخاب کرده و خود را برای آن آماده کنید.

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

فرانت اند (Front-end)

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

بک اند (Back-end)

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

فول استک (Full-stack)

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


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

نقشه راه برنامه نویسی و سه زیر شاخه آن

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

مثلا: آقای ایکس که برنامه نویس فول استک وب میباشد، دارای دانش و تخصص در تکنولوژی های HTML، CSS، JavaScript، UI / UX Design، زبان سمت سرور PHP، دانش استفاده از پایگاه داده MySQL، و سرور آپاچی، میباشد.

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

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

فرانت اند

در توسعه فرانت اند وب یا همان Front-end Web Developer شما باید دانش و تخصص کاملی در حوزه های زیر، پیدا کرده باشید. هر برنامه نویس فرانت اند وب، باید تکنولوژی های HTML، CSS، و JavaScript را کاملا آموزش دیده باشد و بر آنها تسلط کامل داشته باشد.

نقشه راه برنامه نویسی فرانت اند. html,css,javascript,frameworks
  1. HTML: زبان نشانه گذاری صفحات وب
  2. CSS: زبان طراحی و شکل دادن به صفحات نشانه گذاری شده توسط زبان های نشانه گذاری
  3. JavaScript: زبان اسکریپتی که بر روی مرورگر اجرا میشود و میتوان صفحات وب را در سمت کاربر با استفاده از CSS و HTML پویا کند. این زبان قابلیت های زیاد دیگری نیز دارد که بعدا به آنها اشاره خواهیم کرد
  4. Frameworks (مورد انتخابی است): یادگیری فریمورک هایی همچون React.js، Vue.js، و یا Angular

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

توضیحات تکمیلی در رابطه با زبان جاوا اسکریپت:

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

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

بک اند

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

نقشه راه برنامه نویسی بک اند وب
  1. زبان برنامه نویسی: PHP, Python, C#, JavaScript, Ruby
  2. پایگاه داده:MySQL, SQL Server, NoSQL Databases
  3. فریمورک ها:Laravel-PHP, Django-Python, Ruby on Rails-Ruby, ASP.NET-C#, Node.js-JavaScript
    در بالا، Node.js جزو فریمورک ها آورده شده است. اما نود جی اس یک فریمورک نیست و در واقع یک محیط سرور (Server Environment) است. یک Runtime بک اند وب که با جاوا اسکریپت کار میکند
    بخش هایی که در زیر آمده اند موارد پیشرفته می باشند و بعد از یافتن تخصص کافی در موارد بالا، شما باید موارد گفته شده (از مورد 4 تا 7) را مطالعه کرده و به تخصص کافی برسید.
  4. وب سرویس
  5. Rest API
  6. الگو های طراحی مثل MVC
  7. امنیت شبکه

 


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

توسعه اپلیکیشن های موبایلی، روز به روز آسان تر میشود. با به وجود آمدن فریمورک هایی همچون React Native و Flutter توسعه این اپلیکیشن ها، با سرعت بیشتر و هزینه کمتری نسبت به قبل انجام میشود. با به وجود آمدن ابزار هایی مانند Android Studio و XCode توسعه این اپلیکیشن ها، با زبان های برنامه نویسی اصلی توصیه شده توسط پرچم داران بسیار ساده تر و راحت تر از قبل انجام میشود.

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

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

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

مزایای اپلیکیشن بومی:

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

مزایای اپلیکیشن هیبرید:

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

توسعه اپلیکیشن های موبایل بومی (Native)

برای توسعه اپلیکیشن های بومی موبایل شما باید بین توسعه برای ای او اس (گوشی هوشمند اپل) و توسعه برای اندروید (تقریبا تمام برند های دیگر بازار) یکی را انتخاب کنید.

توسعه برای ای او اس

در توسعه برای ای او اس شما باید یکی از زبان های Objective-C یا Swift را انتخاب کنید. زبان آبجکتیو سی زبانی به نسبت قدیمی تر است. شرکت اپل و جامعه بین الملل زبان swift را جایگزین زبان Objective-c اعلام کرده اند و از آن پشتیبانی میکنند، پس ما هم فقط زبان برنامه نویسی swift را مورد توضیح و بررسی در نقشه راه برنامه نویسی، قرار میدهیم.

برای یادگیری توسعه اپلیکیشن های ای او اس پنج مرحله داریم

  1. یادگیری کار با ابزار XCode
    ابزار اکس کد ابزار شرکت اپل برای توسعه نرم افزار ها و اپلیکیشن ها برای سیستم عامل های ای او اس، مک او اس، ای پد او اس و هر سیستم عامل دیگری که مربوط به شرکت اپل باشد، میباشد و شما برای توسعه اپلیکیشن های Swift باید روش کار با این ابزار را به صورت حرفه ای بلد باشید.
  2. یادگیری زبان برنامه نویسی Swift
  3. یادگیری طراحی رابط کاربری با Swift
  4. یادگیری الگو های طراحی مانند MVC
  5. یادگیری کتابخانه های مربوطه
  6. یادگیری استفاده از API ها
توسعه برای اندروید

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

  1. یادگیری یکی از ای دی ای های مخصوص توسعه اپلیکیشن های اندروید: IntelliJ IDEA, Android Studio
  2. یادگیری یکی از زبان های برنامه نویسی: Java, Kotlin
  3. یادگیری ساخت رابط کاربری به وسیله زبان های برنامه نویسی بالا و زبان های نشانه گذاری مرتبط (XML)
  4. یادگیری الگوهای طراحی مثل MVC
  5. یادگیری کتابخانه های مربوطه
  6. یادگیری استفاده از API ها

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

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

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

  1. یادگیری زبان برنامه نویسی که فریمورک با آن کار میکند.
    JavaScript –> React Native
    Dart –> Flutter
    C# –> Xamarin
  2. یادگیری فریمورک و روش کد زنی و الگوی طراحی آن
  3. یادگیری کتابخانه های مربوطه
  4. یادگیری استفاده از API ها

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

در توسعه اپلیکیشن های دسکتاپ هم مانند توسعه اپلیکیشن های موبایل، شما دو انتخاب پیش و روی خود دارید. اولین انتخاب شما، توسعه اپلیکیشن ها به صورت بومی و برای یک پلتفرم (سیستم عامل) و انتخاب بعدی توسعه آنها با استفاده از فریمورک ها هستند.

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

توسعه اپلیکیشن های دسکتاپ بومی (Native)

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

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

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

  1. یادگیری زبان مربوط به سیستم عامل مورد نظر
    توسعه اپلیکیشن های بومی برای ویندوز و لینوکس: C, C++
    توسعه اپلیکیشن های بومی برای مک او اس: Swift, Objective-C
  2. یادگیری ساخت اپلیکیشن های کنسول یا ترمینال
  3. یادگیری API های سیستم عامل
  4. یادگیری GUI مخصوص سیستم عامل – کتابخانه های GUI
  5. یادگیری کتابخانه های مختلف برای توسعه راحت تر و بهتر

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

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

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

C# –> .NET

Rust –> Tauri

HTML, JavaScript, CSS –> Electron

Dart –> Flutter


طراحی رابط کاربری و تجربه کاربری (UI / UX Design)

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

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

UX

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

UI

طراحان رابط کاربری (user interface) نیز مراحل طراحی شده توسط طراحان تجربه کاربری را به زیبا ترین و بهترین شکل ممکن، برای کاربر طراحی میکنند که کاربر، هم از تجربه ی استفاده از اپلیکیشن و هم از دیده های خود راضی باشد. طراح رابط کاربری، رنگ، اندازه، فونت، فاصله ها و هر چیز دیداری دیگر را تایین میکند.

UI/UX Design

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

Full-Stack

برنامه نویس فول استک، باید طراحی رابط کاربری و تجربه کاربری را نیز آموزش دیده باشد و بتواند اپلیکیشن هایی زیبا را در نرم افزار هایی همچون adobe XD و Figma طراحی کند. بعد از طراحی UI/UX برنامه نویس فول استک میتواند شروع به کد زدن در بخش فرانت اند و بک اند کند و در نهایت بعد از تست های فراوان و اطمینان از عملکرد اپلیکیشن، آن را انتشار دهد.


نتیجه گیری

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

دنیایی که 200 سال پیش، خانم Ada Lovelace کشف کرد، امروزه با دنیای ما ترکیب شده و بخشی جدایی ناپذیر از زندگی ما شده است. در آینده، نیاز انسان ها به کامپیوتر ها و برنامه نویسی بیشتر و بیشتر خواهد شد پس نگرانی برای آینده شغلی خود در برنامه نویسی نخواهید داشت.

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

منابع

Web Programming
Web Development
What is mobile application development
A Guide to Desktop Application Development in 2022
5 Key Benefits of Native Mobile App Development
Top Advantages of Hybrid App Development Over Native App Development
12 Best Frameworks and Toolkits to Build Desktop Applications

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *