یکی از بزرگترین پرسشهای مطرح شده توسط افرادی که قصد یادگیری برنامهنویسی را دارند این است که آیا یادگیری برنامهنویسی شرط سنی خاصی دارد و تنها افرادی که سنین پایینی دارند، باید به فکر یادگیری برنامهنویسی باشند؟ در این مقاله قصد داریم، اطلاعات جالب و ارزشمندی در اختیارتان قرار دهیم که شاید کمتر در مورد آنها مطلبی خوانده باشید. افرادی که تمایل به یادگیری برنامهنویسی دارند، همواره به این مسئله فکر میکنند که بازه سنی برای یادگیری و ورود حرفهای به دنیای برنامهنویسی چه مقطعی است؟ برخی دیگر این پرسش را مطرح میکنند که برنامهنویسی کار سخت و پیچیدهای است که بازنشستگی سریع در آن دور از انتظار نیست. در این مقاله قصد داریم پژوهشهایی که در این زمینه انجام دادهایم را با شما به اشتراک قرار دهیم تا بدانید حقیقت چیست.
پیشنهاد مقاله: زندگی روزمره یک برنامهنویس به چه صورتی است: خوب، بد، و زشت
چالشی بزرگ به نام محدودیت سنی
متاسفانه جملهای نه چندان جالب از زبان برخی افراد شاغل در دنیای فناوری نقل میشود که میگویند: «فناوری محدودیت سني دارد». آمارها نشان میدهند، بیش از 93٪ توسعهدهندگان حرفهای در سال 2018 نزدیک به 45 سال سن داشتهاند و 7٪ از آنها سنشان بالاتر از 45 سال بود. در ظاهر اینگونه به نظر میرسد که برنامهنویسی، حوزهای از فناوری اطلاعات است که متاثر از سن است. به بیان دقیقتر، 28 سال در این حوزه میانسالی و 35 سالگی بلوغ و حرکت در سرآشیبی بازنشستگی است.
اکنون این پرسش مطرح است که آیا تاثیر سن در برنامهنویسی نقش تعیین کنندهای دارد و آیا افزایش سن تاثیر منفی در برنامهنویسی یا حتا یادگیری آن دارد؟ در ادامه قصد داریم به شکل موشکافانهترین افزایش سن و تاثیر آن روی حرفه برنامهنویسی را مورد بررسی قرار دهیم.
تجربه برنامهنویسی
تقریبا برای همه افراد شاغل در دنیای برنامهنویسی این پرسش مطرح میشود که آیا برنامهنویسهای قدیمی همانند نیروی کار جوان عملکرد قابل قبول و درخشانی دارند؟
برخی بر این باور هستند که افراد مسن در مقایسه با نیروی کار جوان در انجام کارهایی که نیازمند به کارگیری فناوریهای پیشرفته و خاص است، بهرهوری پایینتری دارند. پژوهشی که در سال 2017 انجام شد و بر مبنای نظریه طرحواره (schema theory)انجام گرفت، نشان داد که دیدگاه عموم با آنچه در دنیای واقعی وجود دارد در تضاد است.
این گروه تقحیقاتی برای انجام آزمایش اولیه مدل، یک آزمون برنامهنویسی با حضور 140 شرکتکننده در زمینههای مرتبط با فناوری در ردههای سنی 19 تا 54 سال ترتیب دادند. در این آزمون از شركتكنندگان درخواست شد در یک بازه زمانی مشخص، یک برنامه ساده نرمافزاری را آماده کنند.
نتایج به دست آمده به این نکته اشاره داشت که تجربه تاثیر مثبت شگرفی در کدنویسی بهتر دارد. به بیان دقیقتر، تجربه در برنامهنویسی به میزان قابل توجهی باعث بهبود عملکرد افراد میشود و جالب آنکه برنامهنویسان مجرب به شکر بهتری قادر به استفاده بهینه از زمان برای به سرانجام رساندن وظایف هستند.
علاوه بر این، آزمون مذکور نشان داد که افزایش تجربه در کدنویسی باعث میشود ارتباط بین استرس و عملکرد برنامهنویسی در شرایط موازنه قرار بگیرد و به جای آنکه به سمت منفی سوق پیدا کند به سمت خنثی برود.
در مجموع آزمون فوق نشان داد بر خلاف تصوری که تاکنون وجود داشته، عملکرد کدنویسان با افزایش سن کم نمیشود و پشتوانه سالها تجربه در کدنویسی، نه تنها مانع بروز اشتباهات رایج میشود، بلکه به افراد اجازه میدهد به شکل بهتری کدنویسی کنند.
پیشنهاد مقاله: چگونه با عبور از سن 40 سالگی انتخاب شغلی مناسبی داشته باشیم؟
آیا برنامهنویسان با افزایش سن قادر به پیشرفت هستند؟
بد نیست بدانید که بیشتر برنامهنویسهای قدیمی بر این باور هستند که قربانی تبعیض هستند. آنها تصور میکنند شرکتها، به نفع برنامهنویسهای جوانتر که ممکن است دانش بیشتری در مورد جدیدترین فناوریها داشته باشند، آنها را اخراج میکنند. اجازه دهید، کم و کیف این مسئله را به شکل حرفهای و با ارائه دلایل منطقی بررسی کنیم.
پژوهشی که توسط دانشگاه ایالتی کارولینای شمالی تحت عنوان مبارزه با پدیده سنگرایی، انجام گرفت نشان داد که برنامهنویسهای قدیمی ممکن است بیشتر از همتایان جوان خود، درباره تازههای فناوری اطلاعات، اطلاع داشته باشند و جالب آنکه قادر هستند فناوریهای زودگذر یا ماندگار را به خوبی شناسایی کنند.
دکتر امرسون مورفی هیل، استادیار علوم کامپیوتر دانشگاه ایالتی کارولینای شمالی که یکی از نویسندگان این مقاله تحقیقاتی است در این زمینه میگوید: «ما دانش برنامهنویسهای جوان و قدیمی را در ارتباط با 10 فناوری که قدمتی ده ساله دارند بررسی کردیم. در بیشتر موارد، برنامهنویسهای قدیمی و جوان تفاوت زیادی در مورد تسلط بر فناوریهای مذکور ندارد، اما بر خلاف دیدگاه عامه مردم، دو استثنا در این زمینه وجود دارد. اینگونه به نظر میرسد که برنامهنویسان قدیمی اطلاعات جالبتر و کاملتری در ارتباط با iOS و ویندوز 7 نسبت به برنامهنویسان تازهکار داشتند».
در پژوهش فوق، آنها برای اطلاع درباره نحوه تغییر دانش برنامهنویسها با افزایش سن از وبسایت Stack Overflow کمک گرفتند. برنامهنویسان در سایت مذکور با مطرح کردن پرسشها، پاسخهایی از همتایان خود دریافت میکنند و پاسخها بر مبنای دقیق و درست بودن امتیازهایی را دریافت میکنند. آنها از این مکانیزم امتیازدهی استفاده کردند که در اصطلاح تخصصی به آن اعتبار reputation گفته میشود و به عنوان معیاری برای ارزیابی دانش فرد پاسخدهنده استفاده میشود. نتیجه تحقیق این بود که که هرچه افراد مسنتر میشوند، امتیاز آنها افزایش پیدا میکند، زیرا دانش عمیقتری در ارتباط با مسائل پیدا میکنند.
دکتر مورفی هیل بر این باور است که باید دیدگاههای اشتباه و بعضا تعصبات درباره برنامهنویسهای قدیمی و جوان را کنار بگذاریم و مردم را تنها بر مبنای شایستگیهایی که دارند ارزیابی کنیم.
نگرش دولتها نسبت به برنامهنویسان قدیمی
شاید از شنیدین این حرف تعجب کنید که برخی دولتها، برنامهنویسان بالای 60 سال را در مشاغل مهم و حساس به خدمت میگیرند. در بیشتر موارد این برنامهنویسان قدیمی مسئولیت هدایت تیمی از برنامهنویسان جوان را بر عهده دارند.
به طور سنتی، دولتها ترجیح میدهند از سیستمها و فناوریهای قدیمی استفاده کنند، زیرا در طول سالها کارایی خود را به اثبات رساندهاند، مشکلات آنها برطرف شده و همگان قادر به استفاده از آنها هستند. بر همین اساس، به سراغ برنامهنویسهای قدیمی به جای توسعهدهندگان جوانتر میروند. این تفکر وجود دارد که افراد مسن، برای کار روی این فناوریها صلاحیت بیشتری دارند، زیرا از زمان عرضه فناوری از آ« استفاده کردهاند و کم و کیف فناوری را به خوبی درک کردهاند.
با اینحال، نکته مهمی که باید در مورد آن اطلاع داشته باشیم این است که بخشهای فناوری اطلاعات دولتی نیازمند به کارگیری فناوریهای جدید و در نتیجه سرمایهگذاری روی استعدادهای جوان هستند. به بیان دقیقتر، باید تعادلی میان توسعهدهندگان جدید و قدیمی وجود داشته باشد تا کارها به بهترین شکل انجام شوند. به طور معمول، توسعهدهندگان جوان كنجكاو هستند و دوست دارند همه چیز را آزمایش کنند. به همین دلیل است که شرکتهای توسعه نرمافزاری روی جذب برنامهنویسهای جوان، سرمایهگذاری میکنند.
تاثیر سن در یادگیری برنامهنویسی
دکتر آن کالینز مک لاولین مدیر آزمایشگاه یادگیری، کهولت و ارگونومی شناختی دانشگاه دانشگاه ایالتی کارولینای شمالی بر این باور است که هر انسانی دو نوع توانایی دارد.
او توانایی اول را متبلور نامیده که اشاره به مباحثی مثل دانش شما از تاریخ و خاطرههای زندگی دارد. این مدل دانش به مرور زمان به دست میآید. این تواناییها در طول عمر با انسانها باقی میماند و در طول زندگی افزایش پیدا میکند.
توانایی دوم، رویکردی سیال دارد و شامل استدلال و نگه داشتن اطلاعات در ذهن و استفاده موثر از اطلاعات است. زمان اصلی دستیابی به این دانش حدود 30 سالگی است، اما ثابت نیست و برخی افراد ممکن است در سنین بالاتری نیز این دانش را به دست آورند.
با توجه به اینکه برنامهنویسی در گروه توانایی متبلور قرار میگیرد، میتوان نتیجه گرفت تا زمانی که یک برنامهنویس در این زمینه کار میکند، مهارتها و دانش وی در این زمینه تجمیع میشود و از اینرو افزایش سن تاثیر منفی در یادگیری ندارد.
البته همانگونه که اشاره شد، ترکیب مناسب برنامهنویسهای سنین مختلف باعث افزایش پیشرفت میشود. استعدادهای قدیمیتر عالی هستند و استعدادهای جوانتر یک دیدگاه جدید ارائه میدهند.
پیشنیازهای یادگیری برنامهنویسی چیست؟
همانگونه که اشاره کردیم، یادگیری برنامهنویسی بازه سنی خاصی ندارد، یعنی اگر خیلی جوان هستید یا فکر میکنید مسن هستید، نباید اینگونه تصور کنید که هنوز زمان برای یادگیری فرا نرسیده یا فرآیند یادگیری برای شما دیر شده است. برنامهنویسی را میتوان در هر سنی یاد گرفت. تنها باید علاقه و پشتکار داشته باشید.
برای یادگیری برنامهنویسی، باید قبل از هر چیز یک زبان برنامهنویسی انتخاب کنید و فرآیند یادگیری را روی آن متمرکز کنید. با این حال، قبل از آن، لازم است مقدماتی را از منطق، ساختار زبانهای برنامهنویسی، فلوچارت و الگوریتم یاد بگیرید. این موارد، مستقل از هر زبان برنامهنویسی هستند و اغلب مشکلی که وجود دارد، این است که افراد بدون دانش کافی در مورد این مباحث، اقدام به یادگیری یک زبان برنامهنویسی میکنند و اتفاقا همه اجزای زبان را هم به خوبی میآموزند. اما زمانی که قرار است به شکل مستقل کاری را انجام دهند، به مشکل بر میخورند. ریشه مشکل دقیقا در همین جا است.
یاد گرفتن زبان برنامهنویسی و ساختار آن، با یادگرفتن مهارت برنامهنویسی تفاوت دارد. یادگرفتن زبان برنامهنویسی، مثل یاد گرفتن حروف الفبا و مهارت نوشتن است، اما میدانیم که هر نوشتنی، الزاماً به معنای انشا نیست. تفاوت میان تسلط بر یک زبان برنامهنویسی با تسلط بر مهارت برنامهنویسی، مانند تفاوت دو درس املا و انشا است. برای انشا نوشتن، علاوه بر مهارت املا، نیازمند درک صحیح از ساختار جمله و اجزای آن هستیم. ضمنا، باید بدانیم که مفاهیم را چطور در قالب کلمات و جملات بیان کنیم و خواننده را از نقطهای به نقطه دیگر منتقل نماییم. این دقیقا همان مهارتی است که برای برنامهنویسی لازم داریم. در واقع، برنامهنویسی یک نوع انشا نویسی برای کامپیوترهاست.
یکی از بزرگترین دغدغههای افراد در فرآیند یادگیری برنامهنویسی این است که پیشنیازهای برنامهنویسی چیستند و آیا پیشنیازها را داریم یا خیر؟ در حالت کلی، یادگرفتن مهارت برنامهنویسی، شبیه به یادگیری زبان است. وجه مشترک میان زبانهای انسانی و زبانهای برنامهنویسی این است که به واسطه آنها، مطلبی از ذهن گوینده، به ذهن شنونده منتقل میشود.
بیشتر افرادی که برنامهنویسی نمیدانند بر این باورند که برنامهنویسی نیاز به استعداد یا امکانات خاصی دارد که احتمالا فقط در اختیار گروه خاصی از مردم وجود دارد. این باور درست نیست و در واقع، بیشتر انسانها، میتوانند برنامهنویسهای خوبی باشند؛ به شرطی که بخواهند. به لحاظ تئوری، هر کسی که توانایی درک زبان انسانی را دارد و میتواند حرف بزند یا بنویسد، توانایی یادگیری برنامهنویسی را دارد. از اینرو، خیلی نگران نباشید؛ برنامهنویسی آن قدرها هم که تصور میکنید، سخت نیست.
به لحاظ تحصیلات ضروری نیست که حتما دانش آموخته رشته علوم کامپیوتر باشید تا بتوانید برنامهنویس خوبی باشید. البته، مباحثی که در دانشگاه آموزش داده میشوند، اهمیت زیادی دارند، اما بسیاری از برنامهنویسان موفق وجود دارند که بدون داشتن مدرک، و تنها با صرف زمان و یادگیری مداوم مهارتهای برنامهنویسی در کار خود موفق شدهاند. از جمله پیشنیازهایی که برای یادگیری درست برنامهنویسی باید داشته باشید به موارد زیر باید اشاره کرد:
زبان انگلیسی: آگاهی در مورد زبان انگلیسی دست کم در حد مهارت خواندن و درک مطلب تاثیر زیادی در یادگیری برنامهنویسی دارد. از طرفی، اغلب منابع نیز به صورت ترجمه شده در دسترس نیستند و حتی در صورت ترجمه نیز، شاید اصالت مطلب مخدوش شود و چندان قابل استفاده نباشد. لذا، تسلط به زبان انگلیسی، یک مهارت بسیار کلیدی برای برنامهنویس شدن است.
آمار و ریاضیات: اگر دوست دارید در این راه موفق شوید، پیشنهاد میکنیم به فکر یادگیری ریاضیات گسسته باشید. درک صحیح مفاهیم ریاضی، در یادگیری برنامهنویسی بسیار مهم است. متأسفانه بسیاری از افراد این موضوع را جدی نمیگیرند و دچار مشکلاتی میشوند؛ اما ریاضیات و به ویژه ریاضی گسسته، بیش از آنچه به نظر میرسد، در یادگیری برنامهنویسی مهم هستند.
منطق: کامپیوترها همیشه بر پایه اصول منطقی مشخص کار میکنند و مهمتر اینکه بر مبنای زبان مشخصی قادر به تعامل با آنها هستیم. به این موضوع منطق گفته میشود. برای منطقی بودن درک اصول ریاضی، ضروری است. این موضوع برای برخی مردم ترسناک به نظر میرسد، اما اما منطق ریاضی چیزی است که بیشتر ما با آن آشنا هستیم و روزانه به شکل مستقیم یا غیرمستقیم از آن استفاده میکنیم.
بوتکمپ برنامهنویسی بامداد، کوتاهترین مسیر برای بدل شدن به یک برنامهنویس
کلام آخر
در این مقاله سعی کردیم بر مبنای آمارها و پژوهشهای انجام شده در این زمینه اطلاعات جالبی در ارتباط با برنامهنویسی و تاثیر سن بر آن به شما ارائه کنیم. همانگونه که ممکن است حدس زده باشید، سن و سال، به اندازهای که برخی افرادی به آن اشاره دارند، نمیتواند روی حرفه برنامه نویسی و یادگیری تاثیر داشته باشد. به بیان دقیقتر، افزایش سن هیچ تاثیر منفی روی یادگیری یا انجام پروژههای برنامهنویسی ندارد.
با این توصیف باید بگوییم که شما در هر مقطع سنی قادر به یادگیری حرفهای برنامهنویسی و کسب درآمد از آن هستیم. البته به این نکته دقت کنید که همانند هر حرفه دیگری، در هنگام یادگیری ممکن است احساس خستگی کنید. این موضوع به دلایل مختلفی بروز میکند که اولین تماس با یک مبحث جدید و ناشناخته یکی از دلایل آن است.
منابع:
https://www.parkersoftware.com/blog/programming-jobs-and-the-age-effect/
https://www.govtech.com/education/do-computer-programmers-improve-with-age.html