مهارتهای مهندس نرمافزار
Software engineering skillsهیچکس بهخاطر ندانستن یک تابع اخراج نمیشود. آدمها بهخاطر تخمینهای غلط، کدی که کسی نمیتواند نگهداری کند، و نتوانستن توضیح کارشان گیر میکنند. این مسیر دربارهٔ همان چیزهاست.
پیشرفت تو
درصد هر فصل از دو چیز میآید: چقدر از بخشهایش را خواندهای (۵۵٪) و چند تمرینش را تیک زدهای (۴۵٪). همهچیز داخل مرورگر خودت میماند.
فصل
فصلها به هم وابستهاند و ترتیبشان معنا دارد. هر مسیر با پروژههای نهایی تمام میشود: ساده، متوسط، پیچیده.
مهندس نرمافزار چه کاری میکند
کدنویسی کمتر از نصف کار است.
در نوبت نوشتنخواندن کد دیگران
روش سیستماتیک ورود به یک پروژهٔ ناآشنا.
در نوبت نوشتننوشتن کد قابل نگهداری
نامگذاری، اندازهٔ تابع و کامنتی که ارزش دارد.
در نوبت نوشتنcode review: دادن و گرفتن
نقد کد بدون نقد آدم.
در نوبت نوشتناشکالزدایی سیستماتیک
فرضیه، آزمایش، حذف — بهجای حدس زدن.
در نوبت نوشتنتخمین و برنامهریزی
چرا همیشه طولانیتر میشود، و چه کارش میشود کرد.
در نوبت نوشتننوشتن مستند فنی
RFC، ADR و مستندی که خوانده شود.
در نوبت نوشتنارتباط با غیرفنیها
ترجمهٔ تصمیم فنی به زبان اثر.
در نوبت نوشتنکار تیمی و جریان Git
شاخه، commit خوانا و حل تعارض.
در نوبت نوشتنمصاحبهٔ فنی
الگوریتم، طراحی سیستم و سؤال رفتاری.
در نوبت نوشتنرزومه و نمونهکار
نوشتن اثر، نه فهرست تکنولوژی.
در نوبت نوشتنیادگیری مداوم
چطور یاد بگیری بدون غرق شدن در ابزار جدید.
در نوبت نوشتنمدیریت زمان و تمرکز
کار عمیق در محیطی پر از وقفه.
در نوبت نوشتنرشد شغلی: junior تا senior
تفاوت واقعی سطحها چیست.
در نوبت نوشتنپروژهٔ ۱ — مستندسازی یک پروژهٔ موجود
README، ADR و راهنمای شروع.
در نوبت نوشتنپروژهٔ سادهپروژهٔ ۲ — review و بهبود کد دیگران
خواندن، نقد سازنده و refactor.
در نوبت نوشتنپروژهٔ متوسطپروژهٔ ۳ — نمونهکار قابل ارائه
پروژهای با مستند، تست، CI و توضیح تصمیمها.
در نوبت نوشتنپروژهٔ پیچیده