آیا برای یادگیری برنامه نویسی به مدرک دانشگاهی نیاز داریم؟
برنامه نویسی کامپیوتر پردرآمد ترین شغل جهان
با آغاز قرن بیست و یک میلادی و پررنگ تر شدن صنعت کامپیوتر و نرم افزار، برنامه نویسی همواره در ردیف پردرآمد ترین مشاغل دنیا قرار داشته، بگونه ای که تقاضا برای یادگیری و استفاده از آن به طور روزافزون در حال گسترش است.
علاوه بر این، پیشرفت بی وقفه تکنولوژی نیز در این امر بی تاثیر نبوده است.
نگاهی به اطراف خود بیندازید.
کامپیوتر زندگی ما رو متحول کرده است و هیچ چیز شبیه گذشته نیست.
مسیر یادگیری برنامه نویسی
متقاضیان یادگیری برنامه نویسی برای شروع راه های مختلفی پیش رو دارند اما مرسوم ترین و طبیعی ترین راه، ورود به دانشگاه و تحصیل در رشته های مربوط به کامپیوتر تلقی می شود.
اما این تفکر تا چه حد درست است؟
آیا برای موفقیت در زمینه برنامه نویسی نیاز به تحصیلات دانشگاهی مرتبط و اخذ مدرک های مرتبط به کامپیوتر داریم؟
آیا بهترین مسیر یادگیری برنامه نویسی ورود به دانشگاه است؟
آیا این یک انتخاب، بهتر بین راه های مختلف است، و یا تنها راه ممکن؟
برخی معتقدند برای برنامه نویس شدن و استخدام، نیازی به مدرک دانشگاهی نیست
بسیاری نیز به تبعیت از این حرف تحصیل و دانشگاه را پوچ و بی فایده دانسته و افراد موفقی همچون بیل گیتس و مارک زاکربرگ را مثال می زنند که آنها نیز تحصیلات دانشگاهی را رها کرده اند.
بیل گیتس موسس مایکروسافت و مارک زاکر برگ موسس فیسبوک، هر دو دانشجو دانشگاه هاروارد امریکا بوده اند که تحصیل را نیمه کاره رها کرده و به کسب و کار خود پرداخته اند.
در این مقاله سعی میکنیم که این موضوع را بررسی کنیم که آیا برای برنامه نویسی شدن نیاز به تحصیل در رشته های مرتبط به کامپیوتر در دانشگاه، و اخذ مدرک دانشگاهی هست یا خیر؟
طبیعتا مطالب این مقاله نظرات نویسنده آن بوده و الزاما منعکس کننده نظرات هم سوالی نمی باشد و انتشار آن به معنی تائید کامل محتوای آن نیست.
گستردگی برنامه نویسی و زمینه ها و جنبه های مختلف آن
برنامه نویسی کامپیوتر یک مفهوم واحد است، ولی همیشه به یک معنا بکار نمی رود.
بعنوان مثال نوشتن یک نرم افزار برای مدیریت اطلاعات کارکنان یک سازمان با برنامه نویسی برای یک ربات تراشکار، بسیار متفاوت است.
به هر دوی این کارها برنامه نویسی می گویند اما این کجا و آن کجا؟
در حقیقت هر کدام از زمینه های دانش و تکنولوژی به نحوی با کامپیوتر سروکار دارند و برنامه نویسی از نیاز های مهم آنان است.
مثلا هر چند که نیازهای یک کارخانه خودروسازی به کامپیوتر بسیار متفاوت از نیازهای یک موسسه تحقیقات پزشکی است اما بهرحال هر دو بواسطه نیاز به کامپیوتر، نیاز به برنامه نویسی قطعات کامپیوتری استفاده شده در صنعت خود را دارند.
علاوه بر این هر کدام از رشته های تحصیلی، ابزار ها و زبان های برنامه نویسی مناسب خود را دارند.
از زبان های PLC و SCL در اتوماسیون صنعتی گرفته تا زبان پایتون و R در علوم داده در رشته های کامپیوتر و یا زبان متلب در رشته مهندسی مکانیک، زمینه های وسیعی از برنامه نویسی را تشکیل می دهند.
این گستردگی باعث می شود که نتوان یک جواب واحد و حکم کلی برای همه شاخه های برنامه نویسی و نیاز آنها به تحصیل دانشگاهی داد.
اما در اینجا تصمیم داریم تنها به دانشگاه و مدرک دانشگاهی در زمینه یادگیری و اشتغال در زبان های برنامه نویسی بکار رفته در علوم کامپیوتر و نیازهای مرسوم تر بازار مثل طراحی سایت، تولید نرم افزارهای کابردی برای وب، ویندوز، اندروید و IOS بپردازیم.
تقاضای صنعت و بازار کار
برنامه ها در صنعت کامپیوتر ممکن است برای اهداف گوناگون و در سطوح مختلفی نوشته شوند.
ممکن است برای یک پروژه علمی مانند داده کاوی، هوش مصنوعی، رمزنگاری، امنیت شبکه و ... کد بزنید که بیشتر جنبه تئوری و تحقیقاتی دارند و شخصی که تحصیلات دانشگاهی و آکادمیک نداشته باشد، بعید است که از پس آنها بربیاید.
مثلا بدون تحصیلات آکادمیک در مقاطع بالا، بسیار بعید بنظر می رسد که کسی بتواند فناوری ای هایی پیچیده شبیه به ارزهای دیجیتال مثل بیت کوین ایجاد کند.
در مقابل ممکن است در زبان های سطح بالا و فریم وورکی کد بزنید. مانند طراحی و توسعه یک وب سایت معمولی، یک اپلیکیشن اندروید و یا یک نرم افزار حسابداری ویندوزی.
تقریبا می توان گفت در این سطح نیازی به تحصیلات دانشگاهی نیست و با تجربه و تمرین و کار با زبان های برنامه نویسی، یادگیری و تسلط به آن ممکن است.
یا حتی ممکن است پروژه ای تلفیقی از این دو سطح ذکر شده باشد و برنامه نویسانی با دانش ها و مهارت های مختلف روی آن کار کنند مانند یک بازی ویدیويی سه بعدی، یک فروشگاه آنلاین با دیتابیس ها و سرور های پیشرفته و ...
بازار کار برنامه نویسی در ایران
اغلب فرصت های شغلی برنامه نویسی بازار امروز ایران را مشاغلی پوشش می دهند که برای کسب تخصص در آن نیازی به تحصیلات دانشگاهی نداریم و تجربه و مهارت حرف اول را میزند.
- برای کار در حوزه ویندوز معمولا از زبان سی شارپ و یا XAML و WPF استفاده می شود.
- برای وب انتخاب های بیشتری وجود دارد.
- برای برنامه نویسی سمت سرور (backend) زبان های php، سی شارپ و ASP.net و حتی جاوا و JSP را داریم.
- و برای برنامه نویسی سمت کلاینت (frontend) زبان های HTML و Javascript مورد استفاده قرار میگیرد.
- در حوزه برنامه نویسی گوشی های هوشمند و تبلت ها و فبلت ها که از سیستم عامل های اندروید یا IOS استفاده می کنند هم زبان های جاوا، اندروید، سی و ... استفاده می شود.
به جرات می توان گفت برای این مشاغل و این زبان ها، که تقریبا بیشتر بازار کار برنامه نویسی را پوشش می دهند، نیازی به مدرک دانشگاهی برای برنامه نویسی وجود ندارد.
اهداف دانشگاه از تربیت متخصصان و مهندسان نرم افزار چیست؟
تعاریف متعددی برای مهندسی نرم افزار وجود دارد.
یکی از مهم ترین آن ها عبات است از:
مهندسی نرم افزار عبارت است از استفاده از اصول مهندسی به جا و مناسب برای تولید و ارائه محصول نرم افزاری با کیفیت که قابل اطمینان و باصرفه بوده و بر روی ماشین های واقعی بطور کارآمدی کار کند.
پس در واقع مهندسی نرم افزار دانشی بسیار گسترده و پیچیده است و برنامه نویسی تنها یکی از شاخه های مهندسی نرم افزار است!
حال اگر به چارت دروس این رشته نیز نگاهی بینداریم، به وضوح متوجه این امر می شویم.
در حال حاظر در اکثر دانشگاه های ایران در رشته کامپیوتر در دوره کارشناسی تنها دو درس مربوط به برنامه نویسی تدریس می شود که آن هم در اغلب موارد زبان هایی چون سی و سی پلاس پلاس و در بهترین حالت جاوا است که تقریبا هیچکدام در بازارکار سهم قابل توجهی نداشته و ضمنا حتی در صورت وجود بازار کار میزان مهارت آموخته شده در دانشگاه هرگز برای تصدی این مشاغل کافی نیست.
در واقع دانشگاه و دروس آن بیشتر به مباحث تئوری و تحقیقاتی می پردازد تا جامعه به دستاورد های مهمتری در زمینه تکنولوژی برسد (به خصوص در مقاطع بالاتر) و به نیاز سطحی بازار کار چندان توجهی ندارد.
و البته ناگفته نماد که زبان ها و فریم ورک های مورد استفاده در برنامه نویسی امروزه بسیار زیاد و گسترده شده اند و امکان تدریس همه آن ها در دانشگاه وجود ندارد.
ضمنا به طور کلی یک دانشمند یا مهندس کامپیوتر، در صنعت کامپیوتر، وظایف مهمتری نسبت به کد نویسی دارد.
بالاخره دانشگاه مفید است یا خیر؟
شکی نیست که یک فارغ التحصیل در زمینه کامپیوتر، نسبت به شخص فاقد تحصیلات، برنامه نویس بهتری می شود زیرا:
- توانای بالایی در حل مسايل پیچیده دارد (حل مسایل گوناگون از الزامات جدایی ناپذیر در برنامه نویسی است).
- پایه ریاضیاتی قوی تری دارد.
- تسلط بیشتری روی کار با الگوریتم ها دارد.
- با مباحثی چون ساختمان داده، کامپایلر، سیستم عامل و ... تا حدودی آشناست.
تحصیلات توسعه دهندگان
طبق نظرسنجی های سایت معتبر و مشهور stackoverflow که هرساله در این وب سایت برگزار می شود، میزان تحصیلات و رشته های تحصیلی توسعه دهندگان در سال۲۰۱۸ را بررسی می کنیم.
مدرک تحصیلی
طبق نتایج نظرسنجی ارایه شده توسط این وب سایت، تقریبا 0.7%از توسعه دهندگان عادی هیچ گونه! تحصیلاتی نداشتند و این آمار درمورد توسعه دهندگان حرفه ای تقریبا 0.6%است.
علاوه بر آن 1.7%از توسعه دهندگان تحصیلاتی در حد پایه و ابتدایی! داشتند.
و مهمتر اینکه بیش از 70% توسعه دهندگان دارای مدرک کارشناسی و بالاتر بودند.
تقریبا 46% کارشناسی، 22%کارشناسی ارشد و حدود 2% دکترا.
رشته های تحصیلی فارغ التحصیلان
طبق نتایج ارایه شده، از میان توسعه دهندگان دارای مدرک تحصیلی، بیش از 60% افراد، فارغ التحصیل رشته های علوم کامپیوتر و مهندسی کامپیوتر بودند.
حدود 8.8% نیز در دیگر رشته های مهندسی (به غیر از کامپیوتر) تحصیل کرده بودند و 3.6% نیز فارغ التحصیل ریاضیات بودند.
آیا برای استخدام، به مدرک دانشگاهی نیاز داریم؟
در سال ۲۰۱۸ مقاله ای در وبسایت glassdoor.com منتشر شد و یک لیست پانزده تایی از شرکت های پیشتاز در زمینه فناوری، که افراد برای استخدام در آنها نیازی به مدرک دانشگاهی نداشتند، اعلام شد.
جالب است در میان اسامی این شرکت ها، نام شرکت های بزرگی چون اپل و گوگل نیز به چشم می خورد.
پس بدون مدرک تحصیلی مرتبط و یا حتی بدون هیچ نوع مدرک دانشگاهی، می توان در گوگل و اپل هم استخدام شد.
جمع بندی
به طور خلاصه می توان گفت برنامه نویسی بیشتر یک مهارت است تا یک دانش.
با تمرین و تجربه و یادگیری عمیق یک یا چند تکنولوژی در زمینه توسعه نرم افزار (که غالبا نیازی به گذراندن دروس دانشگاهی ندارند)، زمینه های ورود به بازار کار مهیا می شود.
از استخدام در یک شرکت نرم افزاری گرفته تا انجام پروژه های آزاد و گوناگون در این زمینه. در همه یاین موارد، نیازی به تحصیلات و مدرک دانشگاهی نیست.
نویسنده ی مقاله ی "رابطه یادگیری برنامه نویسی و استخدام، با مدرک دانشگاهی"
این مطلب توسط محمد آقاجانی نوشته، و توسط تیم "هم سوالی"، ویرایش شده است.