ورود

View Full Version : ماتریس کامل سنجی برنامه نویس ها



eshpilen
پنج شنبه 02 تیر 1390, 21:11 عصر
این منبع، دانش و مهارت های عمومی ای رو که یک برنامه نویس برای کامل بودن باید داشته باشه لیست کرده. موارد رو بصورت سطح بندی شده از مبتدی/ناشی تا کاملا حرفه ای لیست کرده:
http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm

بنده الان همش رو خوندم. بنظرم جمع آوری و طبقه بندی نسبتا کامل و دقیقی هست.
قبلا هم نظیر چنین جداولی رو دیده بودم اما فکر میکنم این یکی تعادل بهتری داره و نه خیلی سخت و تخصصی هست و نه خیلی ساده.
مسلما کسی تمام دانش و بینش و مهارت های ذکر شده در این جدول رو داره که سالهای زیادی بصورت حرفه ای روی برنامه نویسی مطالعه و کار کرده باشه. یعنی یه آدم که در شغل/تخصص خودش به حد بالایی از کمال رسیده. پس واقعا نمیشه انتظار داشت جز معدودی از افراد تمام این دانش ها و مهارتها رو داشته باشن.
البته معمولا در هر سطر این جدول یک ستون آخر یا دو ستون آخر جزو مهارت های بالا هستن و کمتر از اون رو بنظرم دیگه هرکسی باید داشته باشه تا بتونه خودش رو یه برنامه نویس بدونه، چون برای توانایی طراحی و نوشتن خیلی از برنامه ها دانش و مهارتهایی پایه و ضروری هستن.

تنها نقصی که بنده فکر میکنم این جدول داشته باشه یه مقدار درمورد الگوریتم ها هست. ابداع و تحلیل الگوریتم و اینکه طرف در چه سطحی از قدرت ابداع و تحلیل الگوریتم هست و مثلا آیا به الگوریتم های علمی یا درگیر با ریاضیات پیشرفته احاطه داره و میتونه روی چنین پروژه هایی کار کنه یا نه.
خلاصه زیاد از جزییات الگوریتم صحبت نکرده، درصورتیکه الگوریتم یک شالودهء علم رایانه و برنامه نویسی هست.
البته من مطمئن نیستم، ظاهرا بین برنامه نویسان و افرادی که تخصص چشمگیر در طراحی و تحلیل الگوریتم های پیشرفته دارن (نه الگوریتم های استاندارد) اغلب تفاوت قائل میشن و شاید این چیزا رو یه جورایی جزو تعریف تخصص استاندارد یک برنامه نویس عادی نمیدونن. شاید تفاوت در اینجا مثل تفاوت میان یک دانشمند و یک مهندس هست. یک دانشمند باید مبنای تئوریک کامل و عمیق و گسترده ای داشته باشه، ولی تخصص و وظیفهء یک مهندس فقط درحد بکارگیری حرفه ای راهکارهای موجود و دانش و مهارت داشتن درحد درک کلی و دانستن خصوصیات و موارد کاربرد و ترکیب و استفادهء بجای اونهاست و اینکه بتونه الگوریتم های مشابه در سطح عادی و استاندارد رو تحلیل یا ابداع بکنه.

راستی یه چیز دیگه هم که بنظرم باید جزو موارد مورد بررسی قرار میداشت، بحث امنیت بود. مثلا دانستن انواع حمله ها و روشهای جلوگیری از اونها. بخصوص در زمینهء برنامه نویسی وب (بنظرم در زمینهء دسکتاپ و بطور کلی برنامه های ایزوله و تک کاربر که دارای ارتباطات شبکه ای یا اینترنتی نیستن بحث امنیت و دفاع دربرابر حمله ها خیلی کمتر گسترده/مهم هست).

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

eshpilen
پنج شنبه 02 تیر 1390, 21:37 عصر
علیییییییی .... !
کی میره این همه راهو ... !
اتفاقا بنظر بنده اینایی که لیست کرده زیاد هم سخت و حجیم نیستن.
شاید شما دقیق همه رو نخوندید.
چون ما پراکنده و بدون برنامه کار کردیم الان اینا بنظرمون خیلی زیاد میان که خیلی از اونا رو انجام ندادیم. اما فکر کنید اگر بر اساس این برنامه و بصورت هدفمند اقدام به مطالعه و یادگیری میکردیم، میتونستیم بیشتر یا تمام این دانش و مهارت ها رو تا الان داشته باشیم. یا یه منبع آموزشی اگر بود که برای هرکدوم از اینا اصول پایه رو آموزش داده بود و مثالها و تمرین هایی داشت.
تمام اینا که نوشته هرکدوم صرفا یه بخشی از دانش و مهارتهای لازم هستن و اینکه تعدادشون زیاد نباید ما رو بترسونه. مثل اینکه بخواید قوانین سینتاکس و کتابخانهء استاندارد یک زبان رو لیست کنید؛ خب تعدادش زیاد میشه و ظاهرشون برای کسی که چیزی نمیدونه ترسناک هست، اما همهء ما میتونیم یک زبان و کتابخانهء استاندارد اون رو یاد بگیریم و استفاده کنیم.
خب شاید برای یه مبتدی و برای سال اول و دوم ورود به برنامه نویسی زیاد باشه. ولی آدم اگر چندین سال حرفه ای مطالعه و تمرین کنه بنظرم مشکل خاصی در برابرش نیست.
البته بعضی مواردی که لیست کرده دیگه از نوع حجمی و زمانی هستن. مثلا مطالعهء کامل کتابهایی که ذکر کرده یا سابقهء کار عملی. اینا رو دیگه نمیشه سریع بدست آورد، ولی بهرحال بدون اونا هم میشه امتیاز بالایی آورد.

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

FastCode
پنج شنبه 02 تیر 1390, 23:35 عصر
خیلی جالبه.
دقیقاً یادم نیست.ولی فکر میکنم یک بار خودم معرفیش کردم.
فکر میکنم توی بلاگ stackoverflow راجع بهش خوندم.