درود بر شما عید رو به بهتون تبریک میگم، خوش اومدید به سری آموزش های سی پلاس پلاس، قبل از هر چیز باید بگم، قصد و هدف من از این آموزش ها این هست که روند یادگیری این زبان رو برای شما آسون تر کنم! و اینکه این مقاله از سایت learncpp.com ترجمه شده که از دید یوتیوبر معروف یعنی cherno که در زمینه سی پلاس پلاس فعالیت میکند یکی از بهترین سایت های متنی برای درک و یادگیری سی پلاس پلاس هست . متاسفانه این سایت ایران رو تحریم کرده و به همین خاطر من تصمیم گرفتم که مقالات آموزشیش رو ترجمه کنم و اینجا بگذارم ! اما قبل از این که شروع کنیم باید روند کار رو به شما بگم :
روند ترجمه و یادگیری با این مقالات
- در وهله اول باید بگم که لینک هر مقاله ای که ترجمه میشه رو آخر هر پست میگذارم پس به راحتی میتونید صحت اطلاعات رو بررسی کنید.
- برای یادگیری از این طریق بهتره سعی کنید که مثل یک nerd رفتار کنید، عموما ساخت یک برنامه کار سختی نیست ! اما ایجاد یک ایده و تبدیلش به کد کار آسونی نیست !
- در پست ها بخش هایی با عنوان از فرهان داریم که در واقع افزونه هایی هستند که در مقالات توسط مترجم آورده شده است تا شما بیشتر بدانید و درک بهتری از موضوع داشته باشید !
- در هر هفته دو مقاله منتشر میکنم اما سعی ام رو بر این میگذارم که سه تا باشه!
- در آخر لطفا حتما به مطالب امتیاز بدهید و نظرتون رو در مورد نحوه ترجمه مطالب ، بخش های از فرهان و ... در بخش نظرات بیان کنید.
خب دیگه بریم که شروع کنیم .
بر خلاف بسیاری از کتاب ها و سایت های آموزشی در این سری از آموزش ها فرض بر این گذاشته شده که شما هیچ تجربه ای از کار با زبان های برنامه نویسی ندارید. و سعی میکنم هر چیزی که در روند پیشرفتتون نیاز دارید که در مورد این زبان بدونید رو به شما بگم. اونم با کلی مثال. و چه به یادگیری سی پلاس پلاس به عنوان یک سرگرمی نگاه میکنید و چه این که به عنوان یک حرفه در زمینه توسعه دهندگی باید بگم که جایه درستی اومدید !
ساختار درس ها :
از فرهان : اینجا قراره در مورد این بگه که ساختار درسا چطوری هستند و هر فصل تو خودش چی داره.
درس هایی که در این فصلِ مقدمه میخونیم ، جوری برنامه ریزی شدند که به شما یک دید کلی از این بدهند که دقیقا سی پلاس پلاس چیه؟ ، چطوری به وجود اومده ، برنامه ها چطوری کار میکنند و به چه نرم افزار هایی برای شروع برنامه نویسی با سی پلاس پلاس و ساخت برنامه های خودتون نیاز دارید، حتی یاد میگیرید که چطوری اولین برنامه خودتون رو به این زبان بنویسید.
در فصل های بعدی در مورد بخش های متفاوتی از زبان سی پلاس پلاس بحث میکنیم، در فصل اول (لازم به ذکر هست که الان در فصل صفرم یعنی فصل مقدمه هستیم) به شما یک دید کلی اما سطحی و ساده از مفاهیم پایه ای زبان سی پلاس پلاس خواهم گفت. تا اینجوری بتونیم یه سری از برنامه های ساده رو بنویسیم، در فصل های بعد (بعد از فصل اول)، اون مفاهیم پایه رو در عمق بررسی میکنیم و درشون عمیق میشیم یا این که مفاهیم جدید و پیشرفته تر رو یاد میگیریم.
هر فصل دارای یک موضوع اصلیست که درس ها و بخش های درون اون، همگی حول محور اون موضوع هستند،
از فرهان : که عموما این موضوع در اولین درس از هر فصل مشخص میشه.
و در آخر باید بگم که زمان پیشنهادی ای واسه این که چقدر باید روی هر درس یا هر فصل زمان بگذارید در نظر گرفته نشده است، من درس ها رو در اختیار شما قرار میدهم ، شما هم هر چقدر که دوست دارید وقت بگذارید و هر جورکه راحت هستید وقت صرف کنید و پیشرفت کنید.
اهداف
- قراره که علاوه بر سی پلاس پلاس دیگر موضوعات برنامه نویسی رو هم پوشش بدیم.کتاب ها و راه های سنتیِ یادگیری برنامه نویسی واقعا در فهماندن مفاهیم پایه به شما خیلی خوب عمل میکنند. اما اغلب اوقات در پوشش موضوعاتی که به صورت تصادفی در هنگام برنامه نویسی برای شما ممکن است اتفاق بیوفتد لنگ میزنند . برای مثال کتاب ها اغلب بخش هایی که در مورد سبک کد زنی، دام های رایج (pitfalls) ، نجوه دیباگ کردن ، کارهایی که بهتر است/نیست در هنگام کدنویسی انجام دهید و نحوه تست کردن کدها هست را حذف میکنند. درنتیجه وقتی که شما اون کتاب رو تموم میکنید ، ممکنه که بدونید چطوری باید با اون زبان برنامه بنویسید اما همچنین ممکنه که یک سری عادت بد گریبانتون رو گرفته باشند که در دراز مدت میتونه بهتون صدمه بزنه.
- همینطور در طول این سری آموزشی سعی کردم مثال های خیلی زیادی رو واستون فراهم کنم. الگوی یادگیری بسیاری از افراد به این شکل هست که ، هرچقدر که در طول مسیر یادگیری با مثال های بیشتری روبه رو بشوند بیشتر یاد میگیرند. در این دوره سعی کردم که کلی مثال واضح و صریح براتون فراهم کنم ، تا شما بتونید کاربرد اون مفاهیمی که یاد میگیرید رو هم ببینید. همینطور سعی میکنم تا جایی که میشه و امکان داره از دوقلوهای شیطانی استفاده نکنم : منظورم از دوقلوهای شیطانی سه نقطه ها هستند (...) و مفاهیم تازه ای که قبلا توضیح داده نشده مثلا وقتی در یک مثال بخشی به نفع موضوع درس حذف شده از (...) سه نقطه استفاده نمیکنم و همینطور تا زمانی که مفهومی رو بهتون توضیح ندادم ازشون در مثال ها استفاده نمیکنم ! تا اینجوری در روند یادگیریتون وقفه نیوفته و گیر نکنید.
- براتون یه سری برنامه های تمرینی تدارک دیدم . در آخر بسیاری از بخش ها و درس ها تمرین هایی به همراه راه حل وجود داره که باید حلشون کنید. میتونید راه حل خودتون رو با راه حل ما (من و بچه های توی کامنت) مقایسه کنید تا ببینید که کجا با هم تفاوت دارند و از طرفی اگر گیر کردید ، میتونید ببینید که ما چطوری سوال رو حل کردیم. و بعدش که فهمیدید مشکلتون از کجاست میتونید برگردید و هر جا که مشکل داشتید رو بازبینی کنید و تمرکزتون رو روی بهبود اون بخش بگذارید.
- و اما مهم تر از همه خوشبگذرونید. برنامه نویسی میتونه به شدت باحال و سرگرم کننده باشه، اگر معمولا آدم خوشگذرونی نیستید و همه چیز رو سخت میگیرید و نمیتونید خوش بگذرونید و سرگرم باشید (حداقل از برنامه نویسی) ، باید بگم که ذهن آماده ای برای شروع برنامه نویسی ندارید ، برنامه نویسان خسته و ناراحت بیشتر از دیگران اشتباه میکنند و دیباگ کردن کد زمان خیلی زیادی از شما میگیره اونم در مقایسه با زمانی که واسه نوشتن همون کد به صورت صحیح صرف میکنید ! به عبارتی دیباگ کردن از نوشتن یک کد سخت تره و زمان بیشتری میگیره ! گاهی اوقات میتونید با رفتن به رخت خواب توی وقتتون صرفه جویی بکنید. به این صورت که بعدا با ذهنی باز تر به موضوع برگردید و مشکل رو برطرف کنید.
در آخر چطور بهترین نتیجه رو از این دوره آموزشی بگیریم :
- اول از همه مثال ها رو خودتون به صورت دستی تایپ و کامپایل کنید ، لطفا کپی پیستشون نکنید و سعی کنید که خودتون بنویسیدش ، این باعث میشه که بفهمید که عموما کجا ها باعث ایجاد خطا میشید و همینطور باعث میشه که با خطاها و اخطار های کامپایلر ها آشنا بشید پس همینطور بدون فکر جلو نرید و تمرین ها رو رونویسی نکنید روی هر خط کدی که دارید مینویسید فکر کنید و سعی کنید بفهمید که اون خط دقیقا چی کار میکنه و چطوری به برنامه کمک میکنه که کارش رو پیش ببره؟ و اگر در این بین فهمیدید که چیزی رو نمیفهمید ، خب خوبه چون این دقیقا همون چیزی هست که باید بیشتر در موردش کنکاش کنید و بخونید.
- قدم دوم اینه که همینطور که در روند برنامه نویسی خطاهایی دریافت میکنید و یا این که باگ هایی رو داخل برنامه هاتون پیدا میکنید سعی کنید که درستشون کنید ، به عبارتی قبل از این که از کس دیگه ای کمک بخواید سعی کنید مشکلات و باگ های درون برنامتون رو خودتون حل کنید، یادگیری چگونگی حل باگ ها و مشکلات برنامه ها کلید موفقیت در برنامه نویسی هستش به عبارتی شما باید یاد بگیرید که باگ ها رو پیدا کنید و برطرفشون کنید پس در این راه از یادگیری کار با دیباگر ها طفره نرید، چون که این ابزار در پیدا کردن بخش هایی از برنامه که درست کار نمیکنه، کمک بزرگی به ما میکنه .
- مثال ها رو تجربه کنید .مثلا اعداد و متن های درون مثال ها رو تغییر بدید تا ببینید که چه اتفاقی میوفته یا این که مثال ها رو ویرایش کنید و سعی کنید که یه چیزی به مثال ها اضاف کنید (مثلا اگر در یک مثال یک برنامه داریم که دو عدد رو با هم جمع میکنه کاری کنید که سه عدد رو جمع بکنه) . سعی کنید که راه هایی رو پیدا کنید تا در یک برنامه مشکل ایجاد کنید و اصطلاحا باعث break شدن برنامه بشید (مثلا اگر در یک مثال برنامه ای داریم که از شما برای ورودی عدد میخواهد سعی کنید به جای عدد یک رشته متن را وارد کنید) و بببینید که چه اتفاقی میوفته، با ویرایش کردن مثال ها بیشتر از صرفا دنبال کردنشون یاد میگیرید. از فرهان : « پس سعی کنید تا میتونید مثال ها رو ویرایش کنید ، کد ها رو جابه جا کنید و به خطا بخورید و خطا ها رو حل کنید و با دیباگر ها بیشتر آشنا بشید و کامپایلر و خطاهاش رو بیشتر بشناسید » .
- یه برنامه واسه صرف کردن وقتتون روی پرسش ها و پاسخ های ته هر درس داشته باشید . اگر تازه کار هستید ممکنه این کار واستون یکم چالشی باشه (که خب طبیعیه چون مغزتون برای این که به ذهنیت یک برنامه نویس نزدیک بشه و خو بگیره باهاش نیاز به زمان داره و با یکی دوبار این اتفاق نمیوفته) اگر اشتباه جواب دادید یا نتونستید برای بار اول جواب درست رو پیدا کنید به هیچ وجه دلسرد نشید، ممکنه که قبل از رسیدن به جواب درست نیاز باشه راه های مختلفی رو امتحان کنید و این که اگر واقعا گیر کردید مشکلی نداره که جواب رو نگاه کنید، فقط اگر جواب رو نگاه کردید حتما مطمعن بشید که کامل فهمیدید چطوری جواب مسئله کار میکنه و بعد جلو برید ! سعی کنید بخش بخش راه حل رو بفهمید.
- و در آخر سعی کنید از مفاهیمی که یاد گرفتید استفاده کنید و یک برنامه کوچیک واسه خودتون بسازید ، این باعث میشه که یادگیریتون تقویت بشه و همینطور حافظتون هم بهبود پیدا بکنه.
تبریک میگم و ازتون ممنونم که به آخر این مقاله اومدید ، من فرهان هستم و خیلی خیلی خیلی خوشبختم😍😍، مرسی که هستید و امیدوارم لذت برده باشید ! لینکی که اول هر مقاله هست بخش پادکست اون مقالست ، سعی کردم که برای هر مقاله یک پادکست داشته باشیم تا بتونید موضوعات رو بهتر درک کنید و این کار رو به این خاطر میکنم که مشکلی در خواندن درست مقالات نداشته باشید ، این مقاله آموزشی، ترجمه ی اولین درس فصل صفرم سایت learncpp.com هستش که لینک این مطلب رو براتون میزارم : برای رفتن به منبع این مقاله کلیک کنید
خوشحال میشم نظرتون رو در مورد ترجمه بدونم و این که این اولین تجربه ی ترجمه من هست 💗 و این که تا درودی دیگر بدرود.
-فرهان