در کارهای مختلفی که انجام میدهید برای اینکه بتوانید وظایف و مسئولیتهای محوله را به بهترین شکل انجام دهید مجبور هستید مهارتهای نرم و سخت را ترکیب کنید تا عملکردتان متمایز از دیگران شود و کدهای با کیفیت بالا بنویسید. برنامهنویسان بزرگ به این نکته اذعان دارند که مهارتهای خاصی در دنیای برنامهنویسی وجود دارند که باید بر آنها اشراف کامل داشته باشید، زیرا اهمیت آنها کمتر از مهارتهای سخت نیست. اگر بتوانید مشکلات را حل کنید، موضوعات را بهسرعت یاد بگیرید، راهحلها را بهخوبی برای افرادی که فنی نیستند توضیح دهید، در بلندمدت به جایگاهی فراتر از مکان فعلی خواهید رسید. به بیان دقیقتر، افرادی که بهعنوان مدیر تیمهای نرمافزاری در سازمانها مشغول به کار هستند، بخش قابل توجهی از وقت خود را صرف یادگیری مهارتهای نرم کردهاند. توانایی برقراری ارتباطات مؤثر و کارآمد با همکاران و مشتریان، توانایی کار تیمی و مدیریت زمان تنها چند نمونه ساده از مهارتهای نرمی هستند که برای رسیدن به موفقیت باید روی یادگیری آنها سرمایهگذاری کنید.
مهارت نرم چیست؟
مهارتهای نرم آن گروه از مهارتهای غیرفنی هستند که به نحوه انجام کارها مرتبط هستند. در واقع مهارتهای نرم مجموعه خصلتهایی هستند که کمک میکنند در محیط کار پیشرفت کنید و به موفقیت برسید. این مهارتها به شما کمک میکنند در مصاحبهها بهشکل بهتری ظاهر شوید و به بهترین شکل تواناییهای خود را برای دیگران شرح دهید.
مهارتهای نرم با مهارتهای سخت چه تفاوتهایی دارند؟
همانگونه که اشاره شد، مهارتهای نرم خصوصیات و ویژگیهایی هستند که باعث رشد و پیشرفت در محل کار میشوند، در حالیکه مهارتهای سخت دانش فنی یا آموزشهایی هستند که برای کار با زبانهای برنامهنویسی، کتابخانهها، چارچوبها و غیره فرا گرفتهاید. بهطور مثال، اگر بخواهیم مهارتهای سخت یک توسعهدهنده فولاستک وب را شرح دهیم باید به تسلط بر زبانهای برنامهنویسی وب، تسلط بر معماری نرمافزار، آشنایی با مبحث طراحی گرافیکی، تست و آزمایش نرمافزار، طراحی UI/UX و غیره اشاره کنیم. یادگیری این گروه از مهارتها در مقایسه با مهارتهای نرم سادهتر و راحتتر است.
چرا مهارتهای نرم نقش مهمی در دنیای امروز دارد؟
سادهترین پاسخ به این صورت است که بدون تسلط بر مهارتهای نرم یک برنامهنویس عادی هستید که دستمزد عادی دریافت میکند. اگر به دنبال اهداف بزرگی هستید و دوست دارید همانند برنامهنویسان موفق در سراسر جهان دستمزدهای کلانی برای کاری که انجام میدهید دریافت کنید، مجبور هستید بخشی از وقت آزاد خود را به یادگیری و تسلط بر مهارتهای نرم اختصاص دهید. مهارتهای نرم به این دلیل اهمیت زیادی دارند که هنگامی که جذب شرکتی میشوید، درباره جزئیات یک قرارداد جدید مذاکره کنید، دنبال مشتریهای جدید هستید، باید در قالب یک تیم کار کنید، ایدهها و طرحهایتان را برای همکاران شرح دهید و توانایی تعامل با دیگران را داشته باشید و بتوانید آنها را قانع کنید. برنامهنویسان به دلایل زیر بهسراغ یادگیری مهارتهای نرم میروند:
- باعث میشوند متمایز از دیگران شوید.
- باعث میشوند توانایی کار تیمی بهدست آورید.
- باعث میشوند اعتمادبهنفس بیشتری پیدا کنید.
- به شما کمک میکنند توانایی مدیریت تیمهای برنامهنویسی را بهدست آورید.
- تقریبا تمامی تیمهای بزرگ برنامهنویسی به افرادی با این مهارتها نیاز دارند.
- تقاضا برای جذب برنامهنویسان آشنا به مهارتهای سخت و نرم روزبهروز بیشتر میشود.
یک برنامهنویس یا توسعهدهنده باید چه مهارتهای نرمی داشته باشد؟
در این بخش برخی از مهمترین مهارتهای نرمی را که هر توسعهدهندهای باید داشته باشد تا بتواند در محل کار پیشرفت کند بررسی میکنیم.
1. توانایی حل مسئله
حل مسئله سلاح قدرتمندی است که هر برنامهنویس باید در جعبه ابزار مهارتهای تخصصی داشته باشد. متاسفانه بیشتر توسعهدهندگان تنها روی ترکیب نحوی دستورات زبانهای برنامهنویسی، تسلط بر چارچوبهای مختلف نرمافزاری و کدنویسی تمرکز میکنند و توجه چندانی به تکنیک حل مسئله ندارند. توانایی حل مسئله چیست؟ در سادهترین تعریف، ابداع راهحلهایی برای مشکلاتی که یک کسبوکار با آنها روبهرو است و راهحلی برای آنها ابداع نشده است. بهطور مثال، پس از نوشتن کدها و ساخت برنامههای کاربردی، برنامهنویسان ممکن است با مشکلاتی روبهرو شوند که پاسخ روشنی برای آنها وجود ندارد و خودشان باید راهکاری برای حل مشکل ارائه دهند. اینکار سادهای نیست، زیرا کوچکترین خطا در برنامهها باعث میشود عملکرد یک برنامه بهطور کامل مختل شود. بهطور معمول، توانایی حل مسئله به پنج مرحله زیر تقسیم میشود:
- مکتوبسازی: تنها به حافظه خود تکیه نکنید و سعی کنید تمام جزئیات و مفاهیمی را که به آنها فکر میکنید مستندسازی کنید.
- ارزیابی و انتخاب بهترین گزینه: فهرستی را که آماده کردهاید بازبینی کنید و اولویتها را مشخص کنید. سپس گزینههای موجود را ارزیابی و بهترین گزینه برای دستیابی به هدف مورد نظر را انتخاب کنید.
- شناسایی مشکل: مشکل را بهطور شفاف بیان کنید و بهیاد داشته باشید که افراد مختلف ممکن است دیدگاههای متفاوتی از مسائل یا مشکلات داشته باشند.
- فهرست کردن راهحلهای ممکن: یکی از موضوعات مهمی که مرتبط با توانایی حل مسئله است، طوفان فکری است. طوفان فکری، به دورهمی و اندیشیدن تیمی با هدف پیدا کردن راهحلی عملی اشاره دارد.
- درک منافع همه افراد: هنگامیکه قصد ساخت یک برنامه کاربردی را دارید که ممکن است بر عملکرد بخشهای مختلف یک سازمان تاثیرگذار باشد، باید علایق و نیازمندیهای بخشهای مختلف را شناسایی کنید. بهطور معمول، ما منافع واقعی را نادیده میگیریم، زیرا تمرکزمان تنها به یک راهحل خاص معطوف است. بهترین راه این است که منافع همه در نظر گرفته شود.
2. مهارت برقراری ارتباطات
توانایی برقراری ارتباط با دیگران یکی از مهارتهای نرم مهمی است که هر توسعهدهندهای باید داشته باشد. البته دقت کنید که ارتباطات مثل جاده دو طرفه هستند، یعنی باید شنونده و گوینده خوبی باشید و بدانید در چه زمانی باید صحبت کنید و چه زمانی باید سکوت کرده و گوش دهید. عامل مهم در یک ارتباط مؤثر شنیدن است. وقتی دیگران در حال صحبت هستند حرف آنها را قطع نکنید، گوش کنید و بعد از تمام شدن حرفهای دیگران نظرتان را بیان کنید.
اینکه بهعنوان یک توسعهدهنده در محل کار حضور دارید یا دورکاری میکنید اهمیتی ندارد، باید بتوانید با دیگر اعضای تیم مثل مدیران پروژه، طراحان، مدیران بخشها و دیگر افراد همکاری داشته باشید. گاهیاوقات ممکن است در یک بازه زمانی لازم باشد با کاربر نهایی ارتباط برقرار کنید. علاوه بر اینها، بهعنوان توسعهدهنده باید بتوانید بهخوبی و بدون کوچکترین مشکلی با تمام پلتفرمها مانند تماسهای ویدئویی، چهرهبهچهره، ایمیل، پیامرسانها و غیره کار کنید.
3. کار گروهی
راتان تاتا مدیر موفق هندی میگوید: «اگر میخواهید سریع راه بروید، تنها راه بروید. اما اگر میخواهید خیلی راه بروید، با هم راه بروید». کار گروهی نقش مهمی در پیشبرد اهداف تجاری یک سازمان دارد. برای اینکه کسبوکاری رشد کند و عملکرد قابل قبولی داشته باشد، همه افراد آن مجموعه باید با هم کار کنند تا بتوانند به اهداف تعیینشده برسند. در دنیای حرفهای، توسعه نرمافزار کار تیمی است. اگر در یک شرکت تولید نرمافزارهای کاربردی مشغول به کار هستید باید با طراح رابط کاربری، تجربه کاربری و دیگر اعضا تیم در تعامل باشید تا پروژه بهسرانجام برسد. اگر شناختی در ارتباط با مهارتهای کار تیمی نداشته باشید، در اولین برخورد با دیگران به مشکل بر میخورید که همین مسئله باعث عدم پیشرفت پروژه میشود.
4. همدلی
اینکه بتوانید با اعضای تیم همدلی کنید این امکان را میدهد بهطور کامل مشکلاتی را که خود یا دیگر اعضا تیم با آنها روبهرو هستید درک کنید و راهی بیابید که فرآیند بهسرانجامرساندن پروژه برای همه ساده شود. همدلی به ما امکان میدهد پیشبینی کنیم که دیگران چه واکنشی نسبت به آنچه ما میگوییم نشان میدهند؛ به این معنی که میتوانیم نحوه صحبت خود با مخاطبان را هماهنگ کنیم. اگر ایده کسی را دوست ندارید، از خود بپرسید چرا. در ادامه، وقتی بازخورد میدهید، ابتدا به نکات مثبت اشاره کنید و در ادامه آنچه را که دوست ندارید، مطرح کنید و با جمله مثبتی صحبتهایتان را پایان دهید. این رویکرد به مدل ساندویچی معروف است؛ به این معنی است که شخصی که به او بازخورد میدهید روی نکات منفی تمرکز نمیکند، بلکه مزایا و معایب ایدهاش را درک میکند. در عین حال، همدلی با تیم به شما این امکان را میدهد که موضوعات را از دید آنها مشاهده کنید. از اینرو، باید همیشه سعی کنید موضوعات را از زاویه دید دیگران نیز نظارهگر باشید. این که شما ظاهر یا کارکرد چیزی را دوست دارید، به این معنی نیست که همه با شما هم عقیده باشند.
5. مدیریت زمان
مدیریت زمان مهارت نرم مهمی است که هر توسعهدهندهای باید داشته باشد. کار تحت فشار و نزدیک شدن به مهلت اتمام پروژهها از مواردی هستند که توسعهدهندگان با آن روبهرو هستند. تلاش برای اینکه بهجای یک کار، چند کار را همزمان انجام دهید، روش کارآمدی برای مدیریت زمان نیست و اغلب باعث میشود تا استرس بگیرید و برنامه مشخصی نداشته باشید. مدیریت زمان اشاره به این نکته دارد که باید یک کار مشخص در زمان مشخص بهپایان برسد. این تکنیک کمک میکند وظایف محوله را بهخوبی انجام دهید. بهعنوان یک توسعهدهنده باید زمان را بهخوبی رصد کنید و یاد بگیرید چگونه وظایف را اولویتبندی کنید.
وقتی کارهای زیادی برای انجام دادن دارید، دانستن اینکه چگونه زمان خود را مدیریت کنید مهم است. چقدر برای برنامهریزی وقت میگذارید، چقدر برای کدنویسی وقت میگذارید، چقدر با تیم خود برای ارائه ایدههای جدید در تعامل هستید. مدیریت کارآمد زمان این امکان را میدهد که روی مهمترین چیزها تمرکز کنید و کارها را به بهترین شکل انجام دهید.
در حالی که گاهیاوقات نیاز به انجام چند وظیفه ضروری بهنظر میرسد و ممکن است احساس کنید که انجام همزمان چند کار اثرات خوبی دارد، اما مطالعات نشان دادهاند که این کار بهشدت بهرهوری را کاهش میدهد. عدم توجه کامل به چیزی به این معنی است که انجام کارها بیشتر طول میکشد و احتمال اشتباه بیشتر میشود.
6. صبر
گاهیاوقات عضوی از یک تیم یا جلسه هستید که فقط توسعهدهندگان یا برنامهنویسان در آن حضور ندارند. این بدان معنا است که باید دلایل تصمیمات خود را توضیح دهید و اینکار را به روشی غیرفنی انجام دهید. برخی از افراد بلافاصله همه صحبتهای شما را درک میکنند، در حالیکه برخی دیگر به زمان بیشتری نیاز دارند. صبور بودن با افراد در چنین لحظاتی به پیشرفت انجام کارها کمک فراوانی میکند. توسعه نرمافزار فرآیند زمانبری است که به بردباری و شکیبایی نیاز دارد. از طراحی تا پیادهسازی و اجرا، آزمایش، بهروزرسانی، رفع باگها و مشکلات نرمافزاری و غیره خیلی از این فعالیتها زمانبر هستند و به شکیبایی نیاز دارند.
7. خلاقیت
بهترین ایدهها و راهحلها اغلب زمانی به سراغ ما میآیند که از زاویهای متفاوت و کمتر آشکار به مسائل نگاه کنیم. این همان چیزی است که برنامهنویسان خلاق را از برنامهنویسان عادی متمایز میکند. بهرغم دیدگاه عمومی، خلاقیت را میتوان آموخت و با تمرین آنرا پرورش داد. خواندن داستان، نوشتن، انجام کارهای هنری، صنایع دستی و غیره راههایی برای کشف خلاقیت هستند. هرچه راههای خلاقیت بیشتری را کشف کنید، پیدا کردن راههای مختلف غلبه بر یک مشکل آسانتر میشود.
8. مهارتهای مدیریتی
در محل کار، کارفرمایان بهدنبال یافتن صفت مدیریتی در توسعهدهندگان هستند. آنها بهدنبال دانستن این موضوع هستند که آیا شما میتوانید شرایط و افراد مختلف را مدیریت کنید یا خیر.
9. مسئوليتپذیری
مسئولیتپذیری بهمعنای قبول اشتباهات است. اعتراف به اینکه تصمیمی اتخاذ کردهاید که نتیجه نامطلوبی داشته دشوار است، اما در بلندمدت هم شما و هم کارفرما دید مثبتی بهدست خواهید آورد. وقتی اشتباهات خود را قبول نکنید، این احتمال وجود دارد که خود یا یکی از همکارانتان در آینده اشتباه مشابهی را مرتکب شوید. بهجای فرار از اتفاقی که افتاده دست خود را بالا ببرید و مسئولیت را بپذیرید. از این فرصت برای تجزیهوتحلیل اشتباه استفاده کنید و سعی کنید خود و همکارانتان در آینده همان اشتباه را مرتکب نشوید.
10. تطبیقپذیری
فناوری همواره در حال پیشرفت است. اگر به چند دهه گذشته نگاه کنید، مشاهده میکنید که چیزهای زیادی تغییر کردهاند. توسعهدهندگان نرمافزار باید بتوانند خودشان را با شرایط سازگار کنند. کارفرماها برای توسعهدهندگانی که میتوانند خودشان را با شرایط جدید تطبیق دهند ارزش قائل هستند.
11. حافظه دقیق
پس از تمرکز روی مجموعهای پیچیده از دستورالعملهای برنامهنویسی در یک روز، مغز خسته میشود. این موضوع بهدلیل انباشتگی اطلاعات در ذهن بهوجود میآید و باعث میشود چیزهای ساده را فراموش کنید. اگرچه این موضوع مشکل خاصی ایجاد نمیکند، اما میتواند بر فرآیند کدنویسی تاثیر منفی بگذارد. یک کار بهظاهر شگفتانگیز که ممکن است به حافظهتان آسیب برساند، انجام چند کار بهطور همزمان است که به آن Multitasking گفته میشود. در حالیکه بسیاری از مردم توانایی انجام چند کار را یکی از کارآمدترین مهارتهای نرم میدانند، اما این موضوع همیشه برای مغز مفید نیست. مطالعهای که بهمدت یک دهه توسط دانشگاه استنفورد انجام شد نشان داد که افرادی که اغلب با چند نوع کار مختلف در یک زمان درگیر میشوند، بهشدت در انجام کارهای ساده با مشکل روبهرو میشوند و به بیان دقیقتر، عملکرد مغز آنها در انجام اینکارها بهشکل عجیبی کاهش پیدا میکند. محققان توصیه میکنند عادات کاری خود را تغییر دهید تا انجام چند کار همزمان را بهحداقل برسانید. به اینصورت ممکن است حافظه و عملکرد مغزتان بهبود پیدا کند.
چگونه مهارتهای نرم را توسعه دهیم
با اینکه یادگیری مهارتهای نرم به سادگی یادگیری مهارتهای فنی نیست، اما میتوان با گذشت زمان آنها را بهبود بخشید. اولین گام در یادگیری مهارتهای نرم شناخت نواحیای است که نیاز به بهبود دارند. میتوانید از همکاران و دوستان قابل اعتمادتان بخواهید به شما بازخورد بدهند. همچنین میتوانید عملکردتان در محل کار را ارزیابی کنید. بعد از اینکه نقاط قوت و ضعف را کشف کردید، روی بهبود نقاط ضعف کار کنید. چند راه برای توسعه مهارتهای نرم وجود دارد که از مهمترین آنها به موارد زیر باید اشاره کرد:
- از همکاران و دوستان قابل اعتمادتان بخواهید به شما بازخورد بدهند.
- بهفکر حضور در دورههای آنلاین کسب مهارتهای نرم باشید، این دورهها به شما در یادگیری مهارتهایی که برای محل کارتان مفید هستند کمک میکنند.
- اگر دنبال بهبود مهارتهای مربوط به برقراری ارتباط هستید باید بهفکر سخنرانی عمومی یا گذراندن دورهای برای تبدیل شدن به یک سخنران کارآمد در محافل عمومی باشید.
- تمام مهارتها از جمله مهارتهای نرم نیاز به ممارست دارند. وقتی شروع به یادگیری میکنید، تمرین و تکرار مهارتهای تازهفراگرفتهشده کمک میکنند با آمادگی کامل در محل کار از آنها استفاده کنید.
کلام آخر
تمام مهارتهایی که در این مقاله به آنها اشاره شد مکمل یکدیگر هستند. بهعنوان مثال، اگر در زمینه برقراری ارتباط با دیگران مهارت زیادی دارید به شما کمک میکند بهراحتی با دیگر اعضای تیم و مشتریان همکاری کنید. اگر مردم احساس کنند که نمیتوانند به شما نزدیک شوند و چیزی از شما بخواهند، وقتی مشکلی پیش میآید کمتر از شما کمک میخواهند. این مسئله بیانگر این موضوع است که یک مشکل کوچک بهزودی به یک مشکل بزرگ تبدیل میشود. نکته مهم دیگری که باید بهخاطر داشته باشید این است که تسلط بر مهارتهای نرم به زمان زیادی نیاز دارد.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟