اینکه برای یادگیری برنامهنویسی دانستن زبان انگلیسی لازم هست یا نه، پرسش بسیاری از کسانی هست که میخواهند برنامهنویسی را شروع به یادگیری کنند. در این پست بنده با توجه به تجربهی خودم سعی میکنم به این پرسش جواب دهم. اگر نمیخواهید کل مطلب را بخوانید، جواب کوتاه این پرسش در یک جمله این است که «بله، برای یادگیری برنامهنویسی باید حتما انگلیسی هم یاد بگیرید»
جواب بلند این پرسش
برای شروع برنامهنویسی انگلیسی لازم است؟
برای شروع برنامهنویسی بسته به زبان ویا تکنولوژیهایی که استفاده میکنید احتمالا بتوانید بدون دانستن انگلیسی و البته با کمی سختی یادگیری برنامهنویسی را شروع کنید. اگر انگلیسی نمیدانید یا انگلیسی ضعیفی دارید نیازی نیست برای شروع ابتدا انگلیسی خود را قوی کنید. میتوانید برنامهنویسی را شروع کنید و همزمان انگلیسی نیز یاد بگیرید و برای قویتر کردن و کاربردی کردن دایره واژگان خود بعضی مواقع به انگلیسی در وب جستجو کنید و بعضی مطالب را به انگلیسی بخوانید تا به تدریج انگلیسی خود را قوی کنید و مطالب جدید را نیز یاد بگیرید.
شاید فکر کنید «چرا برای شروع برنامهنویسی انگلیسی لازم نیست؟» دلیلش این است که امروزه برای بسیاری از زبانهای برنامهنویسی آموزشهای چندرسانهای و متنی به زبان فارسی وجود دارد. برای مثال همین الآن به همین وبلاگ کرمهای کامپیوتر و مطالبش نگاه بیاندازید. بسیاری از مطالب به عنوان مثال در مورد ویژگیهای مختلف زبان پایتون است.
برای یک برنامهنویس حرفهای شدن به انگلیسی نیاز دارم؟
جواب این پرسش، با تقریب یک بله قاطع هست. به این معنی که برای کسی که انگلیسی نمیداند، طی مسیر یادگیری برنامهنویسی در دراز مدت تقریبا غیر ممکن است.
انگلیسی در برنامهنویسی چه جاهایی کاربرد دارد؟
تقریبا همهجا به جز بخش تفکر منطقی برای حل مسئله، که هر برنامهنویسی صرف نظر از تکنولوژی و زبان نیاز دارد، شما به انگلیسی نیازمند هستید. چند مثال از کاربردهای انگلیسی شامل موارد زیر است اما تنها به اینها ختم نمیشود:
- خواندن مستندات: تقریبا تمام تکنولوژیها، زبانها و کتابخانههایی که من طی ۷ سال برنامهنویسی پایتون(از سال ۲۰۱۵ م.) دیدهام مستنداتشان به زبان انگلیسی بوده و هست. البته ممکن است برای بعضی ویژگیها بتوانید ترجمه فارسی پیدا کنید اما این ترجمهها ممکن است کامل نباشند یا دقیق نباشند. حتی بعضی(تعداد زیادی) اصطلاحات تخصصی اصلا ترجمه فارسی مناسبی هنوز ندارند.
- خواندن پیامهای کامپایلر یا مفسر یا دیگر اجزای اکوسیستم: مطمئن باشید هیچ وقت کامپایلر راست به زبان فارسی به شما نمیگوید کجا خطا داشتهاید. این در مورد تقریبا اکثر اجزای اکوسیستمی که با آن کار میکنید صادق است. برای مثال من با فلسک بکاند پروژههای تحت وب را مینویسم که پیغامهایی که به من میدهد انگلیسی است. همچنین از کتابخانه پیوی برای کار با پایگاهداده کار میکنم که آن نیز پیغامهای خطا و همچنین مستنداتش به انگلیسی است. نهایتا خود مفسر پایتون به انگلیسی پیام خطا میدهد.
- خواندن و نوشتن کامنت در کد: کامنتها قسمتی از کد یک برنامه هستند که در اجرای برنامه تاثیری ندارند اما به کسی که این کدها را میخواند توضیح میدهند کد چه کاری انجام میدهد. بعضی مواقع به دلایل مختلف نیاز دارید کدهای دیگران را بخوانید. همچنین معمولا از شما خواسته میشود یا به شما توصیه میشود که برای کد خود کامنت بنویسید که همیشه باید انگلیسی باشد چون حتی اگر کدهای شما قرار است توسط هموطنان شما خوانده شوند، باز هم فارسی بسیاری از واژههای مورد نیاز را ندارد.
- ارتباط با دیگر برنامهنویسها: شما ممکن است طی انجام پروژهای یا حین استفاده از ابزارها به مشکلاتی بر بخورید. برای این مشکلات یا باید به زبان انگلیسی در وب جستجو کنید یا در صورتی که قبلا کسی به همچین مشکلی بر نخورده است، باید در یک انجمن یا چتروم انگلیسی مشکل خود را به انگلیسی مطرح کنید و جواب خود را به انگلیسی بخوانید. البته انجمنهای فارسی مثل DevHeros یا چتروم کرمهای کامپیوتر وجود دارند. اما اینها بیشتر برای دورهمی و سوالات عمومی مناسب هستند. ممکن است به سوال تخصصی یا خیلی تخصصی شما نیز جواب داده شود. اما در جایگزینهای انگلیسی هم احتمال جواب گرفتن شما بسیار بالاتر است و هم زمان جوابدهی بسیار پایینتر است.
تجربه خودم در استفاده از منابع فارسی
من در سن ۱۲ یا ۱۳ سالگی با زبان سیشارپ و داتنت یادگیری برنامهنویسی را شروع کردم. اوایل انگلیسی بسیار ضعیفی داشتم(با وجودی که در کلاس زبان آموزشگاههای خصوصی شرکت میکردم). مجبور بودم برای پیدا کردن کدمنبع پروژههای نمونه یا پیدا کردن جواب سوالات خود به فارسی در وب جستجو انجام بدم. پیشرفتم در یادگیری معمولا بسیار کند بود(یا اصلا پیشرفت نمیکردم). کمی بعد با قویتر شدن انگلیسیم و تلاش خودم در به دریا دل زدن و یادگیری مستقل از آموزشگاه سرعت پیشرفتم به اندازه چشمگیری زیاد شد. میتوانستم به انگلیسی جستجو کنم و جواب هر سوالی که در ذهنم بود بخوانم.
چطور انگلیسی یاد بگیریم؟
بهترین روش یادگیری هر فرد متفاوت است. شما باید بهترین روشی که با آن یاد میگیرید را پیدا کنید و بر اساس آن روش پیش بروید. روش من برای یادگیری انگلیسی و البته خود برنامهنویسی تا حد زیادی «پریدن وسط استخر و دست و پا زدن برای نجات پیدا کردن» است. البته یکبار با استخر واقعی اینکار را انجام دادم اما بعد از حدود ۴۵ دقیقه غرق شدم و نهایتا سر از اورژانس بیمارستان در آوردم!(مادرم هنوز فکر میکند آن روز من فقط فشارم افت کرده بود…).
جدای از شوخی، شاید این مطلب برای یادگیری انگلیسی برایتان مفید باشد.
سخن اریک ریموند در این باره
اریک ریموند(Eric S. Raymond) نوشتهای در مورد «چطور هکر شویم؟» دارد. توجه کنید که واژه «هکر» اینجا به معنی «برنامهنویس حرفهای» میباشد و نه «رخنهگر». اینجا میتوانید ترجمه فارسی این نوشته را بخوانید. اریک ریموند یکی از لازمههای هکر/برنامهنویس حرفهای شدن را دانستن انگلیسی میداند:
اگر انگلیسی بلد نیستید آنرا یاد بگیرید. {…} تعدادی از غیر انگلیسی زبانان از من خواستند که این موضوع را متذکر شوم که انگلیسی زبان فرهنگ هکر و اینترنت محسوب میگردد و شما احتیاج خواهید داشت که این زبان را یاد بگیرید تا در جامعه هکرها فعال شوید. این موضوع واقعیت دارد. حدود سال ۱۹۹۱ متوجه شدم که بسیاری از هکرها که انگلیسیزبان دومشان بود آن را برای بحث های تکنیکیشان بهره میگرفتند، حتی اگر زبان مادریشان یکی بود. به من اطلاع دادند که انگلیسی بعلت غنیتر بودن به لحاظ لغات فنی برای این کار مناسبتر است. به همین دلیل ترجمه متنهای فنی که در زبان غیرانگلیسی هستند، غالبا رضایت بخش نیست. {…}
https://linuxbook.ir/chapters/being_hacker.html