برای خیلی از دولوپرهای تازهکار دشوار است تا بفهمند چه مهارتهایی و چه زبانهای برنامهنویسی برای شروع کار لازم است که در همین راستا در این پست قصد داریم توصیههای Joel Spolsky، همبنیانگذار سایت استک اورفلو، که یکی از موفقترین افراد در زمینهٔ مهندسی نرمافزار است را برای دولوپرهای تازهکار بیان کنیم.
معمولاً دولوپرها برای موفقیت در مصاحبههای کاری باید به کارفرمایان نشان دهند که با فناوریهای مختلفی آشنا هستند و تمام مهارتهای لازم را دارند که این مسئله باعث میشود تا بسیاری از ایشان به دنبال یادگیری فناوریها و زبانهای برنامهنویسی مختلفی بروند و سعی کنند تمام تکنولوژیهایی که کارفرمایان انتظار دارند را یاد بگیرند ولی به گفتهٔ Joel Spolsky، یکی از بنیانگذاران سایت استک اورفلو، کسانی که میخواهند در این شغل موفق باشند باید ابتدا سه مهارت اصلی را فرا بگیرند که عبارتند از علم اقتصاد، نویسندگی و زبان برنامهنویسی سی.
آشنایی با علم اقتصاد مهارت مهمی است که هر دولوپری باید یاد بگیرد ولی متأسفانه توسعهدهندگان معمولاً با آن آشنایی ندارند و نمیدانند که ارزشها را چگونه وارد کسبوکار خود کنند. نویسندگی نیز یکی از مهارتهای مهم است زیرا در ارتباط برقرار کردن با سایرین نقش بزرگی ایفا میکند و موفقترین اشخاص کسانی هستند که میتوانند نظرات و ایدههایشان را به بهترین نحو بیان کنند و آخرین مورد زبان برنامهنویسی سی است و به دلیل اینکه یک زبان پایهای است، باید فرا گرفته شود به طوری زبان سی به دولوپرها این امکان را میدهد تا بفهمند که از کامپیوترها چه استفادههایی میتوان کرد.
این روزها برنامهنویسان سعی میکنند زبانهای سطح بالایی مانند پایتون، روبی یا جاوا را فرا بگیرند و از آنجایی که مداوم از این شاخه به آن شاخه میپرند، نمیتوانند در هیچ یک از آنها به سطحی حرفهای برسند و همین مسئله باعث میشود که در پیشرفت ایشان اختلال ایجاد گردد. به گفتهٔ Joel Spolsky، اگر کسی بخواهد چیزی را درست بفهمد، باید از پایه آن شروع کند که پیرو همین بحث، وی اعتقاد دارد که برنامهنویسان دو دسته هستند: دستهٔ اول که روی زبان برنامهنویسی خاصی تمرکز دارند و تمام مهارتهای مرتبط با آن را فرا میگیرند و دستهٔ دیگر که مهارتهای پایهای علوم کامپیوتر را فرا میگیرند و به سرعت استعداد لازم را برای یاد گرفتن تکنولوژیهای جدید به دست میآورند.
در ادامه، سؤالاتی که از وی پرسیده شده را به همراه جواب آنها آوردهایم که امیدواریم به برنامهنویسان مبتدی در یافتن راه درست کمک کنند (همچنین اگر علاقمند به آشنایی بیشتر با همبنیانگذار دیگر استک اورفلو هستید، میتوانید به مقالهٔ ارسال نامهٔ تشکرآمیز برای Jeff Atwood و دریافت پاسخ در کمال ناباوری! مراجعه نمایید.)
آیا داشتن مدرک دانشگاهی یک ضرورت است؟
از نظر وی، تأکید زیاد داشتن روی مدرک باعث میشود تا برنامهنویسان بااستعدادی را از دست بدهیم زیرا گاهی اوقات افرادی که تحصیلات دانشگاهی ندارند میتوانند به خوبی کسانی باشند که دارای مدرک دانشگاهی هستند به طوری که وی معتقد است این تجربه است که مهم میباشد و او ترجیح میدهد کسی را استخدام کند که ۱۰۰۰۰ ساعت تجربهٔ کار دارد تا کسی که در بهترین دانشگاه درس خوانده است! در همین راستا وی معتقد است:
برای تمام کسانی که میخواهند صنعت توسعهٔ نرمافزار کار کنند، مدرک علوم کامپیوتر میتواند بسیار مفید باشد به طوری که اگر از مدارک آکادمیک برخوردار باشید، قادر خواهید بود تا فرصتهای کاری بهتری پیدا کنید اما همانطور که میدانید، تحصیلات دانشگاهی پیشنیاز برنامهنویسی نیست و خیلی از برنامهنویسان هستند که مدرک علوم کامپیوتر ندارند!
دیدگاه شما در مورد دورههای MOOC چیست؟
MOOC مخفف واژگان Massive Open Online Courses است که وبسایتهایی را شامل میگردد که با دانشگاههای تراز اول دنیا دورههایی به صورت آنلاین برگزار میکنند که بسیار باکیفیت و در عین حال بسیاری از آنها رایگان هستند که برخی از مهمترین این وبسایتها عبارتند از:
در ارتباط با این دورهها وی معتقد است:
در سالهای اخیر دورههای آموزشی آنلاین MOOC راهاندازی شده و در این دورهها اکثر زبانهای برنامهنویسی و مهارتهای مربوطه آموزش داده میشوند. عدهای از افراد به دنبال گرفتن مدرک MOOC میروند و عدهای دیگر ترجیح میدهند که در دانشگاه تحصیل کنند و مدرک دانشگاهی داشته باشند ولی متأسفانه در دورههای آموزشی MOOC این احتمال وجود دارد که نتوانید همهٔ دورههای آموزشی را به پایان برسانید.
تحقیقات نشان میدهند که تنها 13٪ از کسانی که در دورههای MOOC ثبتنام کردهاند دورههای آموزشی را به طور کامل پاس کردهاند. کلاسهایی که در این دورهها برگزار میشوند بسیار خوب هستند و موفقیت در این کلاسها تا حد زیادی به انگیزهٔ افراد بستگی دارد؛ درست مانند کسانی که سالها زبان فرانسه خواندهاند ولی چیز زیادی یاد نگرفتهاند اما وقتی که به فرانسه سفر میکنند، به دلیل انگیزهای که دارند خیلی سریع زبان فرانسه را فرا میگیرند.
در نتیجه، میتوان گفت که بهترین دورههای آموزشی برنامهنویسی در وبسایتهای MOOC آن دست دورههایی هستند که کدآموزان را در محیط کار قرار میدهند و به آنها این امکان را میدهند تا تجربهٔ لازم را کسب کنند. برای یاد گرفتن برنامهنویسی، نیاز به تمرین زیادی است ولی متأسفانه زمان کم دورههای آموزشی این اجازه را نمیدهد تا تازهکارها به تمام پتانسیل خود دست یابند. تمرین زیاد برای کسانی هم که مدرک دانشگاهی دارند لازم است و افرادی که بدون تجربهٔ برنامهنویسی با موفقیت از دانشگاه فارغالتحصیل میشوند بسیار کم هستند (تخمین زده میشود که برای کار در حوزهٔ توسعهٔ نرمافزار، دولوپر باید حدود ۵۰۰۰ ساعت تمرین داشته باشد.)
یاد گرفتن در حین کار
به گفتهٔ Joel Spolsky، روشهای آموزش برنامهنویسی پیشرفت زیادی کرده است و توسعهدهندگان تازهکار میتوانند در حین کار اصول کدنویسی را یاد بگیرند. در گذشته برنامهنویسان مجبور بودند به تنهایی فشارهای زیادی را تحمل کنند ولی خوشبختانه امروزه با کمک اطلاعات زیادی که به صورت آنلاین وجود دارد، اگر برنامهنویسان در بخشی از پروسهٔ آموزشی خود با مشکلی روبهرو شوند، میتوانند به راحتی در گوگل راهحل آن را جستوجو کنند.
حال نوبت به نظرات شما میرسد. آیا با نظرات همبنیانگذار استک اورفلو موافق هستید که معتقد است دولوپرها باید به ۳ مهارت علم اقتصاد، نویسندگی و زبان برنامهنویسی سی تجهیز باشند؟ نظرات و دیدگاههای خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.