برنامه نویسی

9 مدل ذهنی برنامه نویس ارشد که هر برنامه نویسی باید تسلط داشته باشد

«توسعه‌دهنده ارشد یک عنوان نیست. این یک طرز فکر است.» – بوگدان ندلکو

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

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

اما در حالی که فناوری همیشه تغییر می کند، اصول و مدل های ذهنی به ندرت تغییر می کنند.

مثلا، “با دیگران همان گونه رفتار کن که دوست داری با تو بکنند” 2000 سال پیش معتبر بود و تا 2000 سال بعد هم معتبر خواهد بود.

نگران نباشید من اینجا هستم تا به شما کمک کنم 😊

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

در اینجا 9 مدل ذهنی وجود دارد که به شما کمک می کند مانند یک برنامه نویس ارشد فکر کنید:

1. اصل پارتو – 20 درصد علل 80 درصد نتایج را به همراه خواهند داشت. به عنوان یک توسعه دهنده، 20 درصد از کار شما 80 درصد اهرم را به شما می دهد. 20٪ از ویژگی هایی که روی آنها کار خواهید کرد 80٪ تشخیص را برای شما فراهم می کند. 20 درصد از شرکت ها ارزش کار کردن را دارند. و غیره اصل پارتو در همه جای زندگی شما اعمال می شود. شما باید تلاش خود را بر روی 20 درصدی که نتیجه می دهد شناسایی و متمرکز کنید.

2. قانون پارکینسون – شما تمام زمانی را که به خود اختصاص می دهید صرف انجام کاری می کنید، صرف نظر از زمانی که برای تکمیل آن صرف می شود. اگر به خودتان 100 ساعت برای انجام یک پروژه جانبی اختصاص دهید، 100 ساعت زمان می برد. حتی اگر می شد فقط در 10 ساعت این کار را انجام داد. در هر دوره‌ای که انجام می‌دهید، ویژگی‌هایی که روی آن کار می‌کنید یا حتی جستجوی شغلتان نیز همین‌طور است. به همین دلیل است که شما نیاز به مهلت های مشخص دارید. اگر نه، طعمه قانون پارکینسون خواهید شد و هرگز به پایان نخواهید رسید.

3. تصمیمات نوع 1 در مقابل تصمیمات نوع 2 (تصمیمات یک طرفه، دو طرفه درب) – تصمیمات نوع 1 برگشت ناپذیر هستند، پس وقت خود را صرف کنید. نوع 2 را می توان به راحتی بازگرداند، بنابراین زیاد به آنها فکر نکنید. به عنوان مثال، انتخاب بین پایگاه داده SQL و NoSQL بیشتر یک تصمیم نوع 1 است. هنگامی که تمام داده های شما به روش خاصی ساختار یافته است، انتقال مجدد به آن دشوار است. اما انتخاب بین استفاده از Axios یا Fetch برای دریافت داده های خود در برنامه React بیشتر یک تصمیم نوع 2 است. همیشه می توانید به عقب برگردید. و می توانید به تدریج این کار را انجام دهید.

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

4. قانون کانوی – ساختار یک سیستم نرم افزاری تمایل به تقلید از طراحی تیم ها و سازمان ایجاد کننده آن دارد. سازماندهی بهتر، ساختار بهتر. اگر به تیم های نرم افزاری نگاه کنید، آن ها حول مهارت های فنی هر یک از اعضا ساخته شده اند. شما مهندسان Frontend، مهندسان Backend، مدیران پایگاه داده و افراد DevOps دارید. نرم افزاری که آنها می سازند ساختار ارتباطی آنها را منعکس می کند. برای مثال، Frontend و Backend با یک API از هم جدا می شوند که هر دو تیم باید روی آن توافق کنند. و غیره.

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

5. دایره صلاحیت – این یکی از چارلی مانگر می آید. یعنی بدانید چه می دانید و چه چیزی را نمی دانید. و به آنچه می دانید بچسبید تا زمانی که گسترش یابد. Munger از ماندن در دایره شایستگی و تسلط بر رشته خود دفاع می کند.

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

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

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

اگر به چارچوب‌های جاوا اسکریپت نگاه کنید، می‌توانید به سرعت با تمام ویژگی‌های فانتزی آن‌ها (از قلاب‌ها گرفته تا APIهای متنی گرفته تا تکان دادن درختان و غیره) حواس‌تان پرت شود، در نهایت، چیزی که در مورد آن صحبت می‌کنید مجموعه‌ای از نمایش‌ها (DOM مجازی، اظهاری) است. برنامه نویسی، معماری مبتنی بر مؤلفه) روی همان جاوا اسکریپت خوب قدیمی اعمال می شود. وقتی آن را اینطور دیدید، تسلط بر آن ساده می شود 🙂 اصول اول تنها راه است!

7. تفکر مرتبه دوم – همیشه سعی کنید به عواقب فکر کنید ( مرتبه دوم). این به این معنی است که از خود بپرسید “و بعد چه؟” بعد از هر کاری که انجام می دهید به عنوان مثال، شما از کار خود راضی هستید، اما شرکت شما با مسائل مالی مواجه است. آنها ممکن است شما را رها کنند، بنابراین شما باید همین الان به بازار بروید و مصاحبه کنید.

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

8. تفکر وارونه – یکی دیگر از چارلی مانگر (من فکر می کنم یک ریاضیدان آلمانی این اصل را فرموله کرده است و او فقط آن را به عاریت گرفته است). این اصل بیان می کند که راه حل یک مشکل برعکس آن مشکل است. بنابراین برای یافتن راه حل، به این فکر نکنید که چگونه مشکل را حل کنید، بلکه به نحوه ایجاد آن فکر کنید. مثال: من می خواهم به عنوان یک توسعه دهنده به سطح بعدی برسم. باید چکار کنم؟ بیایید در نظر بگیریم که برای ماندن در همان سطح چه چیزی لازم است.

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

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

یک مثال توسعه دهنده Front-end است که در مورد Kubernetes می شنود و سعی می کند آن را یاد بگیرد. آنها دیوانه وار فشار می آورند، عصرها و آخر هفته ها کد می نویسند و صدها ساعت در گواهینامه های Cloud قرار می دهند. اما آنها همچنان به عنوان یک توسعه دهنده Front-end کار می کنند، بنابراین نمی توانند آن را در زندگی واقعی تمرین کنند. در مصاحبه بعدی، از آنها در مورد موضوعاتی که باید در آنها مهارت داشته باشند (TypeScript، Testing، Performance، Architecture) پرسیده می شود، اما آنها هیچ سرنخی ندارند. تمام وقت آنها صرف چیزهای Kubernetes شد.

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

این است.

این 9 مدل ذهنی را در حرفه توسعه‌دهنده (و زندگی روزمره) خود به کار ببرید، و راهی سریع و شهودی برای تصمیم‌گیری سریع خواهید داشت.

آیا می خواهید استاد تفکر سطح ارشد شوید؟ بنابراین می توانید با اطمینان ارائه دهید و به مشاغل و حقوق توسعه دهندگان ارشد دسترسی داشته باشید؟

آموزش رایگان ما را در اینجا بررسی کنید و ببینید که آیا واجد شرایط هستید، ممکن است بتوانیم به شما کمک کنیم!

PS اگر می خواهید با یک ایمیل در مورد الگوهای طراحی سطح ارشد و مدل های فنی و ذهنی به من اطلاع دهید 🙂

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا