بخش اول – انتخاب زبان برنامه نویسی
مشخص کنید به چه زمینهای علاقه دارید
یادگیری هر زبان برنامهنویسی ممکنه (هرچند بعضی قطعا از بقیه “راحتتر” هستند)، پس بهتره اول از خودتون بپرسید که با یادگیری یک زبان برنامهنویسی میخواهید به چه چیزی برسید؟ این کار به شما کمک میکنه تا مشخص کنید دنبال چه نوع برنامهنویسی باشید و یک نقطه شروع خوب پیدا کنید.
- اگر میخواهید وارد توسعه وب شوید، مجموعه زبانهای کاملا متفاوتی رو باید یاد بگیرید تا اینکه بخواهید برنامههای کامپیوتری بسازید. توسعهی اپلیکیشنهای موبایل به مجموعهی مهارتی متفاوتی نسبت به برنامهنویسی ماشین نیاز دارد. همهٔ این تصمیمها روی مسیر شما تاثیر میگذارند.
شروع با یک زبان «سادهتر» را در نظر بگیرید
صرف نظر از حوزه مورد علاقه شما، شاید بخواهید با یکی از زبانهای سطح بالا و با نحو سادهتر آغاز کنید. این زبانها به طور ویژهای برای افراد مبتدی مفید هستند، زیرا مفاهیم بنیادین را آموزش میدهند که تقریباً در هر زبانی قابل اعمال هستند.
- دو زبان از محبوبترین گزینهها در این دسته پایتون و روبی هستند. هر دوی این زبانها، زبانهای توسعه وب شیءگرا محسوب میشوند که از نحو بسیار خوانا بهره میبرند.
- «گرایش به شیءگرایی» به این معناست که این زبان بر پایه مفهوم «اشیاء» یا همان ساختارهای داده و شیوههای دستکاری آنها بنا شده است. این مفهوم، هسته اصلی بسیاری از زبانهای برنامهنویسی پیشرفته نظیر C++، Java Objective-C و PHP را تشکیل میدهد.
برای انتخاب زبان، آموزشهای پایهای زبانهای مختلف رو مرور کنید
جهت انتخاب زبان برنامه نویسی کارآمد، بررسی اجمالی دورههای آموزشی مقدماتی زبانهای مختلف توصیه میشود. در صورتی که همچنان در خصوص انتخاب زبان اولیۀ خود تردید دارید، مطالعهٔ آموزشهای پایهای چندین زبان گوناگون میتواند راهگشا باشد. زبانی که مفاهیم آن برای شما ملموستر و قابل درکتر باشد، میتواند به عنوان نقطۀ شروع مناسبی انتخاب شود. برای ارزیابی سازگاری خود با یک زبان خاص، تمرین و کار با آن برای مدت کوتاهی مفید خواهد بود.
در دنیای وب، به ویژه وبسایت w3schools.com ، منابع آموزشی آنلاین بیشماری برای هر زبان برنامه نویسی در دسترس است. در ادامه، به معرفی چند نمونه از زبانهای پرطرفدار پرداخته میشود:
- پایتون: پایتون زبانی عالی برای شروع یادگیری است که با کسب مهارت در آن، به ابزاری قدرتمند تبدیل میشود. این زبان در توسعهٔ طیف گستردهای از وبسایتها و برخی بازیها کاربرد دارد.
- جاوا: جاوا در انواع بیشماری از برنامهها، از بازیها و وبسایتها گرفته تا نرمافزارهای خودپرداز، به کار میرود.
- HTML: تسلط بر HTML پیشنیازی اساسی برای هر توسعهدهنده وب به شمار میآید. این زبان، بستر و پایهای برای سایر مسیرهای توسعه وب محسوب میشود.
- C: اگرچه از زبانهای قدیمیتر به شمار میرود، همچنان ابزاری قدرتمند است و زیربنای زبانهای مدرنتر نظیر C++، C# و Objective-C را تشکیل میدهد.
کوچک شروع کنید
درک مفاهیم بنیادین زبان برنامه نویسی
هرچند جزئیات این مرحله بسته به زبان انتخابی شما متفاوت خواهد بود، اما تمامی زبانهای برنامه نویسی دارای مفاهیم بنیادینی هستند که برای ساخت برنامههای کاربردی ضروریاند. یادگیری و تسلط بر این مفاهیم در مراحل ابتدایی، حل مسائل و خلق کدهای قدرتمند و کارآمد را تسهیل خواهد کرد. در ادامه به برخی از مهمترین مفاهیم مشترک در بسیاری از زبانهای برنامه نویسی اشاره میشود:
- متغیر (Variable): متغیر روشی برای ذخیره و ارجاع به دادههای متغیر است. مقادیر متغیرها قابل تغییر هستند و اغلب دارای نوع داده مشخصی مانند «عدد صحیح»، «کاراکتر» و … میباشند که نوع داده قابل ذخیره در متغیر را تعیین میکند. هنگام کدنویسی، متغیرها معمولا نامهایی دارند که تا حدودی برای خواننده انسانی قابل تشخیص باشند. این امر درک نحوه تعامل متغیر با سایر اجزای کد را آسانتر میکند.
- عبارات شرطی (Conditional Statements): عبارت شرطی دستوری است که بر اساس صحت یا عدم صحت یک شرط اجرا میشود. متداولترین شکل عبارت شرطی، عبارت «اگر-آنگاه» (If-Then) است. اگر عبارت درست باشد (بهعنوان مثال x = 5)، یک رویداد رخ میدهد. اگر عبارت نادرست باشد (بهعنوان مثال x != 5)، رویداد دیگری رخ میدهد.
- توابع یا زیربرنامهها (Functions or Subroutines): نامگذاری واقعی این مفهوم ممکن است بسته به زبان برنامه نویسی متفاوت باشد. همچنین این مفهوم میتواند «رویه» (Procedure)، «متد» (Method) یا «واحد قابل فراخوانی» (Callable Unit) نامیده شود. این مفهوم اساسا یک برنامه کوچک درون یک برنامه بزرگتر است. تابع میتواند توسط برنامه چندین بار «فراخوانده» شود که به برنامهنویس امکان ساخت برنامههای پیچیده با کارایی بالا را میدهد.
- دریافت داده (Data Input): این مفهوم گستردهای است که تقریباً در تمامی زبانها کاربرد دارد. دریافت داده شامل مدیریت ورودی کاربر و همچنین ذخیره آن داده است. نحوه گردآوری داده بستگی به نوع برنامه و ورودیهای در دسترس کاربر (صفحهکلید، فایل و غیره) دارد. این مفهوم ارتباط نزدیکی با خروجی (Output) دارد که به نحوه نمایش نتیجه به کاربر، چه بر روی صفحه نمایش و چه از طریق فایل، اشاره میکند.
نصب نرمافزار ضروری
بسیاری از زبانهای برنامه نویسی نیازمند کامپایلر هستند؛ برنامهای که برای ترجمه کد به زبانی قابل درک برای ماشین طراحی شده است. زبانهای دیگر مانند پایتون از مفسر (interpreter) استفاده میکنند که بدون نیاز به کامپایل، برنامهها را به صورت لحظهای اجرا میکند.
- برخی زبانها دارای IDE (محیط توسعه یکپارچه) هستند که معمولا شامل یک ویرایشگر کد، کامپایلر یا مفسر، و یک اشکالزدا (debugger) میباشند. این امکان را برای برنامهنویس فراهم میکند تا هر کارکرد ضروری را در یکجا انجام دهد. همچنین IDEها ممکن است شامل نمایشهای بصری از سلسلهمراتب اشیاء و دایرکتوریها باشند.
- انواع مختلفی از ویرایشگرهای کد به صورت آنلاین در دسترس هستند. این برنامهها روشهای مختلفی برای برجستهسازی نحو زبان (syntax highlighting) ارائه میدهند و ابزارهای دیگری را برای تسهیل کار توسعهدهندگان در اختیار آنان قرار میدهند.
نوشتن اولین برنامه
روی هر مفهوم به صورت جداگانه تمرکز کنید
یکی از اولین برنامههایی که در هر زبان برنامه نویسی آموزش داده میشود، برنامه «سلام دنیا» (Hello World) است. این یک برنامه بسیار ساده است که متن «سلام دنیا» (یا تغییری از آن) را روی صفحه نمایش میدهد. این برنامه به برنامهنویسان تازهکار هم نحو زبان برای ایجاد یک برنامه پایه و کاربردی و هم نحوه مدیریت خروجی را آموزش میدهد. با تغییر متن، میتوانید نحوه مدیریت دادههای پایه توسط برنامه را بیاموزید. در زیر، چندین راهنمای wikiHow برای ایجاد برنامه «سلام دنیا» به زبانهای مختلف آورده شده است:
- Hello World با پایتون
- Hello World با روبی
- Hello World با سی
- Hello World با PHP
- Hello World با سی شارپ
- Hello World با جاوا
واکاوی و تحلیل نمونههای آنلاین
منابع آنلاین حاوی نمونه کدهای بیشماری برای تقریباً تمامی زبانهای برنامه نویسی هستند. از این نمونهها برای بررسی چگونگی عملکرد جنبههای مختلف زبان و نحوه تعامل اجزای گوناگون آن استفاده کنید. با الهام از بخشها و قطعات کدهای مختلف، اقدام به خلق برنامههای خود نمایید.
درک نحو زبان (Syntax)
نحو (سینتکس هم بهش میگن)، شیوه نگارش زبان برنامه نویسی به نحوی است که کامپایلر یا مفسر بتواند آن را درک کند. هر زبان دارای نحو منحصر به فردی است، هرچند ممکن است برخی عناصر در چندین زبان مشترک باشند. یادگیری نحو برای فراگیری نحوه برنامه نویسی در یک زبان ضروری است و اغلب مفهومی است که افراد هنگام فکر کردن به برنامه نویسی رایانهای به ذهنشان خطور میکند. در واقعیت، نحو صرفا زیربنایی است که مفاهیم پیشرفتهتر بر اساس آن بنا میشوند.
تجربه با اعمال تغییرات
با اعمال تغییرات در برنامههای نمونه خود و سپس آزمایش نتیجه حاصله، میتوانید بیاموزید که چه مواردی عملکرد صحیح داشته و چه مواردی منجر به خطا میشوند. این روش تجربی به مراتب سریعتر از مطالعه کتاب یا راهنما به شما میآموزد که چه طور عمل کنید. از ایجاد خرابی در برنامه خود نترسید؛ یادگیری رفع خطاها بخش مهمی از هر فرایند توسعه است و موارد جدید به ندرت در اولین تلاش به درستی کار میکنند.
آغاز فرایند اشکالزدایی (Debugging)
هنگام برنامه نویسی، به طور اجتنابناپذیری با «اشکال» (Bug) مواجه خواهید شد. این موارد خطاهایی در برنامه هستند و میتوانند در هر نقطهای از آن بروز پیدا کنند. اشکالها ممکن است ایرادهای بیخطری در برنامه باشند یا خطاهای عمدهای که مانع کامپایل یا اجرای برنامه میشوند. یافتن و رفع این خطاها بخش مهمی از چرخهی توسعه نرمافزار است، بنابراین عادت کنید که از مراحل اولیه با این فرایند آشنا شوید.
- در جریان آزمایش و اعمال تغییرات روی برنامههای پایهای، با مواردی برخورد خواهید کرد که به درستی کار نمیکنند. کشف روشهای مختلف برای حل مسائل، یکی از باارزشترین مهارتهایی است که میتوانید به عنوان یک برنامهنویس داشته باشید.
درج کامنت (Comment) برای تمامی کدها
تقریبا تمامی زبانهای برنامه نویسی از قابلیتی تحت عنوان «کامنت» پشتیبانی میکنند که به شما امکان میدهد متنی را در کد بگنجانید که توسط مفسر یا کامپایلر پردازش نمیشود. این قابلیت به شما اجازه میدهد تا توضیحات مختصر اما واضحی به زبان انسانی در مورد کارکرد کد ارائه دهید. درج کامنت نه تنها به شما در به خاطر سپردن کارکرد بخشهای مختلف در یک برنامه حجیم کمک میکند، بلکه از الزامات ضروری در محیطهای کاری مشارکتی به شمار میرود، زیرا به دیگران امکان درک منطق حاکم بر کد شما را میدهد.