تبدیل شدن به یک برنامه نویس ارشد چیزی است که بسیاری از ما در راستای مسیر کدنویسی و ایجاد اشتغال خود برای رسیدن به آن تلاش میکنیم.
برنامه نویس ارشد بودن آنچه که فکر میکنیم نیست
قبل از شروع، بیایید این تفکر را از خودمان دور کنیم. این با چیزی که شما در بیش از 95 درصد مشاغل آنلاین میبینید در تناقض است، برنامه نویس ارشد بودن تنها به سابقهی موجود در رزومهی شما بستگی ندارد.
درست است که بیشتر اوقات، سابقهی کاری تجربهی زیادی را به همراه میآورد و با کار کردن در بعضی از شرکتها میتوانید به آن دست یابید اما این تنها عاملی نیست که به درستی نشان دهد کسی در سطح ارشد است.
این یک مشکل رایج در دنیای نرمافزار است و میتواند انتظارات زیادی را به دنبال داشته باشد. همچنین وقتی که برنامه نویس ارشد شما از همکاری با دیگر اعضا خودداری کند، ممکن است منجر به درگیری و تفرقه در تیم شود.
پس چه کاری میتوانیم انجام دهیم تا خود را برای آن نقش آماده کنیم؟
چه چیزی باعث میشود که برنامه نویس ارشد شویم؟
با نگاهی به حرفه خود در توسعه دهندگان تیمم که بیشتر آنها را تحسین کردهام، به چهار فاکتور زیر پی بردهام:
- تجربه
- رهبری
- مربی گری
- توانایی فنی
این کافی نیست که به هر یک از این موارد به عنوان تنها عملکرد افراد در یک تیم نگاه کنیم. هر برنامهنویسی تواناییهای خاص خود را دارد و ممکن است در یک ویژگی خاص از دیگری قویتر باشد. اما مهم این است که ببینید چگونه این خصوصیات جمع میشوند تا تعیین کنند چگونه کسی به رشد تیم شما کمک خواهد کرد.
بیایید این موارد را کمی مورد تحلیل قرار دهیم.
تجربه
تجربه معمولا به عنوان سابقهی کاری تلقی میشود، هرچند کاملا درست نیست ولی کل داستان را هم بیان نمیکند.
همانطور که هر برنامه نویس توانایی خاص خود را دارد، همین امر نشانهی تجربهی آنهاست. ممکن است یک برنامه نویس به مدت پنج سال در موقعیت سخت کار کند تا هر روز راهحلهایی را برای چالشهای فنی دشوار بیابد، در حالیکه دیگری میتواند در یک فروشگاه که تنها مسئولیت آن بروزرسانی وبسایت در هفته است، پایش را روی پایش بیندازد و چرت بزند.
و این لزوما چیز بدی نیست! ما هر کدام مسیر خود را داشتهایم و برای متناسب کردن آن باید زندگیمان را متعادل کنیم. اما واقعبینانه نیست که بگوییم آن پنج سال یکسان بوده است.
پس واقعا تجربه به چه معنی است؟
شناخت مسائل در کار قبلی
هر برنامه نویسی خاطرهای از خطا های تصادفی را که تجربه کرده به یاد دارد. اما میتوان با پرس و جو یا یک سرچ ساده در گوگل به آن پی برد. و سه ماه بعد وقتی روی یک پروژه دیگر کار میکنید و به همان خطا برخورد میکنید، دیگر نیاز نیست آن را در گوگل جستجو کنید یا حداقل میدانید که چه چیزی را سرچ کنید. چرا که از قبل میدانید مسئله چیست و میتوانید سریع از آن عبور کنید.
این نوعی تجربه است که باعث ایجاد تفاوت میشود. توانایی تشخیص راهحلها چیزی است که به رشد هر یک از ما کمک خواهد کرد. این ها تجربیاتی هستند که کمک میکنند در مواقعی که دیگر اعضا به مشکل میخورند، تیم عقب نیفتد و پیشرفت کند.
رهبری
از هر عضو ارشد یک تیم انتظار میرود که تمایل به رهبری داشته باشد. اگر چه این بدان معنا نیست که شما مدیر پروژه باشید و یا تصمیمات نهایی را بگیرید، این بدان معنی است که در سطحی باشید که بتوانید به پیشبرد پروژه کمک کنید.
کمک به اعضای کم تجربهی تیم
طبیعتاً این یعنی اینکه توانایی راهنمایی کردن اعضای کم سن و سال و کم تجربه ی تیم را داشته باشید. معمولا برای برنامهنویسان پیش میآید که تمرکز خود را در مسائل بزرگتر از دست بدهند، اما همانطور که گفتیم یک برنامه نویس ارشد باید قابلیت این را داشته باشد که در هر پروژهای خلاقیت و ایده خود را به کار گیرد، اعضای تیمش را راهنمایی کند تا آنها را در مسیر درست قرار دهد.
سعی کنید هنگام کار با دیگران، آنها را به پرسیدن سوالات بیشتر تشویق کنید. همچنین کدشان را بررسی کنید تا اگر مشکلی دارند آنها را در مسیر درست قرار دهید.
مربیگری
این خیلی راحت است که به سر کار بروید و نگران این نباشید که بقیه چه کار میکنند، اما آیا این واقعا به نفع کسی است؟
کمک به پیشرفت اعضای تیم
در این صورت شما به اصطلاح یک برنامه نویس x10 هستید (یک برنامه نویس x10، برنامه نویسی است که میتواند در جایی که یک برنامه نویس معمولی یک کار خوب انجام میدهد، او 10 برابر برنامهنویسان معمولی کار کند. در واقع بهتر است بگوییم برنامه نویس معمولی در میان برنامهنویسان حرفهای در این رشته، خروجی متوسطی را ارائه میدهد(، اگر که یک نفر عین خودتان را در تیم داشته باشد چرا که قطعا در انتخابهایتان دچار مشکل میشوید.
حتی برای روحیه هم بد است. هیچ کسی دوست ندارد در یک پروژه احساس تنهایی کند و یا بدتر از آن حس مبتدی بودن را داشته باشد. نرمافزار دنیای بزرگ و ترسناکی است، یک راهنمایی کوچک میتواند فشار و استرس پروژه را برای دیگر اعضا تبدیل به شادی و یک محیط آرامتر کند.
این را فراموش نکنید که همگی یک زمان عضو مبتدی تیم بودهایم. در نظر داشته باشید که همه با هم در یک جمع هستیم. پیروزیها را چه بزرگ و چه کوچک جشن بگیرید.
به اشتراکگذاری دانش
اشتراک دانش چیزی است که بیشتر تیمها با آن دست و پنجه نرم میکنند. در حالیکه همه ما معمولا امیدوار هستیم که راهی برای تحقق آن وجود داشته باشد و بیشتراوقات این موضوع حل نشده باقی میماند. پس چه باید کرد؟
این را به خودتان بسپارید که هر چه را میدانید با دیگران به اشتراک بگذارید. 30 دقیقه به بقیه مهلت دهید تا روی کدشان فکر کنند. اگر مشکل زیادی برای درک آن دارند، کد خودتان را با آنها به اشتراک بگذارید.
این کاری است که میتوانیم همه را به انجام آن ترغیب کنیم. شما طبیعتا با ارائه کار خود و توضیح آن به دیگران باعث میشوید که در ذهنتان تثبیت شود. این بسیار مفید خواهد بود، چه ارشد باشید و چه اولین باری باشد که یک ویرایشگر کد را باز میکنید.
توانایی فنی
به عنوان یک برنامه نویس ارشد از شما انتظار دارم که در تولید کد نسبت به برنامهنویسان مبتدی سریع تر عمل کنید. مثلا اگر برنامه نویس جاوااسکریپت هستید انتظار میرود اصول و الگوهای اصلی زبان را بهتر درک کنید.
اما این توقع بیجایی است که برنامهنویسان ارشد باید همه چیز را بدانند. من یک متخصص روبی را کمتر از برنامه نویس ارشد نمیدانم، چرا که آنها جاوااسکریپت را نمیشناسند اما میتوانند دانش خود را در یادگیری زبان دیگر به کار بگیرند.
گسترش الگوهای نرمافزاری
بیشتراوقات، الگوی کدی که تازه به آن رسیدهاید چیز جدیدی نیست و این اشکالی ندارد! هدف از ساختن نرمافزارهای عالی لزوماً منحصر به فرد بودن بودن آن نیست. به همین دلیل میتوانیم از کار های قبلی خود چه آنهایی که موفقیتآمیز بوده و چه آنهایی که خوب پیش نرفته، درس بگیریم.
الگوهایی مانند MVC (Model View Controller) بدون دلیل محبوبیت پیدا نکردند. توسعهدهندگان از همکاران و گذشتگان خود آموختهاند که چالش های بزرگ نرمافزاری را چگونه حل کنند.
همهی ما چالشهای منحصر به فرد خود را پیش رو داریم
مهم نیست که دیگران درباره شما چه فکری میکنند، همه ی ما در کد زدن مشکلات خاص خود را داریم. این برای تشویق شما برای تبدیل به یک برنامه نویس بهتر و درک چگونگی تاثیر کار شما بر بقیهی تیم است.
هرچند شما میتوانید بدون در نظر گرفتن این موارد موفق شوید، اما ممکن است این ویژگی را نداشته باشید که دیگران بتوانند با شما همکاری کنند.
هرچه با چالشهای بیشتر و جدیتری مواجه شوید، اینرا بهخاطر داشته باشید که در حال تبدیل شدن به یک برنامه نویس ارشد هستید.
به نظر شما چه چیزی باعث پیشرفت یک برنامه نویس مبتدی میشود؟
نظرات خود را با ما در میان بگذارید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید