نود و هفت چیزی که هر برنامه‌نویسی باید بداند: فرهنگ استفاده از یک زبان برنامه‌نویسی را در کنار سینتکس آن بیاموزید


پیش از آن که به موضوع این بخش از آموزش که «صرفاً سینتکس یک زبان برنامه نویسی را فرا نگیرید، بلکه فرهنگ استفاده از آن زبان را نیز بیاموزید» است بپردازیم، نیاز است تا مثالی از دنیای واقعی و آموزش یک زبان زنده بزنیم.

در فرایند آموزش زبان‌های خارجی به‌خصوص زبان انگلیسی، بسیاری از مدرسین زبان را می‌بینیم که می‌گویند "برای یادگیری زبان انگلیسی، شما نیاز به فراگیری چهار مهارت Reading, Writing, Listening, Speaking دارید." این توصیه اصلاً اشتباه نیست اما ناقص است! پیش از آن که بگوییم نقص این توصیه کجا است، ابتدا مثالی می زنیم. فرض کنیم که یک نفر از ایران به کشوری انگلیسی زبان مثل کانادا مهاجرت می کند. این فرد در محفلی نشسته و همه گپ و گفتگو می کنند. آقا/خانم مهاجر پس از آن که چیزی می گوید، یکی از حضار از حرفش لذت می‌برد یک شصت به وی نشان می دهد . شصت نشان دادن در فرهنگ غربی یعنی Bravo یا «آفرین، ایول، خیلی خوب بود!» اما در فرهنگ ما چه طور؟ نیاز به توضیح نیست که در فرهنگ ایرانی این علامت معنی خیلی خوبی ندارد!

آقا/خانم مهاجر به دلیل این که از زیرساخت های فرهنگی کشور مقصد خبر ندارد، در چنین شرایطی کاملاً دستپاچه شده و حتی ممکن است سوء تفاهم در ذهنش شکل گیرد اما این در حالی است که اگر در کلاس‌های زبانی که پیش از مهاجرت شرکت کرده بود، مدرس اش علاوه بر مهارت های چهارگانه ی Reading, Writing, Listening, Speaking مهارت پنجمی تحت عنوان Culture یا «فرهنگ» را نیز به وی آموخته بود، او هرگز دچار سوء تفاهم نمی شد.

به خاطر داشته باشید
لیست این خرده فرهنگ‌ها بسیار زیاد است اما اگر بخواهیم به نمونه یی دیگر از اختلافات فرهنگی میان ایران و غرب مثال بزنیم، این که در ایران وقتی ما بخواهیم عدم تمایل خود را برای انجام کار با سر نشان دهیم، سر خود را بالا می‌اندازیم و نظر منفی خود را القاء می‌کنیم اما در فرهنگ غرب، برای نشان دادن این حس، سر خود را به سمت راست و چپ تکان می دهند!

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

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

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



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

انتخاب یک زبان برنامه‌نویسی، فرهنگ سازمانی کسب‌وکار شما را دستخوش تغییر می‌سازد!
https://sokanacademy.com/blog/1719/post
Insight
Insight
یکی از مسائلی که درمورد فرهنگ هر زبان برنامه نویسی وجود داره، اصطلاحا Terminology ای هست که در جامعه ی برنامه نویسان هر زبان و یا حتی هر فریمورک وجود داره. اگر برنامه نویسی میخواد وارد اکوسیستم یک زبان برنامه نویسی بشه، خیلی مهمه که این اصطلاحات رو هم فرا بگیره تا در هنگام حل مشکلاتش مثلا با سایت StackOverFlow یا صحبت هایی که در گروه های مختلف اون زبان مطرح میشه، بتونه معنای واژه ها و اصطلاحاتی که مختص به اون زبان هستن رو درک کنه.
CIna Deuxshiri
CIna Deuxshiri
مطلب خیلی خوبی بود. نکته‌ای که من خودم شخصا خیلی روش پافشاری می‌کنم این هست که حتما زبان ++C و یاد بگیرید. میشه گفت که سی پلاس پلاس یک زبان سطح میانی هست. چون هم قابلیت‌های زبان‌های سطح پایین و داره و سطح بالا رو. نکته‌ای که تو ++C است این که تمام کار‌ها تقریبا توسط برنامه نویس انجام میشه. مثلا در جاوا Garbage Collector وجود داره و برنامه نویس تا حدودی اصلا درگیر مفاهیم حافظه نمیشه. اما در سی پلاس پلاس این ابزار نیست و مدیریت حافظه توسط خود برنامه نویس باید انجام بشه و یا مدل شی گرایی سخت‌تری داره. مثلا ارث بری چندگانه داره (البته در جاوا هم با اینترفیس میشه این کار و انجام داد). در کل جاوا زبان راحت‌تری هست، اما وقتی با یک چیزی زیاد سر و کله بزنی، باعث میشه اون چیز و بهتر یاد بگیری و دید بهتری پیدا کنی. ممنون مطلب خوبی بود :)
بهزاد مرادی
بهزاد مرادی
خواهش می کنم

در پاسخ به