امیدوارم به بهتر شدن کمک کنم. در تلگرام و اینستاگرام پیام بفرست، SeyedAhmaddv - ارشد نرم افزار، توسعه دهنده ری اکت و نکست
75 سوال مصاحبه مقدماتی برای استخدام توسعه دهندگان حرفه ای
انتخاب روش مناسب ارزیابی نامزد در صورتی که یک توسعه دهنده فرانت اند برای تیم خود استخدام می کنید بسیار مهم است، اما این فرآیند می تواند پیچیده و زمان بر باشد. برخی از روشها غیرقابل اعتماد هستند، مانند غربالگری رزومه - شما به استراتژی نیاز دارید که به شما کمک کند توسعهدهنده مناسب برای تیم خود را پیدا کنید و از استخدام نادرست جلوگیری کنید.
اگر به شما بگوییم دو روش وجود دارد که می تواند به شما در رسیدن به این هدف کمک کند چه میگویید؟
تست مهارت ها با استفاده از آزمون های مهارت های برنامه نویسی و مصاحبه با توسعه دهندگان فرانت اند به شما کمک می کند تا بهترین متقاضیان را پیدا کنید.
استراتژی دوم، مصاحبه با توسعه دهندگان فرانت اند، از شما می خواهد که قبل از مصاحبه، سؤالات مصاحبه مقدماتی مناسب را بیابید.
اما نترسید. در اینجا 75 سؤال مصاحبه مناسب برای متقاضیان جوان و ارشد و سؤالات فنی مربوط به Git و مهارت های مقدماتی ضروری را جمع آوری کرده ایم. با استفاده از سوالات امده در زیر، لیست خود را بسازید.
دسته بندی کلی سوالات مصاحبه فنی فرانت اند
- 20 سوال مصاحبه مقدماتی برای پرسیدن از داوطلبان جوان
- 5 پرسش و پاسخ مصاحبه مقدماتی
- 5 پرسش و پاسخ مصاحبه مقدماتی پیشرفته برای ارزیابی متقاضیان ارشد
- 19 سوال مصاحبه مقدماتی در مورد کنترل نسخه Git
- 5 پرسش و پاسخ مصاحبه مقدماتی درباره Git
- 31 سوال مصاحبه مقدماتی درباره HTML، CSS، React.js و جاوا اسکریپت
- 5 پرسش و پاسخ مهم مصاحبه front-end درباره HTML، CSS، JavaScript و React.js
- بهترین زمان برای استفاده از سوالات مصاحبه مقدماتی در فرآیند استخدام چه زمانی است؟
- دانش توسعه دهندگان را با سؤالات مصاحبه مقدماتی ارزیابی کنید
20 سوال مصاحبه مقدماتی برای پرسیدن از داوطلبان جوان یا تازه کار
سوال 1: توضیح دهید که متا تگ ها در HTML چیست؟
پاسخ: متا تگها در HTML بخشهایی از کد هستند که اطلاعاتی درباره صفحه وب به مرورگر و موتورهای جستجو میدهند. این اطلاعات شامل عنوان صفحه، کلمات کلیدی، توضیحات کوتاه، کدگذاری کاراکترها و موارد دیگر میشود. متا تگها در بخش <head> سند HTML قرار میگیرند و نقش مهمی در سئو و نمایش صحیح صفحه در مرورگرها دارند.
سوال 2: سه عنصر اساسی طراحی را نام ببرید.
سوال بالا خیلی کلی است و شکل اصلاح شده آن به این صورت میتواند باشد: سه اصل اساسی طراحی رابط کاربری (UI) را نام ببرید و توضیح دهید که هر کدام چه اهمیتی دارند.
- سادگی (Simplicity): طراحی باید ساده، واضح و بدون پیچیدگیهای غیر ضروری باشد تا کاربر بتواند به راحتی با آن تعامل داشته باشد.
- سازگاری (Consistency): عناصر طراحی باید در کل رابط کاربری یکپارچه و سازگار باشند تا تجربه کاربری یکسانی را برای کاربر ایجاد کنند.
- کاربرپسندی (Usability): طراحی باید به گونهای باشد که کاربر بتواند به راحتی با آن کار کند و به اهداف خود برسد.
سوال 3: کدام مهارت ها برای کار توسعه دهنده front-end مهم هستند؟
سوال اصلاح شده: به نظر شما، مهمترین مهارتهای فنی که یک توسعهدهنده فرانتاند باید داشته باشد کداماند؟
- تسلط به HTML، CSS و جاوا اسکریپت: این سه زبان پایه و اساس توسعه فرانتاند هستند.
- آشنایی با فریمورکها و کتابخانهها: آشنایی با کتابخانه و یا فریمورکهایی مانند ریاکت ، Angular یا Vue.js و کتابخانههای CSS مانند تیلویند Tailwind میتواند به افزایش سرعت توسعه و ایجاد رابطهای کاربری پیچیدهتر کمک کند.
- درک از اصول طراحی وب: آشنایی با اصول طراحی پاسخگو، دسترسیپذیری و بهینهسازی برای موتورهای جستجو (SEO) بسیار مهم است.
- مهارتهای حل مسئله و تفکر منطقی: برای حل مشکلات پیچیده در توسعه فرانتاند، داشتن مهارتهای حل مسئله قوی ضروری است.
- کنترل نسخه: آشنایی با ابزارهایی مانند Git برای مدیریت تغییرات در کد بسیار مهم است.
- کار گروهی: توانایی کار در تیم و همکاری با طراحان و توسعهدهندگان بکاند.
توجه: مصاحبه شونده نباید لزوما همه موارد بالا را برای شما بیان کند، بلکه بتواند نسبت به برخی از موارد بالا اعلام آشنایی کند. یادتان باشد توسعه فرانت اند، یک موضوع نظری نیست و یک موضوع فنی است.
سوال 4: توضیح دهید که تعادل بار load balancing به چه معناست؟
پیشنهاد حذف سوال: این سوال ارتباط مستقیمی با توسعه فرانتاند ندارد و بهتر است حذف شود. تعادل بار به توزیع یکنواخت بار کاری در بین چندین سرور گفته میشود و بیشتر در حوزه شبکه و سرورها کاربرد دارد.
سوال 5: منظور از NPM را توضیح دهید.
پاسخ: NPM مخفف Node Package Manager است و ابزاری برای مدیریت بستههای نرمافزاری در جاوا اسکریپت است. با استفاده از NPM میتوانیم کتابخانهها، فریمورکها و سایر بستههای مورد نیاز برای پروژههای جاوا اسکریپت را نصب، بهروزرسانی و مدیریت کنیم.
سوال 6: آنچه را که در مورد scope در جاوا اسکریپت می فهمید به من بگویید.
پاسخ: scope در جاوا اسکریپت به محدوده دسترسی متغیرها، توابع و سایر اشیاء یا ابجکتها اشاره دارد. به عبارت دیگر، جایی که یک متغیر تعریف شده است تعیین میکند که در کدام قسمت از کد قابل دسترسی است. انواع مختلف scope عبارتند از:
- گلوبال Global scope: متغیرهایی که در خارج از هر تابع تعریف میشوند، دارای scope جهانی هستند و در کل برنامه قابل دسترسی هستند.
- فانکشن یا تابعی Function scope: متغیرهایی که داخل یک تابع تعریف میشوند، دارای scope محلی هستند و تنها داخل آن تابع قابل دسترسیاند.
- بلوکی Block scope: با معرفی let و const در ES6، متغیرهایی که داخل بلوکهای کد مانند if، for یا while تعریف میشوند، دارای scope بلوکی هستند.
سوال 7: تفاوت اصلی بین جی کوئری و جاوا اسکریپت چیست؟
پاسخ:
- جاوا اسکریپت: یک زبان برنامهنویسی است که برای ایجاد تعاملات دینامیک در صفحات وب استفاده میشود.
- جی کوئری: یک کتابخانه جاوا اسکریپت است که کار با DOM (Document Object Model) را بسیار سادهتر میکند. جی کوئری مجموعهای از توابع و متدها را ارائه میدهد که به شما اجازه میدهند به عناصر HTML دسترسی پیدا کنید، آنها را دستکاری کنید و رویدادها را مدیریت کنید.
تفاوت اصلی: جی کوئری بر روی سادهسازی کار با DOM تمرکز دارد، در حالی که جاوا اسکریپت یک زبان برنامهنویسی کامل است که قابلیتهای بسیار بیشتری دارد.
سوال 8: آنچه در مورد خط مشی امنیت محتوا چه می دانید به من بگویید.
پاسخ: خط مشی امنیت محتوا (Content Security Policy یا CSP) یک لایه امنیتی اضافی برای مرورگرها فراهم میکند که به آنها اجازه میدهد منابعی را که یک صفحه وب مجاز به بارگذاری آنها است، محدود کند. این کار به جلوگیری از حملات XSS و سایر حملات تزریق کمک میکند. CSP با تعریف یک سری دستورالعمل در هدر HTTP مشخص میشود.
سوال 9: اسکریپت بین سایتی cross-site scripting را تعریف کنید.
پاسخ: اسکریپت بین سایتی (Cross-Site Scripting یا XSS) یک آسیبپذیری امنیتی رایج در وب است که در آن مهاجم کدهای مخرب جاوا اسکریپت را در یک وبسایت تزریق میکند. این کدها ممکن است اطلاعات حساس کاربران را سرقت کنند، کوکیها را تغییر دهند یا به حساب کاربری کاربران دسترسی پیدا کنند.
سوال 10: توضیح دهید که طراحی کاربر محور به چه معناست.
پاسخ: طراحی کاربر محور (User-Centered Design یا UCD) یک فرایند طراحی است که در آن نیازها، خواستهها و محدودیتهای کاربران در مرکز توجه قرار میگیرند. هدف از طراحی کاربر محور ایجاد محصولاتی است که استفاده از آنها برای کاربران آسان و لذتبخش باشد.
سوال 11: در مورد callback در جاوا اسکریپت چه می دانید؟
پاسخ: callback در جاوا اسکریپت یک تابع است که به عنوان آرگومان به تابع دیگری پاس داده میشود و پس از اتمام اجرای تابع اصلی، اجرا میشود. از callbackها برای مدیریت عملیاتهای ناهمزمان مانند درخواستهای AJAX، تاخیرها (timeouts) و رویدادها استفاده میشود.
سوال 12: در مورد چندشکلی polymorphism چه می دانید؟
پاسخ: مفهوم چندشکلی بیشتر در زبانهای برنامهنویسی شیءگرا مانند جاوا و Cشارپ کاربرد دارد و در جاوا اسکریپت به شکل کلاسیک آن وجود ندارد. با این حال، جاوا اسکریپت از چندشکلی در سطح پروتوتایپها پشتیبانی میکند. به این معنی که اشیاء میتوانند رفتارهای متفاوتی از خود نشان دهند، حتی اگر از یک سازنده (constructor) ایجاد شده باشند.
سوال 13: می توانید توضیح دهید که اصل KISS به چه معناست؟
پاسخ: KISS مخفف عبارت "Keep It Simple, Stupid" است و به این معناست که طراحیها باید تا حد امکان ساده نگه داشته شوند. این اصل در توسعه نرمافزار به این معنی است که باید از پیچیدگیهای غیرضروری پرهیز کرد و کدها را به شکلی بنویسیم که خوانا و قابل نگهداری باشند.
سوال 14: می توانید توضیح دهید که مخفف SOLID به چه معناست؟
پاسخ: SOLID مجموعهای از پنج اصل طراحی شیءگرا است که برای ایجاد نرمافزارهای قابل نگهداری و انعطافپذیر استفاده میشود. این اصول عبارتند از:
- Single Responsibility Principle (SRP): هر کلاس باید تنها یک مسئولیت داشته باشد.
- Open-Closed Principle (OCP): کلاسها باید برای گسترش باز و برای تغییر بسته باشند.
- Liskov Substitution Principle (LSP): اشیاء زیر کلاس باید بتوانند جایگزین اشیاء کلاس پایه شوند بدون اینکه رفتار برنامه تغییر کند.
- Interface Segregation Principle (ISP): مشتریان نباید مجبور باشند به متدهایی که استفاده نمیکنند وابسته باشند.
- Dependency Inversion Principle (DIP): ماژولهای سطح بالا نباید به ماژولهای سطح پایین وابسته باشند. هر دو باید به انتزاعات وابسته باشند.
سوال 15: به من بگویید در مورد کلیک جک چه می دانید.
پاسخ: کلیک جک (Clickjacking) یک حمله سایبری است که در آن مهاجم کاربر را فریب میدهد تا روی یک عنصر پنهان یا غیرقابل مشاهده کلیک کند. این کار ممکن است منجر به اجرای کدهای مخرب، تغییر تنظیمات مرورگر یا ارسال اطلاعات حساس شود.
سوال 16: آیا می دانید تبدیل (کوئرشن coercion) در جاوا اسکریپت به چه معناست؟ لطفا یک تعریف ارائه دهید.
پاسخ اصلاح شده: بهتر است به جای "تبدیل یا coercion" از اصطلاحات دقیقتری مانند "تایپهای دادهای" یا "تفاوت بین مقادیر اولیه و مرجعی" استفاده کنیم.
- تفاوت بین مقادیر اولیه و مرجعی: در جاوا اسکریپت، دادهها به دو دسته اصلی تقسیم میشوند:مقادیر اولیه (Primitive values): مانند اعداد، رشتهها، بولینها، null و undefined. این مقادیر به صورت مستقیم در حافظه ذخیره میشوند و هنگام کپی شدن، یک نسخه جدید از آنها ایجاد میشود.
مقادیر مرجعی (Reference values): مانند اشیاء، آرایهها و توابع. این مقادیر به جای خود داده، به آدرسی در حافظه اشاره میکنند که داده در آن ذخیره شده است. هنگام کپی کردن یک مقدار مرجعی، تنها آدرس کپی میشود و هر دو متغیر به یک شیء واحد اشاره میکنند.
سوال 17: توضیح دهید که IIFE به چه معناست.
پاسخ: IIFE مخفف Immediately Invoked Function Expression است و به عبارتی اشاره دارد که یک تابع را تعریف میکند و بلافاصله پس از تعریف آن را اجرا میکند. از IIFEها معمولاً برای ایجاد scopeهای محلی، جلوگیری از آلودگی فضای نام و اجرای کد یکبار استفاده میشود.
سوال 18: به من بگویید در مورد سیستم های گرید در CSS چه می دانید.
پاسخ: سیستمهای گرید در CSS ابزاری قدرتمند برای ایجاد طرحبندیهای پیچیده و پاسخگو هستند. با استفاده از گریدها میتوانیم عناصر را به صورت سطرها و ستونها سازماندهی کنیم و به طور دقیق کنترل کنیم که چگونه این عناصر در صفحه نمایشهای مختلف نمایش داده شوند.
سوال 19: توضیح دهید که میکس چیست؟
پاسخ اصلاح شده: بهتر است به جای "میکس" از اصطلاح "میکسین mixin" استفاده کنیم.
- میکسین mixin: یک شیء است که حاوی مجموعهای از متدها است و میتوان این متدها را به اشیاء دیگر اضافه کرد. میکسینها راهی برای اشتراکگذاری کد بین اشیاء مختلف هستند و میتوانند برای پیادهسازی ویژگیهای مشترک در چندین شیء استفاده شوند.
سوال 20: سه روش برای کاهش زمان بارگذاری صفحه نام ببرید.
پاسخ:
- بهینهسازی تصاویر: استفاده از فرمتهای مناسب تصویر (مانند WebP)، فشردهسازی تصاویر و استفاده از تصاویر با اندازه مناسب.
- کاهش حجم HTML، CSS و جاوا اسکریپت: حذف کدهای اضافی، استفاده از minification و ترکیب فایلها.
- استفاده از کش: ذخیره برخی از فایلهای استاتیک در مرورگر کاربر برای کاهش تعداد درخواستهای HTTP.
- به تعویق انداختن بارگذاری اسکریپتها: بارگذاری اسکریپتهایی که بلافاصله مورد نیاز نیستند را به تعویق بیندازید.
- استفاده از CDN: توزیع محتوا از طریق شبکه تحویل محتوا (CDN) برای کاهش زمان بارگذاری صفحه در مناطق جغرافیایی مختلف.
من سوالات بالا را به چهار دسته پنج تایی تقسیم کردم شما میتوانید یکی از این چهار دسته را برای پرسش در مصاحبه انتخاب کنید. یا میتوانید از هر قسمت یک سوال انتخاب کنید و در لیست سوالات خودتان قرار دهید.
5 پرسش و پاسخ مصاحبه مقدماتی
برای بررسی صحت پاسخ های متقاضیان خود، به این پنج نمونه پاسخ برای برخی از سوالات مهم مصاحبه مقدماتی مبتدی در این بخش مراجعه کنید.
1. کدام مهارت ها برای کار توسعه دهنده front-end مهم هستند؟
چندین مهارت برای کار توسعهدهنده جلویی مهم هستند. از دانش HTML گرفته تا CSS و جاوا اسکریپت، بسیاری از مهارتهای فنی میتوانند به توسعهدهندگان فرانتاند در ساخت طراحیهای وب و تولید صفحات وب با ساختار مناسب کمک کنند.
مهارت های HTML به توسعه دهندگان فرانت اند کمک می کند تا وب سایت را ساختار دهند و مهارت های CSS طراحی طرح بندی را آسان تر می کند. در همین حال، تسلط بر زبان برنامه نویسی جاوا اسکریپت، توسعه دهندگان را قادر می سازد تا عناصر صفحه وب را پویا کنند.
دانش این زبانها برای هر نقشی که شامل توسعه front-end باشد، بسیار مهم است: ۲۳ درصد از مدیران پروژههای وبسایت مهارتهای HTML را در رزومه خود و ۱۷ درصد شامل مهارتهای جاوا اسکریپت هستند. با این حال، مهارت های دیگر نیز مهم هستند.
2. سه عنصر اساسی طراحی را نام ببرید.
متقاضیان باید سه عنصر اصلی طراحی زیر را درک کنند:
- اندازه: مقدار فضایی که یک شکل اشغال می کند
- بافت: بافت سطح شکل (که ممکن است صاف، سخت یا نرم باشد)
- رنگ: رنگ اجسام که دارای مقادیر، رنگ ها و شدت است
3. آیا می دانید تبدیل یا coercion در جاوا اسکریپت به چه معناست؟ لطفا یک تعریف ارائه دهید.
برای آزمودن دانش توسعهدهنده مقدماتی متقاضیان خود، در نظر بگیرید که آیا آنها میتوانند تبدیل یا coercion را در جاوا اسکریپت تعریف کنند یا خیر. داوطلبان ماهر خواهند فهمید که تبدیل شامل تبدیل یک مقدار از یک نوع داده به نوع دیگر در طول زمان اجرا است.
آنها همچنین ممکن است به دو شکل تبدیل در جاوا اسکریپت اشاره کنند - صریح و ضمنی.
تبدیل یا coercion ضمنی زمانی رخ می دهد که جاوا اسکریپت به طور خودکار یک نوع داده را بر اساس زمینه ای که در آن استفاده می شود به نوع دیگری تبدیل می کند. تبدیل صریح زمانی اتفاق میافتد که یک توسعهدهنده صریحاً یک مقدار را از یک نوع داده به دیگری با استفاده از عملگرها یا توابع داخلی آن زبان تبدیل میکند.
برای مطالعه بیشتر به این لینک مراجعه کنید:
https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion
برای مشاهده پست من درباره تایپ کوئرشن اینجا کلیک کنید
4. سه روش برای کاهش زمان بارگذاری صفحه نام ببرید.
کاندیداهایی که دانش اولیه توسعه دهنده front-end را دارند باید از تجربه بدانند که چگونه زمان بارگذاری صفحه را کاهش دهند. در نظر بگیرید که آیا آنها می توانند سه روش برای بهبود سرعت بارگذاری صفحه نام ببرند. در زیر برخی از تکنیک هایی که ممکن است به آنها اشاره شود آورده شده است:
- بهینه سازی تصاویر
- فشرده سازی محتوا
- قرار دادن کدهای CSS و جاوا اسکریپت در فایل های خارجی
5. به من بگویید در مورد سیستم های گرید در CSS چه می دانید.
سیستم گرید در CSS ساختاری است که توسعه دهندگان فرانت اند برای مرتب کردن مطالب به صورت افقی یا عمودی در یک صفحه از آن استفاده می کنند. سیستمهای گرید پیچیدگی مرتب کردن محتوا را کاهش میدهند و دارای دو جزء کلیدی – ستونها و ردیفها هستند.
دانش CSS متقاضیان خود را مورد آزمایش قرار دهید و تعیین کنید که آیا آنها به طور کامل نحوه عملکرد این زبان را با آزمون انلاین مهارت های CSS درک می کنند یا خیر .
5 پرسش و پاسخ مصاحبه مقدماتی پیشرفته برای ارزیابی متقاضیان ارشد
اگر به دنبال توسعهدهندگان ارشد هستید، این سؤالات مصاحبه پیشرفته برای ارزیابی دانش آنها ایدهآل است. برای ارزیابی صحت پاسخ های نامزدهای خود، پاسخ های زیر را بررسی کنید.
1. چهار عنصر مدل جعبه CSS را نام ببرید.
داوطلبان ارشد که تجربه کار با CSS دارند باید مدل جعبه CSS را درک کنند. آنها ممکن است با توضیح اینکه مدل جعبه CSS به توسعه دهندگان کمک می کند تا طرح های پیچیده ایجاد کنند و چهار عنصر مدل جعبه CSS فهرست شده در زیر را نام ببرند:
- محتوا
- بالشتک
- مرزها
- حاشیه ها
2. آیا srcset مزایایی دارد؟ یکی را نام ببرید.
ویژگی srcset یک ویژگی HTML است که مجموعه ای از URL های تصویر را با اندازه ها و وضوح های مختلف مشخص می کند. این به مرورگر این امکان را می دهد تا بر اساس عواملی مانند اندازه صفحه نمایش کاربر یا تراکم پیکسلی، تشخیص دهد که کدام منبع تصویر مناسب ترین است.
یکی از مزایای srcset افزایش کارایی و کاهش زمان بارگذاری با نمایش تصاویری با اندازه مناسب برای دستگاه کاربر است.
3. توضیح دهید که ()JSON.stringify در جاوا اسکریپت چه می کند.
متقاضیان باید بدانند که توسعه دهندگان فرانت اند از متد ()JSON.stringify برای تبدیل مقادیر جاوا اسکریپت به رشته های JSON استفاده می کنند. این به آنها امکان می دهد تا این اشیاء را راحت تر ارسال و دریافت کنند. این امر به ویژه هنگام ارسال داده ها به یک وب سرور مهم است زیرا داده ها باید به صورت رشته ای منتقل شوند.
4. آیا از MySQL در حرفه خود استفاده کرده اید؟ توضیح دهید MySQL چیست.
اگر متقاضیان از MySQL استفاده کرده باشند، می دانند که این یک سیستم مدیریت پایگاه داده رابطه ای (RDBMS) است که از زبان برنامه نویسی SQL استفاده می کند. آنها همچنین ممکن است بدانند که MySQL از ساختار جدول استفاده می کند و رایج ترین RDBMS منبع باز است .
https://aws.amazon.com/rds/mysql/what-is-mysql/
5. آیا از MongoDB در کار خود استفاده کرده اید؟ توضیح دهید MongoDB چیست.
داوطلبان با تجربه MongoDB متوجه خواهند شد که این برنامه پایگاه داده NoSQL عناصر داده را با استفاده از یک قالب سند گرا به نام BSON (JSON باینری) نشان می دهد. آنها همچنین ممکن است اشاره کنند که برنامه نویسان از زبان پرس و جو MongoDB برای ایجاد تغییرات در MongoDB استفاده می کنند.
19 سوال مصاحبه مقدماتی در مورد کنترل نسخه Git
برای ارزیابی دانش کنترل نسخه Git متقاضیان، این 19 سؤال مصاحبه مقدماتی را از آنها بپرسید.
1. به من بگویید در مورد سیستم های کنترل نسخه چه می دانید.
2. تفاوت بین سیستم های کنترل نسخه متمرکز و توزیع شده چیست؟
3. عبارت git push به چه معناست؟
4. عبارت git pull به چه معناست؟
5. توضیح دهید که دستور git config چه کاری انجام می دهد.
6. توضیح دهید که دستور git init چه کاری انجام می دهد.
7. توضیح دهید که دستور git add چه می کند.
8. توضیح دهید که دستور git diff چه کاری انجام می دهد.
9. توضیح دهید که دستور git commit چه کاری انجام می دهد.
10. توضیح دهید که دستور git reset چه کاری انجام می دهد.
11. توضیح دهید که دستور git status چه کاری انجام می دهد.
12. توضیح دهید که دستور git merge چه کاری انجام می دهد.
13. دستور git pull چه کار می کند؟
14. دستور git fetch چه کاری انجام می دهد؟
15. عبارت git pull چه تفاوتی با git fetch دارد ؟
16. توضیح دهید که تضاد ادغام در Git چیست.
17. چگونه یک تضاد ادغام را در Git حل می کنید؟
18. به من بگویید درباره git stash چه می دانید .
19. عبارت git merge چه تفاوتی با git rebase دارد ؟
5 پرسش و پاسخ مصاحبه مقدماتی درباره Git
اگر میخواهید پاسخهای نامزد خود را به مهمترین سؤالات مصاحبه مقدماتی Git مرور کنید، نمونه پاسخهای ارائه شده در اینجا را بررسی کنید.
1. به من بگویید در مورد سیستم های کنترل نسخه چه می دانید.
برنامه نویسان می توانند از یک سیستم کنترل نسخه برای مدیریت تغییرات در فایل ها یا مجموعه داده ها یا بازیابی داده ها به نسخه قبلی استفاده کنند. این سیستم ها همچنین تضمین می کنند که کل تیم برنامه نویسی از آخرین نسخه فایل یا مجموعه داده استفاده می کند.
متقاضیانی که به این سوال پاسخ می دهند باید بدانند که سیستم های کنترل نسخه به طور گسترده توسط تیم های توسعه استفاده می شود: 93٪ از توسعه دهندگان از Git برای مدیریت فایل ها و مجموعه داده ها استفاده می کنند. منبع:
https://stackoverflow.blog/2023/01/09/beyond-git-the-other-version-control-systems-developers-use/
برای ارزیابی دانش Git متقاضیان خود، می توانید از آزمون مهارت های Git انلاین استفاده کنید که در کتابخانه آزمون مهارت های آنلاین سید احمد موجود است.
2. تفاوت بین سیستم های کنترل نسخه متمرکز و توزیع شده چیست؟
این سوال را از داوطلبان بپرسید تا دانش خود را در مورد سیستم های کنترل نسخه مورد آزمایش قرار دهند.
هنگام استفاده از سیستم های کنترل نسخه متمرکز، توسعه دهندگان تغییرات را در یک مخزن مرکزی انجام می دهند. درک و استفاده از آنها نسبت به سیستم های کنترل نسخه توزیع شده ساده تر است. با این حال، اگر توسعه دهندگان دسترسی به مخزن مرکزی را از دست بدهند یا خراب شود، دیگر قابل استفاده نخواهد بود.
از طرف دیگر، هنگام استفاده از سیستم کنترل نسخه توزیع شده، هر توسعه دهنده یک کپی از مخزن دارد. در این رویکرد جدیدتر، کپی محلی هر یک از اعضای تیم می تواند به عنوان پشتیبان استفاده شود. آنها همچنین می توانند به طور مستقل روی نسخه خود کار کنند و تغییرات خود را بدون نیاز به دسترسی به سرور مرکزی انجام دهند.
3. عبارت git push به چه معناست؟
برای تعیین اینکه آیا نامزدهای توسعهدهنده front-end شما دانش کافی درباره Git دارند یا خیر، این سوال مصاحبه ساده را از آنها بپرسید.
متقاضیانی که تجربه Git دارند می دانند که git push فرمانی است که توسعه دهندگان برای فشار دادن محتویات برای آپلود commit های انجام شده در مخزن محلی خود در یک مخزن راه دور استفاده می کنند. آنها همچنین ممکن است توضیح دهند که سینتکس مورد نیاز برای git push این است:
$ git push <option> [< URL راه دور < نام شاخه <refspec>…]
4. عبارت git pull به چه معناست؟
برنامه نویسان از دستور git pull برای بیرون آوردن تغییرات از یک مخزن راه دور و ادغام آنها با نسخه محلی خود استفاده می کنند. این شامل ابتدا واکشی آخرین تغییرات از مخزن راه دور و سپس ادغام آن تغییرات در شاخه فعلی آنها است.
5. توضیح دهید که دستور git config چه کاری انجام می دهد.
نامزدها باید بدانند که توسعه دهندگان از پیکربندی git برای سفارشی کردن نحوه عملکرد و ظاهر Git استفاده می کنند. به عبارت دیگر، این دستور قدرتمند توسعه دهندگان را قادر می سازد تا تغییراتی در تنظیمات پیکربندی Git ایجاد کنند.
5 پرسش و پاسخ مهم مصاحبه front-end درباره HTML، CSS، JavaScript و React.js
برای ارزیابی دانش متقاضیان خود، نمونه پاسخهای زیر را برای این سؤالات مهم HTML، CSS، جاوا اسکریپت و React.js مصاحبه مقدماتی رجوع کنید.
1. کدام زیرمهارت های React.js برای توسعه دهندگان فرانت اند مهم هستند؟
توسعه دهندگان فرانت اند برای استفاده از کتابخانه React.js به مهارت های فرعی مختلفی نیاز دارند، از درک الگوهای طراحی گرفته تا قلاب های React، مدیریت حالت و مفاهیم پیشرفته React.js.
برای ساخت وبسایتها یا برنامههای کاربردی با مؤلفههای پویا، داوطلبان باید بدانند که React.js چگونه این فرآیند را تسهیل میکند. بنابراین، باید سؤالات بعدی را بپرسید تا مشخص شود آیا کاندیداها متوجه اهمیت React.js هستند یا خیر.
اگر برای سنجش مهارت های React.js متقاضیان خود به داده های آماری نیاز دارید، آزمون آنلاین React بهترین گزینه است. این به شما کمک می کند تا زیرمهارت های حیاتی React.js مورد نیاز برای تکمیل پروژه های پیچیده front-end را ارزیابی کنید.
2. سه مهارت مهم جاوا اسکریپت برای توسعه دهندگان فرانت اند را نام ببرید.
توسعه دهندگان فرانت اند برای افزودن ویژگی های کاربردی به وب سایت ها به چندین مهارت فرعی جاوا اسکریپت نیاز دارند.
متقاضیانی که با جاوا اسکریپت آشنا هستند می دانند که برنامه نویسی کاربردی، نوشتن کد بین مرورگرها و مدیریت حافظه برخی از مهارت های فرعی هستند که برای توسعه دهندگان فرانت اند مفید است. به پاسخ هایی گوش دهید که توضیح دهند چرا این مهارت ها مهم هستند.
به عنوان مثال، متقاضیان ممکن است توضیح دهند که برنامه نویسی کاربردی به توسعه دهندگان فرانت اند کمک می کند تا از جهش داده ها و عوارض جانبی جلوگیری کنند.
3. از کدام روش برای جدا کردن بخش های متن در HTML استفاده می کنید؟
این سوال مصاحبه مقدماتی نسبتا ساده است. اکثر نامزدها می دانند که توسعه دهندگان فرانت اند از تگ های HTML برای تقسیم بخش های متن استفاده می کنند و ممکن است سه نمونه از تگ هایی را که استفاده میکنند نام ببرند.
به عنوان مثال، تگ <br> خطوط متن را تجزیه می کند، تگ <blockquote> نقل قول های طولانی تر را نشان می دهد، و تگ <p> پاراگراف هایی از متن را ایجاد می کند.
4. در مورد ویژگی box-sizing در CSS چه می دانید ؟
داوطلبان باید به این سوال با توضیح اینکه ویژگی box-sizing نحوه محاسبه عرض و ارتفاع یک عنصر را مشخص می کند، پاسخ دهند.
آنها همچنین ممکن است توضیح دهند که چگونه مقادیر ممکن این ویژگی رفتار اندازه جعبه را تغییر می دهد. تنظیم مقدار box-sizing به content-box مشخص میکند که عرض و ارتفاع عنصر باید فقط بر اساس کادر محتوای آن بدون بالشتک، حاشیه یا حاشیه محاسبه شود.
با این حال، تنظیم مقدار به border-box نشان می دهد که عرض و ارتفاع عنصر باید شامل padding و حاشیه باشد.
5. از کدام روش برای حذف موارد تکراری از آرایه های جاوا اسکریپت استفاده می کنید؟
یکی از روش هایی که توسعه دهندگان فرانت اند ممکن است برای حذف موارد تکراری از آرایه های جاوا اسکریپت استفاده کنند، تکنیک فیلترینگ است. این تکنیک شامل استفاده از سه آرگومان برای فراخوانی تابع filter برای ایجاد یک آرایه جدید است که حاوی هیچ تکراری نباشد.
سایر متقاضیان ممکن است استفاده از حلقه for را برای ذخیره عناصر منحصر به فرد در یک آرایه خالی ترجیح دهند.
بهترین زمان برای استفاده از سوالات مصاحبه مقدماتی در فرآیند استخدام چه زمانی است؟
مصاحبه ها، از جمله مصاحبه های فنی یا شخصی، بهتر است بعد از آزمون مهارت ها و قبل از اینکه تصمیم به استخدام یک نامزد بگیرید، انجام شود.
استفاده از تست قبل از استخدام برای ایجاد لیست کوتاهی از بهترین نامزدهای توسعهدهنده فرانتاند قبل از مرحله مصاحبه کارآمدتر است – دریافت نتایج آزمون مهارتها و بررسی آمار فقط چند ثانیه طول میکشد.
از داده های آماری تولید شده توسط ارزیابی مهارت ها و پاسخ های متقاضیان به سوالات مصاحبه پس از تکمیل مصاحبه ها استفاده کنید. این داده ها به شما کمک می کند تا یک تصمیم آگاهانه و موفق برای استخدام بگیرید.
مطلبی دیگر از این انتشارات
آیا میخواهید برنامه نویسی را شروع کنید؟
مطلبی دیگر از این انتشارات
نکست جی اس چیست؟ Whay is Next.js
مطلبی دیگر از این انتشارات
راهنمای شروع برنامه نویسی و ماندن طبق یک نقشه راه نمونه