JavaRush /وبلاگ جاوا /Random-FA /10 کتاب برتر برنامه نویسی برای مبتدیان
Max Stern
مرحله
Нижний Новгород

10 کتاب برتر برنامه نویسی برای مبتدیان

در گروه منتشر شد
من یک همکار دارم که مصاحبه های فنی زیادی برای جاوایست های آینده انجام داده است. یک بار از او پرسیدم چه چیزی در تصمیم گیری برای استخدام متقاضی بدون تجربه واقعی هنگام انتخاب از بین افرادی با مهارت های زبانی تقریباً برابر چه تأثیری دارد. با توجه به وضعیت بازار، فکر می کنم این سوال برای بسیاری از شما مرتبط است. 10 کتاب برتر برنامه نویسی برای مبتدیان - 1"علاقه به فناوری، توانایی انتخاب بهترین گزینه برای حل یک مشکل، دانش عمومی IT، درک آنچه در محل کار در انتظار او است" - این پاسخ او بود. من یک بار در مقاله ای کتاب های برنامه نویسی برای مبتدیان را توضیح دادم که به من در یادگیری جاوا کمک کردند. در این مقاله، من بر روی انتشاراتی تمرکز خواهم کرد که به یک برنامه نویس تازه کار کمک می کند تا آن دانش فناوری اطلاعات، درک کار آینده را به دست آورد، و همچنین کار انتخاب بهترین راه حل را ساده می کند. یعنی شغلی پیدا کنید و از همان ابتدا در آن به بهترین شکل ممکن عمل کنید. من این لیست را با توجه به ترجیحات خودم جمع آوری کردم، بنابراین ممکن است تا حدودی ذهنی باشد. هم کتاب های برنامه نویسی کلاسیک برای دانش آموزان و هم کتاب های مرجع برای برنامه نویسان همه نسل ها وجود دارد.

بهبود کد و بهره وری

فقط نوشتن کد کافی نیست. مهم است که آن را خوب بنویسید، بتوانید آن را بهبود بخشید، و همچنین درک کنید که چگونه به طور کلی توسعه یافته است. کتاب‌های زیر برای برنامه‌نویسان مبتدی و دیگران به بیش از یک نسل از متخصصان کمک کرده است تا با فرآیند دشوار فناوری توسعه نرم‌افزار کنار بیایند.

برنامه نویس عملگرا. مسافر به استاد (اندرو هانت، دیوید توماس)

عنوان اصلی: The Programmatic Programmer from From Journeyman to Master اثر اندرو هانت و دیوید توماس 10 کتاب برتر برنامه نویسی برای مبتدیان - 2اگر این کتاب را نخوانده اید، به احتمال زیاد بارها و بارها با نقل قول هایی از آن در انجمن ها و منابع تخصصی برخورد کرده اید. تصویر یک برنامه نویس پراگماتیست در این کتاب به قدری واضح و ایده آل است که می توان او را رمانتیک نامید، هر چقدر هم که متناقض به نظر برسد. با این وجود، توصیه های کتاب، با وجود سن بالا، کاربردی و مرتبط است. من نمی دانم «برنامه نویس عملگرا» را در دنیای کتاب های برنامه نویسی با چه چیزی مقایسه کنم. نزدیکترین آنالوگ این دنیا «عهد عتیق» یا کتاب آشپزی فوق العاده جالبی است. در "پراگماتیک" همه چیز بسیار خاص است و حداکثر در عمل قابل استفاده است. گاهی اوقات به حد پیش پا افتاده می رسد (به عنوان مثال، بخش ارتباطات مؤثر حاوی قوانین اساسی آداب تجارت است)، اما گاهی اوقات توصیه های کتاب غیرقابل جایگزین است، به خصوص اگر یک توسعه دهنده مبتدی مربی صبور و توجه نداشته باشد. اینها نکاتی در مورد تکرارپذیری کد، نمونه سازی اولیه، تخمین هستند. یا یادآوری عدم امکان ایجاد یک برنامه بی نقص. نکات فنی مفیدی نیز وجود دارد که به عنوان مثال به اشکال زدایی کد، تست واحد یا سرعت الگوریتم ها مربوط می شود... به طور خلاصه، آنچه برای آماده شدن برای حرفه برنامه نویسی نیاز دارید.

Refactoring بهبود کد موجود (مارتین فاولر)

عنوان اصلی: Refactoring: Improving the Design of Existing Code اثر مارتین فاولر، با کنت بک 10 کتاب برتر برنامه نویسی برای مبتدیان - 3اگر از کسی بخواهید بهترین کتاب های برنامه نویسی را که باعث ارتقای شغلی در تمام دوران شده اند فهرست کند، مطمئناً شخصی به "Refactoring" اشاره خواهد کرد. ممکن است کسی بگوید که این کتاب منسوخ شده است و از جهاتی حق با او خواهد بود. این در زمانی نوشته شده است که بازآفرینی هنوز یک قانون جهانی نبود و برخی از حقایق موجود در آن برای برنامه نویسان مشتاق امروزی آشکار است. با این وجود، تکنیک‌های بازسازی در آن به قدری خوب و با جزئیات (حتی در بعضی جاها، حتی به صورت پرمخاطب) توضیح داده شده است که هر مبتدی چیزی مفید در آن پیدا خواهد کرد. چند سال پیش یک نسخه به روز از کتاب منتشر شد و تکنیک های جدیدی به آن اضافه شد که بسیار عالی است. علاوه بر این، نمونه های این کتاب به زبان جاوا نوشته شده است. تنها نقطه ضعفی که می توانم به آن اشاره کنم پرحرفی است. با این حال، من کتاب را توصیه می کنم.

کد پاک (رابرت مارتین)

عنوان اصلی Clean Code: A Handbook of Agile Software Craftsmanship اثر Robert C. Martin 10 کتاب برتر برنامه نویسی برای مبتدیان - 4این کتاب، اگرچه جدیدتر از کتاب قبلی است، اما به یک کتاب کلاسیک در زمینه برنامه نویسی نیز تبدیل شده است. "عمو باب"، همانطور که رابرت مارتین گاهی اوقات در جامعه برنامه نویسی جهانی نامیده می شود، یکی از نویسندگان مانیفست چابک، و همچنین برخی از اصول برنامه نویسی مدرن "خالص"، به عنوان مثال، SOLID است. یکی از اصلی ترین موتیف های کتاب را می توان ... همدلی یا صرفاً یک نگرش خوب نسبت به همه کسانی که باید با کد شما (از جمله خودتان در آینده) کار کنند. اکثر قوانین "Clean Code" بر اساس این اصل ساده و عقل سلیم هستند. بیشتر قوانین و توصیه‌ها بسیار درست به نظر می‌رسند، آن‌هایی که به طور شهودی در ذهن شما می‌چرخند، اما به‌راحتی فرمول‌بندی آنها آسان نیست. با این حال، می توان با برخی از افکار نویسنده استدلال کرد: او گاهی اوقات بسیار قاطع است. مثلا می نویسد کد خوب نیازی به کامنت ندارد. با این حال، کتاب باید خوانده شود.

کارکرد موثر با کدهای قدیمی (Michael Feathers)

عنوان اصلی Working Effectively with Legacy Code by Michael Feathers 10 کتاب برتر برنامه نویسی برای مبتدیان - 5Life شما را برای این آماده نکرد... نه، واقعاً: اگر تازه در حال یادگیری هستید، نمی توانید تصور کنید که کار با پایه های کد قدیمی چه دردسری دارد. احتمالا توسط پدربزرگ بیل گیتس نوشته شده است. این کد اغلب کاملاً متفاوت از آنچه شما به آن عادت کرده اید نوشته می شود و به قدری ضعیف است که گاهی اوقات می خواهید نویسنده آن را پیدا کنید و... افسوس: زندگی یک برنامه نویس جاوا در پروژه های بزرگ اغلب با پشتیبانی قدیمی همراه است. این کتاب می تواند به جنبه های فنی کار با کدهای قدیمی کمک کند، اما همچنین می تواند به شما کمک کند تا با سرنوشت خود کنار بیایید. و بله، من جدی هستم. اگر به یک شرکت برون سپاری یا محصول با پروژه های بزرگ توجه داشته باشید، این کتاب برای شما مفید خواهد بود.

اول سر الگوهای طراحی (اریک فریمن، برت بیتس، کتی سیرا، الیزابت رابسون)

عنوان اصلی Head First Design Patterns: A Brain-Friendly Guide توسط اریک فریمن، برت بیتس، کتی سیرا، الیزابت رابسون 10 کتاب برتر برنامه نویسی برای مبتدیان - 6الگوهای طراحی آن قواعد منطقی شکل خوب هستند که اگر آنها را در طول زمان مطالعه نکنید، به ذهنتان خطور می کند ( یا نه...) و اگر هر چه زودتر شروع به نگاه کردن به آنها کنید، به معنای واقعی کلمه به ابرقدرت یک برنامه نویس تازه کار تبدیل می شوند. بله، در ابتدا مفید است که با یک پروژه شخصی نسبتاً پیچیده بازی کنید و سعی کنید خودتان آن را به وظایف فرعی تقسیم کنید ... و در نهایت همان الگو را پیدا کنید. با این حال، وقتی نوبت به کار می رسد، همیشه زمان کافی برای آزمایش وجود ندارد. وقتی دوره کارآموزی را گرفتم، اطلاعات کمی در مورد الگوها داشتم: در حین تحصیل در JavaRush، به سادگی تمام این کارخانه‌ها، تک‌تنه‌ها، تزریق‌ها، وابستگی‌ها را رد می‌کردم و فکر می‌کردم که در صورت نیاز آن را متوجه خواهم شد. با این حال، لازم بود خیلی سریع آن را بفهمیم، و آن کتاب «اول سر. طراحی الگوهای» در این امر به من کمک کرد. به راحتی نوشته می شود، پر از تصاویر و طنز است... من فکر می کنم که ارائه برای موضوع "الگوهای طراحی" بسیار مهم است: می توان آن را به شیوه ای بسیار خسته کننده ارائه کرد یا می توان آن را مانند Head First ارائه کرد. یک افزونه عالی برای "Clean Code" و/یا "Refactoring"!

معماری کامپیوتر و علوم کامپیوتر عمومی

برای یک برنامه نویس آینده درک معماری کامپیوتر، دانستن نحوه ساختار سیستم عامل ها و ساختار پایگاه داده ها چقدر مهم است؟ این یک واقعیت نیست که این دانش در کار شما برای شما مفید باشد. اما آنها قطعاً به شما کمک خواهند کرد که اشتیاق خود را به حوزه فناوری اطلاعات و دانش فناوری اطلاعات نشان دهید. و مهمتر از همه: اگر بدانید همه چیز چگونه کار می کند، به شما کمک می کند مشکلات را بهتر حل کنید. اطلاعات 100% بنابراین در اینجا دو کتاب دیگر برای کمک به شما وجود دارد.

کد (چارلز پتزولد)

عنوان اصلی Code: The Hidden Language of Computer Hardware and Software اثر چارلز پتزولد 10 کتاب برتر برنامه نویسی برای مبتدیان - 7اولین نسخه "کد" جهان را در اوایل دهه 2000 دید، اما در واقع می توانست زودتر یا دیرتر ظاهر شود - و هنوز هم مرتبط بود. واقعیت این است که در این کتاب عملکرد یک کامپیوتر در سطح بسیار بسیار پایینی توضیح داده شده است که از نحوه عملکرد آن صفر و یک ها شروع می شود و اولین مثال فنی یک مدار چراغ قوه است که می توان آن را ساده ترین مدار دانست. -بیت کامپیوتر... نه، شما فکر نمی کنید همه چیز در کتاب خیلی ابتدایی است. در واقع دقیقا برعکس... مدارهای کامپیوترها را با دستورات، عملکرد حافظه و سیستم عامل ها را در ذات خود شرح می دهد. شاید بعد از خواندن آن بود که فهمیدم کامپیوترها چگونه کار می کنند. اگرچه معماری و مجموعه دستورات پردازنده تغییر می کند و پهنای باند حافظه افزایش می یابد، در اصل، رایانه ها دقیقاً یکسان کار می کنند. آیا یک برنامه نویس جاوا به این دانش نیاز دارد؟ افراد بسیار کمی به طور مستقیم در کار خود به آنها نیاز دارند. اما به‌طور غیرمستقیم، اغلب در کارم از این واقعیت کمک می‌کردم که می‌دانم واقعاً چگونه کار می‌کند.

مقدمه ای بر علوم کامپیوتر (گلن بروکشایر، دنیس بریلوف)

عنوان اصلی Computer Science: An Overview توسط Glen Brookshear و Dennis Brylow 10 کتاب برتر برنامه نویسی برای مبتدیان - 8. فقط من ترجمه چاپ ششم را دریافت کردم و در حال حاضر چاپ سیزدهم آن جاری است. این کتاب یک درس پایه در علوم کامپیوتر است که سال هاست در دانشگاه های آمریکا و دیگر کشورها تدریس می شود. پوشش مواد موجود در آن بسیار گسترده است: معماری ماشین، سیستم های اعداد، پردازش داده ها، سیستم عامل ها، اصول ساخت پایگاه داده، ساختار داده، ساختار فایل و غیره. همه بخش های کتاب به یک اندازه خوب نوشته نشده اند. به عنوان مثال، زمانی در بخش‌های مربوط به روش‌های طراحی و پایگاه‌های داده بسیار گیج شدم، اما بخش‌های مربوط به سیستم‌های اعداد، محاسبات بیتی، معماری رایانه شخصی و ساختارهای داده واقعاً با من طنین انداز شدند. جالب ترین چیز در مورد کتاب تعداد زیادی تمرین با کلید است. علاوه بر دانش آموزان، احتمالاً به چنین کتابی در درجه اول افراد خودآموخته بدون تحصیلات فنی نیاز دارند تا شکاف ها را پر کنند و به طور کلی ایده ای از علوم رایانه پیدا کنند.

الگوریتم ها و ساختارهای داده و باز هم یک حمله دیگر!

با توجه به سطح بالای برنامه نویسی مدرن، دانش الگوریتم ها اهمیت کمتری پیدا کرده است. اکنون کافی است از کتابخانه مورد نیاز استفاده کنید و مغز خود را در مورد بهترین روش مرتب سازی آرایه مورد بحث قرار ندهید. با این حال، شما همچنان باید در محل کار، و بیش از یک بار، مغز خود را به کار بگیرید. نکته "توانایی انتخاب بهترین راه حل ممکن" را از بین الزامات یک برنامه نویس مبتدی به خاطر دارید؟ بنابراین، مهم نیست که هر کسی چه می گوید، من آموزش الگوریتمی خوب را ارتقای عالی برای یافتن راه حل های بهینه می دانم. بنابراین، دو کتاب بعدی در مورد آنها است. درباره الگوریتم ها

ما الگوریتم ها را تکان می دهیم. راهنمای مصور برای برنامه نویسان و آدیتیا بهارگاوا کنجکاو

عنوان اصلی: Grokking Algorithms: راهنمای مصور برای برنامه نویسان و سایر افراد کنجکاو توسط Aditya Y. Bhargava 10 کتاب برتر برنامه نویسی برای مبتدیان - 9خود نویسنده در ابتدای کتاب می نویسد که الگوریتم ها فوراً به سراغ او نیامدند و او سعی کرد "الگوریتم های گروکینگ" را بنویسد. که خواندن آن آسان باشد برای برنامه نویسان مبتدی طراحی شده است، یعنی کسانی که می توانند "hello, world" بنویسند و می دانند int، رشته، حلقه، شاخه و آرایه چیست. خوب، می تواند آرایه را روی صفحه نمایش دهد. دانش ریاضی مورد نیاز تقریباً در سطح پایه های 6-7 متوسطه بدون هیچ گونه حاشیه ای است. و این اولین مزیت جدی کتاب است. مانند بسیاری از نشریات در مورد این موضوع، سعی نمی شود خواننده را به عنوان یک دانش آموز ریاضی تصور کند. یعنی اگر از ریاضیات، الگوریتم ها می ترسید، قبلاً سعی کرده اید دومی را یاد بگیرید و چیزی متوجه نشده اید، این کتاب از نظر خودتان برای توانبخشی شما عالی است. دومین نکته مثبت این است که کتاب در مورد چیزی بحث می کند که ممکن است در عمل مفید باشد (درک این موضوع قطعا درست است). این با توضیحی در مورد ماهیت جستجوی باینری و کارایی - به معنای واقعی کلمه روی انگشتان دست و با تصاویر بسیاری آغاز می شود. سوم، کتاب حاوی سوالات و تمرین های زیادی است (مثال کد در پایتون است، اما این چندان مهم نیست). نکته ای که ممکن است برای برخی مثبت، اما برای برخی منفی باشد: کتاب تظاهر به یک کتاب مرجع همه جانبه نمی کند. بیایید بگوییم که از بین الگوریتم های پذیرفته شده برای مطالعه، فقط دو مورد در اینجا وجود دارد - الگوریتم درج ناکارآمد و الگوریتم مرتب سازی سریع کارآمد. نمی‌دانم چرا نویسنده نباید الگوریتم‌های دیگری را در نظر بگیرد، مثلاً حباب یا ادغام. در واقع الگوریتم ادغام در کتاب ذکر شده است، اما به اختصار، بدون تحلیل و تنها در مقایسه با مرتب سازی سریع. بقیه موضوعات هم دقیقا همینطوره. اصول اولیه ای وجود دارد که به خوبی پوشش داده شده است، اما گاهی اوقات شما واقعاً می خواهید ادامه عمیق تری داشته باشید، اما به سادگی وجود ندارد. در یک کلام، این یک کتاب بسیار ابتدایی است، پس از آن، به احتمال زیاد، شما می خواهید کتابی را پیدا کنید که در آن همه چیز با جدیت بیشتری شرح داده شود. مثلا مورد زیر.

الگوریتم ها در جاوا (رابرت سدویک، کوین وین)

عنوان اصلی: الگوریتم‌های رابرت سجویک و کوین وین 10 کتاب برتر برنامه نویسی برای مبتدیان - 10در واقع، این کتاب می‌تواند هم جذاب باشد و هم ترسناک. حداقل با حجم زیاد صفحاتش و ماهیت آکادمیک خاصی شما را می ترساند. بنابراین، اگر شما، دانشگاهیان، تمایلی به آن ندارید یا به ریاضیات (دبیرستان، ساده ترین عناصر ریاضیات عالی برای مهندسان) اطمینان ندارید، بهتر است با این کتاب شروع نکنید. اصطلاحات ریاضی زیادی وجود ندارد، اما خود رویکرد چنین تفکری را پیش‌فرض می‌گیرد. اما بعد از کتاب قبلی - چرا که نه. او به شما راهنمایی خواهد کرد. فصل اول در برخی جاها دانش جاوا را خلاصه می کند و برخی از ساختارهای داده را تعریف می کند. بهتر است آن را به صورت انتخابی بخوانید، اما مطالعه فصل دوم و سوم با جزئیات کافی ضرری ندارد. بقیه نیز پر از اطلاعات جالب و کامل در مورد نمودارها و رشته ها هستند. من می گویم که مواردی از این دست در شکل دادن به طرز فکر برنامه نویسی بسیار مفید هستند. در مورد ارائه، شخص احساس می کند که نویسنده یک معلم است، اما به کار با افرادی که بیشتر علاقه مند و آماده هستند عادت دارد. پس صبور باشید و بخوانید. و همچنین مشکلات را حل کنید، تعداد زیادی از آنها در اینجا وجود دارد. به هر حال، در Coursera می توانید دوره ای در مورد الگوریتم های ایجاد شده توسط نویسندگان کتاب پیدا کنید.

چارچوب خود را بشناسید

و در نهایت یک کتاب دیگر. و دوباره - مفید.

بهار در عمل (کریگ والز)

عنوان اصلی: Spring in Action نوشته کریگ والز 10 کتاب برتر برنامه نویسی برای مبتدیان - 11کتابی بسیار معروف با جلدی به همان اندازه معروف با «مردی در دامن» که در واقع دامن نپوشیده است. صادقانه بگویم، یادگیری بهار فقط از یک کتاب کار بسیار دشواری است، حتی اگر سعی کنید همه چیز را به یکباره در عمل امتحان کنید. به هر حال، درک چگونگی انجام این کار پس از خواندن این یا آن فصل می تواند بسیار دشوار باشد. من زمانی که در یک شرکت کارآموزی گرفتم با این کتاب کار کردم و وقتی از این طریق استفاده شود کمک زیادی می کند. علاوه بر این، حتی امروز که در حال حاضر به عنوان یک برنامه نویس کار می کنم، دائماً به آن بازمی گردم. به طور خلاصه، می توانید با کمک آن یک ایده کلی از چارچوب اصلی جاوا به دست آورید.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION