یکی از جالبترین چیزهایی که در مصاحبههای فنی یاد گرفتم این بود که همیشه بهترین پاسخها، درستترین پاسخها نیستند.
بارها پیش آمده از یک نفر پرسیدهام:
«برای حل این مسئله چه راهکاری پیشنهاد میکنی؟»
و او شروع کرده به توضیح دادن پیشرفتهترین معماریها، Patternها و تکنولوژیهایی که میشناسد.
همه چیز از نظر تئوری درست بوده است.
اما یک سؤال همیشه در ذهنم شکل میگرفت:
«برای چه؟»
برای ۱۰۰ کاربر؟
برای ۱۰ میلیون کاربر؟
برای یک تیم ۳ نفره؟
یا یک تیم ۱۰۰ نفره؟
چون در مهندسی نرمافزار، هیچ راهکاری در خلأ خوب یا بد نیست.همه چیز به مسئله بستگی دارد.به محدودیتها.به هزینهها.و به Trade-offهایی که حاضر هستیم بپذیریم.
به مرور زمان متوجه شدم چیزی که در مصاحبهها بیشتر از دانش فنی توجه مرا جلب میکند،نوع فکر کردن افراد است.
اینکه قبل از ارائه راهحل، چند سؤال میپرسند.
چقدر برای فهمیدن مسئله زمان میگذارند.
و چقدر حاضرند فرضیات خودشان را به چالش بکشند.
چون در دنیای واقعی،بیشتر وقت ما صرف حل مسئله نمیشود.صرف فهمیدن مسئله میشود.
و گاهی تفاوت یک توسعهدهنده خوب و یک مهندس نرمافزار خوب،در کیفیت پاسخهایشان نیست.
در کیفیت سؤالهایشان است.
Post #662
285