Anophel-آنوفل 12 ویژگی برنامه نویسان ارشد (Senior) که Juniors باید بدانند

12 ویژگی برنامه نویسان ارشد (Senior) که Juniors باید بدانند

تاریخ انتشار:
Review
زمان مطالعه: 15 دقیقه

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

 

پس از حدود 7 سال از تجربه در برنامه نویسی و تجربیاتی که از دیگران کسب کرده ام، در این مقاله می خواهیم درباره 12 ویژگی توسعه دهنده گان ارشد (Senior) بپردازیم که بتوانیم به سرعت رشد خود سرعت ببخشیم .

 

بیایید با شماره یک شروع کنیم.

 

1. تمرکز

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

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

شما نمی توانید هر فریمورک جدیدی را در آنجا یاد بگیرید. شما نمی توانید هر خبرنامه را بخوانید. شما نمی توانید در هر کنفرانسی شرکت کنید. و شما مجبور نیستید.

 

زمان شما محدود است انرژی شما هم همینطور.

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

 

«مردم فکر می کنند تمرکز یعنی بله گفتن به چیزی که باید روی آن تمرکز کنید. اما اصلاً معنی آن این نیست. یعنی نه گفتن به صد ایده خوب دیگر.» - استیو جابز

 

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

 

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

 

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

 

2. تفکر مرتبه دوم

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

 

به عنوان مثال، Vue را به عنوان یک فریمورک فرانت‌اند انتخاب می‌کنید.

سپس، الزامات تغییر می کند. به این فکر می کنید که React گزینه بهتری است. مطمئناً، می توانید به React تغییر دهید. اما نه آسان خواهد بود و نه ارزان.

 

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

 

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

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

 

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

 

3. عمل گرایی

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

 

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

 

توسعه دهندگان ارشد می دانند چگونه بهترین شیوه ها و زمان را برای بازار متعادل کنند. چه زمانی باید از میانبر استفاده کرد و چه زمانی نباید استفاده کرد.

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

 

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

 

4. چیزی برای اثبات وجود ندارد

به دلیل عدم اعتماد به نفس، توسعه دهندگان جوان دائماً در تلاش هستند تا خود را به دیگران ثابت کنند. همینطور در مورد توسعه دهندگان ارشد که در مورد ارزش و مهارت های خود بی اعتبار هستند.

آنها اعتماد خود را بر اساس تأییدیه ای که از دیگران دریافت می کنند استوار می کنند ولی این یک بازی باخت است.

 

آنها سعی خواهند کرد در یک بحث فنی خاص، صحبت کردن با دیگران، یا push کردن کد در اواخر شب یا آخر هفته نشان دهند که چقدر می دانند.

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

 

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

دو راه برای مقابله با این موضوع وجود دارد.

اولین مورد این است که هزینه های زیادی را برای اعتبارسنجی خارجی خود متوقف کنید. زیرا حقیقت این است که شما نیازی به اثبات خود به کسی ندارید. دوم این است که با صداهای منفی در ذهن خود صلح کنید و منفی نباشید.

 

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

 

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

 

5. تسلط بر اصول

هر زمان که به پروفایل لینکدین یک توسعه‌دهنده برخورد می‌کنم و آنها خود را توسعه‌دهنده «React» یا توسعه‌دهنده «لاراول» توصیف می‌کنند، می‌دانم که ارشد نیستند. آنها ممکن است در آن فریمورک ارشد باشند، اما به طور کلی برنامه نویس ارشد نیستند. یک توسعه دهنده Framework هرگز یک توسعه دهنده ارشد نخواهد بود.

 

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

 

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

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

 

برای مثال، یک توسعه‌دهنده ارشد نه تنها می‌تواند یک برنامه React بسازد بکله آنها همچنین متوجه خواهند شد که چرا React به روشی خاص ساخته شده است. و اینکه چگونه با زبانی که به آن نوشته شده است (جاوا اسکریپت/تایپ اسکریپت) و پلتفرمی که روی آن اجرا می شود (مرورگر وب) ترکیب می شود.

 

خبر خوب این است که به محض اینکه به اصول اولیه رسیدگی کنید، سطح همه چیز بالا خواهد رفت.

 

برای اطلاعات بیشتر درباره یادگیری به صورت پروژه محور می توانید این مقاله را بررسی کنید.

 

6. تحویل End-to-End

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

 

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

 

بلکه، توسعه دهندگان ارشد تمام قطعات اصلی در چرخه عمر توسعه نرم افزار را درک می کنند. و می تواند به هر یک از آنها (فرانت اند، بک اند، استقرار) کمک کند.

اگر شما یک توسعه دهنده جوان/متوسط هستید که به دنبال ارتقاء سطح هستید، تحویل انتها به انتها یکی از ویژگی هایی است که باید به آن توجه کنید.

 

7. مدل های ذهنی

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

 

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

 

چگونه توسعه دهندگان می توانند مدل های ذهنی با کیفیت بسازند؟

 

با نگاه کردن به چارچوب ها و کتابخانه ها و یادگیری الگوهای طراحی پشت آنها. بسته به استک فناوری شما، نویز زیادی وجود دارد. چیزهایی مانند اصول SOLID یا MVC…

اما من فکر می کنم بهترین راه برای شروع این است که هر چارچوبی را که با آن کار می کنید انتخاب کنید و سعی کنید فراتر از کد نگاه کنید.

 

از خود بپرسید، چرا سازندگان فریمورک آن را به این شکل ساخته اند؟ آیا بر اساس مفاهیم جدید ساخته شده است یا فقط اجرای اصول قدیمی است (که معمولاً چنین است)؟

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

 

برای اطلاعات بیشتر می توانید به مقاله چگونه مانند یک توسعه دهنده فکر کنیم را بررسی کنید.

 

8. توسعه دهندگان ارشد داستان را کنترل می کنند

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

 

توسعه دهندگان ارشد نیز قادر به تعیین مرزهای قوی هستند. آنها می توانند بدون احساساتی شدن اختلاف نظر داشته باشند. آنها می توانند در طول جلسات از خود (و دیگران) دفاع کنند. آنها به شدت در مورد حقوق خود مذاکره می کنند. و داستان خودشان را می گویند.

 

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

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

 

نیاز به تکرار و تمرین دارد. اولین قدم این است که همیشه «بله» گفتن را متوقف کنید. و شروع به تلاش برای رسیدن به راه خود در مذاکرات حقوق و دستمزد کنید.

 

9. تفکر بلند مدت

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

مانند عدم بهبود مهارت ها یا روشی که در پیش گرفتید، زیرا در حال حاضر شغل شما ثابت است.

 

بخشی از تبدیل شدن به یک توسعه دهنده ارشد، شروع به فکر بلندمدت می کند.

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

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

 

چیزهای خوب زمان می برد، توسعه دهندگان ارشد این را می دانند و تفکر خود را بر این اساس تنظیم می کنند.

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

 

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

 

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

 

10. تعالی یک عادت است

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

 

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

 

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

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

 

عادات جدیدی را تنظیم کنید و پیشرفت شما به سمت سطح ارشد ثابت و ثابت خواهد بود.

 

می توانید برای اطلاعات بیشتر مقاله درباره 8 نکته برای زندگی بهتر به عنوان یک توسعه دهنده را بررسی کنید.

 

11. از مهمترین دارایی خود محافظت کنید

توسعه دهنده ارشد بودن به این معنی است که نه تنها در مورد کد و تصمیمات فنی خود بلکه در مورد سلامتی خود نیز درازمدت فکر کنید. زیرا سلامتی ثروت است.

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

سپس، تمام مواد غذایی شما مانند چیپس، نوشابه، و آب نبات در لیست تان وجود دارد. این بدان معناست که اگر تلاشی آگاهانه انجام ندهید، سالم ماندن و تناسب اندام برای شما سخت خواهد بود.

 

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

 

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

یا رژیم بگیرید. اما حداقل ۲ تا ۳ بار در هفته ورزش کنید. می توانید به باشگاه بروید، برای دویدن بروید یا یک ورزش گروهی انجام دهید.در رژیم غذایی، شکر و کربوهیدرات های تصفیه شده را کاهش دهید. در مصرف گوشت هم زیاده روی نکنید.

 

سلامت روان خود را نیز در نظر بگیرید.

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

 

12. دایره را ببندید

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

 

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

چیز دیگری که می توانید به یک عادت روزانه تبدیل کنید!

 

نتیجه

خب، این است. این 12 ویژگی را در حرفه خود انجام دهید و به سرعت رشد خود را تا سطح ارشد و فراتر از آن دنبال خواهید کرد.

 

برای حرکت رو به جلو، در اینجا 2 کاری وجود دارد که از شما می خواهم انجام دهید:
1. چه ویژگی هایی را در برنامه نویسان ارشد دیده اید که فکر می کنید باید به لیست اضافه کنیم؟ در قسمت نظرات بنویسید و من سعی می کنم به همه نظرات شما پاسخ دهم!

 

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

#برنامه_نویسی #senior #junior #developer
12 ویژگی برنامه نویسان ارشد (Senior) که Juniors باید بدانند