Syntax | سینتکس
3.01K subscribers
410 photos
108 videos
35 files
378 links
Download Telegram
سوالات احتمالی مصاحبه ی زبان گولنک

همینجوری اتفافی توی گیت هاب دیدمش.
توی این ریپازیتوری سوالاتی که توی مصاحبه شغلی گولنگ ممکنه باهاش روبرو بشید رو قرار داده‌
البته انگار هنوز کامل نشده.

همچنین خسته نباشید میگم به بردیا 😁

https://github.com/mrbardia72/Go-Interview-Questions-And-Answers?tab=readme-ov-file

#Interview #go

@Syntax_fa
🔥7
سوال مصاحبه

فرض کنید ما یک linked list یک طرفه (next) داریم.
چجوری مقادیر داخل این لیست رو از آخر به اول مرتب کنیم؟

#interview_question

@Syntax_fa
👍5
برای آمادگی در مصاحبه چیکار کنم؟

(تو این پست صرفا تجربیات خودم رو میگم)

قبل مصاحبه احتمالا میریم یه سر به نمونه سوالات مصاحبه ها میندازیم.
مثلا سوالات مصاحبه پایتون، جنگو و ...

ولی چیزی که من تجربه کردم، آنچنان کمکی به شما نمیکنه.

فرض کنید برای موقعیت بک اند جنگو مصاحبه دارید.
احتمالا هشتاد درصد سوالات اصلا بصورت مستقیم به پایتون و جنگو اشاره نمیکنن!

یعنی اگه شما اصلا جنگو بلد نباشید اما با بک اند بخوبی آشنا باشید احتمالا مصاحبه رو قبولید 😁

پس نکته اینه مفاهیم رو درک کنید. یه توسعه دهنده بک اند بشید، نه فریم ورک محور و یا حتی زبان محور

همچنین سوالات الگوریتمی و ساختمان داده احتمال زیاد، ازتون پرسیده میشه. چه بسا تو مصاحبه های من اکثر مواقع اولین سوال ها ساختمان داده و الگوریتم بودن.

درباره مصاحبه hr بازم همین موضوع مطرح هستش.
باید مهارت های فنی خودتون رو تقویت کنید. با خوندن چند تا نمونه سوال قبل مصاحبه زیاد تفاوتی ایجاد نمیشه

توصیه من:
حتما روی مهارت های نرمتون کار کنید.
حتی اگه بهترین باشید ولی نتونید خودتون رو پرزنت کنید، ارزش واقعی شما مشخص نمیشه.

حتما با دیتا استراکچر و الگوریتم آشنا باشید خیلی مهمه.
هفته ای حداقل یکی دوتا مسئله حل کنید

#Interview

@Syntax_fa
👍11
قبل مصاحبه یکاری هست که بنظرم حتما انجامش بدید!

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

اکثرا با خوشرویی بهتون جواب میدن و شمارو راهنمایی می کنن. همچنین اینکه پیگیر شرکت بودید یک پوینت مثبت به حساب میاد.

#interview

@Syntax_fa
👍25🏆2
چند تا سوال خوب تو سطح میدلول به بالا برای Back-end developer(python & django)

1. چگونه از race condition در برنامه‌های چند نخی (multi-threaded) یا چند کاربره (multi-user) جلوگیری می‌کنید؟ از چه تکنیک‌ها یا ابزارهایی استفاده می‌کنید؟

این سوال از متقاضی می‌خواهد تا درک خود را از مفهوم race condition و راه‌حل‌های آن نشان دهد. او باید به مواردی مانند قفل‌ها (locks)، عبارات F در Django ORM، عملیات‌های اتمیک (atomic) و همچنین استفاده از سیستم‌های صف (queuing systems) اشاره کند.

2. برای بهینه‌سازی پرس‌وجوهای پایگاه‌داده در Django چه تکنیک‌هایی را پیشنهاد می‌کنید؟ مزایا و معایب هر یک را توضیح دهید.

این سوال از متقاضی می‌خواهد تا دانش خود را در زمینه بهینه‌سازی پرس‌وجوهای پایگاه‌داده در Django نشان دهد. او باید به مواردی مانند ایندکس‌گذاری، انتخاب صحیح فیلدها، استفاده از select_related و prefetch_related، و همچنین کش‌کردن (caching) اشاره کند.

3. چگونه می‌توانید از حملات (Cross-Site Scripting یا XSS) و حملات (Cross-Site Request Forgery یا CSRF) در برنامه Django خود جلوگیری کنید؟

این سوال از متقاضی می‌خواهد تا دانش خود را در زمینه امنیت وب و جلوگیری از حملات رایج نشان دهد. او باید به مواردی مانند استفاده از django.utils.html.escape برای خروجی‌های HTML، تنظیمات SECURE_BROWSER_XSS_FILTER و `X_FRAME_OPTIONS`، استفاده از توکن‌های CSRF در Django، و همچنین تکنیک‌های دیگر مانند اعتبارسنجی ورودی‌ها اشاره کند.

4. چگونه از یک وضعیت deadlock در برنامه‌های چند نخی یا چند کاربره جلوگیری می‌کنید؟ راه‌حل‌های پیشنهادی شما برای مدیریت deadlock چیست؟

این سوال از متقاضی می‌خواهد تا درک خود را از مفهوم deadlock و راه‌حل‌های آن نشان دهد. او باید به مواردی مانند جلوگیری از اشتراک منابع، اولویت‌بندی درخواست‌ها، استفاده از الگوریتم‌های پیشگیری از deadlock مانند الگوریتم بانکر (Banker's Algorithm)، و همچنین استفاده از تایم‌اوت‌ها (timeouts) اشاره کند.

5. چگونه می‌توانید از مشکلات مربوط به حافظه در برنامه‌های Python خود جلوگیری کنید؟ راه‌حل‌های پیشنهادی شما برای مدیریت حافظه چیست؟

این سوال از متقاضی می‌خواهد تا دانش خود را در زمینه مدیریت حافظه در Python نشان دهد. او باید به مواردی مانند استفاده از ژنراتورها (generators) و ایتراتورها (iterators) برای پردازش داده‌های بزرگ، آزادسازی منابع به موقع، استفاده از کتابخانه‌های مدیریت حافظه مانند `tracemalloc`، و همچنین تکنیک‌های دیگر مانند پروفایل‌گیری (profiling) و بهینه‌سازی الگوریتم‌ها اشاره کند.

6. چگونه می‌توانید از مشکل N+1 Query در Django ORM جلوگیری کنید؟ راه‌حل‌های پیشنهادی شما برای این مشکل چیست؟

این سوال از متقاضی می‌خواهد تا درک خود را از مشکل N+1 Query و راه‌حل‌های آن در Django ORM نشان دهد. او باید به مواردی مانند استفاده از select_related و `prefetch_related`، بهینه‌سازی پرس‌وجوها با استفاده از ایندکس‌ها، و همچنین تکنیک‌های دیگر مانند کش‌کردن (caching) اشاره کند.

7. چگونه می‌توانید از مشکلات مربوط به مقیاس‌پذیری (scalability) در برنامه‌های وب جلوگیری کنید؟ راه‌حل‌های پیشنهادی شما برای بهبود مقیاس‌پذیری چیست؟

این سوال از متقاضی می‌خواهد تا دانش خود را در زمینه طراحی و پیاده‌سازی سیستم‌های مقیاس‌پذیر نشان دهد. او باید به مواردی مانند استفاده از معماری‌های چند لایه (multi-tier architecture)، پخش بار (load balancing)، افزونگی (redundancy)، کش‌کردن (caching)، شارد کردن (sharding) پایگاه داده، و همچنین تکنیک‌های دیگر مانند استفاده از سیستم‌های توزیع‌شده (distributed systems) و محاسبات ابری (cloud computing) اشاره کند.

8. چگونه می‌توانید از مشکلات مربوط به امنیت در برنامه‌های وب جلوگیری کنید؟ راه‌حل‌های پیشنهادی شما برای بهبود امنیت چیست؟

این سوال از متقاضی می‌خواهد تا دانش خود را در زمینه امنیت در برنامه‌های وب نشان دهد. او باید به مواردی مانند استفاده از رمزگذاری قوی، اعتبارسنجی ورودی‌ها، جلوگیری از حملات تزریق (injection attacks)، استفاده از پروتکل‌های امن مانند HTTPS، مدیریت دقیق دسترسی‌ها (access control)، و همچنین تکنیک‌های دیگر مانند به‌روزرسانی منظم سیستم‌ها اشاره کند.

#interview #backend

@Syntax_fa
👍15
تجربه مصاحبه جدیدم:

اولش تماس گرفتن که از فلان شرکت هستیم و حدود بیست دقیقه ای صحبت کردیم

بعدش به یکباره گفتن مصاحبه فنی رو ده دقیقه دیگه اوکیه بریم؟
منم گفتم بریم بریم

حدود یکونیم ساعت صحبت کردیم که نسبتا سوالات چالش بر انگیز و سختی بود اما شخص مصاحبه گر خیلی با تجربه بود و کلی چیز ازش یاد گرفتم.

چه سوالاتی پرسیده شد؟
سوالات pure python
نمونه ای از سوال:
اگه ما یه لیست بزرگ داشته باشیم و بخوایم دونه دونه عناصرشون رو بگیریم و یه عملیاتی انجام بدیم چیکار کنم بهتره؟
اگه مشکل منابع نداشته باشیم، از چه روشی استفاده کنیم بهتره؟

قسمت بعدی سوالات درباره شی گرایی، دیزاین پترن ها بود
اصول solid رو تقریبا هرچهارتاشو پرسید.
یک سوال درباره الگوی طراحی Circuit breaker پرسید که متاسفانه یادم نبود

قسمت بعدی درباره دیتابیس و django orm بود
سوالات زیادی پرسید
یک سری حالت رو توضیح داد و گفت توی raw sql و orm چجوری کوئری بزنیم.
درباره مایگریشن ها سوالات عمیقی پرسید که نحوه کارکردنش دقیقا تو جنگو چجوریه

یه قسمت دیگم در خصوص چالش های معماری میکروسرویس بود

سوالاتی که پرسید واقعا عالی بودن. اما فکر نمیکنم کار خوبی باشه همه رو لو بدم😂

در کل مصاحبه یهوییه خیلی خوبی بود👌

#interview

@Syntax_fa
👍25
سوال مصاحبه جنگویی:

سطح: سخت

تو جنگو میخوایم هر درخواست HTTP بصورت خودکار توی یک تراکنس دیتابیس قرار بگیره. یعنی اگه هرکدوم از عملیات های دیتابیس در طول پردازش یک درخواست HTTP با خطا مواجه بشه، تموم تغییراتی که توی دیتابیس اعمال شده rollback شه.
بنظرت چیکار میتونیم بکنیم؟

قبل اینکه جوابو ببینی یکم فکر کن یا سرچ کن 😒:
و اما جواب:

میتونیم با اضافه کردن این خط تو settings.py این قابلیت رو اضافه کنیم:
DATABASES["default"]["ATOMIC_REQUESTS"] = True

و اما یه جواب خفن و درست تر توسط [abbasi_ai]:
Atomic request
جواب اصلی سوال نیست، بنظرم چیزی جا افتاده

با توجه به صورت سوال؛ فکر می‌کنم یک session manager هم نیاز هست.
و اگر توی درخواست‌های بعدی یوزر هم چیزی به خطا بخوره تا درخواست اصلی همه چیز باید
Rollback
بخوره


اگه فقط بخوایم تو ویو های خاصی atomic requets رو داشته باشیم چیکار کنیم؟
و جواب این سوال:
میتونیم از دکوریتور atomic استفاده کنیم:
from django.db import transaction
from django.views import View

class MyView(View):

@transaction.atomic
def get(self, request, *args, **kwargs):
...


#interview_question #django

@Syntax_fa
Please open Telegram to view this post
VIEW IN TELEGRAM
👀8👍6👌32