این مقاله را زمانی مینویسم که در آستانه ۴۰ سالگی هستم و نزدیک به ۱۳ سال به صورت حرفهای برنامهنویس بودهام. در طول این سالها آنقدر عاشق کاری بودم که انجامش میدادم که نه به آینده فکر میکردم و نه حقوق متوسطی که میگرفتم برایم مشکلی محسوب میشد. میخواستم برای همیشه برنامهنویس بمانم چون از انجام این کار لذت میبردم.
اما یک اتفاق ساده باعث شد که کمی بیشتر به موقعیت و جایگاهی که دارم یا خواهم داشت فکر کنم، برای همین کمی در این مورد جستجو کردم که سعی میکنم بخشی از آن را به اشتراک بگذارم، شاید مفید باشد.
افسانهای در کوچه پس کوچههای Silicon Valley وجود دارد که میگوید ۳۵ سالگی سن بازنشستگی برنامهنویسان است، درست مثل سن بازنشستگی فوتبالیستها و ورزشکاران حرفهای.
دقیقا نمیتوان گفت که این افسانه از کجا آمده و دلیلش چیست ولی تجربه واقعی برخی توسعهدهندگان میانسال نشان میدهد که نرخ استخدامپذیری آنها بعد از ۳۵ سالگی به شدت کاهش مییابد.
این موضوع برای برنامهنویسان چینی هم مشکل ساز شده و باعث تشدید بحران میانسالی توسعهدهندگان شده و توجه عدهای از مدیران را جلب کرده.
من که چنین افسانهای را نشنیده بودم و چیزی از آن نمیدانستم چون هم به آن فکر نمیکردم و هم در ایران زندگی و کار میکردم ولی بعد از فهمیدن این موضوع شگفت زده شدم و سعی کردم کمی بیشتر بررسی کنم.
آمارهای مختلفی در مورد جنبههای مختلف کاری توسعهدهندگان نرمافزار وجود دارد که در جامعههای آماری مختلفی انجام شده. با توجه به این که اکثر برنامهنویسان روزانه و در طول دوره کاری خودشان مراجعات زیادی به سایت stackoverflow دارند من آمارهای این سایت را مرجع قرار دادم.
همانطور که در آمارها هم مشخص است نزدیک به ۸۰ درصد برنامهنویسان کمتر از ۴۰ سال سن دارند، بیش از ۶۰ درصد آنها زیر ۳۵ سال دارند.
این آمارها تحت تاثیر تعداد زیاد برنامهنویس هندی است که اصولا متوسط سنی کمتری نسبت به برنامهنویسان آمریکایی دارند. اما وضعیت چین نیز مشابه این آمار است و سهم عمده را جوانان زیر ۳۵ سال تشکیل میدهند.
آمارها صرفا وضعیت موجود را نشان میدهند و از روی اعداد نمیتوان دلایل پشت آنها را فهمید. حتی شاید این دلایل منطقی یا قانع کننده نباشند و از الگوهای اشتباهی پیروی کنند.
آماری در مورد برنامهنویسان ایرانی پیدا نکردم احتمالا به دلایلی که بررسی خواهیم کرد و همچنین نرخ مهاجرت بالا در این حوزه میانگین پایین تر باشد.
در مواجهه با این آمار واکنشها در بین برنامهنویسان متفاوت است، برخی این موضوع را به عنوان واقعیت محتوم میپذیرند و به سرعت وارد حوزههای کاری غیر از نوشتن کد میشوند.
بعضی از افراد به کلی منکر چنین رویکردی در صنعت میشوند چون برنامهنویسان میانسال و مسن زیادی میشناسند یا خود مسن هستند و سالهاست که برنامهنویسی میکنند، گاهی آمار را هم زیر سوال میبرند یا موضوع را به خاطر وجود تعداد زیاد شرکتهای نوپا (Startup) میدانند.
برخی دیگر هرچند واقعیت آمار را میپذیرند ولی قبول ندارند که لزوما دلیل قانع کنندهای پشت این شرایط وجود داشته باشد و آن را نوعی جداسازی و تبعیض سنی غیر عاقلانه میدانند و مثالهای نقضی برای این موضوع میآورند (Uncle Bob) و تاکید میکنند که این موضوع ارتباطی با تواناهی جسمی و ذهنی برنامهنویسان ندارد و مشکل به خاطر عدم تلاش برنامهنویسان برای بهروز رسانی مهارتها و دانش خودشان است و پیشنهادهایی برای حفظ توانمندی و بهروز بودن برنامهنویسان مسنتر ارائه میکنند.
احتمالا عنوانهایی مثل مهندس معمار با تجربه، پزشک حاذق، نجار استادکار شنیده باشید. برخی شغلها و رشتهها هستند که هر چه از مدت حضور فرد در آن بگذرد و تجربه بیشتری داشته باشد ارزشمندتر میشود.
اما در مورد حوزه فناوری اطلاعات و ارتباطات موضوع کمی فرق میکند، اگر سن شما و حضور شما در صنعت از حد خاصی بیشتر باشد تجربه شما کم کم ارزش کمتری پیدا میکند، چون سرعت تغییرات و پیشرفت در این صنعت آنقدر زیاد است که تجربه گذشته شما احتمالا مربوط به فناوریهای قدیمیتر خواهد بود که امروز دیگر وجود ندارند. بنابراین گاهی عنوان مهندس نرمافزار با تجریه یا توسعه دهنده با تجربه معادل یک فرد با اطلاعات قدیمی و تاریخ گذشته و آشنا به فناوریها و چهارچوبهای از رده خارج یا غیر بهروز در نظر گرفته میشود.
درست است که برخی اصول بنیادین بین این فناوریها مشترکند و با جایگزینی فناوریهای قدیمی همچنان پابرجا خواهند بود ولی یادگیری دائمی جزو جدایی ناپذیر این صنعت است.
نظرهای گوناگونی برای توضیح این که چرا توزیع سن برنامه نویسان این گونه است وجود دارد. برخی از برنامهنویسان مسنتر، شرکتها را به این متهم میکنند که ارزش تجربه و مهارت افراد را نمیدانند ولی با کمی جستجو به دلایل زیر برخورد میکنیم.
نظریه کاهش توانایی فیزیکی
در صنعتی که فشار کاری و اضافه کاری معمول هست توان جسمی اهمیت پیدا میکند اما این مورد نمیتواند برای همه یکسان باشد و فرد به فرد متفاوت است، گاهی یک فرد مسن انرژی و توان فیزیکی بسیار بیشتری نسبت به یک جوان دارد. سبک زندگی و ورزش میتواند توان جسمانی فرد را به شدت تحت تاثیر بگذارد. البته بماند که لزوما همه حوزههای برنامهنویسی سخت نیستند و نیاز جدی هم به توانایی فیزیکی بالا ندارد، لذا این نمیتواند توضیح کافی برای ترجیح دادن جوانترها به قدیمیترها باشد.
نظریه کاهش توانایی ذهنی و یادگیری
این دلیل شاید ابتدا معقول به نظر برسد اما مطالعه جدی که نشان دهد توان ذهنی در همه افراد بعد از ۳۵ سال کاهش مییابد، انجام نشده، بلکه مطالعاتی وجود دارد که عکس این موضوع را نشان میدهد، یعنی توانایی تفکر منطقی با افزایش سن بیشتر هم میشود.
رابطه با همکاران
با توجه به آمار مشاهده میشود که ترکیب جمعیتی اکثر شرکتها به نفع جوانان است، این موضوع باعث عدم درک متقابل و توانایی برقراری ارتباط موثر بین برنامهنویسان مسن و جوان به علت وجود فاصله نسلی میشود که در نهایت باعث انزوای برنامهنویسان مسنتر و ترک آنها میشود.
انعطافپذیرتری
ادعا میشود که برنامهنویسان مسنتر انعطافپذیری و انتقادپذیری کمتری نسب به جوانترها دارند. البته که رفتار حرفهای ایجاب میکند انتقادهای منطقی مورد پذیرش قرار بگیرد. از طرفی، کسی هم که کم تجربه است دلیلی ندارد در مقابل یک تصمیم اشتباه که ایدهای از عواقب آن ندارد، ایستادگی کند. بنابراین تجربه گاهی باعث جلوگیری از ضررهای میلیاردی میشود.
بهروز نبودن
یکی از مهمترین دلایلی که باعث ترجیح برنامهنویسان جوانتر میشود بهروز نبودن برنامهنویسان قدیمیتر است.
اما مطالعه اولیه که در دانشگاه کارونیای شمالی انجام شده نشان میدهد که گاهی برنامهنویسان مسنتر اطلاعات بیشتری در مورد فناوریهای نوظهور نسبت به همتایان جوان خود دارند. دکتر امرسون مورفی هیل (Emerson Murphy-Hill)، استادیار علوم کامپیوتر در NCSU و یکی از نویسندگان آن مقاله تحقیقی در مورد این مطالعه گفت: "ما دانش برنامه نویسان جوان و قدیمی را در مورد ۱۰ فناوری که در ۱۰ سال گذشته توسعه یافتهاند بررسی کردیم. در اکثر بخشها تفاوت خیلی زیادی در دانش توسعهدهندگان جوان و قدیمی در این فناوریها وجود ندارد. دکتر مورفی میگوید باید پیشداوری خودمان را در مورد برنامهنویسان جوان و قدیمی مورد ارزیابی مجدد قرار دهیم.
از طرفی فردی که در این حوزه کار کرده در طول دوران کاری خودش آنقدر فناوریها، زبانها و چهارچوبهای مختلف و جدیدی دیده که به مرور حساسیت و کنجکاویش نسبت به فناوریهای جدید کم میشود و عملا با دیدن یک چهارچوب جدید خواهد گفت باز هم یک بسته جدید که تا چند وقت دیگر از رده خارج خواهد شد! برای همین شاید از انگیزه لازم برای یادگیری برخوردار نباشد.
صنعت نسبتاً جدید
به هر حال صنعت نرمافزار نسبت به صنایع دیگر نوپا و در حال رشدی محسوب میشود. این صنعت در کشورهای نو ظهور اقتصادی مثل چین و هند همچنان در حال رشد است و سالانه ورودیهای زیادی دارد که کار خود را در این صنعت آغاز میکنند. شاید مانند صنایع دیگر گذر زمان باعث ایجاد تعادل بیشتری بین ورودی و خروجیهای این صنعت شود و میانگین سنی بهبود یابد.
از دست دادن علاقه
انسان موجود پیچیدهای است و ممکن است علاقمندیهایش در طول زمان تغییراتی عجیب و گاهی متناقضی داشته باشد، گروهی از برنامهنویسان هم ممکن است علاقمندی جدیدی پیدا کنند یا از کاری که انجام میدادهاند خسته شوند، بنابراین قبل از این که به سن بازنشستگی برسند برنامهنویسی را کنار میگذارند، یا حتی این علاقمندی را تا سن بالای ۶۰ سال حفظ میکنند.
فرهنگ استارتآپی
کارآفرینان نوپا که آرزوی تغییر دنیا را دارند نیاز دارند که بدوز و بشکافهای زیادی انجام دهند، به سرعت بسازند و خراب کنند، آنها نمیتوانند مدت طولانی منتظر بمانند تا یک محصول آماده شود و تازه متوجه شوند که ایدهشان خوب نبوده. ایدهها به تنهایی ارزشی ندارند، باید آنها را در عمل و اجرا دید. باید با کمترین هزینه و زمان به یک محصول اولیه رسید. این نیاز به سرعت و کاهش هزینه کارآفرینان را به سمت برنامهنویسان جوان و کم خرج سوق میدهد.
به نظر من دلیل اقتصادی مهمترین دلیلی است که باعث ترجیح برنامهنویسان جوان میشود. برنامهنویس با تجربه علاوه بر این که به واسطه تجربه و تواناییش حقوق درخواستی بالاتری نسبت به برنامه نویسان جوان دارد در بیشتر موارد به علت متاهل بودن و احتمال وجود فرزندان هزینه زندگی بالاتری نیز دارند.
همچنین مسولیتهای خانوادگی باعث میشود علاقه برنامهنویسان مسنتر به اضافه کاریهای طولانی و شبانه کمتر شود، در عوض برنامهنویسان جوان حقوق کمتری میگیرند و مشکل کمتری با اضافه کاری و ساعات طولانی کار دارند، پس به لحاظ اقتصادی استخدام برنامهنویس جوان به ازای هر نفر نسبت به برنامهنویس با تجربه صرفه اقتصادی بیشتری دارد. این باعث میشود که مدیران علاقه یا توان مالی به کاری گیری تعداد زیادی برنامهنویس با تجربه را در شرکتها نداشته باشند.
اما سوال اصلی این است که واقعا وجود چه تعداد برنامهنویس با تجربه برای شرکتها مناسب است؟ نقطه تعادل کجاست؟ آیا ساختار سلسله مراتبی شرکتها خود باعث کاهش نیاز به افراد با تجربه نیست؟
مدیریت
در شرکتهایی که دارای جایگاههای مدیریتی هستند برنامهنویسان به بخشهای مدیریتی منتقل میشوند، البته معمولا به جای انتقال از واژه ارتقا استفاده میشود که بار معنایی پیشرفت و بهبود جایگاه را دارد. اینکه چقدر از برنامهنویسان علاقمند هستند تا دست از برنامهنویسی بکشند و وارد حوزه مدیریت شوند بحث جداییست اما با توجه به شرایط موجود این نوعی جبر و ضرورت برای حفظ جریان مالی است.
در شرکتهای کوچکتر که ساختار سلسله مراتبی جدی وجود ندارد ماندن طولانی مدت برنامهنویس توجیهی ندارد مگر این که در سود پروژهها شریک باشید یا مقداری از سهام برای شما باشد.
مشاوره
برخی وارد حوزه مشاوره میشوند، اینجا حوزهای است که معمولا با تجربهها وارد آن میشود. یک مشاور باید انباشتی از تجربه داشته باشد تا بتواند مشاوره ارزشمندی ارائه کند.
راهاندازی کسب و کار جدید
قسمی از برنامه نویسان هم برای اجرای ایدههای شخصی کسب و کار خود را راهاندازی میکنند.
آموزش
یکی از بخشهای مهمی که برنامهنویسان باتجربه وارد آن میشوند بخش آموزش است، اینجا میتواند جایی باشد که تجربهها از نسل قبل به نسل بعد منتقل میشود. راههای مختلفی برای آموزش وجود دارد، از موسسات آموزش گرفته تا دانشگاهها و کانال یوتوب که هر روز بر تعداد آنها افزوده میشود.
برنامهنویس ماندن
غیر ممکن نیست که تا سن ۵۰ یا ۶۰ سالگی برنامهنویس بمانید، اما تعداد این افراد نسبت به جوانان بسیار کمتر است و نیاز به یک سبک زندگی و انگیزه خاصی دارد.
شرایط برنامهنویسان در ایران نیاز به پایش جدی دارد اما گاهی گفته میشود که چون ما به لحاظ فناوری عقب هستیم یا معمولا مصرف کننده فناوری هستیم شرکتها نیاز به حضور برنامهنویسان باتجربه ندارند.
از کریگ برت (Craig Barrett) مدیر اجرایی پیشین شرکت اینتل نقل قول مشهوری وجود دارد که گفته نیمه عمر مهندسان سختافزار و نرمافزار فقط چند سال است.
آمارها نشان میدهد متوسط ماندگاری برنامهنویسان در شرکتهای معروف آمریکایی ۱-۳ سال بیشتر نیست (منبع) بنابراین این استدلال در مورد ایران خیلی صحیح نخواهد بود. البته با توجه به شرایط اقتصادی ایران قطعا دلیل اقتصاد در ایران پررنگتر از دیگر هم خواهد بود.
این روزها هوش مصنوعی از خزان قبلی خود خارج شده و دوباره بر سر زبانها افتاده و شاهد پیشرفتهایی در این زمینه بودهایم. صحبتها در مورد تاثیر هوش مصنوعی در مشاغل مختلف زیاد است، نمیتوانیم بگوییم این ابزار و پیشرفتهای آینده آن هیچ تاثیر روی کارها ندارد به خصوص برنامهنویسی. گرچه تا امروز من نتوانستهام استفاده جدی و واقعی از این ابزار در نوشتن کدهایم داشته باشم ولی امکان پیشرفتهتر شدن این ابزار دور از ذهن نیست.
پیشبینی این که هوشمصنوعی روی سن برنامه نویسان چه تاثیری بگذارد کار آسانی نیست، میتوان گفت این ابزار نیاز به برنامهنویسان با تجربه را کمتر میکند بنابراین متوسط سن باز هم کمتر خواهد شد. از طرفی میتوان استدلال کرد که چون این ابزار کمک دست برنامهنویسان مسنتر خواهد شد بنابراین کارایی آنها را در حد یک برنامهنویس جوان افزایش خواهد داد.
باید صبر کرد و دید.
https://www.51cto.com/article/717499.html
https://survey.stackoverflow.co/2015#profile-age
https://survey.stackoverflow.co/2019#developer-profile-_-age
https://survey.stackoverflow.co/2023/#section-demographics-age
https://survey.stackoverflow.co/2024/developer-profile#demographics-age
https://dzone.com/articles/is-software-development-really-a-dead-end-job-afte
https://www.govtech.com/education/do-computer-programmers-improve-with-age.html
https://www.linkedin.com/pulse/what-happens-developers-once-reach-35-dina-bayasanova
https://abrarmasum.medium.com/when-do-programmers-retire-is-35-the-end-72d173760ee2
https://betterprogramming.pub/why-programmers-shouldnt-stay-in-one-company-for-a-long-time-67bf07f011a6
https://blog.stackademic.com/what-happens-when-you-reach-the-age-of-35-as-a-programmer-5bb7907bce91
https://medium.com/illumination/where-did-the-35-year-old-retirement-age-for-programmers-come-from-60a47d4744c8
https://simpleprogrammer.com/what-happens-to-older-programmersdevelopers/
https://thecodist.com/how-to-know-when-its-time-to-go/
https://medium.com/illumination/11-reasons-why-software-engineers-retire-early-exploring-career-transitions-and-lifestyle-choices-fbef7efde057