- عنوان کتاب: Fundamentals of Software Engineering From Coder to Engineer
- نویسنده: Nathaniel Schutta, Dan Vega
- حوزه: مهندسی نرمافزار
- تعداد صفحه: 405
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 11.6 مگابایت
برنامهنویس، کدنویس، توسعهدهنده – عناوین زیادی برای توصیف افرادی که نرمافزار تولید میکنند، وجود دارد، اما مهندس نرمافزار بودن به چه معناست؟ علیرغم نحوهی آموزش نرمافزار، مهندس نرمافزار بودن چیزی فراتر از تولید برنامههایی با ساختار نحوی صحیح است. بوت کمپها و دانشگاهها معمولاً بر جنبههای مکانیکی نوشتن کد تمرکز میکنند و افرادی را تربیت میکنند که در برنامهنویسی تبحر دارند. دانش مورد نیاز امروز برای یک مهندس نرمافزار موفق بودن، فراتر از یادگیری یک زبان برنامهنویسی است. شما باید در چرخهی کامل حیات یک محصول نرمافزاری تبحر داشته باشید. شما باید درک جامعی از چیزی بیش از نحو و دستور زبان یک زبان برنامهنویسی داشته باشید. شما باید در آزمایش، معماری، مدلسازی و موارد دیگر تبحر داشته باشید. شما باید بدانید که چگونه به طور مؤثر با کدهای قدیمی کار کنید و چگونه کد را به طور قابل اعتماد و مکرر در تولید مستقر کنید. برای پیشرفت، ارتقا و کار بر روی جالبترین پروژهها، باید فراتر از صرفاً نوشتن کد عمل کنید. شما باید اصول مهندسی را در کل فرآیند توسعه به کار ببرید. حتی در عصر هوش مصنوعی (AI) و ابزارهای کدنویسی عاملمحور، برای استفاده صحیح از ابزارهای هوش مصنوعی، باید درک کاملی از اصول اولیه داشته باشید. مسیرهای زیادی برای تبدیل شدن به یک مهندس نرمافزار وجود دارد، از برنامههای کاردانی و کارشناسی در علوم کامپیوتر گرفته تا اردوهای آموزشی فشرده برای خودآموزی (شکل P-1). در اوایل حرفه مهندسی نرمافزار، ممکن است احساس کنید که تازه اولین قدمهای خود را به دنیای بزرگتری برداشتهاید. این میتواند طاقتفرسا باشد. ما میدانیم، ما آنجا بودهایم! صرف نظر از پیشینه شما، اگر یک متخصص تازهکار باشید، به زودی متوجه میشوید که طیف گستردهای از مباحث حیاتی وجود دارد که به عنوان بخشی از یک برنامه درسی استاندارد به شما آموزش داده نشدهاند و مهارتهایی که ندارید، مانع از پیشرفت شما به نقشهای ارشدتر میشود. بین آنچه در یک اردوی آموزشی یا مدرک علوم کامپیوتر میآموزید و آنچه برای تبدیل شدن به یک مهندس نرمافزار موفق باید بدانید، شکافی وجود دارد.1 (شرکتهای فنی مانند Thoughtworks شیوههای استخدام سختگیرانهای دارند، با این حال آنها همچنان استخدامهای جدید خود را از طریق اردوی آموزشی میفرستند و آنها تنها نیستند.) این کتاب تلاش میکند تا با ارائه زمینه و زمینهای که برای ترسیم مسیر شغلی خود نیاز دارید و کمک به شما در شناسایی فرصتهای رشد شخصی و حرفهای، این شکاف را پر کند. آن را به عنوان یک راهنمای مقدماتی برای مهندس نرمافزار با استعداد اولیه در نظر بگیرید. این کتاب قصد دارد راهنمای شما در این سفر باشد تا چیزهایی را که ممکن است ندانید که نمیدانید، به شما نشان دهد. این کتاب به طور خاص برای مهندسان نرمافزار جدید طراحی شده است. هدف ما این است که تصویر بزرگتری از آنچه برای تبدیل شدن به یک مهندس نرمافزار واقعی، فراتر از “کدنویسی صرف” لازم است، و آنچه برای پیشرفت شغلی شما لازم است، به شما نشان دهیم. اما اصول اولیهای که در این کتاب مورد بحث قرار خواهیم داد فقط برای مبتدیان نیست. مهندسان باتجربه نیز میتوانند از تسلط بر این مهارتهای ضروری بهرهمند شوند، به خصوص اگر به دنبال پیشرفت و تصدی نقشهای ارشدتر هستند. ایجاد مجموعهای از مهارتهای قوی، فرصتهایی را برای مسئولیتهای بیشتر و ارتقاء شغلی ایجاد میکند.
Programmer, coder, developer—there are any number of titles used to describe people who create software, but what does it mean to be a software engineer? Despite the way software is often taught, being a software engineer is about far more than simply producing syntactically correct programs. Boot camps and universities typically focus on the mechanical aspects of writing code, creating people who are well-versed in programming. The body of knowledge required today to be a successful software engineer goes beyond learning a programming language; you must be well-versed in the full lifecycle of a software product. You must have a comprehensive understanding of more than just the syntax and grammar of a programming language; you must be well-versed in testing, architecture, modeling, and more. You must know how to work effectively with legacy code and how to reliably and repeatedly deploy code to production. To excel, be promoted, and to work on the most interesting projects, you must move beyond merely writing code; you must apply engineering principles across the entire development process. Even in the era of artificial intelligence (AI) and agentic coding tools, you must have a solid grasp of the fundamentals to wield AI tools properly. There are many paths to becoming a software engineer, from associate’s and undergraduate programs in computer science to intensive boot camps to teach yourself (Figure P-1). Early in your software engineering career, it can feel like you’ve just taken your first steps into a larger world. It can be overwhelming. We know, we’ve been there! Regardless of your background, if you’re a newly minted practitioner, you soon discover there is a vast array of critical topics you weren’t taught as part of a standard curriculum and skills you don’t have, which prevents you from advancing to more senior roles. There is a gap between what you learn in a boot camp or a computer science degree and what you need to know to become a successful software engineer.1 (Technical companies like Thoughtworks have stringent hiring practices, yet they still send their new hires through a boot camp, and they aren’t alone.) This book attempts to bridge that gap by giving you the context and grounding you need to chart your career path and helping you identify opportunities for personal and professional growth. Think of it as an onboarding guide for the early talent software engineer. This book aims to be your guide on that journey, to show you the things you may not know you don’t know. This book is specifically designed for new software engineers. Our goal is to show you the bigger picture of what it takes to become a true software engineer, beyond “just coding,” and what it takes to advance your career. But the fundamentals that we’ll discuss in this book aren’t just for beginners. Experienced engineers can also benefit from mastering these essential skills, especially if they’re looking to move up and take on more senior roles. Building a strong skill set is what will unlock opportunities for more responsibilities and promotion.
این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:
Download: Fundamentals of Software Engineering From Coder to Engineer

نظرات کاربران