سه مهارت که هر توسعه دهنده نرم‌افزار باید یاد بگیرد.

در این مقاله سه مهارت که هر توسعه دهنده نرم‌افزار باید یاد بگیرد را بررسی می کنیم.بنیانگذار مرکز برنامه‌نویسی آنلاین Stack OverFlow، افکار خود را برای ایجاد شغل به عنوان یک مهندس نرم‌افزار موفق ، به اشتراک می‌گذارد. یکی از بنیانگذاران Stack Overflow و متخصص توسعه نرم‌افزار در سطح جهانی، گفت: " سه چیز که به مردم می‌گفتم یاد بگیرند، علم اقتصاد، نوشتن و زبان برنامه نویسی C است ".در این مقاله به بررسی این موضوع خواهیم پرداخت.

سه مهارت که هر توسعه دهنده نرم‌افزار باید یاد بگیرد.

بنیانگذار مرکز برنامه‌نویسی آنلاین  Stack OverFlow، افکار خود را برای ایجاد شغل به عنوان یک مهندس نرم‌افزار موفق ، به اشتراک می‌گذارد.

برای برنامه نویسان تازه‌کار، دانستن این که کدام زبان و مهارت را یاد بگیرند می‌تواند بسیار دشوار باشد.

تنها برای تضمین یک مصاحبه شغلی، توسعه دهندگان اغلب باید نشان دهند که با لیست بلندی از زبان‌ها و مهارت‌های فنی مرتبط با کارفرمایان آشنا هستند.

طبق گفته  Joel Spolsky این کار می‌تواند توسعه دهندگان جدید را به یادگیری هر مهارتی که برای استخدام نیاز است ، وسوسه کند، آن‌هایی که می‌خواهند شانس خود را در یک شغل موفق به حداکثر برسانند، بهتر است ابتدا با سه مهارت پایه ای شروع کنند.

یکی از بنیانگذاران Stack Overflow و متخصص توسعه نرم‌افزار در سطح جهانی، گفت: " سه چیز که به مردم می‌گفتم یاد بگیرند، علم اقتصاد، نوشتن و زبان برنامه نویسی C است ".

او گفت که اقتصاد " به این دلیل است که برنامه نویسان اغلب نمی‌دانند " و در نتیجه نمی‌دانند چطور به کارشان ارزش اضافه کنند. نوشتن، و همچنین ارتباط به طور کلی، به این دلیل که " اساسا، موفق‌ترین اشخاص کسانی هستند که می‌توانند ایده‌های خود را به بهترین شکل توصیف کنند " و کسی که می‌تواند به خوبی در تیم عمل کند. در نهایت، زبان برنامه‌نویسی C به منظور فراهم کردن یک پایه فنی برای درک توسعه دهندگان.

کد زدن در C به برنامه نویسان ایده بهتری را می دهد تا بفهمند که از کامپیوترها چه استفاده هایی میتوان کرد، این زبان یک زبان سطح پایین است که دستورهای آن بیشتر شبیه به دستوراتی است که توسط CPU کامپیوتر اجرا می‌شوند نسبت به زبان سطح بالا.

بسیاری از برنامه نویسان این روزا به یادگیری زبان سطح بالاتری مشغول هستند - مانند پایتون، روبی یا جاوا - و یک درک خوبی از هر چیزی که باعث ایجاد آن زبان شده است ندارند و از این رو درک نمی کنند که چرا همه چیز کند و یا عجیب است.

" ایده این است که درک درستی از آنچه که در سطح انتزاع در سطح پایینی که شما کار می‌کنید،و آنچه که CPU در واقع انجام می‌دهد ، داشته باشید " او می گوید مقایسه کنید با این که چگونه دانشجویان رشته روانشناسی به اصول زیستی رفتار آموزش داده می‌شوند.

او گفت که برنامه نویسان به طور کلی دو مسیر شغلی جداگانه را دنبال می‌کنند، یکی بر شناخت زبان‌های خاص و مهارت‌های مرتبط و دیگری در درک اصول علم کامپیوتر و کسب استعداد برای یادگیری تکنولوژی جدید تمرکز دارد.

Spolsky گفت که شرکت‌های فن‌آوری برتر جهان، شرکت‌هایی مانند گوگل و فیس بوک، به کسانی که سازگاری های عمیق با مهارت های غیر ویژه به وجود می اورند را جایزه می دهد.

" در یک سال، شاید آن‌ها بر روی چیزهایی که هنوز اختراع نشده اند ، کار کنند ."

آیا شما به یک مدرک در علوم کامپیوتر نیاز دارید ؟

Spolsky  گفت که برای هر کسی که شغلی به عنوان یک توسعه دهنده داشته باشد ، یک مدرک علوم کامپیوتر می‌تواند درهایی را به روی شما باز کند.

" به طور کلی ، یک مدرک علوم کامپیوتر شما را به شغل و مصاحبه می‌رساند که در غیر این صورت ممکن است نتوانید به آن وارد شوید ."

او گفت که با این حال مطالعه علوم کامپیوتر در دانشگاه به هیچ وجه پیش‌نیاز نیست و افزود: " تعداد برنامه نویسانی که مدرک علوم کامپیوتر ندارند  بسیار زیاد  است" .

طبق نظر  Spolsky، شرکت‌هایی که مدرک علوم کامپیوتر را اولویت قرار میدهند یک بخش از برنامه نویسان با استعداد را از دست می دهند.

" آن‌هایی که آموزش رسمی ندارند، احتمالا به اندازه کسانی که آموزش رسمی دیده اند، خوب هستند. این بیشتر تابعی از تجربه است. من ترجیح می‌دهم یک جوشکار استخدام کنم که ۱۰،۰۰۰ ساعت تجربه داشته باشد تا کسی که به مدرسه معروف جوش کاری رفته‌است ."

MooC دوره های چیست؟

MOOC مخفف واژگان Massive Open Online Courses است . در سال‌های اخیر، انبوهی از دوره‌های آنلاین باز ( MooCs ) راه‌اندازی شده‌اند.

MooC هایی  وجود دارند که اکثر زبان‌های برنامه‌نویسی و مهارت‌های مرتبط را آموزش می‌دهند، و برخی از MooCها گواهی می‌دهند و بعضی دیگر به فارغ التحصیلان خود کار می دهند.

کیفیت MooC ها چه پولی و چه رایگان متفاوت هستند، آیا ثبت نام کردن در این دوره ها ارزش دارد؟

Spolsky می‌گوید : بله، اما ریسک در این است که شما هرگز آن دوره را تمام نخواهید کرد - یک مطالعه نشان داده که کم‌تر از ۱۳ درصد از کسانی که ثبت‌نام می‌کنند، دوره را به پایان می رسانند.

او گفت: " کلاس‌ها بسیار خوب هستند اما این واقعا یک سوال است در مورد انگیزه فردی برای بیرون آوردن چیزی از کلاس " و افزود که فرد باید واقعا بخواهد که یاد بگیرد.

" این همان دلیلی است که افراد می خواهند فرانسوی یاد بگیرند ولی هرگز یاد نخواهند گرفت، اما هر کسی که به فرانسه نقل‌مکان کند ، زبان فرانسوی یاد می‌گیرد ."

Spolsky می‌گوید که بهترین کمپ های برنامه نویسی و MooCها ، آنهایی هستند که افراد را در سطح ورودی مشاغل قرار می‌دهند که بتوانند تجربه مورد نیاز خود را به دست آورند.

این موضوع واقعا مهم است که شما به تمرین برنامه نویسی خیلی زیادی نیاز دارید و زمان اردوی آماده‌سازی برای رسیدن به آن میزان تمرین کافی نیست ."

Spolsky گفت که نیاز به تجربه بیشتر نیز در مورد فارغ‌التحصیلان علوم کامپیوتر صادق است.

او گفت : "کسی که بدون هیچ تجربه برنامه نویسی وارد کالج می شود و فقط کارهایی که برای گرفتن مدرک نیاز است را انجام داده است و یک برنامه نویسی بیرون امده است بسیار نادر است " او برآورد کرد که برای رسیدن به یک شغل برنامه نویسی به حدود ۵۰۰۰ ساعت تمرین نیاز دارید.

هر طور که می‌خواهید یاد بگیرید

Spolsky، می‌گوید روشی که مردم برنامه‌نویسی یاد می‌گیرند ، تکامل ‌یافته است ،توسعه دهندگان جدید هر طور که میخواهند یاد میگیرند، به خاطر میزان بسیار زیاد اطلاعات موجود در اینترنت، به ویژه به وبسایت سوال و پاسخ Stack Overflow که  Spolsky  ایجاد کرده‌است.

در حالی که برنامه نویسان زمانی از طریق متون بزرگ آموزشی به یادگیری می پرداختند و زیر وزن و حجم زیاد آن متون جیرجیر می‌کردند، امروز شما فقط کد زدن را شروع می‌کنید و زمانی که کار نمی‌کند، به گوگل می‌روید.

او گفت: " دیدن کسی که یک برنامه‌نویس جوان است و گوگل سرچ می کند و سپس کد می زند و باز دوباره گوگل سرچ می کند و اینبار کد بیشتری می زند شگفت‌انگیز است. "

Stack Exchange ، شبکه ای که SO بخشی از آن است ، در نظر دارد یک مدل مبتنی بر جامعه SO ایجاد کند تا دانش برنامه‌نویسی در مناطق دیگر را توسعه دهد. یک پروژه بتای سایت Stack OverFlow این است که هدف از آن ارائه مستندسازی سبک wiki ، با هدف بهبود استاندارد ضعیف داکیومنت های رسمی موجود برای بسیاری از تکنولوژی‌ها است. دیگری Team Pages نامیده می‌شود و اجازه می‌دهد توسعه دهندگان جزئیات پروژه ای که بر روی آن کار می‌کنند را به اشتراک بگذارند و بگویند همکاران آن‌ها چه کسانی هستند، آن‌ها بخشی از یک پروژه متن باز هستند یا یک شرکت.

برای Spolsky، سوق دادن افراد جدید به برنامه‌نویسی و کمک به کسانی که در این زمینه کار می‌کنند هرگز اهمیت بیشتری از امروز نداشته است، زمانی می رسد که هر تعامل به طور فزاینده‌ای توسط نرم‌افزار انجام می‌شود.

او می‌گوید : " نرم‌افزار جهان را می‌خورد و این نرم افزار توسط توسعه دهندگان نوشته می‌شود. برنامه نویسان در حال نوشتن اسکریپت ویژگی های آینده هستند و به همین دلیل است که آن‌ها اینقدر مهم هستند ."