توسعه دهنده اندروید | هم تیمی در coursee.org | در تلاش برای تبدیل رویا به واقعیت
هفت کتاب مهمی که هر برنامه نویس باید بخواند !
در این پست قرار هست چند کتاب خیلی خوب و فوق العاده ایی که هر برنامه نویسی در طول زندگی حرفه ای اش باید بخواند را معرفی کنم .
این کتاب ها به طور خاص به یک زبان یا تکنولوژی مشخصی مرتبط نیستند و این می تواند یکی از مهمترین دلایلی باشد که من آنها را انتخاب کردم .
حتی اگر یک کتاب از یک زبان برنامه نویسی برای شرح اطلاعات استفاده کند ، زبان برنامه نویسی یک هدف نیست ، بلکه وسیله ای برای روشن شدن است و اصول ارائه شده در کتابها برای هر کسی که می خواهد سطح فنی خود را بهبود بخشد ،بسیار مفید است .
کتاب اول : Code Complete 2nd Edition
کتاب اول ، کتابی است که در کتابهای مهندسی نرم افزار امتیاز خاصی را دارا می باشد که نویسنده ی این کتاب یکی از بهترین نویسندگان و متخصصان این حوزه می باشد! نویسنده ی این کتاب Steve McConnell می باشد .
این کتاب مجموعه ای از اصول مهم را برای هر برنامه نویس مانند مقابله با پیچیدگی و چگونگی حل آن ، مفاهیمی همچون ماژولارسازی ، انتزاعی بودن را ارائه می دهد. مراحل مختلف موجود در آن ، با تمرکز بر مراحل ساخت ، که الزامات ، طراحی و کد نویسی هستند را نشان می دهد.
این کتاب به شما می آموزد که مهندسی نرم افزار به معنای واقعی چیست و چگونه می توانید مهندس نرم افزار بمانید و یکی از بهترین فصل های کتاب فصل 33 است که در مورد شخصیت شخصی و چگونگی ساخت شخصیت و اصول خود به عنوان مهندس نرم افزار صحبت می کند.
کتاب دوم : Clean Code
کتاب دوم کتابی است که درباره آنچه که یک کد تمیز است صحبت می کند ، همانطور که از نام کتاب پیداست در رابطه با کد نویسی تمیز و کاربردی است . پیچیدگی را کاهش می دهد و در صورت لزوم آن را ساده می کند .نویسنده ی این کتاب Robert C.Martin است که معروف به عمو باب می باشد.
این کتاب بخشی از مجموعه ای ازسری کتاب های Clean است که Clean Coder و Architecture Clean است نیز در این دسته قرار می گیرند .آنها را نیز در لیست خواندنی های مهم قرار دهید.
این کتاب کاربردی را کاملا خوانده ام و بسیار کاربردی و مفید می باشد .
کتاب سوم : Working Effectively with legacy Code
کتاب سوم کتابیست که در مورد مشکلاتی است که هر برنامه نویس در طول زندگی حرفه اییش با آن ها مواجه می شود یا به قولی با Legacy Code درگیر خواهد شد و البته شروع کتاب با یک تعریف از Legacy Code چیست و چرا اتفاق می افتد و چرا همه برنامه نویسان از آن رنج می برند ، و بیشتر برنامه نویسان در آن شرایط چه اشتباهاتی می کنند , خواهد بود.
نویسنده ی این کتاب Michael C.Feathers می باشد.
کتاب چهارم : Soft Skills: The Software Developers Life Manual
کتاب چهارم که باز هم در مورد برنامه نویسی نیست اما هر برنامه نویس باید این کتاب را بخواند.کتاب عالی در مورد مدیریت "سایر" جنبه های زندگی توسعه دهندگان. این مربوط به همه چیزهایی است که می تواند در زندگی شما وجود داشته باشد - این مربوط به شغل ، زندگی ، بدن ، ذهن شما است ، اگر باور می کنید یا نه - روح شما نیز تحت تاثیر قرار خواهد گرفت .
خود نویسنده از این تکنیک ها پیروی کرده است و در این امر کاملاً موفق است.در وبلاگش می گوید که در اوایل دهه 30 توانسته است کار روزانه خود را ترک کند. نویسنده تجارب زندگی خود را در فصل های كوتاهی در زمینه شغلی ، بازاریابی خود ، یادگیری ، بهره وری ، امور مالی ، تناسب اندام و روح به اوج رسیده خود سخن می گوید . هر فصل به اندازه کافی کوتاه است، که باعث می شود خواندن آن نسبتاً سبک باشد.
نویسنده ی این کتاب John Z.Sonmez می باشد .
کتاب پنجم : Refactoring: Improving the Design of Existing Code
مهم نیست که چقدر سخت تلاش می کنید ، کدی که ارائه می دهید بهینه نخواهد بود مگر اینکه در مورد آن توسعه ها و پیشرفت هایی صورت گرفته باشد.
این کتاب با اصول کلی Refactoring آغاز می شود, چرا و چه موقع Refactor کنیم و چگونگی دستیابی به مدیریت در مورد تغییر کاربری و ... را در بر دارد . این کتاب سپس شما را در مورد چگونگی improvements آشنا می کند.
- شاخص بوی بد در کد چیست؟
- چگونه می توان استراکچر کلاسها ،و متد ها را ساخت؟
- تست واحد یا unitTest برای کد شما
- چگونه فیچر ها را بین آبجکت های مختلف جا به جا کنیم؟
- ابزارهای Refactoring
- و ...
در مورد چگونگی بهبود کد موجود ، باید در مورد هر موضوعی که در بالا اشاره شد کتاب بخوانید. توجه داشته باشید که تمام نمونه های کدهای موجود به زبان جاوا می باشند ، اما نباید مانع از یادگیری شما شود!
کتاب ششم : Head First Design Patterns
غیر فنی ترین کتاب در زمینه ی برنامه نویسی! هر صفحه شامل تصاویر و سایر موارد چشم نواز است. این ممکن است این تصور را ایجاد کند که خواندن آن ساده و راحت است ، اما واقعیت این است که درمورد یک موضوع کاملاً اساسی در مورد برنامه نویسی - الگوهای طراحی - بحث می کند وبسیار عالی موضوع را پوشش می دهد.
این کتاب سعی نمی کند تمام الگوهای موجود در جهان را پوشش دهد ، بلکه شامل هر الگوی لازم برای حل مشکلات دنیای واقعی می شود. این به شما کمک می کند تا نرم افزاری کاربردی ، زیبا ، قابل استفاده مجدد و انعطاف پذیر ایجاد کنید. معاملات هر الگو به روشنی بیان شده است. بیشتر کتابهای مربوط به الگوی طراحی در مورد چگونگی اجرای این الگوی صحبت می کنند ، اما نویسندگان این کتاب همچنین دلیل و چگونگی آن را توضیح می دهند.
آخرین نسخه کتاب اکنون شامل به روزرسانی های جاوا 8 - عمدتاً لامبدا - است.
کتاب هفتم : Writing Secure Code 2nd Edition
کتاب آخری که قرار هست معرفی کنم Writing Secure Code 2nd Edition است که همچنین یکی از مهمترین کتاب هایی است که هر برنامه نویسی باید بخواند ، زیرا این امر دید شما را به اهمیت تفکر در مورد امنیت در تمام مراحل ساخت سیستم باز می کند و این کتاب به ویژه کتابی پیشگام در این زمینه بود .
داستان از آنجایی آغاز شد که مایکروسافت با مشکلات امنیتی را که در دهه نود میلادی در محصولات خود داشت رو به رو شد و بخشی از مشکل این بود که روند ساخت یک نرم افزار ایمن توسعه نیافته است و این انگیزه اصلی بیل گیتس بود که Memo را بر اساس Trustworthy Computing معروف به رایانه قابل اعتماد در سال 2002 به وجود آورد . که بر این اساس تیمی با همین نام در این شرکت ایجاد شده و هدف آن تحقیق و توسعه در زمینه امنیت نرم افزار است و این کتاب یکی از نتایج تحقیقات آنها بود.
این کتاب نیازهای مهم بسیاری برای هر برنامه نویس را برای تفکر و نوشتن کد ایمن جمع آوری کرده است. مهمترین نیازهایی که هر تیم یا شرکتی می تواند برای تجزیه و تحلیل سیستم در طی مراحل طراحی از آن استفاده کند و از آن برای یافتن مشکلات امنیتی و نظارت بر کاهش یا راه های جلوگیری از آنها استفاده کند.
این لیست بر اساس دانسته ها و نظرات من گرد آوری شده است . پس شما میتوانید عناوین کتاب ها را تغییر بدهید و برای خود لیست جدیدی تهیه کنید و آن را با ما به اشتراک بگذارید .
از توجه شما عزیزان سپاسگذارم . به امید پیشرفت و توسعه ی تک تک شما بزرگواران
سنا عبادی | عصر روز پنج شنبه ساعت 19:35 , شانزدهم مرداد سال 1399
مطلبی دیگر از این انتشارات
لی اوت در اندروید ۱۱ : آشنایی با ConstraintLayout
مطلبی دیگر از این انتشارات
توسعه اپلیکیشن های مدرن اندرویدی قسمت دوم
مطلبی دیگر از این انتشارات
پیادهسازی Deferred DeepLinkها