یوشا آل ایوب

وبگاه دست نوشته ها و تجربیات شخصی
بِسمِ اللّه‏ِ الرَّحمنِ الرَّحيمِ

یوشا آل ایوب

وبگاه دست نوشته ها و تجربیات شخصی

یوشا آل ایوب

دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم: آنکس که تخصص ندارد و کاری را می پذیرد، بی تقواست!

تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران

چند وقت پیش یکی از اعضای انجمن IranPHP سوالی درباره "سنجش دانش و سطوح برنامه نویسی" کرد که منم اینطور پاسخ دادم:

سوال از kiarash_kcm:

من حدود 10 سال میشه که دارم با PHP کار میکنم اما هر روز مطلب جدید و چیز های جدیدی توی PHP پیدا میکنم که چون بلد نیستم به شدت اعتماد به نفس من رو پایین میاره...
- یه نفر باید تا چه حد دانش داشته باشه در PHP که بشه بهش گفت PHP کار... آیا تمام مواردی که در PHP هست رو باید بلد بود؟
- یه طراح وب سایت که با HTML-CSS-JavaScript-Jquery کار میکنه PHP رو در چه سطح باید بلد باشه که بشه بهش گفت کارش خوبه ؟ چون من تو همین سایت(انجمن) خیلی از اساتید رو میبینم که تو بعضی از مباحث میگن ما دانشش رو نداریم اما خوب تو PHP من میدونم که خیلی خوب هستن...
- کلا میخواستم یه تقسیم بندی از کسانیکه با PHP کار میکنن تو ذهنم داشته باشم که چه کسانی مبتدی شمرده میشن چه کسانی PHP کار و چه کسانی حرفه ای

پاسخ من:

اول اینکه برای سنجش سطح باید صادق باشیم، گول x سال سابقه رو نخوریم، گول x سال درجا زدنها رو نخوریم و تجربیات رو زیر ذره بین ببریم!
برای مثال اگر سالها حرفه اصلی چیزی غیر از برنامه نویسیه و گاها پروژه برنامه نویسی هم انجام بگیره(شاید چند مورد در سال هم بزور) و بعد از چند سال بگیم x سال سابقه برنامه نویسی داریم، این اشتباست و مفید نیست.
همچنین اگر سالهایی که درجا زدیم، یک روش ثابت رو پیش گرفتیم، تجربه انجام پروژه های متفاوت رو نداشتیم(اکثراً با این افراد روبرو شدن)، یک سبک رو در پیش گرفتیم و... اینها هم باید جمع بندی و از کل سابقه کسر بشن.
اینطوری میشه سابقه کار مفید رو دراورد!

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

پس برنامه نویس یعنی کسی که حرفه اصلیش برنامه نویسیه و با همه چالش های این صنف دست و پنجه نرم میکنه! (طوریکه ماهانه پروژه های متفاوت یا صدها هزار خط کد مینویسه... که جمع این میشه سابقه کار مفید در برنامه نویسی)
 

با این تعاریف:

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

بـه نظر من زمانی میـشه PHP کار که حداقل مسـلط باشه! مسـلط هم یعنی اکـثر مباحث مـهم زبان رو بلـد باشه، کارش کـسری و مشـکلات جدی نداشته باشـه، کار با ابـزارهای همگانی رو بلـد باشه، بتـونه راهنمای سـطوح پایینتر از خودش باشـه، از پـس انجام اکثر task ها بر بیـاد، به اصول برنـامه نویسـی وارد و با طراحی پروژه آشنـا باشه، برای استـارت پروژه نـیاز جدی به بررسـی پروژه هـای دیـگران نداشـته باشـه -> کـه ایـن میـشه PHP کار (با سطح متوسط!)
وگرنه همه دانش ابتدایی شو دارن... همه بلدن نرم افزارهاشو نصب کنن، دستکاری کنن، چند خط بنویسند و غیره... (مثل این وروپرس کارا یا جوملا کارا Angel

 

یه طراح وب سایت که با HTML-CSS-JavaScript-Jquery کار میکنه PHP رو در چه سطح باید بلد باشه که بشه بهش گفت کارش خوبه؟

خود شما هم داری میگی طراح وب (که صد البته گرافیک هم شامل تخصصش میشه)، پس در حد درک/ویرایش کد باید PHP، ASP ،Python رو بلد باشه که بشه بهش گفت کار "طراحیش" خوبه -> پس سطح ابتدایی.

 

میخواستم یه تقسیم بندی از کسانیکه با PHP کار میکنن تو ذهنم داشته باشم که چه کسانی مبتدی شمرده میشن چه کسانی PHP کار و چه کسانی حرفه ای

تقسیم بندی سطوح برنامه نویس بنظرم: 
ابتدایی(Junior) -> یعنی در حد درک و ویرایش کد - pure کد و آبشاری می نویسه - هر کارش مثل اولین کارش می مونه - دائما به راهنما و کمک نیاز داره - کار تیمیش ضعیفه - با واژه مدیریت و طراحی نرم افزار غریبه - هیچ اعتمادی به کدهاش نیست - گاها یه مقاله ای مطالعه می کنه - مثل یه طراح صفحات وب یا تعمیرکار کامپیوتر - تا 1 - 2 سال سابقه کار برنامه نویسی 
متوسط(Regular) -> یعنی اکثر مباحث زبان رو بلده(یا حداقل اکثر موارد مهم رو) - از ابزارها و الگوها استفاده میکنه - کاراش خوبه - گاهاً کمی راهنمایی لازم داره - کار تیمیش خوبه - تا حدی مدیریت و طراحی نرم افزار رو بلده - گاهاً کارش چک میشه(یا بررسی کلی میشه) - راهنمای افراد ابتداییه - به سرگروه نیاز داره - اکثر task ها رو انجام میده - مقاله مطالعه می کنه و گاها نکاتی رو ارائه میده - مسلطه! تا 5 سال سابقه کار مفید در برنامه نویسی
پیشرفته(Senior/برنامه نویس ارشد) -> بقول معروف زبان رو قورت داده - گاهاً ابزاری رو "خلق" میکنه - کاراش بی عیب و نقصه - الگو و راهنمای همست - سرگروه تیمه - پروژه رو طراحی و مدیریت میکنه - کارهای بقیه رو چک می کنه - به تنهایی یک تیمه - میتونه همه task ها رو حل کنه و حتی task طراحی کنه - ابزارها و Internal خود زبان رو هم زیر سوال میبره - خدای راهکار/solution هه - مقالات قوی ارائه میده - راه کاراشون هم نقل قول میشه! بیش از 8 سابقه کار مفید در برنامه نویسی


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

نظرات (۵)

۳۰ اسفند ۹۵ ، ۱۵:۴۶ فاروق کریمی زاده
"پس کسیکه در کنار حرفه اصلیش برنامه نویسی هم می کنه، نمیگیم برنامه نویسه، میگیم برنامه نویسی هم بلده."
برنامه نویس هست، اما دقیقا باید بگیم «برنامه نویس آماتور»
۲۹ اسفند ۹۵ ، ۱۱:۱۱ فاروق کریمی زاده
وقتی یک نفر در کنار کار روزمره ای که داره برنامه نویسی هم میکنه، برنامه نویس هست، برنامه نویس آماتور.
پاسخ:
سطحش آماتوره، اما تخصصش برنامه نویسی نیست.
۲۸ اسفند ۹۵ ، ۱۹:۰۶ فاروق کریمی زاده
داداش چرا رای گیری رو غیر فعال کردی؟میخواستیم رای بدیم به این مطلب،
++
عالی
و واقعیتی انکار ناپذیر
تشکر
۱۸ بهمن ۹۵ ، ۱۶:۳۷ فرهاد حسن‌پور
ممنون یوشا جان لذت بردم :-)
کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.