تجربه من از برنامه نویسی روز سوم!

توجه این مقاله رو حتما باید با ویس بالا گوش بدید و بخونید تا درک کنید که در مورد چی حرف میزنم مرسی❤
گلوم درد میکنه و از بابت این موضوع عذر میخوام. (متاسفانه هنوز خوب نشدم)

اسم این پادکست رو گذاشتم GBGEEK اگر دوست داشتید حتما بزارید که بدونم که حستون نسبت به مقاله و چیزایی که گفته شد چی هست.

هر چند که روز سوم نیست،

قبلا توی مقاله ی تجربه من از برنامه نویسی روز دوم (اینجا) که به طور بی سابقه ای ازش حمایت کردید گفتم که مدتی هست که دارم سی پلاس پلاس یاد میگیرم و کتابی که در حال خوندنش هستم ppp هستش که مخفف programming : principles and practice using c plus plus هستش و گفتم اگر جایی دیدید که نوشتم cpp منظورم c plus plus هست.

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

یه مقدمه کوچولو

وقتی که شروع به یادگیری هر زبانی میکنیم، چه حالا زبان برنامه نویسی باشه و چه زبان طبیعی مثل فارسی و انگلیسی باید سعی کنیم در وهلۀ اول درک مناسبی از ساختار و کلمات تخصصی داشته باشیم؛ چرا؟

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

تصویر ۱
تصویر ۱

در عکس بالا شما دارید شماتیک یک برنامه رو میبنید که در حقیقت داره بیان میکنه که برنامه ها خود شامل برنامه های کوچولو تر هستند که هر فانکشن یا بلاک کد میاد بر اساس دیتایی که داره یه خروجی تولید میکنه و میشه این خروجی رو به عنوان ورودی داد به تابع بعدی تا اون تابع هم یه خروجی بر اساس ورودی درست کنه و همینطور ادامه پیدا کنه تا برسیم به نتیجه برنامه!

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

حالا چرا کلمات تخصصی؟

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

اما قبل از اون بیاید تا اول با کلمه statement آشنا بشیم.

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

اما بیاید به طور خلاصه یه سری به همون مقاله بزنیم، کل حرف اون مقاله این بود :

  1. برنامه نویسی یعنی صحبت با کامپیوتر
  2. برای صحبت با کامپیوتر باید از گرامر و زبان خاص خودش استفاده کنی که میشه زبان برنامه نویسی مثل cpp
  3. برای این که بخوای یه کامپیوتر کاری برات انجام بده باید با استفاده از زبان برنامه نویسی باهاش صحبت کنی و مو به مو و با جزئیات دقیق بگی که چیکار کنه (تفکر الگوریتمی). مثلا به آدمی که میپرسه دستشویی کجاست میگی ته راهرو دست راست ولی برای این که به یه کامپیوتر بفهمونی دستشویی کجاست، باید ته، راهرو، جهت راست و حتی راه رفتن و... رو هم توضیح بدی.

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

بزارید این رو با یه مثال ساده براتون بگم :

تصور کنید که به دوستتون میخواید بگید که بره و از یخچال هندونه رو بیاره. پس به احتمال زیاد اینجوری میگید که :

مثلا :

علی
پاشو. (وقتی پا شدی بعدش)
برو تو آشپزخونه.(وقتی رفتی بعدش)
تو یخچال (یعنی در یخچال رو باز کن و وقتی باز کردی بعدششش)
هندونه رو بردار. (وقتی برش داشتی بعدش)
بیار.

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

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

اما در زبان های برنامه نویسی این تموم شدنه و رفتن به سمت دستور بعدی. آنچنان هم ساده نیست. و کلی بحث بامزه داره ولی بیاید فعلا از اون بحث ها دور بمونیم و فقط در مورد یه علامت صحبت کنیم که هم تو cpp و هم توی js و زبان های دیگه ازش استفاده میشه اون هم semi-colon یا نقطه-ویرگول ; هست.

نقطه ویرگول دقیقا همون معنای نقطه توی مثال بالا رو میده. یعنی « تموم شد (برو بعدی) » این برو بعدی اختیاری هست ممکنه برنامه بره خط بعد و دیگه چیزی وجود نداشته باشه پس تمومه ولی ممکنه کد هایی در خطوط بعدی باشن که خب در این صورت این برو بعدی ادامه پیدا میکنه تا برنامه تموم بشه.

حالا برای ادامه بحث و بیان تجربم به ناچار مجبورم یه مورد دیگه رو هم براتون باز کنم و اون هم بلاک هست! البته نه اون بلاکی که مزاحما رو باهاش میکنیم، منظورم یه مشت کد جمع و جور شده هست که با هم اجرا میشن. اصولا این تیکه از کد ها رو تو خیلی از زبون های برنامه نویسی بین این دوتا مینویسن { } که بهشون میگیم curly- braces (کروشه خودمون).

{
// code 
}

حالا این curly-braces ها چیکار میکنن؟ این ها میان و چند تا جمله رو توی خودشون نگه میدارن تا با هم دیگه اجرا، ترجمه، تفسیر و ... بشن در واقع مثل این میمونه که شما توی برنامتون یه سری جعبه هایی داشته باشید که بتونید یهویی یه کار باحال رو با ترکیب چند جمله با هم انجام بدید. به این ساختار چند جمله ای میگن block که نام تخصصی ترش compound-statement یا جملات مرکب هم هست.

حالا موضوعی که مهمه این وسط اینه که کروشه اول در حقیقت داره میگه که شروع کد یا شروع این compound-statement از کجاست به عبارتی اولین statement یا جمله ای که قراره شروع به اجرا شدن کنه کجاست. و آخرین کروشه هم داره جار میزنه که آقا این compound-statement ما تموم شدددددد .

این تموم شدِ آخر؛ شما رو یاد یه چیزی نمیندازه؟ آفرین، همون جمله تموم شد برو بعدی خودمون نیست؟

دقیقا همونه.

خب حالا بحث چی بود؟

موقعی که داشتم تمرین میکردم از روی عادت بعد هر کدوم از این کروشه ها یه دونه semi-colon میگذاشتم

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

نیست. چرا؟ چون کروشه آخر داره میگه آقا جمله تموم شد. آیا به نظر شما درسته که با گذاشتن یه semicolon باز به کامپیوتر بگیم جمله تموم شد؟ به نظر من که نیست.

باز نمیدونم این موضوع کجا در دنیای واقعی به کارمون میاد ولی همین که بدونیم که داریم با هر semi-colon یا کروشه چی میگیم و به عبارتی بفهمیم که چطور با کامپیوترمون حرف بزنیم به نظرم جذابه. و در نهایت این چیزی بوده که حین تمرین بهش رسیدم گفتم شاید باحال باشه و شما هم بخواید بدونید، من فَرِهان هستم و مرسی که این مطلب رو خوندید.

من رو در شبکه های مجازی میتونید فالو کنید :

اینستاگرام : atfarhanwd

تلگرام : atfarhanwd