کتابهای دستهبندی: مهندسی نرمافزار · همهٔ کتابها
کتابخانهٔ شنیدنی شبگفتار
کتابهای مهندسی نرمافزار
خلاصههای صوتی فارسی کتابهای مرتبط با مهندسی نرمافزار؛ کتاب و فصل دلخواهتان را برای شنیدن انتخاب کنید.
این مجموعه خلاصهٔ کتابهاست؛ نسخهٔ کامل کتاب اصلی نیست.
12 عنوان · 122 قسمت منتشرشده
راه را پیدا کنید
مسیرهای مطالعاتی
قفسهٔ کتابها
از این کتابها شروع کنید
پیشگفتار ویرایش دوم
نمونهٔ رایگانتوضیح و منابع این قسمت
این خلاصه بخشی از پروژه «خلاصهسازی ارزشمندترین کتابها برای اکوسیستم نوآوری فارسی» است که توسط رادیو شبگفتار تهیه شده و به کتاب «برنامهنویس عملگرا» اثر دیو توماس و اندرو هانت اختصاص دارد. این بخش، پیشگفتار ویرایش دوم کتاب را پوشش میدهد.
نویسندگان توضیح میدهند که در دهه نود میلادی، زمانی که با شرکتهایی کار میکردند که پروژههایشان با مشکلات متعددی روبرو بود، بارها مجبور شدند توصیههای مشابهی را تکرار کنند؛ مثلاً اینکه چرا کد فقط روی یک سیستم خاص کار میکند، چرا قبل از انتشار محصول تست نمیشود، یا چرا کسی از کاربران نظر نپرسیده است. برای صرفهجویی در زمان، شروع به یادداشتبرداری از این نکات کردند و این یادداشتها به کتاب «برنامهنویس عملگرا» تبدیل شد. این کتاب به طرز شگفتانگیزی مورد استقبال قرار گرفت و برای بیست سال محبوبیت خود را حفظ کرد.
اما به گفته نویسندگان، بیست سال در دنیای نرمافزار معادل چندین عمر است. یک برنامهنویس از سال ۱۹۹۹ اگر به تیمهای امروزی منتقل شود، در این دنیای جدید و ناآشنا با چالشهای جدی روبرو خواهد شد. به همین ترتیب، دنیای دهه نود نیز برای برنامهنویسان امروز غریبه است. ارجاعات کتاب به فناوریهایی مانند CORBA یا ابزارهای CASE، اکنون در بهترین حالت قدیمی و در بدترین حالت گیجکننده به نظر میرسند.
با این حال، نویسندگان تأکید میکنند که در طول این بیست سال، عقل سلیم هیچ تغییری نکرده است. فناوریها ممکن است دگرگون شده باشند، اما ماهیت انسانها و اصول اساسی کار خیر، ثابت ماندهاند. بسیاری از شیوهها و رویکردهایی که در آن زمان ایدههای خوبی بودند، همچنان نیز کاربردی و ارزشمند هستند. این جنبهها از کتاب به خوبی در برابر گذر زمان مقاومت کردهاند.
بنابراین، برای تهیه ویرایش بیستمین سالگرد کتاب، نویسندگان با یک تصمیم مهم روبرو شدند: آیا فقط ارجاعات فناوری را بهروزرسانی کنند، یا فراتر رفته و مفروضات پشت شیوههای توصیهشده را با دو دهه تجربه بیشتر بازنگری کنند؟ در نهایت، آنها هر دو کار را انجام دادند. نتیجه این شد که این ویرایش جدید، مانند «کشتی تسئوس» است؛ تقریباً یکسوم موضوعات کاملاً جدید هستند و بخش عمدهای از بقیه نیز به طور جزئی یا کلی بازنویسی شدهاند تا واضحتر، مرتبطتر و تا حد امکان جاودانهتر باشند.
در این ویرایش، تصمیمات دشواری گرفته شد. مثلاً، پیوست منابع حذف شد، زیرا بهروز نگه داشتن آن غیرممکن بود و امروزه جستجوی آنلاین آسانتر است. موضوعات مربوط به همزمانی (concurrency) با توجه به فراوانی سختافزارهای موازی و کمبود راههای مؤثر برای مدیریت آنها، بازنویسی و سازماندهی شدند. همچنین، محتوای جدیدی برای بازتاب تغییر نگرشها و محیطها، از جمله جنبش چابک (agile) که نویسندگان در راهاندازی آن نقش داشتند، تا پذیرش فزاینده الگوهای برنامهنویسی تابعی و نیاز روزافزون به در نظر گرفتن حریم خصوصی و امنیت، اضافه شده است.
جالب اینجاست که به گفته نویسندگان، بحث و جدل کمتری بر سر محتوای این ویرایش نسبت به ویرایش اول وجود داشت، زیرا هر دو احساس میکردند که شناسایی نکات مهم آسانتر شده است. آنها خوانندگان را تشویق میکنند که از کتاب لذت ببرند، شاید برخی شیوههای جدید را به کار گیرند، یا حتی با برخی از پیشنهاداتشان مخالفت کنند. مهم این است که در کار خود مشارکت فعال داشته باشند، بازخورد دهند و از همه مهمتر، کار را سرگرمکننده نگه دارند.
کتاب به صورت مجموعهای از موضوعات کوتاه و مستقل سازماندهی شده است که هر کدام به یک مفهوم خاص میپردازند. ارجاعات متعددی برای قرار دادن هر موضوع در بستر مناسب وجود دارد و خوانندگان میتوانند موضوعات را به هر ترتیبی که میخواهند مطالعه کنند. همچنین، نکاتی در قالب «Tip» در سراسر کتاب گنجانده شدهاند که خلاصهای از آنها در کارت پشت جلد نیز موجود است. تمرینها و چالشهایی نیز برای تعمیق یادگیری ارائه شدهاند که پاسخ تمرینها در پیوست کتاب آمده است.
نویسندگان به نحوه برخورد با اصطلاحات تخصصی نیز اشاره میکنند. آنها سعی کردهاند هر اصطلاح جدید را تعریف کنند، اما گاهی اوقات اصطلاحات رایج را بدون تعریف رها کردهاند. همچنین، در مواردی که اصطلاحات موجود به یک حوزه خاص محدود میشدند، خودشان واژههای جدیدی ابداع کردهاند تا مفاهیم را در بستر وسیعتری به کار ببرند.
در پیشگفتار ویرایش اول، نویسندگان هدف اصلی کتاب را کمک به برنامهنویسان برای تبدیل شدن به افرادی مؤثرتر و مولدتر بیان میکنند. آنها تأکید دارند که برنامهنویسی یک «صنعتگری» است که در آن برنامهنویس هم شنونده، هم مشاور، هم مفسر و هم دیکتاتور است.
مقدمه
نمونهٔ رایگانتوضیح و منابع این قسمت
این خلاصه از کتاب «ساختن مسیر شغلی در نرمافزار» نوشته دنیل هلر و از بخش «مقدمه» آن، به عنوان بخشی از پروژه «خلاصهسازی ارزشمندترین کتابها برای اکوسیستم نوآوری فارسی» توسط رادیو شبگفتار ارائه میشود. دنیل هلر در مقدمه کتابش به یک شکاف اساسی در آموزش مهندسان نرمافزار اشاره میکند. او میگوید که در سالیان اخیر متوجه شده است که مهندسان نرمافزار، علیرغم آمادگی فنی عالی، تشنه راهنمایی درباره دنیای حرفهای هستند و هیچکس به آنها مهارتهای حرفهای مورد نیاز را آموزش نداده است.
هلر این نتیجهگیری را بر اساس تجربه سه ساله خود در یک تیم بزرگ با برنامهنویسان جوان و باانگیزه به دست آورده است. در این مدت، او بارها و بارها از همکارانش سوالاتی شنیده که خودش نیز در روزهای ابتدایی و پر استرس کاریاش با آنها مواجه بوده است؛ سوالاتی مانند نحوه انتخاب شغل، رشد فنی، بهبود جلسات و مکاتبات، گرفتن ترفیع، یافتن یا راهنمایی مربی، و مدیریت بحران در زمان آنکال. این اشتیاق بینظیر به راهنمایی، نشانهای از یک «شکاف حیاتی» در آموزش علوم کامپیوتر امروز است. مهندسان جوان با آمادگی فنی عالی وارد صنعت میشوند، اما مجبورند خودشان، و اغلب به روش دشوار، نحوه حرفهای بودن را بیاموزند.
هدف اصلی این کتاب پر کردن این خلاء با ارائه یک راهنمای حرفهای برای مهندس نرمافزار مشتاق است. این کتاب، جنبههای مختلفی از مدیریت، تغییر نقشهای شغلی، شیوههای فنی حرفهای، ارتباطات فنی، جلسات، مدیریت پروژه، پیشرفت شغلی، مطالعه مداوم، مربیگری، و جبران خسارت را پوشش میدهد. به عبارت دیگر، یک راهنمای جامع برای جنبههای غیرفنی اما حیاتی یک شغل موفق در صنعت نرمافزار است.
دنیل هلر با ۱۲ سال سابقه در شرکتهای بزرگ نرمافزاری مانند اپل، اوبر و مایکروسافت، و با تجربه مدیریت تیمهای بیش از ۲۰ نفره، مصاحبه با صدها مهندس و مدیر، و هدایت دهها مورد رفع نقص در سیستمهای عملیاتی، خود را یک کدنویس معمولی معرفی میکند. او تأکید میکند که مشاور یا «معمار» نیست، بلکه یک برنامهنویس فعال است که همچنان مشغول حل مشکلات پیچیده با کدنویسی و بینش خود است.
مهمتر از همه، هلر خاطرنشان میکند که او یک برنامهنویس فوقالعاده باهوش یا به اصطلاح «۱۰x coder» نیست. او میگوید که با وجود اینکه قابل احترام است و در روزهای خوب خود بالاتر از حد متوسط عمل میکند، اما درخشش کدنویسی او خارقالعاده نیست. بنابراین، او مسیر شغلی جذاب و نسبتاً پردرآمد خود را بر اساس عواملی غیر از نبوغ کدنویسی ساخته است؛ عواملی مانند نظم، مطالعه، ارتباطات، مدیریت پروژه، همکاری و اولویتبندی. این کتاب نیز قصد دارد به خوانندگان کمک کند تا مسیر شغلی خود را به همین شیوه بسازند.
کتاب به چهار بخش اصلی تقسیم میشود. بخش اول به مسیر شغلی میپردازد: نحوه استخدام، جبران خسارت و ترفیع در شرکتهای فناوری، بهترین راه برای طی این فرآیندها و ترسیم مسیری برای رشد و پیشرفت. بخش دوم شامل مهارتهای غیرفنی متعددی است که به مهندسان کمک میکند در کار روزانه خود مؤثر باشند؛ موضوعاتی مانند مدیریت پروژه، برگزاری جلسات، همکاری با مدیر و همکاران، جبران اشتباهات، و مشارکت مؤثر در تیم.
بخش سوم به مهمترین مهارت غیرفنی برای برنامهنویسان، یعنی هنر اغلب فراموششده ارتباطات مهندسی، میپردازد. این بخش با یک مدل جامع از ارتباطات در محیط کار آغاز شده و سپس به موضوعات کاربردی مانند نگارش فنی، ایمیلنویسی و پرسیدن سوالات مؤثر میپردازد.
در نهایت، بخش چهارم جنبههای فنی را پوشش میدهد و مجموعهای از موضوعات فنی را که نویسنده دریافته است برای مهندسان نرمافزار جدید دشوار است – مسائلی که هر روز در دفاتر نرمافزاری پیش میآیند اما هرگز در کلاسهای درس آموزش داده نمیشوند – مورد بررسی قرار میدهد.
هدف این کتاب ارائه بهترین بازده ممکن برای زمان خوانندگان است. نویسنده تلاش کرده است طیف وسیعی از موضوعات را با بخشهای کوتاه و مستقل پوشش دهد که هم برای مطالعه پراکنده و هم برای خواندن کامل کتاب مناسب باشند. امید میرود که این کتاب ابزارهایی را به شما بدهد تا با اطمینان مسیر شغلی خود را هدایت کنید، از برخی یا تمام اشتباهاتی که خود نویسنده از آنها درس گرفته است جلوگیری کنید، و در نهایت به عنوان یک متخصص نرمافزار به موفقیت برسید.
خوانش عملی از این مقدمه میتواند این باشد که اگرچه تسلط فنی بر کدنویسی و الگوریتمها ضروری است، اما نباید از اهمیت مهارتهای نرم و حرفهای غافل شد. موفقیت پایدار در دنیای نرمافزار نیازمند ترکیبی از هوش فنی و مهارتهای ارتباطی، مدیریتی و اجتماعی است.