یوشا

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

یوشا

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

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

طبقه بندی موضوعی
تبلیغات
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 کار (با سطح متوسط)
درغیراینصورت همه دانش ابتداییش رو دارن... همه بلدن نرم افزارها رو نصب کنن، دستکاری کنن، چند خط بنویسند و غیره... (مثل وردپرس و جوملا کار ها

 

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

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

 

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

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


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

نظرات (۶)

لذت بردم و تفکر کردم !
متشکرم
۳۰ اسفند ۹۵ ، ۱۵:۴۶ فاروق کریمی زاده
"پس کسیکه در کنار حرفه اصلیش برنامه نویسی هم می کنه، نمیگیم برنامه نویسه، میگیم برنامه نویسی هم بلده."
برنامه نویس هست، اما دقیقا باید بگیم «برنامه نویس آماتور»
۲۹ اسفند ۹۵ ، ۱۱:۱۱ فاروق کریمی زاده
وقتی یک نفر در کنار کار روزمره ای که داره برنامه نویسی هم میکنه، برنامه نویس هست، برنامه نویس آماتور.
پاسخ:
سطحش آماتوره، اما تخصصش برنامه نویسی نیست.
۲۸ اسفند ۹۵ ، ۱۹:۰۶ فاروق کریمی زاده
داداش چرا رای گیری رو غیر فعال کردی؟میخواستیم رای بدیم به این مطلب،
++
پاسخ:
مرسی، اما چندبار یه عده اومدن اسپمش کردن مجبور شدم غیرفعالش کنم
عالی
و واقعیتی انکار ناپذیر
تشکر
۱۸ بهمن ۹۵ ، ۱۶:۳۷ فرهاد حسن‌پور
ممنون یوشا جان لذت بردم :-)
کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">