ساختن توسعه دهندگان بهتر: ارزیابی مهارت زبان توسعه دهنده نرم افزار

Summarize this content to 400 words in Persian Lang
من 26 سال است که به طور حرفه ای در چندین زبان از جمله C، Perl، ASP v1-3 در JScript، JavaScript کدنویسی می کنم. قبل از زمان زمانی که LiveScript بود، CSS از آلفا، PHP و Node (زمان اجرای جاوا اسکریپت آن) از نسخه بتاشان، و اخیراً، Python، Dart و اخیراً کمی Go. اگر بپرسید، با اطمینان بی حد و حصر به شما می گویم که من یک توسعه دهنده خبره هستم، اما واقعاً چگونه می توانم این را بدانم؟ تشخیص یک مهندس بد در طول زمان آسان است، اما چگونه یک مهندس خوب را واجد شرایط کنیم؟ مهمتر از آن، چگونه یکی را بسازیم؟ چه ویژگیها یا مهارتهایی هستند که نه تنها باید در استخدام شناسایی کنیم، بلکه باید فعالانه در تیمها و خودمان پرورش دهیم؟
مدل زیر یک مدل ارگانیک توسعه یافته است که من استفاده کرده ام که در آن توسعه دهندگان از طریق پیشرفت در مجموعه مهارت های “تسلط به زبان” عمیق تر می شوند: چقدر مهارت های اصلی را در یک زبان خاص درک می کنند. این مهارت ها برای همه زبان ها یکسان است:
نحو و گرامر: قوانین اساسی و ساختار زبان، و همچنین مفاهیم اساسی برنامهنویسی که توسط زبان پیادهسازی میشوند (به عنوان مثال، ارث، انتزاع، چندشکلی، کپسولهسازی).
کدگذاری اصطلاحی: نوشتن کد به روشی طبیعی و بهترین روش در جامعه زبانی، با استفاده از ویژگی ها و اصطلاحات خاص زبان.
الگوها و استانداردها: استفاده از رویکردهایی که جامعه زبانی آنها را بهترین عمل می داند، رعایت مقررات مقرراتی و آگاهی از استانداردهای مربوطه.
داخلی و اکوسیستم (که من دوست دارم آن را “درون و بیرون” بنامم): درک عمیق مترجمان قابل اجرا (مانند کامپایلرها، مفسرها و غیره)، موتورها، زمان اجرا، تکنیکهای اشکالزدایی، و هدف و پیکربندی فناوریهای پشتیبانی مانند IDE، بستهبندی، اجراکنندههای آزمایشی، لینترها و چارچوبها.
سطوح پیشرفت از طریق این مهارت ها ممکن است:
آشنایی رمان: مهارت کم (
یادگیری فعال: مهارت کم متوسط (15-50%)،
مسلط: مهارت متوسط به بالا (50-75%)،
تسلط: مهارت بالا (> 75%)
نامگذاری در اینجا به اندازه تخصص هر کدام مهم نیست، همچنین مقادیر دقیق آنها برای درصد مهارت به اندازه وجود سطوح مختلف مهم نیست.
این پیشرفت از کارآموز به متخصص:
در اینجا یک روبریک کار در حال انجام برای تعیین سطح تسلط آمده است:
تسلط در یک زبان به معنی علامت زدن جعبه نیست. این در مورد تکامل به عنوان صنعتگران از طریق درک تدریجی عمیق تر و گسترده تر از فناوری هایی است که ما استفاده می کنیم. همانطور که پیشرفت می کنیم، هر مهارت مهارت بعدی را آگاه می کند و تقویت می کند، و به ما قدرت می دهد تا کدی را با قدردانی فزاینده ای از کیفیت و قابلیت نگهداری ایجاد کنیم و در نهایت ارزش بیشتری را برای محصولات ما و توسعه دهندگانی که با آنها برای ایجاد آن ارزش همکاری می کنیم، ارائه کنیم.
من 26 سال است که به طور حرفه ای در چندین زبان از جمله C، Perl، ASP v1-3 در JScript، JavaScript کدنویسی می کنم. قبل از زمان زمانی که LiveScript بود، CSS از آلفا، PHP و Node (زمان اجرای جاوا اسکریپت آن) از نسخه بتاشان، و اخیراً، Python، Dart و اخیراً کمی Go. اگر بپرسید، با اطمینان بی حد و حصر به شما می گویم که من یک توسعه دهنده خبره هستم، اما واقعاً چگونه می توانم این را بدانم؟ تشخیص یک مهندس بد در طول زمان آسان است، اما چگونه یک مهندس خوب را واجد شرایط کنیم؟ مهمتر از آن، چگونه یکی را بسازیم؟ چه ویژگیها یا مهارتهایی هستند که نه تنها باید در استخدام شناسایی کنیم، بلکه باید فعالانه در تیمها و خودمان پرورش دهیم؟
مدل زیر یک مدل ارگانیک توسعه یافته است که من استفاده کرده ام که در آن توسعه دهندگان از طریق پیشرفت در مجموعه مهارت های “تسلط به زبان” عمیق تر می شوند: چقدر مهارت های اصلی را در یک زبان خاص درک می کنند. این مهارت ها برای همه زبان ها یکسان است:
- نحو و گرامر: قوانین اساسی و ساختار زبان، و همچنین مفاهیم اساسی برنامهنویسی که توسط زبان پیادهسازی میشوند (به عنوان مثال، ارث، انتزاع، چندشکلی، کپسولهسازی).
- کدگذاری اصطلاحی: نوشتن کد به روشی طبیعی و بهترین روش در جامعه زبانی، با استفاده از ویژگی ها و اصطلاحات خاص زبان.
- الگوها و استانداردها: استفاده از رویکردهایی که جامعه زبانی آنها را بهترین عمل می داند، رعایت مقررات مقرراتی و آگاهی از استانداردهای مربوطه.
- داخلی و اکوسیستم (که من دوست دارم آن را “درون و بیرون” بنامم): درک عمیق مترجمان قابل اجرا (مانند کامپایلرها، مفسرها و غیره)، موتورها، زمان اجرا، تکنیکهای اشکالزدایی، و هدف و پیکربندی فناوریهای پشتیبانی مانند IDE، بستهبندی، اجراکنندههای آزمایشی، لینترها و چارچوبها.
سطوح پیشرفت از طریق این مهارت ها ممکن است:
- آشنایی رمان: مهارت کم (
- یادگیری فعال: مهارت کم متوسط (15-50%)،
- مسلط: مهارت متوسط به بالا (50-75%)،
- تسلط: مهارت بالا (> 75%)
نامگذاری در اینجا به اندازه تخصص هر کدام مهم نیست، همچنین مقادیر دقیق آنها برای درصد مهارت به اندازه وجود سطوح مختلف مهم نیست.
این پیشرفت از کارآموز به متخصص:
در اینجا یک روبریک کار در حال انجام برای تعیین سطح تسلط آمده است:
تسلط در یک زبان به معنی علامت زدن جعبه نیست. این در مورد تکامل به عنوان صنعتگران از طریق درک تدریجی عمیق تر و گسترده تر از فناوری هایی است که ما استفاده می کنیم. همانطور که پیشرفت می کنیم، هر مهارت مهارت بعدی را آگاه می کند و تقویت می کند، و به ما قدرت می دهد تا کدی را با قدردانی فزاینده ای از کیفیت و قابلیت نگهداری ایجاد کنیم و در نهایت ارزش بیشتری را برای محصولات ما و توسعه دهندگانی که با آنها برای ایجاد آن ارزش همکاری می کنیم، ارائه کنیم.