اگر اوضاع به همین منوال ادامه پیدا کند، مصاحبهها به شکل آنلاین انجام خواهد شد و افراد باید خود را برای پاسخگویی به سوالات آنلاین آماده کنند، اما سوالات فنی و عمومی ممکن است چگونه مطرح شوند؟ در این مطلب سعی کردیم نحوه پذیرفتن متخصصان را بر مبنای رویکردی که شرکتهای بزرگ نرمافزاری دنبال میکنند برای شما شرح دهیم.
متخصصان نرمافزاری باید خود را برای شرکت در آزمونهای کدنویسی آنلاین و آزمون تعیین سطح آماده کنند و یکسری کارهای مقدماتی را انجام دهند تا بتوانند به دورههای بعدی مراجعه کنند. بهطور معمول شرکتهای نرمافزاری سه مصاحبه فنی انجام میدهند، دقت کنید زمانیکه درباره استخدام در شرکتهای نرمافزاری صحبت میکنیم، دواطلب، فردی است که در رشته خود خبره است، نه فردی که تازه نحوه کار با ابزارهای فنی یا زبانهای برنامهنویسی را فرا گرفته است. مصاحبههای فنی معمولا دشوار و پیچیده هستند و بر اساس جزییاتی تنظیم میشوند که داوطلب در رزومه خود به آنها اشاره کرده است. سوالات بر اساس موضوعات مورد علاقه داوطلب و پروژههای حرفهای که انجام داده مطرح میشوند، بنابراین باید در زمان نوشتن جزئیات در رزومه صادق باشید. در فرآیند مصاحبهها چه آنلاین و چه حضوری سوالات عمدتا حول محور مباحث فنی هستند، هرچند سوالات عمومی نیز از افراد پرسیده میشود که تقریبا مشخص شده و روتین هستند. بهطور مثال، باید پاسخهای مناسبی برای پرسشهایی نظیر "چرا علاقمند به کار با ما هستید؟" "چه عاملی شما را از سایر برنامهنویسان متمایز میکند؟" مطرح میشود. مصاحبههای فنی بخش اصلی و کلیدی داستان هستند و اگر بتوانید به سوالات مصاحبه فنی به درستی پاسخ دهید تقریبا 95٪ مسیر را پیمودهاید.
چه سوالات فنی و عمومی از افراد پرسیده میشود؟
تقریبا بیشتر شرکتها دوست دارند نظرتان درباره اینکه دوست دارید چه کاری انجام دهید یا حتا سوالاتی که بر مبنای تجربیات گذشته شما هستند را مطرح میکنند. بهطور مثال، "چه کاری انجام دادهاید" و با توجه به تخصصی که دارید تمایل دارید در چه پستی مشغول به کار شوید. بهتر است پاسخهای شما در این زمینه خلاقانه باشند. شرکتهای نرمافزاری که محصولاتی را ویژه مشتریان آماده میکنند یکسری سوالهای چالشی مطرح میکنند تا مهارتهای فکری و تحلیلی شما را ارزیابی کنند، پس بهتر است با ذهنی باز و آرام در مصاحبهها شرکت کنید. دقت کنید اگر قرار است مصاحبه به شکل آنلاین برگزار شود، اتاقی که در آن قرار دارید و وضعیت ظاهریتان آراسته باشد. یکی دیگر از پرسشهای مهم مطرح شده در مصاحبهها بر مبنای پروژههای نرمافزاری شخصی و حرفهای است که انجام داده و در رزومه خود به آنها اشاره کردهاید
پرسشهای رایج مطرح شده در مصاحبههای نرمافزاری
همانگونه که اشاره کردیم، سوالات مصاحبهها عمدتا فنی هستند. به عنوان یک برنامهنویس شرکتها از شما انتظار دارند به پرسشهای زیر به درستی پاسخ دهید.
تشریح دقیق مفاهیم مرتبط با برنامهنویسی شیگرایی در زبانهای مختلف و البته در برخی موارد برنامهنویسی تابعی
تعریف خصوصیات شاخص ساختمان دادهها و اینکه چه زمانی باید از آنها استفاده کرد، پیچیدگی طراحی آنها چگونه است، چه میزان فضا اشغال میکنند و در مجموع باید مطالب مربوط به ساختمان دادهها که در مقطع کارشناسی و کارشناسی ارشد با آنها آشنا شدهاید را بهطور کامل بلد باشید.
آشنایی با الگوریتمهای رایج، البته این موضوع بستگی تخصص شما دارد. بهطور مثال، اگر به عنوان برنامهنویس هوش مصنوعی استخدام میشوید باید درباره درخت تصمیمگیری، روش نایو بیز، کمینه مربعات معمولی، رگرسیون لجستیک، ماشین بردار پشتیبانی، الگوریتمهای به کار گرفته شده در یادگیری غیر نظارتی شبیه به الگوریتم خوشهبندی، تحلیل مولفههای اصلی، تجزیه مقادیر منفرد، تحلیل مولفههای مستقل و.... اطلاعات مربوطه را داشته باشید.
مفاهیم اساسی معماری کامپیوتر شبیه به کرنل، کش و اصول بنیادین سیستمعامل.
فهرستها، حلقهها، آرایهها، درختها و اشارهگرها.
سوالات مرتبط با مباحث مهندسی، متدولوژیهای نرمافزاری، زنجیره بلوکی و تعامل با مشتری
در مورد خودتان و نقشی که در آخرین پروژه کاری داشتید، صحبت کنید.
بزرگترین دستاورد شما تاکنون چیست و چرا فکر میکنید بزرگترین دستاورد شما بوده است؟
الگوی شما در صنعت و دنیای برنامهنویسی کیست؟
فکر میکنید چه عاملی شما را متمایز از سایر داوطلبان میکند؟
روال ذخیره شده چیست و چه مزایا و معایبی دارد؟
تفاوت بین رابطها و کلاسهای انتزاعی را توضیح دهید؟
توضیح دهید که چگونه یک فهرست پیوندی را با استفاده از یک الگوریتم کارآمد مرتب کنیم؟
سعی کنید یک سیستم مدیریت حافظه طراحی کنید.
تفاوت بین مجموعه دادهها و داده خوانها چیست؟
انواع مختلف فراخوانیهای سیستمی چیست؟
انواع مختلف وقفهها را توضیح دهید و بگویید زمانی که یک وقفه فراخوانی میشود چه اتفاقی میافتد؟
توضیح دهید که چگونه حلقهای که درون یک لیست پیوندی وجود دارد را پیدا کنیم.
برای پیدا کردن عمق یک درخت باینری، الگوریتمی نوشته و آنرا توضیح دهید.
یک الگوریتم بنویسید تا همه یکها و صفرهای درون یک آرایه را جدا کند و نحوه عملکرد آنرا شرح دهید.
چگونه در مصاحبه موفق ظاهر شویم؟
پیشنهاد میکنیم روی مباحث فنی متمرکز شوید و وقت زیادی برای حل کردن مشکلات رایج اختصاص دهید تا نقاط ضعف کمتر شوند. در ادامه باید به فکر تهیه یک رزومه جذاب باشید. بهتر است قبل از حضور در مصاحبهها به ویژه آنلاین، سوالات مصاحبههای فنی و منابع انسانی شرکتهای مشابه را مرور کنید، با کمی جستوجو در اینترنت این پرسشها پیدا میشوند. مقدمهای جذاب و تاثیرگذار برای رزومه خود آماده کنید. برخی از مدیران منابع انسانی در شرکتهای نرمافزاری در جلسه اول که معمولا به شکل آنلاین انجام میشود به جای آنکه به سراغ سوالات تخصصی بروند سعی میکنند اطلاعات عمومی داوطلب در مورد مباحث پایه را محک بزنند. بهطور مثال، ممکن است از افراد سوال کنند که تفاوت مهم یک سیستمعامل 32 بیتی و یک سیستمعامل 64 بیتی چیست؟ بنبست چیست و چگونه به وجود میآید؟ برای نشان دادن حالت بنبست کدی بنویسید. برداشت شما از UDP چیست؟ چه تفاوتی میان HTML و XML وجود دارد؟ چندریختی در شیگرایی چه معنایی میدهد؟
کدنویسی در حالت آنلاین
همانگونه که اشاره کردیم، احتمال انجام مصاحبههای آنلاین در این ایام زیاد است، به همین دلیل ممکن است در اولین آزمون آنلاین کدنویسی دو نمونه سوالات کدنویسی در اختیارتان قرار بگیرد که آزمون اول ساده، اما آزمون دوم دشوار باشد. در زمان حضور در آزمون آنلاین ارتباط شما با فرد مصاحبه کننده باید کاملا پایدار باشد و هرگونه قطعی در ارتباط یا تغییر ناگهانی ممکن است ذهنیتی به وجود آورد که فرد در حال تقلب است و شخص دیگری در حال کمک کردن به او است. به همین دلیل باید اطمینان حاصل کنید که وبکم بدون مشکل کار میکند و مشکلی از بابت قطعی اینترنت وجود ندارد. به ویژه زمانی که در حال انجام کدنویسی آنلاین است. دقت کنید که برخی از شرکتها از افراد درخواست میکنند از محیطهای کدنویسی آنلاین شبیه به ویژوال استودیو آنلاین استفاده کنند. در کدنویسیهای آنلاین داوطلب در پنج مرحله آزمون کدنویسی آنلاین، نوشتن (الگوریتم و کدنویسی که ممکن است روی یک مفهوم بازگشتی یا حلقه متمرکز باشد) و سه مرحله مصاحبه فنی گزینش میشود. همانگونه که اشاره شد در آزمون کدنویسی آنلاین عمدتا دو تا سه سوال مطرح میشود و داوطلب باید در مدت زمان 60 دقیقه به سوالات پاسخ دهد. در مرحله نوشتن یک سوال مطرح میشود که متوسط زمان پاسخگویی به سوال 60 دقیقه است. در مجموع دو ساعت زمان برای پاسخگویی به دو تا سه سوال در نظر گرفته میشود. سوالاتی که در آزمونهای آنلاین مطرح میشوند عمدتا شبیه به پرسشهایی هستند که در دوران دانشگاه با آنها سروکار داشتید. بهطور مثال،
یک درخت جستوجوی باینری و یک گره به شما داده میشود، به روش پیمایش inorder گره مابعد گره دریافتی در این درخت باینری را پیدا کنید.
الگوریتم و کدی را بنویسید تا بتواند مجموعه توانی (power set) در یک مجموعه داده را تولید کنید (حالت تکراری یا بازگشتی ایرادی ندارد)
یک آرایه از اعداد صحیح مرتب شده در اختیار دارید. برای این اعداد یک درخت جستوجوی باینری خودمتوازن (height-balanced) ایجاد کنید.
یک فهرست پیوندی و دو عدد صحیح a و b دارید، فهرست پیوندی را طوری تغییر دهید که ابتدا گرهها را نگه دارد، سپس گرههای b را حذف کند و سپس گره a را نگه دارد.
پردازه و ریسمان چه تفاوتی با یکدیگر دارند؟
با توجه به یک درخت دودویی، شما باید یک گره را به شکلی پیدا کنید که درخت زیر آن گره بزرگترین اندازه (از نظر تعداد گرهها) درخت جستجوی باینری باشد.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟