راهنمای کامل استخدام توسعهدهنده داتنت
جهان روزبهروز بیشتر بهسمت دیجیتالی شدن در حال حرکت است و همین موضوع باعث شده تا تقاضا برای توسعهدهندگان کاربلد و ماهر که روی دیجیتالیسازی فرآیندهای تجاری متمرکز هستند، بیشتر شود. متأسفانه، بهعلت کمبود استعدادهای واقعی در زمینه فناوری، امروزه یافتن مهندسان نرمافزار ماهر برای پروژههای فناوری، به یک چالش واقعی تبدیل شده است. یکی از مشاغل پرمخاطب این روزهای دنیای فناوری که در مدت زمان کوتاهی توانسته است به دنیای آگهیهای استخدامی بازار ایران راه پیدا کند، توسعهدهنده داتنت است. اما توسعهدهنده داتنت کیست و چه مهارتهای کلیدیای دارد؟ این مقاله اطلاعات ارزشمندی در مورد یافتن و استخدام توسعهدهندگان بااستعداد داتنت و همچنین نکاتی در خصوص چگونگی ارزیابی مهارتها و مدیریت بهتر آنها در اختیارتان قرار میدهد. قبل از پرداختن به این موضوع، بهتر است مروری بر فناوری داتنت داشته باشیم.
فناوری داتنت چیست؟
برای شخصی که مسئولیت استخدام توسعهدهنده داتنت را برعهده دارد، لازم است اطلاعات کاملی در مورد این فناوری داشته باشد، زیرا اهمیت زیادی دارد. داتنت یک چارچوب نرمافزاری توسعه منبعباز است که توسط مایکروسافت ابداع شده و پشتیبانی میشود. از اینرو، یک فناوری کاملا کاربردی است که با سیستمعاملهای این شرکت کاملا هماهنگ است. داتنت علاوه بر اینکه چارچوبی از کدهای مشترک است، بهعنوان محیط اجرا (Runtime Environment) برای برنامهها مورد استفاده قرار میگیرد. هر محیط اجرا، یک ماشین مجازی مانند جعبهشن (Sandbox) برای اجرای برنامهها آماده میکند. این محیط اجرا در داتنت، زمان اجرای زبان مشترک (CLR) سرنامCommon Language Runtime نام دارد. هنگامیکه کاربر برنامهای را اجرا میکند، در زمان اجرا، کد این برنامه به کد ماشین کامپایل شده و اجرا میشود. زمان اجرای زبان مشترک، سرویسهای دیگری مانند مدیریت حافظه و پردازهها، رسیدگی به برنامههای خاص و مدیریت امنیت را ارائه میکند. به بیان دیگر، محیط اجرا روشی برای انتزاع برنامه از سختافزار واقعی است تا برنامهها بدون مشکل روی سختافزارها اجرا شوند و برنامهنویسان نیز بهشکل سادهتری فرآیندهای مربوط به کدنویسی را انجام دهند.
همانگونه که مشاهده میکنید، عملکرد اصلی داتنت آمادهسازی محیطی کنترلشده برای توسعهدهندگان، جهت نصب و اجرای نرمافزارهای مبتنی بر ویندوز است، با اینحال، چارچوب فوق محدود به سیستمعامل ویندوز نیست. بهعنوان مثال، داتنت به کمک .Net Core میتواند از نرمافزارهای مبتنی بر جاوا و طیف گستردهای از زبانهای برنامهنویسی مثل С#، F#، PowerShell، Visual Basic.Net و غیره پشتیبانی کند. این موضوع به یک توسعهدهنده زیرک و آگاه امکان میدهد تا همزمان به دو یا چند زبان کدنویسی کند. بهطور کلی، داتنت چارچوبی است که با آن میتوانید طیف گستردهای از برنامههای دسکتاپ، وب و موبایل کاملا پیچیده را طراحی کنید.
یک توسعهدهنده داتنت باید چه مجموعه مهارتهایی داشته باشد؟
در این مقاله فهرست کلی از خصوصیات و ویژگیهای چارچوب داتنت ارائه شده است که باید هنگام استخدام یک برنامه نویس داتنت در نظر داشته باشید:
1. همانگونه که اشاره کردیم، داتنت از زبانهای برنامهنویسی مختلفی پشتیبانی میکند. یک برنامه نویس داتنت کاربلد نهتنها باید با چارچوبها و کتابخانههایی مثل MVC، Entity Framework یا ASP.NET Web API آشنا باشد، بلکه باید کاملاً به آنها مسلط باشد. این چارچوبها و کتابخانهها بیشتر در ساخت برنامههای تجاری استفاده میشوند.
2. داتنت فوقالعاده گسترده و غنی است، از اینرو، اگر توسعهدهنده با یکی از چارچوبهای شرح شغل (job description) آشنا نباشد، لزوماً نقطه ضعف او نیست. بسیاری از چارچوبهای داتنت دارای ویژگیهای عملیاتی و ساختاری مشترک زیادی هستند و مهاجرت از یک چارچوب به چارچوب دیگر برای یک توسعهدهنده آگاه مشکل نخواهد بود، زیرا اصول اولیه همه آنها مشابه است.
3. اگر بهدنبال یک توسعهدهنده سطح بالا هستید، به تجربه کاری فرد منتخب توجه ویژهای داشته باشید. یک توسعهدهنده سطح پایین صرفاً بهدلیل تجربه کم، به احتمال زیاد نمیتواند برنامهنویسی ارزشمندی برای سازمان شما انجام دهد.
از مهمترین چارچوبهایی که یک برنامه نویس داتنت در سمت فرانتاند باید در مورد آنها آگاهی داشته باشد به موارد زیر باید اشاره کرد:
- Angular JS
- Java Script
- CSS
- HTML
- Bootstrap
اگر در جستوجوی یک توسعهدهنده بکاند مسلط به داتنت هستید، فرد منتخب باید در مورد مفاهیم زیر اطلاعات کافی داشته باشد:
- NET Web API.
- NET MVC.
- Signal R.
اگر بهدنبال استخدام یک برنامه نویس فولاستک داتنت -فردی که مهارتهای هر دو گروه فرانتاند و بکاند را داشته باشد- هستید، فرد موردنظر ضمن آنکه باید مهارتهای هر دو گروه را داشته باشد، باید در ارتباط با مفاهیم زیر نیز اطلاعات دقیقی داشته باشد:
- مفاهیم برنامهنویسی داتنت.
- مفاهیم برنامهنویسی شیءگرا.
- کنترلهای ویندوز.
- اساس گردش کار ویندوز.
- مسلط به الگوی طراحی MVC و پارادایمهای مرتبط.
- تسلط بر مفاهیم بانک اطلاعاتی اسکیوالسرور، T-SQL، پیادهسازی درست محاورهها برای SQL Server.
- تسلط بر Entity Framework & Code First.
- آشنایی با الگوهای طراحی (Design Pattern) مختلف.
- توانایی کار با نرمافزارهای کنترل نسخه مثل Git و TFS.
- آشنایی با مفاهیم حوزه نرمافزار و متدولوژیهای توسعه.
- دارای روحیه کار تیمی، قابلیت تطبیقپذیری و درک و فرمولهسازی مسئله با هدف ارائه راهحلهای مناسب.
چگونه توسعهدهندگان داتنت را پیدا کنیم؟
اینکه بدانید توسعهدهندگان در کجا بهصورت آنلاین و آفلاین حضور دارند و با یکدیگر در ارتباط هستند، فرآیند استخدام را سادهتر میکند.
اگر بهدنبال استخدام یک توسعهدهنده درونسازمانی هستید، میتوانید شرح شغل خود را در لینکدین یا سایتهای کاریابی قرار دهید و در آنجا بهدنبال رزومه توسعهدهندگانی بگردید که هماهنگ با نیازهای کاری سازمان هستند. با اینحال، باید بدانید که توسعهدهندگان کاربلد داتنت بهطور فعال بهدنبال کار نیستند. آنها روی پروژههای جالب در شرکتهای بزرگ کار میکنند. برای آنکه شانس خود در جذب این افراد را زیاد کنید باید با کانالهای مختلف به آنها دسترسی پیدا کنید. اگر بهدنبال توسعهدهندگان خوب داتنت هستید، پیشنهاد میکنیم سری به سایتهای زیر بزنید:
- GitHub: با وجود تعداد زیادی از توسعهدهندگان ماهر داتنت که تجربیات خود را در آنجا بهاشتراک میگذارند، Github بزرگترین انجمن توسعهدهندگان در سراسر جهان است. جالب آنکه، توسعهدهندگان ایرانی نیز حضور فعالی در گیتهاب دارند.
- Stack Overflow: یکی دیگر از جوامع بزرگ توسعهدهندگان است و بهدلیل ساختار خاصی که دارد، تقریبا همه برنامهنویسان کاربلد سراسر جهان از جمله برنامهنویسان ایرانی عضو آن هستند.
- سایتهای کاریابی: همانگونه که اشاره کردیم، سایتهای کاریابی یکی دیگر از مکانهایی هستند که میتوانید آگهیهای استخدامی مرتبط با برنامه نویس داتنت را در آنها منتشر کنید تا علاقهمندان با مشاهده آگهی با شما تماس بگیرند.
- انجمنها و گروهها در رسانههای اجتماعی مکان خوبی برای جستوجو هستند، بهویژه اگر بتوانید گروههایی را پیدا کنید که روی فناوریهای خاص متمرکز هستند و به تبادل نظر میپردازند.
اگر نیاز به استخدام یک آزادکار دارید، میتوانید در پلتفرمهایی مانند Upwork آنها را پیدا کنید. کارجویان آزادکار زیادی وجود دارند که بهطور فعال در جستوجوی شغل هستند. با این حال، تاکید میکنیم که آزادکارها انتخاب خوبی برای توسعه اساسی نیستند، زیرا آنها معمولا علاقه عمیقی به پروژهها ندارند و بیشتر میتوانند بهعنوان یک نیروی اضافی به تیم اصلی کمک کنند. اگر به یک توسعهدهنده متخصص و متعهد نیاز دارید تا با تیم درونسازمانی شما روی پروژه کار کند و میخواهید این متخصص روی کار شما متمرکز باشد، باید بهدنبال استخدام یک پیمانکار باشید.
اگر میخواهید توسعه از طریق برونسپاری انجام شود، میتوانید یک تیم اختصاصی از تیمهای برنامهنویسی مستقر در شرکتهای نرمافزاری را استخدام کنید. فقط در نظر داشته باشید که یک شرکت توسعه نرمافزاری قابلاعتماد را پیدا کنید.
نکاتی در مورد استخدام توسعهدهندگان داتنت
در شرح شغل خود صریح و بیپرده باشید
در مورد خواستههای خود رک و بیپرده باشید و الزامات مهم را در پیشنهاد شغلی خود فهرست کنید. این امر روند جستوجو را هم برای شما و هم برای توسعهدهندگان آسان میکند. برای پوشش تمام نکات لازم، باید موارد زیر را در نظر بگیرید:
- شرح مختصری از نقش شغلی و مسئولیتهایی که توسعهدهنده باید بتواند برعهده بگیرد ارائه دهید.
- تمام زبانهای برنامهنویسی مورد نیاز، تجربیات، روشها ، مهارتها و غیره را که برای کارتان ضروری هستند فهرست کنید.
- حوزه کاری خود و برخی از جزئیات پروژه را ذکر کنید؛ بهاحتمال زیاد داوطلبانی به شما مراجعه میکنند که قبلا تجربه مشابهی داشتهاند.
مصاحبههای فنی انجام دهید
در حالت ایدهآل، اگر یک مدیر فنی یا یک توسعهدهنده ارشد و باسابقه داشته باشید، میتوانید از طریق آنها مهارتهای فنی داوطلبان را ارزیابی کنید. همچنین، میتوانید از ابزارهای تست کدنویسی آنلاین (Codility، HackerRank) در این فرآیند استفاده کنید.
مهارتهای نرم داوطلبان را ارزیابی کنید
استخدام افرادی که کار کردن با آنها راحت است، میتواند تکمیل پروژهها را سادهتر کرده و سرعت ببخشد. مهارتهای ارتباطی هر داوطلب را بررسی کنید و در نظر بگیرید که آیا این فرد برای تیم توسعه مناسب است یا خیر. میتوانید فهرستی از سوالات را آماده کنید تا مطمئن شوید که توسعهدهنده مدنظر قابلاعتماد و مسئولیتپذیر است یا خیر.
هزینه استخدام توسعهدهندگان داتنت
هزینه استخدام یک توسعهدهنده به جنبههای مختلفی بستگی دارد؛ اینکه آیا بهدنبال یک مهندس داخلی هستید یا میخواهید یک پیمانکار استخدام کنید یا به یک توسعهدهنده داتنت مستقل نیاز دارید. موقعیت مکانی، تجربه و مهارتهای توسعهدهنده میتواند روی هزینه استخدام تاثیرگذار باشد.
جمعبندی
وقتی بحث استخدام توسعهدهندگان داتنت مطرح میشود، دو مورد مهم وجود دارد؛ دانش و ارتباط. بهعنوان فردی که مسئول استخدام هستید، باید بدانید که دنبال چه کسی هستید و در کجا بهدنبال او باشید. بهطور کلی، هنگامیکه یک برنامه نویس داتنت را استخدام میکنید، در عمل فردی را استخدام کردهاید که دانش و مهارت کافی در ارتباط با زبانهای برنامهنویسی مرتبط با این چارچوب مثل سیشارپ، ASP.Net، Azure و غیره دارد.