بجز برنامه‌نویسی، برنامه‌نویسان چه چیزهای دیگری را باید یاد بگیرند؟

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

وقتی به این موضوع فکر می‌کنم که قرار است یک همکار داشته باشم، بیشتر از آنکه به توانایی‌های تخصصی و تکنیکی وی توجه بکنم، بیشتر به توانایی‌های غیر تکنیکی همکارم فکر می‌کنم.

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

خواندن افکار - پیش‌بینی

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

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

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

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

حل مسائل

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

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

همکاری

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

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

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

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

از طرفی دیگر یاد بگیرید که نظرات افراد مختلف را بشنوید و سریعا با آن‌ها مخالفت نکنید. این کار باعث می‌شود که انگیزه آن‌ها برای مشارکت کردن در آینده کاهش یابد.

ارتباط برقرار کردن

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

یک نکته بسیار مهم در رابطه با ارتباط برقرار کردن این است که نباید در ارتباطات خود مخصوصا ارتباطات کاری تعارف داشته باشید. همواره سعی بکنید در روابط کاری قاطع و سرراست باشید. 

صبر

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

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

در یک روند تیمی نیز باید صبور باشید. باید یاد بگیرید که در تعامل داشتن با دیگران شکیبایی پیشه کنید و این واقعیت را بپذیرید که همه افراد یکسان نیستند و از این رو برخی از آن‌ها مشکلاتی در روند یادگیری و یا ارائه پروژه دارند. 

خلاقیت

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

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

تواضع

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

اعتماد به نفس

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

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

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

سازگاری

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

مشارکت‌ در انجمن‌ها

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

در پایان

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

منبع

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

زبان ها و فریم ورک های که باید در سال 2016 یاد بگیریم

کتابخانه ها و فریم ورک ها در حال تغییر هستند. تلاش برای یادگیری هر گزینه جدید که وارد بازار میشود یک ریسک است.ولی در ادامه من گزینه هایی را به شما معر...

۵ قاعده طلایی برای یادگیری هر زبان برنامه‌نویسی که می‌خواهید

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

مقدمه‌ای بر TensorFlow.js - یادگیری ماشین در جاوااسکریپت

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

10 نمونه از یادگیری ماشین در جاوااسکریپت

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