برنامهنویسی یک روش حل مسئله به کمک کامپیوتر است. فرض کنید که وارد بانک میشوید و کدملی خود را به متصدی بانک اعلام میکنید. متصدی به کمک تنها یک کد تمامی اطلاعات حساب بانکی شما را پیدا میکند. مشخصات شما، گردشهای مالی، موجودی و ….
این امکان به کمک برنامهنویسی ایجاد شده است.
سیستمی که برای بانک طراحی شده با دریافت کدملی شما، اطلاعات شما را از میان میلیونها اطلاعات دیگر پیدا کرده و در قالب جداول نمایش میدهد.
در واقع یک تیم برنامه نویسی این سیستم را به این صورت برنامهنویسی کردهاند. بنابراین میتوان گفت برنامهنویسی یک علم است که به کمک آن میتوان به کامپیوتر دستوراتی برای اجرا داد
اگر بخواهیم این مفهوم را به جمعبندی شده تعریف کنیم بهتر است بگوییم برنامهنویسی علم حل مسئله به کمک کامپیوتر است..
برنامهنویس شخصی است که در کامپیوتر شروع به تولید یک نرمافزار میکند. ممکن است این نرمافزار برای اجرا در صفحات وب باشد، یا برای اجرا در دسکتاپ، موبایل و....
برنامهنویس سعی میکند برای مسئلهها بهترین پاسخها را پیدا کند و آنها را به کمک زبانهای برنامهنویسی به کامپیوتر منتقل کند. بدین صورت کامپیوتر اطلاعات دریافتی را پردازش میکند و خروجی کار را نمایش می دهد.
پس شخص برنامهنویس باید به فرآیند حل مسئله، تحلیل دادهها، عیبیابی و… مسلط باشد
چگونه میتوانیم یک برنامه نویس باشیم؟
اگر به حرفهی برنامه نویسی علاقمند شدید برای شروع باید ابتدا حوزهی برنامه نویسی و هدف خود را از اینکار مشخص کنید
در برنامهنویسی، پلتفرم به نرمافزار یا سختافزاری گفته میشود که روی آن سرویسی قرار گرفته باشد. یک پلتفرم، شامل یک سختافزار، سیستم عامل و یک سری برنامهها و دستورالعملهایی است که بستری برای اجرای اپلیکیشن فراهم میکند.حوزههای برنامهنویسی را بر اساس پلتفرم به سه دسته کلی تقسیم میکنند:
برنامهنویسی تحت وب
برنامهنویسی تحت دسکتاپ
برنامهنویسی تحت موبایل
از محبوبترین حوزههای برنامه نویسی ،حوزه تحت وب است. به زبانهایی که برای کار بر روی وب و شبکه طراحی و ساخته شدهاند، زبانهای برنامهنویسی تحت وب گفته میشود. این زبانها برای ایجاد و تولید انواع پروژهها و نرمافزارهای تحت وب مورد استفاده قرار میگیرند.
به عنوان مثال انواع وبسایتها، ایمیل، خرید آنلاین، امور بانکی، مجلهها و برنامههای انلاین نمونه کاربردهایی هستند که از زبانهای تحت وب برای ایجاد آنها استفاده شده است
ساختار کدهای وب سایت از دو بخش front-end بخش (سمت کاربر) و back-end بخش (سمت سرور) تشکیل میشوند. که در ادامه به بررسی زبان های مورد نیاز هر کدام می پردازیم
گرافیست سایت
معمولاً ایجاد طرحهای اولیهی وب سایت، طراحی اشکال گرافیکی، تصویرسازی ، طراحی لوگو و.. به عهدهی گرافیست است که باید فردی خلاق و باانگیزه باشد.
برنامه نویس سمت سرور (server side)
با استفاده از زبانهای برنامه نویسی مثل Pythonو C# وphp ارتباط مرورگر با سرور را میسر میسازند.
برنامه نویس سمت کاربر (client side)
طراحی رابط کاربری یا همان پوستهی سایت (بخشی از سایت که کاربر با آن در ارتباط است) بر عهدهی یک برنامه نویس رابط کاربری است که معمولاً از زبانهای javascript ، html،css استفاده میکنند.
این مدل از برنامه نویسی به ساختن برنامه برای گوشی های تلفن همراه، تبلت ها، ساعت های هوشمند و همه انواع دیگر گجت های پوشیدنی که نوعی از سیستم های عامل را اجرا میکنند که بیشترین سهم بازار ایران را اپلیکیشن های اندروید در بر دارند
حوزه موبایل نیز مانند وب از دو بخش سمت کاربر و سرورتشکیل شده که بخش کاربر به دوبخش اندروید و ios تقسیم میشود.
زبانهای برنامه نویسی تحت دسکتاپ زبانهایی هستند که از آنها برای تولید نرمافزارهای کاربردی روی سیستم عامل ویندوز، لینوکس، مک و … استفاده میشود. مانند نرمافزارهای اتوماسیون اداری، نرمافزارهای چندرسانهای Multi Media، مرورگرها واز بین انواع زبانهای برنامهنویسی در این حوزه، متداولترین آنها که میتوان نام برد:
زبانهای برنامهنویسی لینوکس: java, python
زبانهای برنامهنویسی ویندوز : C#, java, javascript
زبانهای برنامهنویسی مک swift
یکی از فیلد های نرم افزاری که امروزه بسیار مورد توجه توسعه دهندگان واقع شده، فیلد توسعه بازی است، تکنولوژی های بسیاری برای ساخت یک بازی وجود دارد که یکی از بهترین آنها را می توان “یونیتی” دانست
بازی سازی نیز مانند سایر شاخه های برنامه نویسی شامل بخش سمت کاربر و سمت سرور می باشد که در بازار کار ایران سمت سرور با سی شارپ متداول تر است و سمت کاربر با Unity
متاسفانه برنامه نویسی تحت دسکتاپ به علت عدم رعایت قانون کپی رایت در ایران بازار کار مناسبی ندارد از محبوبترین حوزه ها و برنامه نویسی در ایران طراحی وب سایت و اپلیکیشن نویسی موبایل می باشد
از آنجا که زبانهای سمت کاربردر هر حوزه محدود هستند و جای تردید باقی نمیماند، ما در ادامه ابتدا به بررسی محبوبترین زبانهای برنامه نویسی سمت سرور میپردازیم زبان های برنامه نویسی سمت سرور در حوزه وب و موبایل میتواند یکی باشد اگر شما درانتخاب حوزه برنامه نویسی خود تردید دارید پیشنهاد میکنیم از زبان های سمت سرور شروع کنید
کد سمت سرور وظیفهی پردازش، محاسبات و انجام عملیات مختلف روی دادهها را بر عهده دارد. برای روشنتر شدن قضیه به این مثال توجه کنید. در سایتی دکمهای تحت عنوان “ثبت نام” قرار دارد. ظاهر این دکمه، محل قرارگیری آن و.. توسط کدهای سمت کاربر طراحی میشوند. اما بخشی که درستی اطلاعات ورودی را چک کند و در پایگاه داده(درادامه به پایگاه داده خواهیم پرداخت) ذخیره کند، جزو کدهای سمت سرور است.
سی شارپ زبان ساخته شده توسط مایکروسافت بر پایهی زبان سی است. این زبان همه منظوره و شی گرا است و مانند زبان جاوا برای پروژههای اقتصادی و بزرگ، انتخاب بسیار خوبی است. با این زبان میتوان برای پلتفرمهای مختلف از جمله ویندوز، وب ، اندروید، ios و.. برنامه نویسی کرد.
کارایی اصلی این زبان، برنامه نویسی تحت ویندوز است و برای برنامه نویسی تحت وب با سی شارپ فقط دانستن این زبان کافی نیست و باید از تکنولوژی به نام asp.net تحت #c استفاده نمایید.
وبسایتهایی همچون MSN ، وبسایت مایکروسافت و در ایران وب سایتهایی مثل دیجی کالا و ورزش ۳ ، همگی مثالهایی از سایتهایی هستند که از سی شارپ و ASP.NET بهره بردهاند.
برخلاف تصور بسیاری از افراد ASP.NET یک زبان برنامه نویسی نیست و تنها فریمورک یا چهارچوبی برای توسعه وب با زبانهایی مثل سی شارپ است هدف اصلی ASP.NET نوشتن Web Applicationهای بزرگ با اطلاعات ورودی و پیچیدگیهای زیاد است. ASP.NET به شما امکانات سادهای برای شروع برنامه نویسی میدهد. ماژولهای آماده و رابط کاربری آسان، برنامه نویسی را برای کاربران لذت بخش میکند..
پایتون چند منظوره و شی گرا است و برای توسعه وب سایت، تحلیل داده، نوشتن برنامهی دسکتاپ و حتی در زمینهی یادگیری ماشینی و علم داده نیز کاربرد دارد. پس پایتون صرفاً یک زبان برای توسعه وب نبوده و در زمینههای دسکتاپ هم کاربرد زیادی دارد. یادگیری این زبان بسیار ساده است و منابع یادگیری زیادی برای آن وجود دارد
این زبان برای کار با پایگاه دادههای بزرگ نیز مناسب است. در موتور جستجوگر گوگل هم از این زبان استفاده شده است.
اگر از بازار کار این زبان میپرسید باید بدانید که این زبان در دنیا جزو ۱۰ زبان برتر بوده است. در ایران هم گرایش به سمت این زبان در سالهای اخیر بیشتر شده است پس اگر اطلاعات خوبی در این زمینه کسب نمایید قطعاً به کسب در آمد هم میرسید
برای بسیاری از افراد بهترین زبان برنامه نویسی برای طراحی سایت شناخته شده است، یک زبان اسکریپتی و متنباز است که در سال ۱۹۹۴ به منظور طراحی برنامههای تحت وب ایجاد شد. ساختار زبان PHP بسیار شبیه به زبان C میباشد، به همین دلیل از محبوبیت فراوانی برخوردار است.
برای اینکه یک برنامه نویس سمت سرور شوید باید حتما به یک پایگاه داده تسلط پیدا کنید در ادامه به پایگاه داده خواهیم پرداخت.
برای انتخاب زبان سمت سرور خود میتوانید با توجه به نیاز بازار کادر از طریق آگهی های استخدام برنامه نویس و مشاوره کادر اداری و اساتید آکادمی باربد انتخاب مناسب تری داشته باشید.
Django
Django یک فریمورک MTV برای ساخت اپلیکیشنهای وب است. جنگو به برنامهنویسان وب کمک میکند تا کدهای تمیز، کارآمد و قدرتمند بنویسند. علاوه بر اینکه در لیست محبوبترین فریمورکهای وب جهان حضور دارد، جنگو یکی از پر استفادهترین تکنولوژیها برای توسعه وب میباشد. این فریمورک توسط اینستاگرام، یوتیوب، گوگل و حتی ناسا برای توسعه وبسایتشان بکار رفته است.
Java
جاوا یک زبان بسیار محبوب است که در سال ۱۹۹۱ با شعار “یک بار بنویس، همه جا اجرا کن” منتشر شد این زبان شی گرا و همه منظوره، بسیار شبیه زبان c++ است. جاوا برای نوشتن انواع برنامههای تحت وب، موبایل، دسکتاپ، سیستمهای تعبیه، ربات و حتی برنامههای پیچیدهتر کاربرد دارد.
بازار کار این زبان خوب است و در ایران بیشتر در زمینههای برنامههای دسکتاپ سازمانی و اپلیکیشنهای تحت وب , و موبایل کاربرد دارد
کسانی که به برنامه نویسی موبایل علاقه دارند باید بدانند پیشنیاز یادگیری زبان برنامه نویسی اندروید زبان جاوا هست
بخش سمت کاربر، همان ظاهر سایت است که با زبانهای html ،css ،javascript و… طراحی شده است و این بخش یک صفحهی استاتیک است. در ادامه به بررسی این سه زبان و کتابخانه ها یا بزار هایشان می پردازیم
html زبان استاندارد طراحی صفحات وب است. کدهای صفحه در نهایت به کدهای html تبدیل شده و توسط مرورگر نمایش داده میشوند. بنابراین اجزای صفحه وب مثل متن، عکس و.. به کمک تگهای html در صفحه وب قرار میگیرند. در واقع تمامی زبانهای برنامهنویسی برای طراحی سایت، به شکلی به html وابسته هستند.
CSS
برای اینکه اجزای صفحه وب سایت شما آرایشی به خود بگیرد باید از css استفاده کرد برای مثال برای اینکه به عنوان نوشته، رنگ و سایز بدهیم نیازمند این زبان خواهیم بود
javascript
بعد از اینکه صفحهی وبی طراحی شد برای پویاتر شدن آن به این زبان نیازمندیم.برای مثال اگر بخواهیم صفحهای دارای انیمیشنی باشد یا منوی کشویی داشته باشیم از این زبان استفاده میکنیم
Bootstrap
مجموعه ای از ابزارهای رایگان برای ایجاد صفحات وب و نرم افزارهای تحت وب است که شامل دستورات HTML، CSS و توابع جاوا اسکریپت جهت تولید و نمایش فرم ها، دکمه ها، تب ها، ستون ها و سایر المان های مورد نیاز طراحی وب می باشد.
jQuery
یک کتابخانه (Library) یا به عبارتی دیگر یک فریم ورک برای زبان جاوا اسکریپت است. هدف اصلی این کتابخانه این است که استفاده از جاوا اسکریپت را در طراحی وبسایت آسانتر سازد.
Sass
یک پیشپردازنده (Preproccesor) برای زبان CSS است. در واقع Sass آمده است تا محدودیتها و ضعفهای زبان CSS را جبران کند و با اضافه کردن ویژگیهای جالبی به آن، نوشتن کدهای CSS را راحتتر و سریعتر سازد. میتوان گفت که Sass محبوبترین و پرکاربرد ترین پیشپردازنده برای CSS است.
React.js
ریاکت که در انگلیسی به صورت React.js یا React JS بیان می شود، یک کتابخانه یا فریمورک مربوط به زبان جاوااسکریپت می باشد که به صورت متن باز در اختیار طراحان قرار می گیرد. این کتابخانه در ساخت رابط های کاربری و اجزای (Component) صفحات وب مورد استفاده قرار می گیرد. React توسط فیسبوک و مجموعه ای از توسعه دهندگان و شرکت ها تولید شده است
React Native یک فریمورک UI متن باز برای ساخت اپلیکیشن موبایل است که توسط فیس بوک معرفی و عرضه شده است. به کمک ری اکت و زبان جاوا اسکریپت میتوانیم برای اندروید، آی اواس، وب و حتی UWP (پلتفرمی برای ساخت برنامه های تحت ویندوز، ویندوز موبایل، Xbox و سایر محصولات مایکروسافت) اپلیکیشن بسازیم.
اندروید به عنوان یک سیستم عاملی که بیش از ۸۰ درصد موبایل ها و تبلت ها را فرا گرفته، به عنوان پیشتاز این صنعت در حال رشد و نمو است.
زبان اندروید برپایه زبان جاوا طراحی شده است در صورتی که میخواهید برنامه نویس اندروید شوید ابتدا باید زبان جاوا را بیاموزید
چهارچوب متن باز فلاتر(Flutter) توسط گوگل برای اولین بار در سال ۲۰۱۷ رونمائی شد. این فریمورک به برنامه نویسان و توسعه دهندگان این امکان را می دهد که با یکبار نوشتن کد، خروجی مخصوص اندروید و ios برای اپلیکیشن خود بگیرند.
در حال حاضر فلاتر امکان طراحی برنامه برای تمام پلتفرم های موبایل، وب و دسکتاپ را دارد به عبارتی شما یکبار کد می نویسید و همه جا از آن استفاده می کنید.
Unity
یونیتی ( Unity ) یک موتور بازی ساز قدرتمند است. قابلیت طراحی سه بعدی و طراحی بازی های بی نظیر از جمله مهمترین قابلیت های منحصر به فرد موتور بازی ساز یونیتی است. موتور بازی ساز پرکاربردی که در کنار سایر موتورهای بازی ساز سه بعدی نظیر آن ریل Unreal، آی دی تک id Tech، کریشن Creation، ریج rage قرار گرفته است.
ویژگی کاربر پسند و توسعه پذیر بودن این نرم افزار موجب شده که از یونیتی به عنوان یکی از بهترین موتورهای بازی ساز در سطح بین المللی یاد کنند. در ایران نیز روزانه به تعداد کاربران موتور یونیتی اضافه می شود.
یونیتی از جمله موتورهای بازی ساز است که میتواند از زبانهای برنامهنویسی معروف پشتیانی کند. زبانهای برنامهنویسی سیشارپ، جاوااسکریپت و زبان برنامهنویسی بو که یک زبان از خانواده زبان برنامهنویسی پایتون میباشد. که متداول ترین ان در بازار کار سیشارپ است.
بانک اطلاعاتی یا پایگاه داده یا دیتابیس (data base) به مجموعه ای از اطلاعات با ساختار منظم گفته می شود. این پایگاه های اطلاعاتی معمولاً در قالبی که برای دستگاه ها و رایانه ها قابل خواندن و قابل دسترسی باشند ذخیره می شوند.
یک تعریف ممکن این است کهپایگاه داده مجموعه ای از رکورد های ذخیره شده در رایانه با یک روش سیستماتیک (اصولی) مثل یک برنامه رایانه ای است که می تواند به سوالات کاربر پاسخ دهد. برای ذخیره و بازیابی بهتر، هر رکورد معمولا به صورت مجموعه ای از اجزای داده ای یا رویداد ها سازماندهی می گردد.
با گسترش طراحی وب سایت های پویا در شبکه جهانی وب نیاز به یک پایگاه داده و بانک اطلاعاتی (database) بزرگ برای مدیریت محتوا احساس میشد. مدیریت پایگاه داده ها یک فرایند پیچیده است ، که به طور قابل توجهی با برنامه و زبان برنامه نویسی SQL این نیاز برطرف شده است.
سخن پایانی
برای کسب اطلاعات بیشترشما میتوانید با سرچ Developer Roadmaps در گوگل اطلاعات مناسبی بدست آورید و از مشاوره کادر پرسنل و اساتید برنامه نویسی آکادمی باربد بهر مند شوید
دوره های فوق به نسب نیاز بازار کار در اکادمی باربد به صورت عمومی یا خصوصی برگزار میگردد میتوانید دوره های عمومی را درلینک دوره های آموزش مشاهده نماید و جهت دورهای خصوصی با آکادمی تماس حاصل فرماید