- آیا هنگام مطالعه Datasheet میکروکنترلرها، با دیدن انبوهی از اصطلاحات فنی احساس سردرگمی میکنید؟
- آیا برایتان پیش آمده که در جلسات فنی یا فرومهای تخصصی، نتوانید تفاوت دقیق بین Firmware و Software را به زبان انگلیسی توضیح دهید؟
- آیا نگران این هستید که به دلیل عدم تسلط بر لغات برنامهنویسی میکروکنترلر، فرصتهای شغلی بینالمللی را از دست بدهید؟
یادگیری زبان فنی مهندسی، فراتر از حفظ کردن چند کلمه ساده است؛ این فرآیند در واقع یادگیری یک ابزار جدید برای برقراری ارتباط با سختافزار و همکاران متخصص شما در سراسر جهان است. در این راهنمای جامع، ما لغات برنامهنویسی میکروکنترلر را به زبان ساده و با ساختاری آموزشی کالبدشکافی میکنیم تا یک بار برای همیشه، این مفاهیم در ذهن شما تثبیت شوند و دیگر در استفاده از آنها دچار خطا نشوید.
| اصطلاح فنی (Term) | تعریف ساده (Simple Definition) | مثال کاربردی (Example) |
|---|---|---|
| Firmware | نرمافزاری که مستقیماً روی سختافزار اجرا میشود. | Updating the firmware fixed the sensor bug. |
| Register | واحد کوچک حافظه داخل پردازنده برای تنظیمات. | Configure the control register to enable PWM. |
| Interrupt | سیگنالی که اجرای عادی برنامه را برای انجام کاری فوری متوقف میکند. | The external interrupt triggers on a falling edge. |
| Peripheral | واحدهای جانبی داخل میکروکنترلر (مانند ADC یا Timer). | This MCU has several peripherals for communication. |
۱. مفاهیم پایه و زیرساختی در مهندسی فیرمور
پیش از آنکه وارد کدنویسی شویم، باید با ستونهای اصلی این حوزه آشنا شویم. در دنیای سیستمهای نهفته (Embedded Systems)، واژگان اغلب معنای دقیقتر و محدودتری نسبت به علوم کامپیوتر عمومی دارند. برای مثال، وقتی از حافظه صحبت میکنیم، باید دقیقاً بدانیم منظور کدام بخش از معماری است.
تفاوت Firmware با Software
بسیاری از زبانآموزان این دو را به جای هم به کار میبرند، اما از نظر فنی تفاوت ظریفی وجود دارد. فیرمور نوعی نرمافزار است که به صورت دائمی (یا نیمهدائمی) در حافظه غیرفرار یک قطعه سختافزاری نوشته میشود. در حالی که Software معمولاً به برنامههای سطح بالا اشاره دارد که روی سیستمعاملها اجرا میشوند.
ساختار حافظه: Stack vs. Heap
در برنامهنویسی میکروکنترلر، مدیریت حافظه حیاتی است. این فرمول ساده را به یاد داشته باشید:
Static Memory + Stack + Heap = Total RAM Usage
- Stack: بخشی از حافظه که برای متغیرهای محلی و آدرسهای بازگشتی توابع استفاده میشود (Last-In, First-Out).
- Heap: بخشی از حافظه که برای تخصیص پویای حافظه (Dynamic Allocation) به کار میرود.
۲. واژگان تخصصی در معماری میکروکنترلر (MCU)
برای تسلط بر لغات برنامهنویسی میکروکنترلر، باید بتوانید اجزای داخلی آن را به درستی توصیف کنید. در اینجا برخی از پرکاربردترین اصطلاحات آورده شده است:
واحد پردازش و ثباتها (Registers)
قلب هر میکروکنترلر، ثباتها یا Registerها هستند. ثباتها محل تلاقی نرمافزار و سختافزار هستند.
نکته آموزشی: در زبان انگلیسی مهندسی، فعل Configure (پیکربندی کردن) و Initialize (مقداردهی اولیه) بیشترین کاربرد را همراه با کلمه Register دارند.
- Status Register: ثباتی که وضعیت فعلی پردازنده را نشان میدهد.
- Data Direction Register (DDR): ثباتی که ورودی یا خروجی بودن پینها را تعیین میکند.
مدیریت زمان و کلاک
بدون کلاک، هیچ کدی اجرا نمیشود. عبارات زیر را در دفترچه یادداشت خود ثبت کنید:
- Clock Speed/Frequency: سرعت نوسانساز که تعیینکننده سرعت اجرای دستورات است.
- Prescaler: واحدی که فرکانس کلاک اصلی را تقسیم میکند تا تایمرها با سرعت کمتری کار کنند.
- Baud Rate: سرعت انتقال داده در ارتباطات سریال.
۳. ورودی/خروجیها و پروتکلهای ارتباطی
تعامل با دنیای بیرون، وظیفه اصلی یک سیستم نهفته است. در این بخش، واژگان مربوط به Peripheralها را بررسی میکنیم.
اصطلاحات GPIO (General Purpose Input/Output)
زمانی که با پینهای میکروکنترلر کار میکنید، این کلمات را زیاد خواهید شنید:
- Pull-up / Pull-down Resistors: مقاومتهایی که برای جلوگیری از وضعیت شناور (Floating) پینها استفاده میشوند.
- Debouncing: فرآیند حذف نویزهای مکانیکی هنگام فشردن یک کلید.
- Duty Cycle: درصد زمانی که یک سیگنال PWM در حالت High قرار دارد.
پروتکلهای ارتباطی: SPI, I2C, UART
در این بخش، تفاوتهای لهجهای یا اصطلاحاتی بین متون آمریکایی و بریتانیایی کمتر است، اما دقت در حروف اضافه بسیار مهم است.
| Protocol | Key Vocabulary | Description |
|---|---|---|
| UART | Asynchronous, Start bit, Stop bit | ارتباط سریال غیرهمزمان بدون نیاز به کلاک مشترک. |
| I2C | Master/Slave (or Controller/Target), SDA, SCL | ارتباط دو سیمه برای اتصال چندین سنسور به یک باس. |
| SPI | Full-duplex, MISO, MOSI, Chip Select | ارتباط چهار سیمه پرسرعت و همزمان. |
۴. عملیات بیتی (Bitwise Operations) و کدنویسی بهینه
در برنامهنویسی میکروکنترلر، ما مستقیماً با بیتها سروکار داریم. اشتباه در یک بیت میتواند کل سیستم را مختل کند. استفاده از فرمولهای زیر در مکالمات فنی بسیار رایج است:
- Set a bit: استفاده از عملگر OR (
|) برای یک کردن یک بیت خاص. - Clear a bit: استفاده از عملگر AND (
&) و NOT (~) برای صفر کردن یک بیت. - Toggle a bit: استفاده از عملگر XOR (
^) برای معکوس کردن وضعیت یک بیت.
نکته روانشناسی آموزشی: اگر در ابتدا درک این عملیات برایتان دشوار است، نگران نباشید. بسیاری از مهندسان با تجربه نیز هنوز برای اطمینان، از ماشینحسابهای برنامهنویسی یا دیاگرامهای منطقی استفاده میکنند. اضطراب زبانی خود را با تمرین روی کاغذ کاهش دهید.
۵. عیبیابی و ابزارهای توسعه (Debugging & Tools)
بخش بزرگی از زمان یک مهندس فیرمور صرف Debug کردن میشود. یادگیری لغات این بخش برای گزارشدهی خطاها ضروری است.
- Breakpoints: نقاطی در کد که اجرای برنامه در آنجا متوقف میشود تا متغیرها بررسی شوند.
- Step into / Step over: روشهای پیمایش کد خط به خط در محیط IDE.
- Watchdog Timer (WDT): یک تایمر سختافزاری که در صورت بروز “هنگ” (Hang)، سیستم را ریست میکند.
- Trace: ثبت وقایع سیستم در حین اجرا برای تحلیلهای بعدی.
۶. تفاوتهای اصطلاحی و ظرافتهای زبانی (US vs. UK)
در دنیای مهندسی الکترونیک، استانداردها اغلب جهانی هستند، اما برخی تفاوتهای کوچک در نوشتار وجود دارد که دانستن آنها نشاندهنده سطح حرفهای شماست:
- Program vs. Programme: در متون فنی (حتی در بریتانیا)، برای کدنویسی همیشه از Program استفاده میشود. کلمه Programme بیشتر برای برنامههای تلویزیونی یا زمانبندیهای عمومی به کار میرود.
- Analog vs. Analogue: نسخه Analog در متون آمریکایی و Analogue در متون بریتانیایی رایج است.
- Logic Analyzer: ابزاری برای مشاهده سیگنالهای دیجیتال که در هر دو گویش یکسان است، اما در تلفظ (accent) تفاوت دارند.
Common Myths & Mistakes (باورهای غلط و اشتباهات رایج)
بسیاری از زبانآموزان در استفاده از لغات برنامهنویسی میکروکنترلر دچار اشتباهات تکراری میشوند. در اینجا به چند مورد کلیدی اشاره میکنیم:
- اشتباه: استفاده از کلمه “Software” برای کدی که روی آردوینو یا STM32 مینویسید.
درست: استفاده از کلمه Firmware دقیقتر و حرفهایتر است. - اشتباه: خلط مبحث بین Polling و Interrupt.
نکته: Polling یعنی چک کردن مداوم یک وضعیت (مانند نگاه کردن مداوم به در برای آمدن مهمان)، در حالی که Interrupt یعنی زنگ در زده شود و شما کارتان را متوقف کنید. - اشتباه در عبارت: “The code is not working.”
عبارت حرفهایتر: “The system is unresponsive” یا “The firmware execution is halted.”
Common FAQ (سوالات متداول)
۱. بهترین راه برای یادگیری لغات تخصصی دیتاشیتها چیست؟
بهترین روش، روش “تولید محتوا” است. سعی کنید بخش کوچکی از یک دیتاشیت را بخوانید و سپس خلاصه آن را به زبان انگلیسی ساده برای خودتان بازگو کنید. این کار ارتباطات عصبی بین مفاهیم فنی و لغات انگلیسی را تقویت میکند.
۲. آیا باید تمام اصطلاحات معماری ARM یا AVR را حفظ کنم؟
خیر، نیازی به حفظ کردن همه واژگان نیست. تمرکز خود را روی لغات برنامهنویسی میکروکنترلر که بین همه معماریها مشترک هستند (مثل Interrupt, DMA, Registers, Timers) بگذارید.
۳. چگونه میتوانم “Language Anxiety” یا ترس از صحبت در جلسات فنی را کاهش دهم؟
قبل از جلسات، لیستی از کلمات کلیدی (Keywords) که احتمال میدهید استفاده شوند را بنویسید. داشتن یک “Cheat Sheet” یا برگه تقلب در کنارتان، اعتماد به نفس شما را به شدت بالا میبرد.
Conclusion (نتیجهگیری)
مسیر تبدیل شدن به یک مهندس فیرمور مسلط به زبان انگلیسی، با یادگیری گامبهگام لغات برنامهنویسی میکروکنترلر هموار میشود. به یاد داشته باشید که حتی برترین متخصصان جهان نیز روزی با دیدن کلماتی مثل “Arbitration” یا “Synchronous” سردرگم شدهاند. تداوم در مطالعه، استفاده از مثالهای کاربردی و نترسیدن از اشتباه، کلید موفقیت شماست. اکنون که با این مفاهیم آشنا شدید، سعی کنید در پروژه بعدی خود، کامنتهای کدتان را به زبان انگلیسی فنی بنویسید تا این لغات در حافظه بلندمدت شما حک شوند.




ممنون از این مطلب عالی! همیشه توی توضیح تفاوت Firmware و Software به انگلیسی مشکل داشتم. آیا کلمه ‘Embedded Software’ رو میشه به جای ‘Firmware’ استفاده کرد؟ حس میکنم گاهی اوقات این دو تا به جای هم استفاده میشن.
خواهش میکنم رضا جان. سوال بسیار خوبی پرسیدید! بله، ‘Embedded Software’ یک اصطلاح کلیتر است که میتواند شامل Firmware هم باشد. Firmware معمولاً به نرمافزاری اطلاق میشود که برای همیشه در حافظه سختافزار (مثل ROM یا Flash) قرار میگیرد و عملکرد اولیه دستگاه را کنترل میکند، در حالی که ‘Embedded Software’ میتواند شامل برنامههای کاربردی پیچیدهتر و حتی سیستمعاملهای کوچکی باشد که روی یک سیستم توکار (embedded system) اجرا میشوند. در مکالمات فنی دقیق، بهتر است از ‘Firmware’ برای اشاره به سطح پایینترین نرمافزار سختافزار استفاده کنیم.
پرونانسیشن (pronunciation) کلمه ‘Peripheral’ چطوریه؟ فکر کنم همیشه اشتباه تلفظش میکردم.
سارای عزیز، ‘Peripheral’ به صورت /pəˈrɪfərəl/ تلفظ میشود. تاکید روی بخش دوم ‘ri’ است. میتوانید آن را به صورت ‘پِ-ری-فِ-رال’ در ذهن خودتان شبیهسازی کنید. برای اطمینان بیشتر، میتوانید در دیکشنریهای آنلاین معتبر مثل Merriam-Webster یا Cambridge تلفظ صوتی آن را گوش دهید.
مثال ‘Configure the control register to enable PWM’ خیلی خوب بود. این ‘register’ آیا در زمینه الکترونیک، معنای دیگهای هم داره یا فقط همین واحد حافظه هست؟
علی جان، بله، ‘Register’ در مهندسی کامپیوتر و الکترونیک عمدتاً به همین معنای ‘واحد کوچک حافظه داخلی پردازنده’ استفاده میشود. اما در زمینه الکترونیک دیجیتال، گاهی به ‘shift register’ یا ‘data register’ هم اشاره میشود که هرچند وظایف خاصی دارند، ولی همچنان نوعی واحد ذخیرهسازی اطلاعات به شمار میروند. این مفهوم ‘register’ با ‘register for a course’ (ثبت نام کردن) کاملاً متفاوت است و تنها از طریق Context میتوان معنای صحیح را تشخیص داد.
من همیشه ‘Interrupt’ رو با ‘Interruption’ اشتباه میگرفتم. ممنون که توی این مقاله به این اصطلاح فنی اشاره کردید.
نرگس عزیز، خوشحالیم که این ابهام برطرف شد. ‘Interrupt’ در زمینه فنی کامپیوتر و الکترونیک یک اصطلاح بسیار خاص است که به یک سیگنال سختافزاری یا نرمافزاری برای جلب توجه پردازنده اشاره دارد. ‘Interruption’ یک کلمه عمومیتر در انگلیسی است که به معنای هر نوع ‘وقفه’ یا ‘مزاحمت’ است و کاربرد گستردهتری دارد. تمرکز بر کلمات کلیدی فنی در هر رشتهای برای برقراری ارتباط دقیق حیاتی است.
آیا ‘peripheral’ رو میشه به صورت ‘peripheral device’ هم گفت؟ یا این کلمه خودش به تنهایی کافیه؟
کیان عزیز، ‘peripheral device’ کاملاً صحیح است و به معنای ‘دستگاه جانبی’ است، اما در زمینه میکروکنترلرها، وقتی میگوییم ‘peripherals’، معمولاً به واحدهای داخلی خود میکروکنترلر (مانند ADC, Timer, UART) اشاره داریم و نیازی به اضافه کردن ‘device’ نیست. هر دو عبارت صحیح هستند، اما ‘peripherals’ به تنهایی در این Context بیشتر استفاده میشود و مختصرتر است.
واقعا این مقالات برای کسانی که میخوان توی مصاحبههای انگلیسی مهندسی شرکت کنن، خیلی مفیدند. میشه راجع به ‘Datasheet’ هم یه کم توضیح بدید که چطور تلفظ میشه و چه نکاتی در استفاده ازش مهمه؟
زهرا جان، کاملاً موافقم. ‘Datasheet’ به صورت /ˈdeɪtəʃiːt/ تلفظ میشود. ‘Data’ شبیه ‘دیتا’ و ‘sheet’ شبیه ‘شیت’. در استفاده از آن، به این نکته توجه کنید که ‘Datasheet’ معمولاً مفرد و جمع یکسان استفاده میشود، یا میتوان ‘datasheets’ را برای جمع به کار برد. نکته مهم در مصاحبه این است که ‘Datasheet’ منبع اصلی اطلاعات فنی هر قطعه است و توانایی مراجعه و درک آن، نشاندهنده دانش فنی شماست.
خیلی وقت بود دنبال یک منبع بودم که این لغات رو اینقدر ساده و کاربردی توضیح بده. کاش از ‘GPIO’ هم یه مثال میآوردید، اونم خیلی پرکاربرده.
بهنام عزیز، از پیشنهاد شما متشکریم! ‘GPIO’ مخفف ‘General-Purpose Input/Output’ است و به پینهایی در میکروکنترلر اشاره دارد که میتوانند به عنوان ورودی یا خروجی برای اهداف مختلف برنامهریزی شوند. مثال کاربردی: ‘Configure the GPIO pin as an output to control the LED.’ (پین GPIO را به عنوان خروجی برای کنترل LED تنظیم کنید.)
آیا ‘bug’ و ‘error’ در مثال ‘fixed the sensor bug’ میتونستن به جای هم استفاده بشن؟ یا تفاوت ظریفی دارن؟
مونای عزیز، سوال خوبی است. ‘Bug’ معمولاً به یک ‘اشکال’ یا ‘عیب’ در کد نرمافزاری یا Firmware اشاره دارد که باعث رفتار غیرمنتظره میشود. ‘Error’ اصطلاح کلیتری است که میتواند شامل ‘bug’ باشد، اما همچنین به اشتباهات انسانی، خطاهای سختافزاری یا خطاهای منطقی هم اطلاق میشود. در زمینه برنامهنویسی، ‘bug’ رایجتر و دقیقتر است.
این اصطلاحات توی فیلمهای علمی تخیلی هم زیاد استفاده میشن. مثلاً وقتی میگن ‘uploading new firmware’. مرسی از توضیحات کاملتون.
حسین عزیز، نکته جالبی اشاره کردید! بله، این کلمات فراتر از کاربردهای فنی صرف، در فرهنگ عامه و رسانهها هم جای خود را پیدا کردهاند. شنیدن آنها در فیلمها و درک Contextشان میتواند به تثبیت معنا کمک زیادی کند. به این فرایند ‘passive learning’ میگویند که بسیار موثر است.
میشه در مورد اصطلاح ‘on a falling edge’ که توی مثال ‘Interrupt’ اومده، بیشتر توضیح بدید؟ این ‘edge’ اینجا دقیقا یعنی چی و چرا ‘falling’؟
یاسمن عزیز، ‘edge’ در اینجا به ‘لبه’ سیگنال دیجیتال اشاره دارد. سیگنالهای دیجیتال بین دو سطح ولتاژ (بالا و پایین) تغییر میکنند. ‘Falling edge’ به لحظهای اشاره دارد که سیگنال از سطح بالا به سطح پایین تغییر میکند (مثلاً از 5 ولت به 0 ولت). در مقابل، ‘rising edge’ لحظهای است که سیگنال از سطح پایین به بالا میرود. این اصطلاحات برای تعریف زمان دقیق فعال شدن یک ‘Interrupt’ بسیار مهم هستند.
مقاله عالی بود، برای تقویت vocab مهندسی زبان انگلیسی واقعا ضروریه. کاش برای ‘Bootloader’ هم توضیح میدادید.
امیر عزیز، از پیشنهاد شما متشکریم! ‘Bootloader’ یک قطعه کوچک از Firmware است که مسئولیت راهاندازی اولیه میکروکنترلر را بر عهده دارد، از جمله بارگذاری Firmware اصلی برنامه کاربردی از حافظه فلش به RAM و شروع اجرای آن. میتوان آن را به عنوان ‘نرمافزار راهانداز’ ترجمه کرد.
توضیحات ‘Firmware’ و ‘Software’ به حدی روشن بود که حتی برای غیرمتخصصین هم قابل درک است. این روش تدریس انگلیسی واقعا کاربردیه.
لیلا جان، هدف ما دقیقاً همین است که مفاهیم پیچیده را به زبانی ساده و با تمرکز بر کاربرد انگلیسی آنها ارائه دهیم. خوشحالیم که این رویکرد برای شما مفید بوده است. درک درست اصطلاحات در هر زبانی، کلید ارتباط موثر است.
برای تمرین این لغات، پیشنهاد میکنید توی چه کانالهای یوتیوبی یا پادکستهایی اینا رو گوش بدیم؟
پیمان عزیز، برای تمرین شنیداری و آشنایی با نحوه استفاده از این لغات، میتوانید کانالهای یوتیوبی مثل EEVblog (برای الکترونیک و مهندسی)، GreatScott! (پروژههای DIY الکترونیک) یا ویدئوهای آموزشی از شرکتهای سازنده میکروکنترلر مثل STMicroelectronics و Microchip Technology را دنبال کنید. پادکستهای مرتبط با ‘Embedded Systems’ و ‘IoT’ نیز منابع خوبی هستند.
از ‘Firmware update’ برای گوشیم زیاد استفاده کردم ولی نمیدونستم دقیقا چیه. الان با مثال شما کامل متوجه شدم. آیا ‘patch’ هم معنی مشابهی با ‘update’ داره توی این زمینه؟
شیوا جان، سوال عالی است. ‘Firmware update’ معمولاً شامل بهروزرسانیهای بزرگتر و گاهی اوقات تغییرات عمده در عملکرد است. ‘Patch’ (وصله) معمولاً به یک اصلاح کوچکتر و هدفمندتر برای رفع یک ‘bug’ خاص یا بهبود امنیتی اشاره دارد، بدون اینکه لزوماً کل Firmware بازنویسی شود. پس ‘patch’ زیرمجموعهای از ‘update’ میتواند باشد.
اصطلاحات ‘ADC’ و ‘Timer’ که به عنوان ‘Peripheral’ مثال زده شدن، مخفف چی هستن؟ میشه توضیح بدید؟
فرهاد عزیز، ‘ADC’ مخفف ‘Analog-to-Digital Converter’ است که سیگنالهای آنالوگ را به فرمت دیجیتال تبدیل میکند. ‘Timer’ هم یک ‘زمانسنج’ داخلی است که برای اندازهگیری زمان یا ایجاد تاخیرهای دقیق استفاده میشود. اینها نمونههای رایجی از ‘Peripherals’ هستند که در میکروکنترلرها یافت میشوند.
اینکه اصطلاحات رو با مثال کاربردی آوردین، خیلی به یادگیریشون کمک میکنه. برای ‘Register’ مثالهای بیشتری دارید؟
گلناز جان، بله حتماً. مثال دیگر برای ‘Register’: ‘The Status Register indicates if the communication was successful.’ (رجیستر وضعیت نشان میدهد که آیا ارتباط موفقیتآمیز بوده است.) یا ‘We need to write a value to the Data Register before sending it over SPI.’ (قبل از ارسال داده از طریق SPI باید مقداری را در رجیستر داده بنویسیم.)
محتوای سایتتون واقعا بینظیره. همیشه دنبال یه بلاگ بودم که هم انگلیسی و هم مباحث فنی رو پوشش بده.
داوود عزیز، از این همه لطف شما سپاسگزاریم! هدف ما دقیقا همین است که پلی بین دانش فنی و مهارتهای زبانی شما ایجاد کنیم. امیدواریم همچنان برای شما مفید باشیم و در مسیر رشدتان همراهتان باشیم.
آیا توی این حوزه (Firmware و Microcontroller)، لغات slang یا غیررسمی هم وجود داره که بین مهندسا استفاده بشه؟
محسن عزیز، بله، در هر حوزهای حتی مهندسی، اصطلاحات غیررسمی یا ‘slang’ وجود دارد، هرچند کمتر از مکالمات روزمره. مثلاً ممکن است بشنوید ‘to bit-bang’ به معنای کنترل دستی پروتکلهای ارتباطی از طریق GPIO، یا ‘to brick’ یک دستگاه به معنای خراب کردن آن به طور کامل (مثلاً با Firmware اشتباه). این اصطلاحات بیشتر در مکالمات بین همکاران نزدیک یا در فرومهای غیررسمی استفاده میشوند.
یک بار داشتم دیتاشیت میخوندم و فکر میکردم ‘Interrupt’ یعنی کلاً برنامه متوقف میشه! ممنون که روشن کردید فقط متوقف میشه تا یه کار فوری انجام بشه.
مریم جان، درک صحیح ‘Interrupt’ بسیار مهم است. نکتهای که اشاره کردید، دقیقا تفاوت اصلی آن است. ‘Interrupt’ باعث توقف موقت میشود تا پردازنده به یک رویداد حساس به زمان پاسخ دهد و سپس به کار اصلی خود برگردد. این مکانیسم برای کارایی و پاسخگویی سیستمهای بلادرنگ (real-time systems) حیاتی است.
این مقاله واقعاً به آدم اعتماد به نفس میده که بره سراغ منابع انگلیسی و نگران لغاتش نباشه. عالی بود.
افشین عزیز، خوشحالیم که این مقاله توانسته به شما انگیزه و اعتماد به نفس بیشتری بدهد. هدف ما همین است که مسیر یادگیری را برای شما هموارتر کنیم. با همین رویکرد و تمرین مداوم، به زودی تسلط شما بر منابع انگلیسی به سطح بالایی خواهد رسید.