PDA

View Full Version : طول عمر برنامه نویسی یک شخص



navidiran
چهارشنبه 08 اردیبهشت 1389, 19:15 عصر
قبل از هر چیز باید بگم منبع این مطالب من نیستم ، فقط لینک مطلب را گم کردم.
توجه داشته باشید که این مطالب سندیتی ندارد و صرفا تجربیات شخصی من از بازار کار نرم افزار و دات نت ایران (تهران) است و ممکن است همین شرایط در دنیای برنامه نویس های جاوا و سایر پلتفرم ها متفاوت باشد. همچنین لازم بذکر است که این مطلب در ۲۱ شهریور ۱۳۸۸ نوشته شده و در آینده نیز مکن است نامعتبر و ناکارآ باشد. از شما هم خواهشمندم با نوشتن نظر، در تکمیل این مطلب به من کمک کنید. با سپاسمعمولا یک برنامه نویس تازه کار ( کسی که در حال تحصیل – معمولا در مقطع لیسانس – و یا تازه فارغ التحصیل شده ) است.
برای کار به شرکت های نزدیک ( عرفی شده توسط دوت و یا آشنا ) مراجعه می کند. در آن شرکت ها هم بخاطر اشنا بودن برنامه نویس تازه کار، و شناخت نسبی از این فرد که توسط معرفش بدست آمده، شرکت استخدام کننده، سعی می کند که کمترین میزان حقوق پرداختی را به او بدهد. یکی از این بهانه ها نداشتن دانش و تجربه کافی برای برنامه نویسی است و خیلی ها ( شرکت ها ) معمولا از این فرد مشتاق بصورت وحشتناک بیگاری می کشند مشکلات بوجود آمده در پروژه را بخاطر عدم شناخت کافی برنامه نویس تازه کار، به او نسبت می دهند.
استخدام برنامه نویس
یک فرد تازه کار معمولا فردی است که کمتر از دو سال به برنامه نویسی مشغل بوده و معمولا هیچ پروژه رسمی را به پایان نرسانده، این شخص معمولا از معماری ها فقط در حد اسم و توضیحات شنیده و از الگوهای طراحی هم کاملا بی اطلاع است. این دسته از افراد در شرکت ها معمولا به طراحی واسط کاربری گماشته می شوند تا خود پروژه کمتر دچار خطا شود و درگیری آنها با کد هم معمولا کم است. برای چنین فردی معمولا بسته به اینکه در سال اول یا دوم کار است و اینکه چقدر ( خود او ) بازار را درک کرده و اینکه چقدر به کدنویسی تسلط پیدا کرده معمولا به ازای هر ساعت ۱۲۰۰ تا ۲۵۰۰ تومان پرداخت می شود. نکته جالب اینجاست که معمولا این افراد از سایر بچه های تیم از میزان دریافتی شان ( بخاطر عدم اطلاع از بازار و نداشتن تجربه ) راضی هستند.
اما وقتی که یک شخص دو سال کد می نویسد بسته به رفتار شرکتی که در آن کار می کرده، و تجربیاتی که بدست آورده اقدام به تصمیم گیری می کند. معمولا بیشتر آنها ( به نظر من شاید بیش از ۷۰ درصد ) از شرکتی که در آن آغاز به کار کردند به شرکت دیگری می روند تا تجربیات جدید را کسب کنند و چیزهای جدیدتری را بیاموزند. بطور معمولا شرکتهای ایرانی دانش بیشتری برای انتقال به برنامه نویس هایشان ندارند و اگر یک شخص دو سال در یک شرکت کار کند، با بیشتر معماری، الگوهای طراحی، شیوه کدنویسی و … عادت می کند و بعد از روال عادی کارهاست که انجام می شود. درست به همین دلیل هم هست که آنها که شرایط را درک می کنند معمولا بعد از ۲ سال از شرکت اولی به شرکت بعدی می روند.
در شرکت دوم، برنامه نویس تازه کار ، یا به یک برنامه نویس زخم خورده تبدیل شده و یا صرفا اطلاعات کمی در ارتباط با یک شرکت ایرانی و وضع برنامه نویسی پیدا کرده است. اگر حالت اول برای او پیش بیاید معمولا با دلی ناراضی در جستجوی شرکتی است که در همان حدود شرکت اولی به او حقوق بدهد اما در آن شرکت نباشد، این دلیلی می شود برای جستجوی اشتباه برای شرکت دوم و معمولا دریافتی او در شرکت بعدی چیزی بیشتر از ساعتی ۳۲۰۰ تومان نخواهد بود. اما اگر حالت دوم را پیش گرفته باشد با یک دید وسیع تر و بهتر در جستجوی شرکتی خواهد بود که او را برای رسیدن به شرکت سوم ( که در ذهن او هست ) یاری کند. معمولا این دسته از افراد، برنامه نویس های موفق تری خواهند شد. و در این حالت و بسته به یزان مهارتشان در کدنویسی معمولا چیزی بین ساعتی ۳۰۰۰ تا ۳۸۰۰ دریافت می کنند. تازه در این سال سوم است که این دسته از برنامه نویس ها شروع می کنند به یادگیری نوشتن برنامهبه شکل صحیح. معمولا سریعا شروع می کنند به یادگیری معماری برنامه نویسی در شرکت فعلی و سعی می کنند بخوبی به آن تسلط پیدا کنند. بعضی ها معماری های مرتبط دیگر را هم مطالعه می کنند. در همین سال آنها که فعال تر هستند برای خودشان یک وبلاگ درست می کنند و یا در فوروم های مرتبط عضو می شوند و شروع به فعالیت می کنند. مسلما میزان فعالیت آنها در فوروم ها و وبلاگ نویسی در موفقیت آنها تاثیرگذار خواهد بود. تعداد بسیار کمی را هم دیده ام که به شدت به اخبار دنیای کامپیوتر و تکنولوژی های وابسته علاقمند می شوند و بخشی از وقت خودشان را برای مطالعه اخبار صرف می کنند.
اما در سال چهارم، معمولا میزان مهارت یک برنامه نویس به سطح قابل قبولی رسیده و پرسش هایی که برای او پیش می آمد به طرز چشمگیری کاهش پیدا کرده و بخوبی به پلتفرمی که برنامه می نویسد مسلط شده است. اینجاست که شرکتهای بسیار زیادی برای به خدمت گرفتن او می جنگند و درست به همن دلیل است که بیشتر آگهی های استخدام برنامه نویس، برنامه نویسی با حداقل میزان ۳ سال برنامه نویسی احتیاج دارند. شرکت های قبلی معمولا شرکت های کوچک و یا بسیار کوچکی هستند که بزرگ ترین پروژه آنها پروژه های ۱۰ تا ۲۰ میلیونی بوده و برای بقا می جنگند. اما شرکتهای این رده معمولا شرکت های معمولی یا بزرگ هستند که از رانتهای دولتی برخردارند و برای پروژه هایی که با قیمت گزاف از دولت می گیرند به برنامه نویس خوب احتیاج دارد و معمولا حاضرند که هر بهایی برای در اختیار گرفتن این برنامه نویس ها بپردازند ( در صورتی که مطمئن شوند این شخص واقعا برای آنها مفید است (.
در این سال بسته به شرکتی که برنامه نویس جذب آن می شود و میزان مهارت و تاثیرگذاری اش در شرکت و نیز احتمالا شهرتی که از وبلاگ نویسی و یا فوروم ها بدست آورده چیزی حدد ساعتی ۴۰۰۰ تا ۵۰۰۰ می گیرد. به نظر منن دقیقا همین سال چهارم و پنجم برنامه نویسی است که ایده ال ترین سال زندگی یک برنامه نویس است. او گرچه حقوق بالایی (بسته به همکارانش در خارج از کشور) نمی گیرد. اما دارای احترام خوبی است و بخاطر تجربیات قبلی از میزان دریافتی راضی است. او با معماری ها آشنا شده و براحتی با الگوهای طراحی مختلف کد می نویسد. او برای یک شرکت کاملا مفید است و از لحظه لحظه وقتش بخوبی استفاده می کند. ( گرچه معمولا در همین سال ها از وقت هایی که از دست داده تاسف می خورد، اما از شرایطش معمولا راضی است).
اما این پایان راه نیست بعد از گذر از سال پنحم برنامه نویسی او تبدیل به یک برنامه نویس ماهر شده که نه حاضر است هرجایی کار کند و نه هرجایی به او نیاز است. معملا پروژه ها آن قدر جدی نیست که به شخصی مثل او برای حل مسائل نیاز باشد و او ناگزیر باید جذب یکی از ۱۰ -۱۲ شرکت برتر نرم افزاری ایران شود و یا اینکه به فکر کار دیگری باشد معمولا کمتر شرکتی است که به چنین شخصی ساعتی ۷۰۰۰ تا ۱۰۰۰۰ تومان بدهد. در همین باب قبلا یک مطلب با عنوان طول عمر برنامه نویسی یک شخص نوشته بودم که توصیه می کنم آن را هم مطالعه کنید. و در این مورد بیشتر نمی نویسم.
معمولا در ایران وقتی شرکت ها ثبت می شوند، بطور معمول آن قدر بزرگ نمی شوند که در آنها امکان تغییر و جابجایی شغل بوجود بیاید مثلا شما نمی توانید به عنوان برنامه نویس وارد یک شرکت شده و بعد از طی کردن یک روال خاص تبدیل به یک طراح سیستم بشوید ( چیزی که در خارج از کشور کاملا مرسوم است ). معمولا مدیر پروژه یک پست برای یکی از مدیران شرکت است و شمایی که برنامه نویس هستید، هرچقدر هم از لحاظ فنی از مدیر پروژه بهتر باشید باز هم برنامه نویس خواهید ماند مگر اینکه خودتان از یک زمانی به بعد بجای برنامه نویسی اقدام به طراحی سیستم و چه و چه کنید.
اما اینکه شما چند سال باید برنامه نویس باشید واقعا بحث برانگیز است. شرکتهای ایرانی بخاطر گردش کم مالی و سرمایه و پشتوانه اندک بدنبال فارغ التحصیلان کم قیمت و مشتاق کار هستند و بخاطر اشنایی بیش از اندازه ( بخوانید رانت ) با سفارش دهنده، ترسی از مشکلات بوجود آمده برای مشتری ندارند و مشکلات را در یک قرارداد پشتیبانی رفع می کنند برای همین به یک برنامه نویس فوق العاده نیاز ندارند. همین جاست که این تعداد سالهای برنامه نویسی بیشتر به چشم می‌اید معمولا یک برنامه نویس یکی دو سال اول ( بسته به اینکه چقدر تیزهوش است ) به کسب تجربه پرداخته و سعی می کند موقعیت بازار را درک کند. سال سوم و چهارم معمولا برای جمع کردن رزومه سعی می کند با قیمت پایین تر و یا کمی معقول در یک شرکت خوب اقدام به کسب تجربه کاری کند. و معمولا سال پنجم و ششم برای یک شرکت خیلی خوب برنامه ریزی کرده و سعی می کند برای کار به آن شرکت مراجعه کند تا هم حقوق بالاتری بگیرد و هم موقعیت شغلی خوبی پیدا کند.
با توجه به موارد بالا اگر یک فرد از ۲۲ سالگی اقدام به برنامه نویسی کرده باشد، پس از شش سال ۲۸ سالش شده و حالات موقعی است که باید برای آینده اش برنامه ریزی کرده و موقعیت ثابتی را برای خودش دست و پا کند. این موقعیت شخص را با توجه به میزان تسلطش در برنامه نویسی متفاوت است. اگر شخص تجربه کافی را پیدا نکرده باشد باید دو سال دیگر را جهت کسب دانش لازم کسب کرده باشد و پس از این دو سال او ۳۰ ساله شده ، چیزی که بیشتر شرکتهای ایرانی با تردید به او نگاه می کنند. ( حالا اگر عدد ۲۲ را برای شروع بالا یا پایین کنیم شرایط متفاوت تر هم خواهد شد ) توجه داشته باشید که چنانچه در بالا آمد شرکت های کوچک ایرانی در جستجوی برنامه نویس های ارزان تر و مشتاق تر هستند و افراد ۳۰ ساله با ۷ – ۸ سال سابقه کار و با قیمت های بالا ( بخاطر شرایط زندگی ) را کمتر می پسندند. اینجاست که یک شخص باید از خودش بپرسد که تا چه زمانی باید به برنامه نویسی ادامه بدهد. و اینکه یک شرکت تا چه زمانی حاضر است حقوق ۲ یا چند نفر را به او بدهد. معمولا راه‌های پیش روی این افراد اینهاست:
با توجه به تجربه و لینک‌ها (بخوانید دوستان و بعضا رانت‌ها)یی که پیدا کرده، اقدام به راه اندازی یک شرکت دیگر کند. کارش را کلا عوض کند.
تغییر پست بدهد مثلا به یک طراح سیستم تبدیل شود ( این مورد نسبت به موارد دیگر خیلی بهتر است یکی از دلایل آن تجربه کافی در برنامه نویسی است و اینکه یک شرکت ( حتی ایرانی ) به یک طراح با تجربه بیشتر از یک طراح تازه کار اعتماد می کند و همین امر باعث درآمدزایی بیشتر می شود )
همین طور برنامه نویس بماند و با همین حقوق سر کند و از این مورد که در آینده احتمال بیشتر نشدن حقوقش وجود داشته باشد نهراسد.
به شرکت های خیلی بزرگ تر مثل خدمات انفورماتیک بپیوندد که امثال خود او در آنجا بیشتر هستند و موقعیت شغلی بهتری پیدا کند.
به ساختار دولتی به عنوان یک کارشناس فنی و یا چیزی شبیه به این ملحق شود. فکر رفتن به خارج باشد. تبدیل به یک فری لنسر بشود. به این معنی که پروژه گرفته و شخصا و یا با یک تیم که خودش تعیین می کند انجام بدهد. با توجه به لینک هایی که پیدا کرده اقدام به دلالی نرم افزار کند. و مواردی از این دست.
موارد بالا مواردی است که به نظر من می رسد و نظر دیگری هم ندارم. در کل نظر شخصی من این است که علاقه و اشتیاق به برنامه نویسی نباید شخص را از آینده نگری بازبدارد و باعث شود که تصمیم های اشتباه را جایگزین علاقه کند. خود من وقتی به ۳۰ سال برسم مسلما تغییر پست خواهم دادو تا آن موقع سعی در کسب تجربه کافی خواهم کرد و به شما هم توصیه می کنم که موقعیت شغلیتان را برای چند سال آینده بررسی و بازنگری کنید.

hossein71
چهارشنبه 08 اردیبهشت 1389, 22:19 عصر
سلام
من الان 17 سالمه و برنامه نویس رو از 15 سالگی با vb شروع کردم.در طی این دو سال یک بازی(1 ماه طول کشید) نوشتم و الان هم در حال انجام یک پروژه در زمینه ادبیات هستم.به نظر شما من تا چند سال دیگه به یک برنامه نویس حرفه ای تبدیل می شم.

Felony
چهارشنبه 08 اردیبهشت 1389, 22:39 عصر
سلام
من الان 17 سالمه و برنامه نویس رو از 15 سالگی با vb شروع کردم.در طی این دو سال یک بازی(1 ماه طول کشید) نوشتم و الان هم در حال انجام یک پروژه در زمینه ادبیات هستم.به نظر شما من تا چند سال دیگه به یک برنامه نویس حرفه ای تبدیل می شم.


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

FastCode
چهارشنبه 08 اردیبهشت 1389, 23:00 عصر
من هم از 11 12 سالگی(یادم نیست کدوم) شروع کردم و به 7 8 تا زبون مسلطم و همه ی کارهام رو خودم انجام میدم.
الان هم 17 سالمه.
تا حالا 6 سال سابقه کار دارم.
یعنی قبل از رفتن به دانشگاه میتونم architect بشم؟:گیج: :لبخند: :کف: :قهقهه: :متعجب: :لبخندساده: :تشویق: :متفکر: :بامزه: :قهقهه: :لبخند: :تشویق: :کف: بازم smiley میخوام.

FastCode
پنج شنبه 09 اردیبهشت 1389, 05:52 صبح
واقعاً شما تو این سن به 7-8 تا زبون مسلطی؟ منظورت از تسلط چیه ؟ فرضاً اونقدری هست که الآن یه برنامه ماشین حساب نوشته شده با یه زبون سطح بالا رو با تمام جزئیات GUI ، با استفاده از C یا Asm پیاده سازی کنی ؟ :بامزه:
بله.
البته با GUI در ASM خیلی قوی نیستم ولی کمی کار کردم.(در حد ایجاد فرم و حرکت دادنشو نوشتن چیز روش)

mehdi.mousavi
پنج شنبه 09 اردیبهشت 1389, 13:07 عصر
من هم از 11 12 سالگی(یادم نیست کدوم) شروع کردم و به 7 8 تا زبون مسلطم

میتونم بپرسم به چه زبانهایی تسلط دارید؟

mehdi.mousavi
پنج شنبه 09 اردیبهشت 1389, 13:12 عصر
قبل از هر چیز باید بگم منبع این مطالب من نیستم ، فقط لینک مطلب را گم کردم.

مهم نیست. من پیداش کردم :لبخندساده:
http://daghaghzadeh.blogfa.com/post-2.aspx
http://daghaghzadeh.blogfa.com/post-1.aspx

FastCode
پنج شنبه 09 اردیبهشت 1389, 17:43 عصر
میتونم بپرسم به چه زبانهایی تسلط دارید؟
البته.
به ترتیب فراگیری.

vb6(این یکی رو متاسفانه)
VB.Net(7 و 8 و 9)
C#‎‎(2 و 3 و 4)
J#
F#(1.9 و 2)
C++‎‎و C++‎/CLI
Assembly(MASM و C++‎‎ Inline-Assembly)
BrainFuck(این از همه سخت تره)(خیلی کم باهاش کار کردم.)

Rejnev
پنج شنبه 09 اردیبهشت 1389, 19:37 عصر
BrainFuck(این از همه سخت تره)[/ltr]
واقعا این یک زبانه؟!!!:متعجب:
احساس میکنم اسمش یکم ناجوره:لبخند:

FastCode
پنج شنبه 09 اردیبهشت 1389, 19:47 عصر
واقعا این یک زبانه؟!!!:متعجب:
احساس میکنم اسمش یکم ناجوره:لبخند:

http://en.wikipedia.org/wiki/Brainfuck

منم بخاطر همین رفتم دنبالش.:خجالت:
شوخی کردم.
توی stackoverflow راجع بهش خوندم.

Dr.Bronx
پنج شنبه 09 اردیبهشت 1389, 20:35 عصر
فیلم هندیه فکر کنم !!!
واسه یه hello world

کدوم ........ همچین زبونی رو اختراع کرده ؟

+++++ +++++ initialize counter (cell #0) to 10
[ use loop to set the next four cells to 70/100/30/10
> +++++ ++ add 7 to cell #1
> +++++ +++++ add 10 to cell #2
> +++ add 3 to cell #3
> + add 1 to cell #4
<<<< - decrement counter (cell #0)
]
> ++ . print 'H'
> + . print 'e'
+++++ ++ . print 'l'
. print 'l'
+++ . print 'o'
>++ . print ' '
<< +++++ +++++ +++++ . print 'W'
> . print 'o'
+++ . print 'r'
----- - . print 'l'
----- --- . print 'd'
> + . print '!'
> . print '\n'

FastCode
پنج شنبه 09 اردیبهشت 1389, 20:37 عصر
فیلم هندیه فکر کنم !!!
واسه یه hello world

کدوم ........ همچین زبونی رو اختراع کرده ؟

+++++ +++++ initialize counter (cell #0) to 10
[ use loop to set the next four cells to 70/100/30/10
> +++++ ++ add 7 to cell #1
> +++++ +++++ add 10 to cell #2
> +++ add 3 to cell #3
> + add 1 to cell #4
<<<< - decrement counter (cell #0)
]
> ++ . print 'H'
> + . print 'e'
+++++ ++ . print 'l'
. print 'l'
+++ . print 'o'
>++ . print ' '
<< +++++ +++++ +++++ . print 'W'
> . print 'o'
+++ . print 'r'
----- - . print 'l'
----- --- . print 'd'
> + . print '!'
> . print '\n'
Urban Müller

Alireza_Salehi
پنج شنبه 09 اردیبهشت 1389, 22:44 عصر
بابا بی خیال ، این اونور آبی ها چقدر دلشون خوشه ، هر روز یه مدل جدید زبون برنامه نویسی در میکنن...