آیا تاکنون با خود فکر کردهاید که اگر از شما در یک مصاحبهٔ شغلی در یک شرکت نرمافزاری پرسیده شود که «چهطور میشود به یک برنامهنویس حرفهای مبدل شد؟»، چه پاسخی خواهید داد. گرچه این سؤال در ظاهر ساده است، اما از جنبههای مختلفی میتوان به آن نگاه کرده و پاسخهای متفاوتی به آن داد و در همین راستا، در این پست یکسری قواعد کلی را برای اینکه در حوزهٔ برنامهنویسی حرفهای شویم پیشنهاد خواهیم داد؛ اما توجه داشته باشیم که این قواعد صرفاً محدود به حرفهٔ برنامهنویسی نبوده و قابلیت این را دارند تا به هر حوزهٔ کاری دیگری نیز تعمیم داده شوند.
پیش از مطالعهٔ این مقاله، حتماً در نظر داشته باشید که هیچیک از مواردی که در ادامه گفته خواهند شد، نباید به عنوان یک اصل خِللناپذیر در نظر گرفته شوند، بلکه این در حالی است که بسته به شرایط کاری، برخی را میتوان دستخوش تغییر ساخته و یا کلاً نادیده گرفت! حال آنچه ابتدا به ساکن قصد داریم مورد بررسی قرار دهیم، آشنایی با روشهای درست سؤال پرسیدن و گاهی مواقع هم هرگز سؤال نپرسیدن است.
روش درست سؤال پرسیدن را بیاموزید
یک سؤال مناسب که مختصر، ساده، کوتاه و با جزئیات کافی باشد، جوابهای مناسبی هم دریافت خواهد کرد و اگر مشخصاً بدانید از پرسیدن سؤال چه چیزی میخواهید بیاموزید، شانس بیشتری برای به دست آوردن پاسخ مناسب خواهید داشت. در ضمن، در حین سؤال کردن هرگز چنین قصدی نداشته باشید که طرف مقابلتان از ۰ تا ۱۰۰ موضوع را برایتان توضیح دهد؛ بلکه بیشتر باید به دنبال این باشید که سَرنخ را بگیرید و الباقی را خود کشف کنید.
مهارت سؤال نپرسیدن را نیز بیاموزید
در حقیقت، بهتر است سؤال نپرسیدن را نیز امتحان کنید زیرا شاید خودتان بتوانید مشکل را برطرف کرده و راهحلی بیابید (البته ممکن است همیشه موفق نشوید!) زمانهایی پیش میآید که شما خیلی از موضوعات را نمیدانید و سؤال پرسیدن از یک متخصص و فرد حرفهای، سریعترین راه برای یافتن پاسخ است اما الزاماً بهترین نیست. در واقع، بیشتر سعی کنید خودتان مشکلتان را برطرف کنید چرا که اتخاذ چنین رویکردی مزایای بیشماری دارا است که برخی از مهمترین آنها عبارتند از:
- وقتی که شخصاً چیزی را میآموزید، مطالب در ذهن شما بهتر ماندگار میشوند.
- وقتی مشکلاتان را خودتان برطرف میکنید، احساس رضایتمندی بیشتری خواهید داشت و اعتماد به نفس شما بالا میرود.
- وقتی از شخصی سؤال میکنید و او هم پاسخ میدهد، به نظر میرسد که نتوانند مثل شما به مشکل نگاه کرده و فقط سعی میکند به سؤالات را بدون در نظر گرفتن شرایط مختلف پاسخ دهد.
اکنون که با لزوم بهکارگیری این دو مهارت مهم آشنا شدید، حال نوبت به کسب یکسری مهارت جانبی دیگر میرسد که عبارتند از:
- کارها را نیمهکاره رها نکنید: در توسعهٔ نرمافزار چیزی داریم تحتعنوان Technical Debt (بدهی فنی) که عبارت است از کارهایی که بایستی در سورسکد اِعمال کنیم، اما به دلیل کمبود وقت یا یکسری از دیگر بهانهها، آنها را نیمهکاره رها کرده و بیشتر تمرکز خود را روی اِتمام پروژه میگذاریم. در یک کلام، اگر یکی از کارهای شما به عنوان دولوپر این باشد که یکی پس از دیگری بدهی فنی ایجاد کنید، هرگز نخواهید توانست به یک برنامهنویس حرفهای مبدل گردید (برای کسب اطلاعات بیشتر، میتوانید به مقالهٔ Technical Debt: بدهی فنی چیست و چگونه میتوان از آن به نفع خود استفاده کرد؟ مراجعه نمایید.)
- انتظار غیرمنتظرهها را داشته باشید: قانونی مورفی چیزی است که ما برنامهنویسان باید همیشه نیمنگاهی به آن داشته باشیم؛ هر چیزی ممکن است خراب شود و این امری اجتنابناپذیر است. به عنوان یک مهندسی نرمافزار، انتظار موارد غیرمنتظره را داشته باشید و حس محتاطانهٔ خود را تمرین دهید تا همهٔ اتفاقات ممکن پیش روی خود را پیشبینی کنید (برای آشنایی بیشتر با قانون مورفی، به صفحهٔ ویکیپدیای ادوارد مورفی مراجعه نمایید.)
- تعصب را کنار بگذارید: هرآنچه تاکنون آموختهاید، پتانسیل این را دارد که اشتباه باشد! با کنجکاو ماندن و خارج از چهارچوب فکر کردن، برنامهنویس بهتری خواهید بود. متأسفانه در میان دولوپرهای زبانهای برنامهنویسی مختلف، به خصوص میان برنامهنویسان دانتنت و پیاچپی، افرادی پیدا میشوند که طرف مقابل را به سُخره میگیرند! در پاسخ به این تعصب کورکورانهٔ برخی دولوپرها، بایستی گفت که اگر داتنت بد بود، وبسایت بسیاری از بانکهای داخلی و خارجی روی این پلتفرم ایجاد نمیشد و در عین حال اگر پیاچپی بَد بود، وبسایتهای بزرگی همچون ویکیپدیا، سیاماسهای وردپرس، دروپال، جوملا و همچنین هستهٔ فیسبوک هم با این زبان نوشته نمیشد!
- تمرین کنید: همهٔ برنامهنویسان حرفهای در یک موضوع با هم مشترک هستند و آن هم اینکه هر روز تمرین میکنند و چیزهای جدید یاد میگیرند. خوشبختانه یا متأسفانه، صنعت توسعهٔ نرمافزاری صنعتی است که هر روز شاهد تغییرات شگرفی است و اگر ما به عنوان یک دولوپر به داشتههای چهار الی پنج سال پیش خود اکتفا کنیم، به زودی رقبا گوی سبقت را از ما خواهند ربود (علاوه بر این، همانطور که گفته میشود زبان انگلیسی فرار است، میتوان گفت که زبانهای برنامهنویسی هم فرار هستند و اگر تمرین نکنیم، نحوهٔ استفاده از متدها، کلاسها، هلپرها و ... را به زودی به دست فراموشی خواهیم سپرد.)
- روی یک موضوع متمرکز باشید: شاید تعداد اندکی دولوپر همهفنحریف بشناسید اما هرگز فراموش نکنیم که اکثر دولوپرهای همهفنحریف در همه چیز متوسط هستند نه عالی! همواره سعی کنید روی یک موضوع متمرکز شوید و در آن موضوع بهترین بشوید. بازار کار برای افراد سطح بالا، فارغ از حوزهٔ کاری ایشان یا زبان برنامهنویسیشان، وجود دارد اما وقتی که به یک دولوپر در حد متوسط تبدیل شوید، رقبای شما زیاد خواهند شد و بالتبع نباید انتظار بازار کار خوبی داشته باشید (در ارتباط با نقش تمرکز در موفقیت، میتوانید به مقالهٔ نقش تمرکز در موفقیت کسبوکار: وقتی میخواهید همه چیز باشید، هیچ چیز نمیشوید! مراجعه نمایید.)
- دست از یادگیری برندارید: در حالی که قالباً باید روی یک موضوع متمرکز باشید، سایر موضوعات را نباید کاملاً فراموش کنید. شاید هیچوقت در همهٔ قسمتهای SQL خیلیخیلی خوب نشوید یا شاید چنین امکانی وجود نداشته باشد تا در موضوعاتی مثل سیاساس، شیئگرایی، دیزاین پترنها و غیره متبحر گردید؛ اما میبایست حداقل با پایه و اساس حوزههای مختلف توسعهٔ نرمافزار آشنا باشید. مقدار زمانی را باید صرف بازی کردن و سرگرم شدن با این موارد و خیلی چیزهای دیگر کرده تا مفاهیم و تکنولوژیهای آنها را بهتر و جامعتر درک کنید و اهمیتشان را بفهمید که چهزمانی به کار ببریدشان و یا اینکه چهزمانی از شخصی حرفهایتر برای انجام کار استفاده کنید. با بازی کردن حول این مباحث، ذهنتان را به طرز تفکری جدید و متفاوت باز میکنید و این شانس را به خود میدهید تا در کار روزانهٔ خود از این قابلیتهای جدیدتان استفاده کنید.
- قانون KISS را فراموش نکنید: به گفتهٔ آلبرت انیشتن، «هر چیزی باید تا حد ممکن ساده باشد، اما نَه دیگر خیلی ساده!» و نیاز به توضیح نیست که کمتر کسی قادر به مدیریت پیچیدگیهای بزرگ است و میتوان گفت که پیچیدگی، قاتل یک نرمافزار خوب است. سادگی موضوعی است که وقت بسیار و تمرین مستمر میخواهد تا به نتیجه برسد که برای آشنایی بیشتر با قانون KISS، توصیه میکنیم به مقالهٔ KISS: رویکردی که کمک میکند به دولوپر بهتری مبدل گردیم! مراجعه نمایید.
حال نوبت به نظرات شما میرسد. آیا شما هم با نقطه نظرات فوق موافق هستید؟ به غیر از موارد بالا، چه استراتژیهای دیگری را پیشنهاد میدهید تا افراد تازهکار به دولوپرهایی حرفهای تبدیل شوند؟ نظرات، دیدگاهها و تجربیات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.