« "پيرِ برنامه ساز" ، "برنامه نويسِ پير"! (قسمت اول - تعریف مشاغل) | صفحه اصلی | ماجرای کوی دانشگاه تهران، از زاویه ای دیگر »

"پيرِ برنامه ساز" ، "برنامه نويسِ پير"! (قسمت دوم- پیرِ برنامه ساز)

January 27, 2008 12:29 PM

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

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

Ali Vahed | 12:29 PM

 

نظرخواهی

به نظر من خود "پیر برنامه ساز" با تجربه ای که بدست آورده میتواند در آن واحد به طراحی مسئله, اشکال گیری و تحلیل سیستم نیز بپردازد, درسته؟!

ارسال شده توسط: مسعود در ساعت January 27, 2008 01:19 PM

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

ارسال شده توسط: ali در ساعت January 27, 2008 02:25 PM

مطلبي كه قصد دارم بگم شايد بيشتر به قسمت او ل اين بحث مربوط ميشه.در مود اينكه مهم تخصصه و سن نميتونه ملاك باشه:
مثلا در محيط هاي دانشگاه ها ميبينيم اساتيدي كه با تجربه تر هستند (و شايد در دوران دانشجويي خودشون با سيستم هاي دسته اي(batch)كار ميكردند)با وجود اينكه اطلاعات خود را به روز ميكنند اما باز هم نسبت به همه چيز ديد functinal دارند.
اما آنچه كه امروزه در حال جريانه تفكر object oriented است.
و اما درباره برنامه سازاني كه تغيير تخصص ميدهند :
به گمانم يكي از دلايلش جذابيت فوق العاده توليد نرم افزاره.چون انسان ميتونه از همه توانايي هاش استفاده كنه.شايد برنامه سازي بيشتر به دانش وابسته است اما در نرم افزار نه تنها ار توانايهاي علمي استفاده ميشه بلكه حتي روابط عمومي افرادوهمان طور كه خودتون گفتيد صبر و حوصله و ....به كمك فرد ميايند.همه دانسته هاي اون فرد از اول زندگيش....و تمام ذهن آدم رو به خودش مشغول ميكنه.
همينها بهش جذابيت ميده..
و دليل ديگر ه ميتونه زياد شدن((برنامه نويسان))باشه كه داره حالت پراتوري ميگيرهو باعث ميشه در ديد افراد نسبت به((برنامه سازي))تاثير بگذاره
همين...

ارسال شده توسط: NOBODY در ساعت January 27, 2008 05:51 PM

اولاً بسیار خوشحالم که این بحث تا به اینجا ادامه پیدا کرده و طی هر مطلب، زوایای بیشتری از این مساله مورد بررسی قرار می‌گیره.

مفهوم «خبره» و «خبرگی»، نکته‌ای است که بدرستی روی آن تاکید کردید.

منتظر نوشته‌های آتی شما در همین مورد هستم.

ارسال شده توسط: شارپدیا در ساعت January 28, 2008 12:41 PM