آخه سی یا سی پلاس پلاس به چه دردی میخوره ؟؟

چرا سی پلاس پلاس ؟
چرا سی پلاس پلاس ؟

فکر کنم برای همه ی کسانی که مثل من رشته ی تحصیلیشون it یا مهندسی نرم افزار بوده یا حتی دوستانی که کلاس برنامه نویسی رفتن این سوال پیش اومده باشه که آیا سی یا سی پلاس پلاس رو یاد بگیریم به عنوان اولین زبان برنامه نویسی ؟؟؟؟ آخه به چه دردی میخوره ؟؟ خیلی سخته , همش هم قراره ریاضی کار کنیم به جا برنامه نویسی و اصلا لذتی نداره !

من کاملا درکتون میکنم :)

واقعا ++C و C زبان های بسیار بسیار رو اعصابی هستن برای کسی که تازه برنامه نویسی رو داره شروع میکنه!

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

توی دانشگاه ها و خیلی از مراکز آموزشی هم زبان برنامه نویسی که یاد میدن همین سی و سی پلاس هستش

بگذریم , تجربه ی خودمو بگم...

من هم از 14 سالگیم بود که برنامه نویسی رو با #C شروع کردم , اون زمان خیلی حرف #C بود و خیلی ازش تعریف میکردن

منم استارت سی شارپ تو کنسول رو زدم ( با استاد ) و در کنارش هم C و ++C رو بهم یاد دادن .

به 5 ماه هم نکشید که حالم از برنامه نویسی به هم خورد !

گفتم خب که چی یه عددو بگیرو به جذر فلان ببرو رو فلان Thread اجراش کن و نتیجشو به فلان Memory ببرو...

من هم آدمی هستم که به شدت به زیبایی اهمیت میدادم به خصوص به زیبایی کد هام و دوست داشتم از کد هام یه چیز قشنگ در بیاد نه یک کنسول سیاه رو اعصاب :)

خلاصه که کلا برنامه نویسی رو ول کردم...

چند ماه گذشت و 15 سالم شد ; با Html css آشنا شدم , دو ماهی کار کردم و دیدم چقددددددر زدن دیزاین یک وبسایت میتونه بهم حال خوب بده و عاشق طراحی وب شده بودم !

دیگه خبری از این عدد رو بگیر روش فلان کار رو بکن و... نبود

فقط دیزاین قشنگ میزدم حالم خوب میشد و با php داینامیکش میکردم و حالم جا میومد و یه سایت دیگه رو شروع میکردم ساختن و قالب وردپرس میساختم و اصلا تو بهترین دوران زندگیم بودم :)

از 15 و نیم سالگیم با عشق جاودانم یعنی Javascript آشنا شدم , نمیتونم براتون توصیف کنم که وقتی با js المنت هایی که با html ساخته بودم رو انیمیت میکردم چقققققدر ذوق میکردم ........

یعنی بهترین حال جهان بود ! با html css کد میزدم با js انیمیتش میکردم و با php داینامیکش میکردم , خیلی هم احساس شاخی میکردم :)

ولی قشنگ وارد 16 سالگیم که شدم دیدم php اون چیزی که میخوام نیست , اون سرعتی که میخوام رو نداره و گفتم شاید باید با چیز بهتری آشنا بشم که سرعت و عملکرد بهتری داشته باشه .

دیدم همه میگن Nodejs , گفتم خدایا این دیگه چیه... رفتم و دیدم وااااااای خدااااای من یعنی میشه همههههههه چیزو با javascript زددددد ؟؟؟؟؟؟؟؟؟؟؟ رسما دیوانه ی Javascript شده بودم به خصوص Nodejs ......

از 16 سالگیم تا الان 3 سال میگذره...

حالا بریم سراغ بازگشت مجدد ++C به زندگی من

پارسال یه مطلبی رو خوندم , فهمیدم که میشه با ++C برای Nodejs ماژول ساخت !

دیگه هیچ ترسی از ++C نداشتم چون انقدر با جاوااسکریپت کار کرده بودم که نه تنها ترسی از زیرساخت و ++C نداشتم بلکه خیلی علاقه داشتم که برم ببینم توی Node چه خبره که من انقدر عاشقشم ؟

نگم براتون....... یه ویدئو تو YouTube دیدم که یک خانومی یک ماژول رو با ++C نوشت و با Node-gyp اون رو به Nodejs وصل کرد و عین یک کتابخونه اون رو Require کرد .

چیز خاصی نبود یه For بودم که هی یه عددی رو به علاوه عدد p میکرد .

همون ماژولی که با ++C زده بود رو با Nodejs هم زد , بعد مقایسه کرد که ماژولی که با Nodejs زده سریع تر جواب میده یا ماژولی که با ++C زده .

باورم نمیشد ! ماژولی که با ++C بود تو 15.4ms جواب داد و ماژولی که با Nodejs بود تو 120ms !

اون جا بود که فهمیدم به ++C نیاز دارم و عاشق این شدم که برم و ++C یاد بگیرم!

قشنگ عین این بود که 4 سال بعد از جدایی بفهمی یک نفر رو چقدر دوست داشتی :)

از اون روز نشستم و ++C رو دوره کردم . بعد از 6 ماه تو پروژه های Nodejs که میزدم شروع کردم به نوشتن Addon های ++C . حس خانواده ای رو داشتم که بعد از چند سال دور هم جمع شدن و دارن با هم به خوبی و خوشی زندگی میکنن :)

خب ; خلاصه ی حرفام , میدونم تو دانشگاه و مدرسه بهتون گیر سه پیچ دادن که باید C و ++C یاد بگیرید و میدونم که اگه زبان برنامه نویسی اولتون باشه اصلا اصلا باهاش ارتباط برقرار نمیکنین . ولی بهتون یک پیشنهاد برادرانه دارم . از برنامه نویسی زده نشین . این ترم رو به هر سختی شده پاس کنید ولی از برنامه نویس زده نشین . برین ببینید کدوم زبان برنامه نویسی بهتون لذت بیشتری میده و اونو یاد بگیرید :) بعد ها اگر مثل من احساس کردین به ++C نیاز دارین بشینید و با عشق یاد بگیرینش نه با زور :)

راستی اینم بگم شاید حرفام از لحاظ مهندسی نرم افزار کاملا اشتباه باشه . کاملا حق دارین این حرفا همش حرف دله , من تجربم رو در اختیارتون گذاشتم نه دانشم رو :)

موفق باشین :)