خب، بعد از قسمت اول و معرفی سه گانه معروف عمو باب، حالا وقتشه بریم سر وقت یه سری کتاب دیگه. البته دوست دارم اول یه سری به اون سه تا کتاب قبلی بزنید و بعد بیاید اینجا، اما اگه حالشو ندارید، بازم بد نیست، که اسم این کتابهارو به خاطر بسپاریم و یه روزی یا یه شنبه ای (که هیچوقت نمیاد) بریم برای مطالعه ش.
کتابهای این سری رو براین اساس آوردم که میتونید مثل یه مرجع یا دایره المعارف یه گوشه بزارید و هروقت که نیاز دارید یه مبحثی رو مرور کنید برید سراغش. به خصوص برای تایم قبل از مصاحبه ها و تایمهایی که احساس کردیم یه چیزیو فراموش کردیم و اگه بخایم هی با سرچ کردن پیداش کنیم، بیشتر گیج میشیم (چون توی این کتابا همه مباحث مرتب و یه دست کنار هم اومدن و ذهنو آشفته نمیکنن)
کتابهای امروز به این ترتیب هستن :
یکی از مباحثی که اکثرمون توش ضعف داریم و همیشه برای خوندنشون دنبال یه فرصت میگردیم، همین بحث design pattern هاست. خیلیا میگن که به خاطر زیاد بودن منابع مرتبط با این موضوع و نقصهاشون، هیچ جای درست و حسابی برای مرور و یادگیری این بحث وجود نداره. (که منم با این موضوع موافقم، چون اصلا دیزاین پترن چیزیه که متأسفانه هیچ وقت جدی گرفته نمیشه و نهایتش برای مصاحبه و چارتا جای اینطوری مجبوریم بریم سروقتش)
خلاصه، یه سری نویسنده مهربون (Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides که به گنگ چارنفره معروفن!) تصمیم گرفتن این کتابو بنویسن و توش به معرفی و توضیح کامل 23تا دیزاین پترن مهم بپردازن (که چیزی هم دیگه از قلم نیفته).
انصافاً هم بسیار روون و خوب همه چیو توضیح دادن و خوبیش اینه که هرآنچه لازمه درمورد این پترنها بدونیم، یکجا و کنار هم جمع آوری شده. لذا علاوه بر اینکه میشه هرزمانی بهش سر زد، میشه بدون ترتیب هم مطالعه ش کرد و برای مرور مباحث و حتی همون مصاحبه های شغلی هم بسیار کاربردیه.
کتاب اومده توی 5 تا بخش، پترنهارو دسته بندی کرده و هر بخش به معرفی کامل پترن، نحوه پیاده سازیش با مثال، تأثیرش روی برنامه و کاربردش حرف زده. این بخشها شامل این موارد میشن:
اما کتاب بعدی :
چه بسیارند انسانهایی که سالها به کدنویسی مشغول گشته و هنوز سرگشته راه حق مانده اند. راهی که از دل الگوریتمها میگذرد
- انجیر به روایت هلو
یه چیزی که مدتها بهش فکر میکردم و برام سوال بود اینه که اساساً تفاوت یه مهندس نرم افزار یا به برنامه نویس چیه؟ و چیزی که بهش رسیدم این بود : مهارت حل مسئله. که از دل چی میاد؟ الگوریتمها.
الگوریتمها به ما یاد میدن که بتونیم برای برنامه و کدمون تصمیم های گنده بگیریم و بهینه سازی خفن انجام بدیم. باعث میشن قدرت فکر کردنمون رشد کنه و چند پله توی کار بالا بریم. (تازه این ویژگیها از نظر اخلاقیه، از نظر حرفه ای که صد در صد باید آشنا شیم دیگه. نه؟)
این کتابِ خوب و بسیار توصیه شده (که توسط Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein نوشته شده و درمیان خیل کتابهای مشابه برای همین موضوع طلاس) همون طور که اسمش داره داد میزنه، میخاد مارو با انواع الگوریتمها آشنا کنه.
کتاب اومده مباحثش رو توی هفت فصل دسته بندی کرده و این هفت تا فصل میشن :
در پایان کتاب هم برای درک بهتر مباحث، یه بار به طور خلاصه درمورد لگاریتم و پیچیدگی زمانی و انواعشون گفته که دیگه ازین بابت هم مشکلی نداشته باشیم. دستشون درد نکنه
تا یادم نرفته، اینم بگم که سایت coursera هم یه دوره بسیار خوب و رایگان برای آشنایی با الگوریتمها داره که میتونید به عنوان مکمل این کتاب داشته باشید
کتاب سوم که عاشق عنوانش هستم، (انقد گیت یاد بگیر تا توش خفن شی) درمورد gitه. این روزا کمتر پروژه ای رو میبینیم که git توش نباشه و یه جورایی برامون مثل نون شبه. هرجا میریم هست و همیشه موقعی که میخایم کارمونو تحویل بدیم باید از git کسب اجازه کنیم. (گیت هم که معرف حضور هست : یه ورژن کنترل که به برنامه نویسا اجازه میده به صورت دسته جمعی روی یه پروژه کار کنن و تغییرات همدیگرو متوجه بشن و توی کار هم گند نزنن و اگر هم گند بزنن بدونن به کی باید فحش بدن)
برای خودم، سالها طول کشید تا بالاخره راضی شم از git استفاده کنم و الان که بهش فکر میکنم، نبودنش یه جورایی برام غیرممکنه.
توی این کتاب از آقای Michael Hartl (که اخیراً فهمیدم به صورت کاملاً آنلاین هم میشه خوندش و براش سایت زدن) ، قراره با انواع دستورها و کدهایی که توی git نیاز داریم آشنا شیم و باز از لحاظ دسته بندی و نحوه توضیح بسیار معرکه س.