در پاسخ به این سؤال که Bootcamp چیست، بایستی گفت که بوتکمپها مهارتهای کدنویسی و توسعهٔ نرمافزار را به صورت عملی به علاقمندان طی دورههای کوتاه -مثلاً ۳ الی ۶ ماهه- آموزش میدهند؛ البته باید این نکته را هم مد نظر داشته باشیم که در برخی مواقع، دانشآموختگان بوتکمپ درک عمیقی از نحوهٔ عملکرد سیستمها و الگوریتمها ندارند! به نظر میرسد بوتکمپهای برنامهنویسی ادعای غیرقابل باوری دارند مبنی بر اینکه میتوانند فارغالتحصیلانی همچون دانشگاههای تراز اول داشته باشند. مدیران بوتکمپها در سیلیکونولی ادعا میکنند که به جای 4 سال درس خواندن در دانشگاه در رشتهٔ نرمافزار، میتوانید یک مهندس نرمافزار شوید البته با یک برنامهٔ 3 ماههٔ فشرده! در همین راستا، در این مقاله قصد داریم تفاوتهای ساختاری مدل آموزشی در دانشگاهها را با بوتکمپهای برنامهنویسی مقایسه کنیم.
شرکتهای نرمافزاری به دنبال مهارتهای بسیار متنوعی هستند و با بررسی این تفاوتها، به راحتی میتوان به متقاضیان جویای کار کمک کرد تا مصاحبههای بیشتری را طی کرده و شغلی را پیدا کنند که اگر خودشان میخواستند، نمیتوانستند آن را به راحتی به دست آورند. آمار و ارقام حاکی از آنند که در ایالات متحده، هر ساله صدها نفر از فارغالتحصیلان بوتکمپها میتوانند شغلهایی را در شرکتهای بزرگ به دست آورند.
به طور کلی، دانشآموختگان بوتکمپها برنامهنویسان تازهکاری هستند که باید چیزهای بسیاری را بیاموزند و خودشان را به مدیر فنی شرکتی که آنها را استخدام کرده به خوبی نشان دهند؛ برنامهنویسانی که در یک بوتکمپ اصول برنامهنویسی را یاد گرفتهاند، به مراتب بهتر از فارغالتحصیلان دانشگاهی برنامهنویسی وب میکنند و میتوانند کدهایی ماژولار مینویسند ولی درک خوبی از نحوهٔ عملکرد کامپیوترها و الگوریتمها ندارند.
در این مقاله قصد داریم نشان دهیم که چگونه چنین چیزی امکانپذیر است و سعی میکنیم که به صورت عمیقتر تفاوتهای بین این دو گروه -فارغالتحصیلان دانشگاهی و دانشآموختگان بوتکمپ- را برایتان شرح دهیم و نشان دهیم که چرا بعضی افراد در کمتر از یکسال به برنامهنویس قابلی تبدیل میشوند.
معرفی استارتاپ Triplebyte
Triplebyte استارتاپی است که به فارغالتحصیلان دانشگاههای آیتی و دانشآموختگان بوتکمپهای برنامهنویسی کمک میکند تا به سادگی بتوانند در مصاحبههای شغلی خود را پرزنت نموده و به شغل دلخواه خود دست بایند؛ این استارتاپ یک تیم تحقیق و توسعه (R&D) دارد که دائماً مشغول بررسی تِرِندهای استخدامی، تفاوتهای برنامهنویسان و مهندسین نرمافزار و ... است و آنچه در ادامه میخوانیم، نتایج تحقیقات کارشناسان Triplebyte در زمینهٔ تفاوتهای خروجی دانشگاهها با بوتکمپها است.
تجزیه و تحلیل
مصاحبههای تخصصی که در Triplebyte انجام میگیرد، تقریباً دو ساعت و نیم طول میکشد و به چهار قسمت اصلی تقسیم شده است که عبارتند از:
- تمرکز بر روی برنامهنویسی عملی
- معماری وب
- درک از عملکرد سطح پایین سیستمها
- فهم الگوریتم
تجربه نشان داده است که معمولاً هر مهندسی تمام مسائل را به طور کامل پاسخ نمیدهد (Triplebyte به برنامهنویسان اجازه میدهد بر روی نقاط قوتشان تمرکز کنند)، اما روی هم رفته این مصاحبه معیار خوبی برای اندازهگیری تسلط نسبی هر شخص بر روی هر یک از موارد به کارشناسان میدهد.
برای آنکه ایدهٔ روش مقایسه فارغالتحصیلان دانشگاهی را با دانشآموختگان بوتکمپ بهتر بفهمید، میانگین نتیجهٔ هر دو گروه برای هر یک از فیلدهایی که بررسی شدهاند بر روی نمودار زیر قابل مشاهده است:
اولین نکتهای که دربارهٔ نمودار فوق وجود دارد این است که نتیجهٔ مصاحبهٔ دانشآموختگان بوتکمپ همانند نتیجهای است که فارغالتحصیلان دانشگاهی در فیلدهایی همچون برنامهنویسی و طراحی وبسایت به دست آوردهاند؛ حتی در برخی موارد دانشآموختگان بوتکمپ نتایج بهتری در این دو حوزه به دست آوردهاند اما دانشآموختگان بوتکمپ در فیلد الگوریتم و درک سطح پایین از نحوهٔ عملکرد سیستم، ضعیف عمل کردند.
سؤالات مطرح شده در آزمون عملی، سؤالاتی مشکل بودند که برای حل نیاز به تفکر و تحلیل مسئله داشتند؛ مسائل برنامهنویسی طوری طراحی شده بودند که بیشتر نیاز به متمرکز شدن بر روی نکات داشت تا مسائل الگوریتمی. برای حل مسائل، حتی نیاز به دانشی خاص در حوزهٔ علوم کامپیوتر یا دانش ریاضی یا هرگونه دانش تخصصی نبود.
موضوع مسئله همین است؛ یعنی در آزمونهای عملی امتیاز دانشآموختگانی که از بوتکمپ فارغالتحصیل شدهاند نتیجهای تقریباً یکسان و حتی در بعضی موارد نتیجهٔ بهتری نسبت به افرادی که از دانشگاه فارغالتحصیل شدهاند در بر داشت اما همین دانشآموختگان نتیجهٔ ضعیفتری در علوم پایه کسب کردند!
الگویی مشابه در مسائل طراحی وجود داشت؛ یعنی بوتکمپیها نتیجهٔ بهتری در زمینه مسائل وب به دست آوردند که شامل مواردی همچون وبسرور، دیتابیس، لود بالانسرها و غیره میشد اما در عوض فارغالتحصیلان دانشگاهی عملکرد بهتری در مواردی همچون مفاهیم بیت/بایت، تِرِدینگ (چندنخی)، تخصیص حافظه و فهم اینکه در عمل کامپیوتر چگونه کار میکند داشتند.
لازم به ذکر است که در این تحقیق، Triplebyte عمل غربالگری را از طریق یک آزمون برنامهنویسی آنلاین انجام داد و فقط با مهندسانی مصاحبه صورت گرفت که در آزمون آنلاین قبول شده بودند. بنابراین برایشان راهی وجود نداشت تا بتوانند بفهمند چند درصد از فارغالتحصیلان و دانشآموختگان سریعتر در این بررسی با شکست مواجه شدند و نمودار فوق فقط شامل نتایج افرادی است که آزمون آنلاین را گذراندهاند.
با این حال، تعداد قابلتوجهی از فارغالتحصیلان بوتکمپ توانستند آزمون را پاس کرده و همانند فارغالتخصیلان دانشگاهی به فرایند مصاحبه ادامه دهند. حال در ادامه میخواهیم به طور خاص توجه شما را به عملکرد فارغالتحصیلان دانشگاهی در مسائل الگوریتمی جلب کنیم.
آنها نه تنها بهتر از دانشآموختگان بوتکمپ، بلکه خیلی بهتر از آنها عمل کردند؛ در واقع، فارغالتحصیلان دانشگاهی به طرز چشمگیری از برنامهنویسان متوسطی -که اکثر آنها تجربهٔ برنامهنویسی 2 سال یا بیشتر را داشتند- بهتر عمل کردند که در نوع خود جالب است. این نکته حاکی از آن است که اکثر برنامهنویسان در کدنویسی پروژههای عملی، اصلاً از الگوریتمهای پیچیده استفاده نمیکنند!
چهطور چنین چیزی ممکن است؟
دادههای Triplebyte به یک طرف، با این وجود به سختی میتوان باور کرد که 3 یا 4 ماه آموزش برنامهنویسی در بوتکمپ با 4 سال تحصیل در دانشگاه رقابت کند؛ به نظر میرسد مقیاس زمان در این مسئله قابل استناد نیست و اولین نکتهای که باید به آن توجه داشته باشید این است که تفاوت در طول مدت زمان آموزش به آن اندازه که بزرگ به نظر میرسد، تأثیرگذار نیست.
بوتکمپها به صورت فشرده عمل میکنند. کسانی که در بوتکمپها ثبتنام میکنند، 8 ساعت کار به طور روزانه در بوتکمپ انجام میدهند و بسیاری از آنها آخر هفتهها را برای تکمیل کردن کارشان صرف میکنند. همچنین منتورها در طول این مدت به طور تماموقت با کدآموزان هستند (دلیل این فشردگی شاید به علت کوتاه بودن مدت زمانی است که در اختیار بوتکمپها قرار دارد).
نکتهٔ دوم این است که در بوتکمپ فقط موارد کاربردی و مهارتهای عملی تدریس میشوند. برنامهنویسان سنتی زمان زیادی را صرف مفاهیمی کاملاً غیرکاربردی و تاریخگذشته میکنند. ما در اینجا به هیج عنوان قصد تخریب و تحقیر سبک آموزش آکادمیک را نداریم، ولی واقعیت امر آن است که این موارد به طور مستقیم به کار نمیآیند. در مقابل، بوتکمپها این عدم کارایی را با تلاش خستگیناپذیر و کار بر روی مهارتهای عملی جبران میکنند.
اساتید در بوتکمپ به طور مداوم استایل کدنویسی هر کدآموز را مورد نقد و بررسی و گاهی هم انتقاد قرار میدهند؛ منتورهای بوتکمپها تست کردن را آموزش میدهند؛ آنها به کدآموزانشان یاد میدهند چگونه از ادیتور به طور بهینه استفاده کنند (نحوهٔ استفاده از ادیتور چیزی است که دورههای سنتی علوم کامپیوتر هرگز به تدریس آن فکر هم نمیکنند!) و چیزهای عملی دیگری از این دست.
البته این بدان معنا نیست که فارغالتحصیلان بوتکمپ همچون فارغالتحصیلان دانشگاه میتوانند با مسائل عُمقی روبهرو شوند؛ اگر شما میخواهید با الگوریتمهای پیچیده کار کنید یا میخواهید برنامهنویسی سطح پایین انجام دهید، اگر به سراغ فارغالتحصیلان رشتهٔ علوم کامپیوتر که در آن به روش سنتی تدریس میشود بروید، موفقتر خواهید بود.
بوتکمپ یا دانشگاه؛ مسئله این است!
اکنون شما میتوانید به دو صورت موارد طرح شده را تعبیر کنید؛ اول اینکه بوتکمپها به کدآموزان بیتجربه یاد میدهند که به چه چیزهایی نیاز دارند تا شبیه به یک برنامهنویس خوب به نظر برسند و به مهارتهایی مجهز شوند که در حال حاضر بازار کار -ایران- به آن نیاز دارد. دیدگاه دوم اینکه میتوانید بوتکمپها را به عنوان جایی که بر روی مواردی کار میکند که در سیلابس رشتهٔ علوم کامپیوتر در نظر گرفته نشده قلمداد کنید.
در یک کلام، بوتکمپ بر روی مهارتهای عملی تمرکز میکند که برای بازار کار به آنها نیاز است؛ اینها مهارتهایی هستند که انتظار میرود دانشجویان علوم کامپیوتر در خلال درس دانشگاهیشان به آنها بپردازند که در خیلی مواقع این اتفاق نمیافتد.
روی هم رفته، فارغالتحصیلان بوتکمپها معمولاً مورد توجه شرکتها قرار نمیگیرند. همانند تازه فارغالتحصیلان دانشگاهی، این دانشجویان باید چیزهای زیادی یاد بگیرند. همچنین دانشآموختگان بوتکمپها در مباحث الگوریتم و ساختمان داده و نحوهٔ عملکرد آنها ضعیفتر از فارغ التحصیلان دانشگاهی هستند (البته این در حالی است که اکثر شرکتها نیاز به برنامهنویسانی که بخواهند روی الگوریتمهای خیلی پیچیده کار کنند ندارند.)
حال به نظر شما بهترین روش برای تبدیل شدن به یک برنامهنویس حرفهای چیست؟ دانشگاه، بوتکمپ (آموزشگاههای برنامهنویسی)، خودآموزی یا گرفتن معلم خصوصی؟ نظرات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.