برنامه نویسی یکی از پرطرفدارترین زمینههای حرفهای در دنیا است که فرصتهای فراوان یادگیری و کسب درآمد را در اختیار علاقهمندان قرار داده است. با این حال، موفقیت در این حرفه نیازمند یادگیری مداوم است و برای یادگیری، چه چیزی بهتر از کتاب!
به همین خاطر، ده مورد از بهترین کتاب های برنامه نویسی که به پیشرفت شما در این مسیر کمک میکنند، در ادامه معرفی شدهاند.
1.Clean Code: A Handbook of Agile Software Craftsmanship
نویسنده: Robert C. Martin
جدیدترین نسخه: اول
ناشر: Prentice Hall
قالب انتشار: الکترونیک/ جلد کاغذی
برنامه نویسی شغلی است که نیازمند سالها آزمون و خطا و مهارتآموزی مداوم است. ای کاش راهی وجود داشت که میتوانستیم از اشتباههای سایر برنامهنویسان یاد بگیریم و خود را از این همه سختی رها کنیم. خوشبختانه چنین راهی وجود دارد و نام آن Clean Code: A Handbook of Agile Software Craftsmanship، کتابی از عمو باب افسانهای است.
کتاب Clean Code بینش گرانبهایی دربارهی پاکسازی کد و توسعهی نرم افزار در ذهن خواننده پدید میآورد. توضیحات کامل و گام به گامی در مورد پاکسازی، نوشتن و بازآرایی (refactoring) کد در این کتاب مطرح شده و مثالهای کاربردی فراوانی نیز در مورد چگونگی نوشتن کد تمیز، در آن ارائه شده است.
پس از خواندن این کتاب میتوانید بدون هیچ زحمتی از روش چابک (Agile) – یکی از روش های پیشرو در چرخهی توسعهی نرمافزار ـ در پروژههای نرمافزاری خود بهره ببرید. همچنین متوجه خواهید شد که نسبت به قبل از خواندن این کتاب، به برنامهنویس مصممتر و منظمتری تبدیل شدهاید.
2. Introduction to Algorithms
نویسنده: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
جدیدترین نسخه: سوم
ناشر: The MIT Press
قالب انتشار: جلد سخت/ جلد کاغذی
نام این کتاب، محتوای آن را به خوبی نشان میدهد. این کتاب در مورد آشنایی با الگوریتم ها است. این کتاب را گاهی CLRS مینامند که به حروف اول نامهای خانوادگی نویسندگان آن اشاره دارد. در کتاب Introduction to Algorithms، نویسندگان در چندین فصل مجزا به طیف گستردهای از الگوریتم ها پرداختهاند.
همهی الگوریتم های مورد بحث در این کتاب، به طور کامل توضیح داده شده و با استفاده از شِبه کدهایی (pseudocode) ارائه شدهاند که برای تمام برنامهنویسان قابل خواندن هستند. حتی برنامهنویسان به نسبت تازهکار نیز میتوانند آنها را بخوانند.
این کتاب در چاپ سوم، مورد بازبینی کلی قرار گرفته و بهروزرسانی شده است. در این نسخه، دو فصل به کتاب اضافه شده است:
- درخت Van Emde Boas
- الگوریتم های چند رشتهای
در این نسخه، به فصلی که در مورد recurrence (باز رخداد) الگوریتم ها بود (فصل divide-and-conquer)، بخش قابل توجهی اضافه شده و بخشی در مورد ماتریسها نیز به کتاب پیوست شده است. همچنین تغییرات دیگری نیز در نسخهی سوم کتاب، اعمال شده است.
3. Structure and Interpretation of Computer Programs (SICP)
نویسنده: Harold Abelson, Gerald Jay Sussman, Julie Sussman
جدیدترین نسخه: دوم
ناشر: The MIT Press
قالب انتشار: جلد سخت/ جلد کاغذی
این کتاب که به SICP نیز معروف است یکی از بهترین کتاب ها برای یادگیری اصول برنامه نویسی به حساب میآید. کتاب Structure and Interpretation of Computer Programs که به عنوان یکی از دروس اصلی برنامه نویسی در دانشگاه MIT تدریس میشود، کتابی معروف است که از طرحهایی برای به تصویر کشیدن مفاهیم مختلف برنامه نویسی استفاده کرده است.
اگر چه داشتن این کتاب برای همهی برنامهنویسان ضروری است اما خواندن آن پس از یادگیری یک یا دو زبان برنامه نویسی تجربهی بسیار بهتری خواهد بود. این کتاب اصول اصلی برنامه نویسی را مورد بحث قرار داده و به برنامه نویسی کاربردی (functional) نیز پرداخته است.
به پایان رساندن مطالعهی کتاب SICP تجربهای سخت است. تمرینات بسیار زیاد موجود در این کتاب به خوانندگان کمک میکند تا مطالب کتاب را به خوبی درک کنند.
۴. The Clean Coder: A Code of Conduct for Professional Programmers
نویسنده: Robert C. Martin
جدیدترین نسخه: اول
ناشر: Prentice Hall
قالب انتشار: الکترونیک/ جلد کاغذی
کتاب The Clean Coder اثر نویسنده و مهندس نرم افزار باتجربه Robert C. Martin (معروف به عمو باب) است. این کتاب تمرینها، تکنیکها و ابزارهای مورد نیاز برای توسعهی نرمافزار را پوشش میدهد. با خواندن این کتاب علاوه بر یادگیری شیوهي تمیزنویسی کد، میآموزید که چگونه مانند یک برنامهنویس حرفهای و ماهر رفتار کنید.
کتاب The Clean Coder یک کتاب بسیار عالی برای کسانی است که به دنبال یادگیری جنبههای مختلف برنامه نویسی حرفهای، به روشی سخت اما کارآمد، هستند. پیشنهادهای کاربردی فراوانی دربارهی همهي جنبههای مرتبط با برنامه نویسی در این کتاب آمده است؛ از کد نویسی گرفته تا بازآرایی (refactoring) و آزمون (testing) کدها.
این کتاب تا کنون به صدها هزار توسعهدهنده کمک کرده است تا در کار خود پرشورتر و ماهرتر شوند. همین امروز خواندن این کتاب را شروع کنید و شاهد تحول شخصیت حرفهای خود باشید.
۵. Code Complete: A Practical Handbook of Software Construction
نویسنده: Steve McConnell
جدیدترین نسخه: دوم
ناشر: Microsoft Press
قالب انتشار: الکترونیک/ جلد کاغذی
آیا میخواهید صرفنظر از معماری زبان برنامه نویسی، بتوانید یک کد قوی بنویسید؟ پس خواندن کتاب Code Complete: A Practical Handbook of Software Construction را در برنامهی خود قرار دهید. این کتاب همهی جنبههای ساختار یک کد خوب را به طور کامل پوشش میدهد.
کتاب Code Complete یکی از بهترین راهنماهای عملی برنامه نویسی است. در این کتاب برنامه نویسی نمونه کدهای فراوانی بیان شده و هنر و دانش موجود در پشت پردهی توسعهی نرمافزار به خوبی به تصویر کشیده شده است. تکنیکها و راهبردهای آزموده شدهای که در این کتاب مطرح شده است به توسعهدهندگان نرم افزار کمک میکند تا:
- از توسعهی دو یا چند نفره بهره ببرند؛
- نرمافزار را با کمترین پیچیدگی توسعه دهند؛
- روند رفع مشکلات کد را سریعتر پیش ببرند؛
- خلاقیت خود را به اوج برسانند؛
- خطاها و مشکلات را به کمترین میزان ممکن برسانند؛
- کدهای خود را بازآرایی و آنها را کاملتر کنند.
صرف نظر از میزان تخصص خواننده، محیط توسعهی نرمافزار و اندازهی پروژه، کتاب Code Complete ذهن برنامهنویس را برای پیشرفت در جنبههای مختلف، برمیانگیزد.
۶. Design Patterns: Elements of Reusable Object-Oriented Software
نویسنده: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides و Grady Booch (دیباچه)
جدیدترین نسخه: اول
ناشر: Addison-Wesley Professional
قالب انتشار: الکترونیک/ جلد کاغذی/ جلد سخت
آیا با الگوهای طراحی نرمافزار آشنایی ندارید؟ کتاب Design Patterns: Elements of Reusable Object-Oriented Software یکی از منابع معتبر در این زمینه است و همانطور که ممکن است حدس زده باشید، خواندن آن کار آسانی نیست. اگر زیاد بر HTML تسط ندارید، ممکن است درک بعضی از اطلاعات بیان شده در این کتاب برای شما دشوار باشد. با این حال، این موضوع باعث نمیشود که قدرت روایتگری نویسنده که متنی آسان و آموزنده در این کتاب ارائه داده است را تحسین نکنید.
در این کتاب ۲۳ الگوی طراحی نرمافزار که به طراحان و توسعهدهندگان در طراحی نرمافزارهای بهتر، زیباتر و انعطافپذیرتر کمک میکند؛ توضیح داده شدهاند. کتاب Design Patterns برای مسائل عمده و رایج طراحی نرمافزار راهحلهای ساده و مختصر متعددی ارائه داده است.
حتی اگر با الگوهای طراحی نرمافزار آشنا هستید، باز هم لازم است کتاب Design Patterns: Elements of Reusable Object-Oriented Software را به کتابخانهی خود اضافه کنید تا هم درک خود نسبت به این موضوع را افزایش دهید و هم در موقع نیاز، به راحتی به این مرجع دسترسی داشته باشید.
همچنین برای یادگیری الگوهای طراحی میتوانید از دورهی آموزش الگوهای طراحی سکانآکادمی بهره ببرید.
۷. The Pragmatic Programmer
نویسنده: Andrew Hunt, David Thomas
جدیدترین نسخه: دوم (ویرایش بیستمین سالگرد انتشار)
ناشر: Addison-Wesley Professional
قالب انتشار: صوتی/ جلد سخت/ الکترونیک
این کتاب که در سال ۱۹۹۹ منتشر شد، با کمک به مخاطبان در توسعهی نرمافزارهای بهتر، توانست به جایگاه یک کتاب برنامه نویسی معتبر دست پیدا کند. کتاب The Pragmatic Programmer برای همهی کدنویسانی است که میخواهند به یک توسعهدهندهی ماهر و یک برنامهنویس تمام عیار تبدیل شوند.
اگر بارها و بارها این کتاب را بخوانید، در هر بار خواندن باز هم در آن چیز جدیدی برای یادگرفتن خواهید یافت. علاوه بر این، استفادهی خلاقانه از حکایتهای کلاسیک و مدرن، مقایسههای جالب و مثالهایی که مخاطب را به فکر وا میدارند، یادگیری هر بخش از این کتاب را به فعالیتی سرگرمکننده تبدیل کرده است.
کتاب The Pragmatic Programmer نهتنها طیف گستردهای از موضوعات برنامهنویسی را در بر میگیرد، بلکه موضوعات غیر رایج در کتابهای برنامهنویسی مانند توسعهی شغلی و مسئولیتپذیری شخصی حین توسعهی نرمافزار را نیز پوشش میهد.
۸. Head First Design Patterns: A Brain-Friendly Guide
نویسنده: Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson
جدیدترین نسخه: اول
ناشر: O’Reilly Media
قالب انتشار: الکترونیک/ جلد کاغذی
مجموعه کتابهای Head First به خاطر روش خلاقانهی خود در شکستن موضوعات پیچیده به واحدهای سادهتر و قابل فهم معروف است. کتاب Head First Design Patterns: A Brain-Friendly Guide نیز بر اساس همین روش تجربهشده و موفق، تدوین شده است.
مثالهای گویا و تأملبرانگیز فراوانی در این کتاب وجود دارد که یادگیری آن را سرگرمکننده و در عین حال، کارآمدتر میکند. برخلاف دیگر کتابهای برنامهنویسی که متن سنگینی دارند، ساختار کتاب Head First Design Patterns سرشار از عناصر دیداری است و ذهن مخاطب را به خوبی درگیر میکند.
کتاب Head First Design Patterns به زبان ساده الگویهای متعدد طراحی را توضیح میدهدکه توسعهدهندگان و برنامهنویسان ماهر سراسر جهان در تولید نرمافزارهای زیبا، کاربردی، انعطافپذیر و قابل استفادهی مجدد، از آنها بهره بردهاند.
۹. Refactoring: Improving the Design of Existing Code
نویسنده: Martin Fowler
جدیدترین نسخه: دوم
ناشر: Addison-Wesley Professional
قالب انتشار: جلد سخت/ الکترونیک
بازآرایی (refactoring) یک مفهوم بسیار مهم برای درک جنبههای اساسی نوشتن کد تمیز و قوی است. کتاب Refactoring: Improving the Design of Existing Code نوشتهی Martin Fowler تمام بازآراییهایی که هر برنامهنویس ماهری باید در مورد آنها بداند را پوشش داده است.
یادگیری بهترین روشهای بازآرایی کد به برنامهنویسان این امکان را میدهد که نگهداری از کد خود را بهتر انجام دهند یا حداقل آن را از خراب شدن حفظ کنند. در آخرین نسخهی این کتاب، مثالهایی از کدهای جاوا اسکریپت بیان شده است.
بازآرایی چیست؟ چرا باید کدها را بازآرایی کرد؟ از کجا بفهمیم کدی نیاز به بازآرایی دارد؟ پاسخ تمام این پرسشها و بسیاری از پرسشهای مهم دیگر مرتبط با بازآرایی کد به طور کامل در کتاب Refactoring: Improving the Design of Existing Code توضیح داده شده است. پس از خواندن این کتاب میتوانید:
- تستهای جامعی برای بازآرایی بسازید؛
- بازآراییها را جستجو کنید و بیابید؛
- در حین بازآرایی مشکلات را تشخیص داده و شناسایی کنید؛
- بازآراییها را به سرعت روی یک برنامه اعمال کنید تا درک و اصلاح آن آسانتر شود.
۱۰. مجموعهی چهار جلدی The Art of Computer Programming
نویسنده: Donald E. Knuth
جدیدترین نسخه: اول
ناشر: Addison-Wesley Professional
قالب انتشار: جلد سخت
برخلاف دیگر مواردی که در فهرست ده کتاب برتر برنامهنویسی معرفی شدند، The Art of Computer Programming یک مجموعهی چهار جلدی با این عناوین است:
جلد اول: Fundamental Algorithms
جلد دوم: Seminumerical Algorithms
جلد سوم: Sorting and Searching
جلد چهارم- الف: Combinatorial Algorithms
هر چند این کتابها در ابتدا به عنوان کتابهای مرجع نگاشته شدند، اما از میان برنامهنویسانی که مصمم به پشت سر گذاشتن محدودیتها هستند، مخاطب و طرفداران خود را پیدا کردند. این مجموعه کتاب برنامه نویسی، به طور عمیقتری به حوزهی الگوریتم های علوم کامپیوتر پرداخته و بنابراین خواندن آن کار آسانی نیست. Bill Gates این مجموعه کتاب را این گونه توصیف میکند:
“اگه فکر میکنین برنامهنویس خیلی خوبی هستین، کتاب Art of Computer Programming رو بخونین و اگه موفق شدین تمام مطالب اون رو بخونین، رزومهی کاری خودتون رو برای من بفرستین.”
Donald E. Knuth ، نویسندهی مجموعه کتاب The Art of Computer Programming موفق به دریافت جایزهی ACM A.M. Turing شده است. این جایزه به عنوان جایزهی نوبل علوم کامپیوتر در نظر گرفته میشود.
قبل از شروع مطالعهی این مجموعه کتاب، بهتر است بدانید که در این مجموعه با ریاضیات سنگینی سر و کار خواهید داشت.
خلاصه
در این مقاله فهرستی از ده کتاب برتر برنامهنویسی را بیان کردیم. کتاب یکی از مهمترین روشهای یادگیری است اما منابع دیگری نیز برای تقویت یادگیری وجود دارند مانند آموزشهای آنلاین، سمینارها، مقالاتی که به صورت آنلاین منتشر شدهاند، ویدئوهای آموزشی و بسیاری روشهای دیگر.
نکته مهم این است که باید به طور مداوم مهارتهای خود را ارتقا دهید و به دنبال یافتن و یادگیری روشهای جدید و بهتر برای انجام کاری باشید که به عنوان برنامهنویس یا توسعهدهندهی نرمافزار انجام میدهید. در دنیایی که به سرعت و به طور حیرتآوری در حال تغییر است، تنها کسانی دوام میآورند که تواناییهای خود را به تدریج ارتقا دهند .