مهارت‌های نرمی که هر توسعه‌دهنده‌ای باید بداند

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 16 تیر 1398
دسته بندی ها : آموزشی

چند هفته پیش با یک نفر که قصد تبدیل شدن به یک توسعه‌دهنده را داشت مصاحبه کردم. مصاحبه خوبی بود اما طرف مقابل همواره از این بابت که نمی‌تواند به اندازه کافی موضوعات را یاد بگیرد و در آن‌ها خوب بشود نگرانی داشت. یک سوال که وی از من پرسید این بود که از نظر من چه چیزی باعث می‌شود که یک توسعه‌دهنده عالی باشیم؟ من در جواب گفتم که قطعا برای توسعه‌دهنده عالی بودن نیاز است که یکسری دانش تخصصی داشته باشید اما در کنار آن مورد دیگری نیز بسیار مهم است و آن مهارت‌های نرم (Soft Skills) است. 

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

مهارت‌های نرمی که شما نیاز به داشتن‌شان دارید به صورت خلاصه در زیر لیست شده‌اند:

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

کنجکاوی و یادگیری مداوم

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

صبر و پایداری

مطمئنا این موضوع را شنیده‌اید که در فرایند یادگیری، پایدار بودن کلید اصلی موفقیت است، خب چنین موضوعی در دنیای یادگیری برنامه‌نویسی نیز دقیقا به همین شکل است. البته مطمئنا همه ما با لحظاتی همراه بوده‌ایم که دیگر از یادگیری چیزهای جدید خسته شده‌ایم، زمان‌هایی که فکر می‌کنیم هیچ پیشرفتی نسبت به دیروز نداشته‌ایم، زمانی که ساعت‌ها وقت برای یک باگ می‌گذارید و در نهایت بی نتیجه باقی می‌ماند و… . اما نکته مهم این است که شما به صبر و پایداری نیاز دارید. مواجه شدن با سناریوهای گفته شده باعث آن می‌شود که شما تجربه بیشتری در یادگیری بدست بیاورید. مطمئنا اگر کاری را درست انجام بدهید، خروجی مناسبی را می‌گیرید.

«البته من نمی‌گویم که مدام باید مشغول یادگیری بود، استراحت نیز بخش مهمی از ماجرا است.»

خلاقیت و فعالیت

پیدا کردن راه‌های جدید برای حل مشکلات موضوعی است که می‌تواند روی تجارت شما تاثیر بسیار زیادی بگذارد. بنابراین بسیار مهم است که برای داشتن ظاهری متفاوت، راهکارهای متفاوت و جدیدی را پیش بگیریم. با بهتر کردن محصولات، ایجاد کتابخانه‌های جدید و یا سریع‌تر کردن همه چیز، ما می‌توانیم با چالش‌های جدیدی روبرو شده و بهتر مسائل را حل کنیم. چه کسی می‌داند، شاید شما نفر بعدی باشید که یک چیز بزرگ درست می‌کند!

برای یافتن چنین راه‌حل‌هایی شما نیاز دارید که یک فرد فعال باشید. منتظر بودن برای انجام کاری هیچ چیز را حل نمی‌کند بلکه ممکن است همه چیز را بدتر نماید. سعی در تمرکز روی یک موضوع خاص کرده و آینده‌ای برای آن تصور کنید. ببینید که انجام چنین کاری می‌تواند شما را به کجا هدایت کند و چه مزیت‌ها و یا خسارت‌هایی به بار بیاورد.

به عنوان یک مثال شما قصد دارید تا یک کتابخانه متن باز را در کنار پروژه‌تان ایجاد کنید. این موضوع باعث می‌شود که شرکت و یا خودتان در دنیای پروژه‌های متن باز شناخته شوید. از این رو به عنوان فردی فعال دیده خواهید شد. به عنوان یک هشدار جدی: اگر متوجه شدید موضوعی که روی آن تمرکز کرده‌اید مشکلاتی دارد، سعی در راضی کردن خودتان با فراموش کردن آن‌ها نکنید، بهتر است تجدید نظر کرده و سراغ موارد بهتری بروید.

مغرور نبودن

مطمئنا شما هم با آن دسته افراد ارتباط داشته‌اید که در ارتباط با کدهای‌شان بسیار مغرورند، دیگران را مسخره می‌کنند و هیچگونه نقدی را نیز قبول نمی‌کنند.

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

ارتباطات

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

اگر صادقانه یک موضوع را بررسی کنیم، باید بگویم که بیشتر مردم دوست ندارند که به دیگران گوش دهند. بیشتر اوقات آن‌ها صرفا تظاهر می‌کنند که حرف‌ها و داستان‌های شما را می‌شنوند. 

اما در یک تیم توسعه بسیار مهم است که بتوانید به صورتی واضح با دیگر اعضای تیم، مدیر، صاحبان پروژه و… صحبت بکنید. شما گاهی اوقات با افرادی ملاقات می‌کنید که مثلا سهام‌دار هستند و هیچ چیزی راجع به دانش تخصصی برنامه‌نویسی نمی‌دانند. بنابراین بهتر است با این دست از افراد به صورتی ساده صحبت کنید. 

بنابراین به خوبی با دیگران صحبت کرده و به آن‌ها گوش کنید.

یکدلی

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

سعی کنید با اعضای تیم یکدل باشید. اگر قصد ایجاد تغییری را دارید به صورت سرخود این کار را انجام ندهید، بهتر است ابتدا با دیگر اعضا مشورت کرده و در نهایت به یک پلان مشترک برسید.

مفید بودن

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

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

مرتب بودن

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

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

در پایان

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

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

منبع

مقالات پیشنهادی