برنامه نویسی را از کجا باید شروع کرد ؟

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

برنامه نویسی وب
اپلیکیشن ها یا برنامه های تحت وب امروزه در فضای اینترنت حرف اول را می زنند. تا جایی که تقریبا تمام بیزینس های امروزی و سنتی برای گسترش و پیشرفت کار خود در این فضا اقدام به طراحی سایت مخصوص به خود کرده و در تلاش هستند تا در این مارکت رقابتی حرفی برای گفتن داشته باشند.
برنامه نویسی وب معمولا اولین انتخاب افراد برای ورود به دنیای برنامه نویسی است. شاید دلیل اصلی بازار کار و درآمد فوق العاده آن باشد. برای فعالیت در این زمینه می توان از زبان های برنامه نویسی نظیر PHP , HTML , CSS , JAVASCRIPT , PYTHON , ASP.NET , … بهره برد .
نرم افزارهای وب به دو دسته سمت کاربر (client side) و برنامههای سمت سرور (server side) تقسیم میشوند. برنامههای سمت کاربر برنامه هایی هستند که روی مرورگر کاربر اجرا می شوند و برنامههای سمت سرور برنامه هایی هستن که روی یک کامپیوتر سرور قابل اجرا اند و نتایج اجرای آنها ها، به کامپیوتر کاربران ارسال می شود.
برای شروع و کد نویسی در بخش فرانت Front وبسایت می توانید با HTML , CSS , JS شروع کنید که در این بخش به طراحی UI یا رابط کاربری و گرافیکی می پردازید. به بیان دیگر طراحی ظاهر نرم افزار وب با ترکیبی از این سه زبان انجام می شود.
برای بخش بک اند Back End نیز که همان سمت سرور است از زبان PHP یا ASP.NET می توانید استفاده کنید. برای روح بخشیدن به نرم افزار و راه اندازی آن بصورت عملیاتی باید به برنامه نویسی سمت سرور مسلط باشید که نسبت به فرانت سایت پیچیدگی های بیشتری نیز دارد.
زبان PHP
یک زبان برنامه نویسی است که توسط سرور تفسیر شده و در سیستم کاربر یا در مرورگر کامپایل یا ترجمه نمی شود. کدهای مربوط به پی اچ پی را باید درون تگ Php بنویسید که می توان آن را با تگ های HTML نیز ترکیب کرد .
نمونه ای از کد php در ادامه آورده شده است.
// php sample code
// html sample code
عنوان صفحه
تیتر 1
یک نمونه پاراگراف متن
زبان HTML
HyperText Markup Language در واقع زبان HTML را یک زبان برنامه نویسی نمی دانند بلکه بعنوان زبان تگ نویسی از آن یاد می شود. با این زبان استراکچر یا اسکلت بندی اصلی صفحه وب را ایجاد می کنند.
زبان HTML توسط مرورگرهای سیستم کاربر تفسیر و اجرا می شوند و به تنهایی ظاهری خام و ساده را به تصویر می کشند.
در این قسمت یک نمونه اولیه از کد HTML قرار داده شده است.
زبان CSS
Cascading Style Sheets زبان استایل نویسی در برنامه نویسی وب است. Css با کد های HTML ترکیب شده و به تگ های آن ویژگی های مورد نظر شما را اضافه میکند. بعنوان مثال » یک صفحه وب ایجاد شده برای تغییر رنگها ، فونت ها ، اندازه ها و بسیاری ویژگی مهم دیگر از استایل ها بهره می گیرد.
تمامی کد های Css باید درون تگ استایل یا فایلی از نوع Css نوشته شوند. در ادامه یک نمونه از این استایل ها را مشاهده می کنید .
// Css sample code
body {
background-color: lightblue;
}
h1 {
color: white;
text-align: center;
}
p {
font-family: verdana;
font-size: 20px;
}
//javascript sample code
function myFunction() {
document.getElementById("demo").innerHTML = "Paragraph changed.";
}
زبان JavaScript یا JS
زبان برنامه نویسی بسیار محبوب و قدرتمند که با فریم ورک های بسیار پیشرفته هم در بخش فرانت اند و هم در بخش بک اند نقش بسیار مهمی را ایفا میکند. زبان جاوا اسکریپت قابلیت اجرا در مرورگر کاربر و در سمت سرور را دارد و با توجه به فریم ورک انتخابی امکانات آن در دسترس خواهد بود.
با استفاده از زبان JavaScript قادر به ایجاد هر نوع انیمیشن ، تغییر ، جا به جایی ، ارسال و دریافت اطلاعات و … خواهید بود. بصورت خلاصه جاوا اسکریپت اوج زیبایی و امکانات در صفحات وب است.
کد های js در بین تگ های اسکریپت و یا در فایلهای js نوشته می شوند. همانند سایر زبان های فرانت وب جاوااسکریپت هم قابلیت ادغام با HTML را دارد .
به نمونه قرار داده شده در این قسمت دقت کنید.
زبان پایتون در طراحی وب
زبان برنامه نویسی python هم یکی از گزینه هایی است که امکانات کاملی را برای طراحی وبسایت ارائه می کند و همپای php در وب در حال توسعه است. پایتون، به دلیل خوانایی و کارایی بالا، از محبوبترین زبانهای برنامه نویسی، نزد بسیاری از توسعهدهندگان است. در ادامه با برخی از مزایای توسعه وب با پایتون آشنا میشوید.

- پایتون منبع باز و رایگان است.
- پایتون آسان است. کمتر زبان برنامه نویسی وجود دارد که یادگیری آن، آسانتر از پایتون باشد.
- با پایتون میتوان، بیشترین کار را با کمترین تعداد خط کد نوشت.
- پایتون میتواند شروعی برای یادگیری زبانهای برنامه نویسی دیگر باشد. اصول شیگرایی پایتون شبیه به زبانهایی مانند روبی، جاوا اسکریپت، پرل و سیشارپ است. از این رو، بعد از یادگیری پایتون، با تمرکز بر فراگیری سینتکس زبانهای دیگر، میتوان زبان جدیدی آموخت.
- زیبایی پایتون علاوه بر سادگی آن، به اصولی استوار میباشد که پایتون براساس آنها ساخته شده است که به “ذن پایتون” (Zen of Python) معروف است. این اصول 20 مورد هستند که چند مورد آنها عبارتند از:
- زیبا بهتر از زشت است.
- ساده بهتر از پیچیده است.
- پیچیده بهتر از بغرنج است.
- خوانایی مهم است.
- برای ساخت نمونهی اولیه کار، بسیار مناسب است. با پایتون میتوان با کد کمتری و با سرعت بیشتری به خواسته خود رسید. از این رو، با صرفهجویی در وقت و هزینه، میتوان رضایت مشتری را جلب کرد.
- پایتون، کتابخانههای فراوانی دارد. به عنوان یک توسعهدهنده، محال است با این تعداد کتابخانههای پایتون، در کاری گرفتار بمانید.
- فریمورکهای قدرتمند در انتظارتان است. انعطافپذیری پایتون، بیشتر مدیون فریمورکهایی است که توسعهی برنامههای خاص از جمله وب را سریع و آسان میکند.
- پایتون، ابزاری مناسب در عصر اینترنت اشیاء (IoT) است. با ظهور اینترنت اشیاء، فرصتهای بسیاری برای برنامه نویسان پایتون به وجود آمده است.
- غولهای فناوری عاشق پایتون هستند. چندین غول فناوری اطلاعات از جمله ناسا، گوگل، یاهو، موزیلا و بسیاری دیگر وابستگی بسیاری به پایتون دارند. تا زمانی که این شرکتها و سازمانها وجود دارند، همیشه تقاضای توسعهدهنده وب با پایتون وجود خواهد داشت
پایتون یا PHP کدام یک مناسب توسعه وب هستند؟
یادگیری پایتون سادهتر از PHP است
PHP یک زبان برنامه نویسی خاص برای توسعهی برنامههای تحت وب است، که به طور قطع، پیچیدهتر از پایتون است. در نتیجه برای یادگیری آن، زمان بیشتری لازم است. زمان لازم برای یادگیری یک زبان برنامه نویسی، یکی از مهمترین عوامل برای انتخاب آن زبان است. انجمن توسعهدهندگان PHP، تلاش زیادی میکنند تا کار با PHP را برای برنامه نویسان تازهکار آسان کنند. با این وجود، یادگیری پایتون با اختلاف قابل توجهی آسانتر است.
هر دو زبان PHP و پایتون پشتیبانی فوق العاده ای دارند
داشتن یک جامعهی آنلاین فعال برای هر زبان برنامه نویسی از نکات بسیار مثبت آن زبان محسوب میشود. پایتون و PHP، هر دو از این جامعهی آنلاین برخوردار هستند. هر دو زبان، توسعهدهندگان و برنامه نویسان زیادی دارند که به طور مداوم به پشتیبانی و حمایت دیگر اعضاء میپردازند. در این مورد هم پایتون و هم PHP در یک رده قرار میگیرند و هیچ یک برتر از دیگری نیست.
PHP و پایتون از مستندات خوبی برخوردار هستند
مستندات بسیاری برای هر دو زبان برنامه نویسی پایتون و PHP در دسترس عموم است. وبسایتها، انجمنها و تالارهای گفتگوی بیشماری وجود دارد که آموزشهای بسیار خوبی در مورد چگونگی توسعهی برنامههای وب با استفاده از پایتون و PHP ارائه میدهد. هر دو زبان برنامه نویسی، از لحاظ در دسترس بودن مستندات، به یک اندازه خوب هستند.
PHP و پایتون رایگان و متنباز هستند
پایتون و PHP هر دو رایگان و متنباز هستند و از این لحاظ، هر دو در یک سطح محسوب میشوند. در واقع، فریمورکهای پایتون و PHP برتری قابل ملاحظهای نسبت به سایر فریمورکهای پولی وب دارند.
تنوع و پشتیبانی از کتابخانههای پایتون بیشتر از PHP است
از لحاظ پشتیبانی از کتابخانهها، پایتون با اختلاف بسیار از PHP جلوتر است. پایتون، با کتابخانههای فوقالعاده خوبی که در هر حوزهی کاری دارد، یک زبان بسیار کاربردی در هر زمینهای است. PHP نیز Packagist (مخزن بستههای PHP) را دارد که نقش یک ستون فقرات قوی برای PHP ایفا میکند.
سرعت اجرای PHP بیشتر از پایتون است
نسخههای PHP 5.x بسیار کند هستند و برای اجرای آنها زمان بسیار زیادی صرف میشود. اما نسخهی PHP 7.x بسیار سریع است و به طور تقریبی سه برابر یک برنامه معمولی پایتون سریعتر اجرا میشود. سرعت، یکی از مؤلفههای مهم در کاربرد یک زبان برنامه نویسی محسوب میشود. به عنوان مثال، در یک سیستم بانکی که روزانه یک میلیون بازدید دارد، 3 برابر تأخیر، ممکن است تأثیر بسیار بدی در اجرای عملکرد سیستم داشته باشد. از این رو، PHP از لحاظ سرعت، برتری قابل توجهی نسبت به پایتون دارد. اما در برنامههای ساده، عملکرد سرعت، اهمیت چندانی نخواهد داشت.
پایتون و PHP دارای فریمورکهای وب متنوعی هستند
Django، Flask، Pyramid، Pylons از جمله فریمورکهای وب مبتنی بر پایتون هستند که بیشترین استفاده را دارند. از سوی دیگر، Symfony، Laravel، Zend، Codeigniter از مهمترین فریمورکهای PHP هستند که بیشترین کاربرد و محبوبیت را در بین توسعه دهندگان دارند. جنگو، بسیار سریع، مقیاسپذیر، ایمن و با کاربردی آسان است. این فریمورک پایتون، به واقع قوی و قدرتمند است و به طور گستردهای در وب مورد استفاده قرار میگیرد. به همین ترتیب، لاراول و کدایگنایتر دو فریمفرک بسیار پرکاربرد PHP هستند که به طور گسترده در وب استفاده میشوند. پایتون و PHP در حوزهی فریمورکهای وب به هم نزدیک بوده و هر دو گزینههای خوبی را ارائه میدهند. با این حال، توسعهدهندگان تازهکار، با توجه به زمان کم توسعه و تنظیم آسان جنگو، از کار با جنگو لذت میبرند.
دیباگ یا عیب یابی در پایتون و PHP آسان است
پایتون دارای یک دیباگر قدرتمند به نام PDB (Python Debugger) است که دارای مستندات خوب و استفاده آسان، حتی برای مبتدیان است. از طرف دیگر، PHP بستهی XDebug را برای رفع اشکال ارائه داده است. PDB و XDebug هر دو معمولیترین ویژگیهای اشکالزدایی را ارائه میدهند. از این لحاظ، پایتون و PHP در یک سطح و مشابهی یکدیگر هستند.

برنامه نویسی اپلیکیشن موبایل
یکی دیگر از زمینه های برنامه نویسی طراحی اپلیکیشن های اندروید و ios است. اگر اپلیکیشن های مربوط به این دو سیستم عامل را بخواهیم بررسی کنیم پی خواهیم برد که زبان های جاوا (Java) ، جاوا اسکریپت (JavaScript) ، کاتلین (Kotlin) ، فلاتر (Flutter) ، سوئیفت (Swift) ، سی شارپ (#C) ، پایتون (Python) و … زبان های منتخب برنامه نویسان در این حوزه هستند.
اپلیکیشن هایی که با زبان جاوا برای سیستم عامل اندروید نوشته و همچنین آنهایی که با زبان برنامه نویسی سوئیفت برای ios طراحی می شوند را در اصطلاح نیتیو Native می گویند. این زبان ها بعنوان زبانهای پایه برنامه نویسی اپلیکیشن موبایل در نظر گرفته می شوند و در اجرای بدون نقص برنامه ها حرف اول را می زنند. زبانهای برنامه نویسی دیگری نیز وجود دارند که قابلیت ایجاد اپلیکیشن موبایل را دارند اما شاید کیفیت زبان های نیتیو را نداشته باشند مگر اینکه قبل از تفسیر به زبان های Native تبدیل شده و در قالب اپ native اجرا شوند. در میان زبان های رایج می توان به جاوا اسکریپت -> فریم ورک React Native و همچنین Xamarin با بهره گیری از زبان سی اشاره کرد.
تلاش می کنم در آینده بصورت کامل به هر یک از زبان های گفته شده بپردازم و بصورت کامل آنها را برای کاربران خوب وبسایت لست سین بررسی کنم .

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

برای برنامه نویسی موبایل چه چیزهایی باید یاد بگیریم ؟
اولین قدم یادگیری مقدماتی یکی از زبان های برنامه نویسی گفته شده است. اگر در اپ موبایل خود می خواهید از ارتباط با سرور استفاده کنید ، بعنوان مثال یک اپلیکیشن فروشگاهی موبایل، باید حتما علاوه بر زبان طراحی اپ ، یک زبان برنامه نویسی برای برنامه سمت سرور نیز یاد بگیرید. دقیقا مشابه به طراحی بک اند وبسایت. مثلا می توانید php را انتخاب کنید یا از کتابخانه محبوب نود جی اس Node Js در زبان JavaScript استفاده کنید.
اصول طراحی UI در اپلیکیشن کمی با سایت متفاوت است و به مراتب سختی های خود را نیز دارد. برای پیاده سازی اپلیکیشن موبایل یک پروژه تعریف کنید مهم نیست سخت یا آسان فقط آن را به مرحله انتشار برسانید. در مسیر برنامه نویسی هر چیزی را که رها کنید متوقف شده و بازگشت به مسیر و ادامه راه قبلی کاری سخت و خسته کننده خواهد بود، چراکه فراموش میکنید چه کرده بودید و چه ایده ای داشتید. ساعت ها باید زمان بگذارید تا یادتان بیاید که این همه کد برای چه بوده ؟!!!
بدنبال معجزه نباشید!!! فرمولی وجود ندارد که شما را به یک برنامه نویس فول استک (حرفه ای) تبدیل کند. مطالعه ، تمرین ، انجام پروژه های کوچک و بزرگ … همینقدر طولانی و پر از چالش اما بسیار لذت بخش . خیلی هم بحث را به حاشیه نکشانیم !!!
نرم افزاری که میخواهید در آن کدهای خود را بنویسید انتخاب کنید اگر لازم به دانلود و نصب پکیج هایی است حتما داکیومنت های آنها را مطالعه کنید. مثالهایی را برای استفاده از آنها پیدا کنید، در فضای اینترنت با حوصله سرچ کنید. شروع کنید به پیاده سازی امکاناتی که مد نظر دارید.

زبان جاوا Java
گوگل بعنوان توسعه دهنده سیستم عامل اندروید زبان برنامه نویسی جاوا را برای تولید اپلیکیشن های اندروید انتخاب نموده است. Java در محیط نرم افزاری اندروید استودیو Android Studio کامپایل می شود که برای تولید و اجرای برنامه های اندرویدی نیاز به نصب این برنامه و پکیج های توسعه نرم افزاری مختص به آن است. به این پکیج ها SDK مخفف Software Development Kit گفته می شود. در ادامه بخشی از نمونه کدهای جاوا در نرم افزار اندروید استودیو به تصویر کشیده شده است.
// java sample code
class Simple{
public static void main(String args[]){
System.out.println("Hello Java");
}
}
// Swift sample code
enum CompassPoint {
case north, south, east, west
mutating func turnNorth() {
self = .north
}
}
var currentDirection = CompassPoint.west
let rememberedDirection = currentDirection
currentDirection.turnNorth()
print("The current direction is \(currentDirection)")
print("The remembered direction is \(rememberedDirection)")
// Prints "The current direction is north"
// Prints "The remembered direction is west"
زبان سوئیفت Swift
زبان برنامه نویسی سوئیفت بر گرفته از زبان قدرتمند سی است به دلیل همین تشابهات است که آن را یک زبان بیس C می دانند. از این زبان برای تولید برنامه های سیستم عامل ios استفاده می شود. کامپایلر یا IDE زبان سوئیفت برنامه ای است بنام Xcode که در محیط مک نصب و اجرا می شود و برای کار کردن با آن نیازمند یک مک بوک اپل خواهید بود. در این قسمت نمونه کدی از زبان سوئیفت برای شما قرار داده ام.

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