بهترین منابع و کتاب‌های آموزشی انگلیسی و فارسی برای یادگیری زبان جاوا

اگر به دنبال منابع و کتاب‌های آموزشی زبان جاوا بوده اید احتمالا قبل از مطالعه این مطلب به دوره های آنلاین و ویدیوهای آموزشی زیادی درباره این زبان قدرتمند برخورده اید یا حتی تعدادی از دوره های آنلاین را گذرانده اید. اما آیا آموزش های آنلاین کافی است؟

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

در این مطلب درباره مهمترین کتاب ها و منابع آموزشی جاوا با شما صحبت می کنیم و با معرفی منابع معتبر انگلیسی و فارسی تلاش می کنیم تا شما کتاب های مفید و موثری را در مورد آموزش زبان جاوا شناخته و از آنها استفاده کنید.

در میان کتاب های معرفی شده کتاب های رایگان و پولی وجود دارند و شما می توانید با توجه به نوع استفاده آنها را انتخاب و یادگیری خود را آغاز کنید.

کتاب رایگان Java The Legend

نویسنده : Raoul-Gabriel Urma

این کتاب با معرفی تاریخچه ای از جاوا کار خود را آغاز می‌کند و با نگاهی به رویکرد متن‌باز و چگونگی رشد جاوا در این بستر تلاش می‌کند برنامه نویسان را بیش از قبل با قدرت  زبان جاوا آشنا کند. در این کتاب علاوه بر مسائل تکنیکی و آموزشی به موضوعات مفهومی و تاریخی نیز پرداخته شده است و برای برنامه نویسان جوان یک تصویر کلی از تاریخچه و آینده این زبان را ارائه می کند.

برخی از سرفصل های کتاب آموزشی جاوا .

  • Primary Java Language Design
  • Backwards Compatibility
  • Simple Type System
  • Libraries
  • Java’s Greatest Hits
  • Java Virtual Machine and Platform
  • The Future of Java

برای  مشاهده رایگان این کتاب از طریق سایت  oreilly.com و لینک زیر اقدام کنید.

 دسترسی رایگان کتاب Java: The Legend

کتاب پرفروش Head First Java

این کتاب ارزشمند که سایت‌های معروف زیادی مانند Freecodecamp آن را جزء منابع خود قرار داده‌اند از بهترین کتاب‌ها و منابع یادگیری جاوا است. این کتاب به صورت پایه‌ای و مفهومی زبان جاوا را توضیح داده است و از پرفروش ترین کتاب‌های آموزشی جاوا در سایت آمازون به حساب می آید.

موضوعاتی مانند کلاس‌ها، آبجکت‌ها، ترد و کالشکن‌ها در کنار ویژگی‌های تخصصی جاوا چون Generics, Enums, variable arguments, auto-boxing از مهمترین بخش‌های آموزشی این کتاب به حساب می‌آیند.

اگه علاقه مند به تهیه این کتاب هستید می‌توانید از سایت آمازون و از لینک زیر اقدام کنید.

تهیه کتاب پرفروش Head First Java

کتاب رایگان Docker for Java Developers

نویسنده: Arun Gupta

اگر کمی با زبان جاوا و سرویس‌های دولوپمنت و پروداکشن آن کار کرده باشید.

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

در این کتاب Arun Gupta به شما یاد می‌دهد که چگونه با استفاده از  سرویس داکر در سرور و کلود و با انواع سیستم عامل (لینوکس، ویندوز و …) اپلیکیشن‌های خود را دیپلوی کنید.

دسترسی رایگان به این منبع آموزشی زبان جاوا

اگر علاقه مند یه یادگیری داکر هستید یک خبر خوب تهیه یک دوره آموزشی رایگان  در سایت Udemy  درباره داکر و استفاده از آن است.

 این دوره آموزشی در Udemy تا امروز با استقبال زیادی مواجه شده است و بیش از ۱۰ هزار نفر در این دوره شرکت کرده اند.

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

مشاهده دوره آموزشی Docker for beginners

کتاب بی نظیر آموزش جاوا به نام Effective Java

اگر تصمیم دارید جاوا را به همراه یکی از شناخته شده ترین شخصیت‌های این زبان دنبال کنید کتاب آموزش Effective Java اولین پیشنهاد ما به شماست.

کتاب Effective Java از معتبرترین منابع آموزشی زبان برنامه نویسی جاوا است. نویسنده این کتاب آقای Joshua Bloch یکی از چهره‌های برتر این زبان برنامه نویسی است و همکاری مستقیم در طراحی و ایجاد بسیاری از فریم ورک‌ها و پکیج‌های جاوا داشته است.

Joshua Bloch یک مهندس نرم افزار اهل آمریکا و متولد سال ۱۹۶۱ است و با مجموعه‌های بزرگی مانند Sun Microsystems و گوگل همکاری داشته است.  دو تا از ویژگی‌های شناخته شده ای که او در توسعه آنها نقش کلیدی داشته است،

Concise Instance Creation Expressions (CICE) و Automatic Resource Management (ARM) blocks

بوده اند.

برای اطلاعات بیشتر درباره او می‌توانید صفحه معرفی او در ویکی پدیا را مشاهده کنید.

اما در مورد کتاب Effective Java، این کتاب شامل مجموعه ای از بهترین روش‌های انجام شده در طراحی و برنامه نویسی جاوا (Java programming best practices) شامل : static factories, serialization, equals و … است.

برای تهیه این کتاب می توانید از طریق لینک زیر اقدام کنید.

تهیه منبع آموزشی زبان جاوا به نام Effective Java

کتاب آموزش جاوا (افشین رفوآ)

همچنین با توجه مشکلات عمده ای که برنامه نویسان جوان در نصب برنامه های مورد نیاز خود برای کار با این زبان دارند، بخش های مختلفی در این کتاب به بررسی این اشکالات و توصیه هایی برای رفع آنها می پردازد.

این کتاب به زبان فارسی است و برای علاقه مندانی توصیه می شود که به دنبال کتاب ها و منابع یادگیری جاوا به زبان فارسی هستند. در این کتاب مولف سعی کرده است به شکل گام به گام تمام مباحث پایه ای جاوا را به زبان ساده توضیح دهد.

برای دانلود این کتاب می توانید از طریق لینک زیر اقدام کنید.

دانلود کتاب رایگان آموزش جاوا به زبان فارسی

معرفی بهترین منابع آموزش الگوریتم و ساختمان داده

سوال همیشگی خیلی از کسانی که می‌خواهند به تازگی وارد دنیای برنامه‌ نویسی شوند این هست که از کجا و چه طور شروع به یادگیری کنند

اگر مطلب معرفی کتاب‌های مفید در زمینه یادگیری الگوریتم را خوانده باشید، احتمالا از ضرورت یادگیری الگوریتم بیش از هر کاری با خبر هستید. اگر یادگیری برنامه نویسی را مثل یک سفر طولانی در نظر بگیرید، که در حین این سفر قرار است اتفاقات جالب و تلخ و شیرینی رخ دهد باید علاوه بر یادگیری، تمرین و حل مسئله زیاد را از اولویت‎‌های این سفر طولانی و هیجان انگیز بدانیم.

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

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

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

منابعی که قرار است در این مطلب به آن اشاره کنیم شامل موارد زیر است:

  • معرفی دوره‌های سایت‌های آموزشی آنلاین برای یادگیری الگوریتم
  • پادکست‌ها و کانال‌های مفید یوتیوب در جهت یادگیری الگوریتم و ورود به دنیای برنامه‌نویسی

سایت‌های آموزش آنلاین:

۱. دوره Easy to Advanced Data Structures

یکی از بهترین دوره‌های آموزش ساختار داده و الگوریتم را میتوانید با سایت یودمی شروع کنید. این سایت منبع مناسبی است برای همه کسانی که می‌خواهند الگوریتم را از صفر تا صد یاد بگیرند. نویسنده آن ویلیام فیست است که مهندس نرم‌افزار در گوگل است و در مسابقات جهانی ACM ICPC مقام دارد و متخصص مهارت‌های حل مسئله است. لازم به ذکر است که این دوره ۲۵ هزار دانشجو دارد و دارای امتیاز ۴.۱ از مجموع ۶۸۳ امتیاز است. در کل این دوره راهنمای جامع و عالی برای شروع الگوریتم و ورود به دنیای برنامه‌نویسی است.

ساختمان داده یا همان Data structure از اساسی‌ترین ترکیبات در ایجاد الگوریتم‌های کارآمد و طراحی نرم افزارهای مناسب هستند. آگاهی از چگونگی ایجاد و طراحی یک الگوریتم خوب، یک مهارت اساسی است برای اینکه برنامه‌نویس خوبی شویم. این دوره به شما می‌آموزد که چگونه به ایده‌های بنیادی پیرامون ساختمان داده‌ها تسلط داشته باشید.

محتوای دوره: محتوای این دوره به صورت ۸ ساعت فیلم‌های آموزشی و حل سوالات مختلف است که از زبان جاوا برای درک بهتر این مطالب استفاده شده است.

در این دوره چه می‌آموزیم:

  • مفاهیم پایه ساختار داده‌ها
  • الگوریتم‎‌های مرتبط با ساختار داده‎‌ها
  • آرایه‌های داینامیک
  • مفاهیم مربوط به صف و پشته
  • درختان دودویی و نحوه سرچ ‌آنها
  • مفاهیم مربوط به جدول هش و …

۲. دوره Data Structure Concepts in C

هدف این دوره آموزش ساختمان داده و پایه برنامه‌نویسی است. مباحثی که در این دوره آموزش داده می‌شوند شامل،Stack ، Queue و Linked List با استفاده از زبان C است و هدف اصلی این دوره این است که دانشجویان و مهندسان نرم‎‌افزار نحوه عملکرد ساختارهای مختلف را تجسم کنند.

هماهنطور که گفتیم یادگیری ساختمان داده‌ها از چند وجه اهمیت زیادی دارد:

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

محتوای دوره: این دوره شامل ۱.۵ ساعت ویدئو، ۴ مقاله آموزشی و … میباشد.

در این دوره چه می‌آموزیم:

  • یادگیری مفاهیم لیست پیوندی
  • مبانی ساختار داده ها و نحوره عملکرد ساختارهای مختلف
  • نحوه اجرای ساختارهای داده با استفاده از ربان سی بپرسسس

۳. دوره Graph Theory Algorithms

به دلیل پیچیدگی در یادگیری معمولا دوره‌های برنامه‌نویسی چندان اهمیتی برای تدریس گراف‌ها قائل نمیشوند. اما اگر یک لحظه به این فکر کنیم که تمامی مشکلات دنیای واقعی را میتوان با نمودارها و گراف‌ها حل کرد برای مثال از به دست آوردن کوتاهترین مسیر بین شهرها گرفته تا خیلی چیزهای دیگر…خوشبختانه یک دوره رایگان با کیفیت برای یادگیری این مبحث وجود دارد.

محتوای دوره: این دوره دارای ۶.۵ ساعت ویدئو میباشد.

در این دوره چه می‌آموزیم:

  • الگوریتم جستوجوی اول عمق
  • الگوریتم جستوجوی اول سطح
  • الگوریتم Dijkstra
  • الگوریتم Bellman Ford
  • کوتاه‌ترین و طولانی‌ترین مسیر در یک نمودار دایره‌ای
  • الگوریتم مرتب سازی توپولوژیک و ….

۴. دوره Getting interview ready

اگر در حال آماده سازی برای مصاحبه هستید و زمان کافی ندارید ایم دوره برای شما بسیار مناسب است. در این دوره، شما نه تنها اصول اولیه یک آرایه ، لیست پیوندی ، درخت باینری ، درخت جستجوی باینری ، پشته ، صف ، AVL و غیره را یاد خواهید گرفت بلکه با حل سوالات برنامه نویسی برخی ترفندها را یاد می گیرید تا در مصاحبه های کد نویسی سربلند بیرون بیایید.

محتوای دوره: این دوره دارای ۳ ساعت محتوای ویدئویی، ۹ مقاله آموزشی، ۳ تمرین برنامه نویسی و… است.

در این دوره چه می آموزید:

  • نحوه حل سوالات برنامه نویسی با استفاده از ساختار داده‌ها
  • سوالات مصاحبه الگوریتمی
  • مفاهیم پایه ساختار داده‌ها

۵. دوره Algorithms در دو بخش

آموزش‌های الگوریتم در این سایت به دو بخش تقسیم میشود

در بخش اول با مباحثی مثل لیست های پیوندی ، پشته‌ها ، صف‌ها ، درختان باینری و جداول هَش و… آشنا می‌شوید و شروع به یادگیری و مرتب سازی الگوریتم هایی مانند جستجوی باینری ، Quicksort ، mergesort ، مرتب سازی درج و غیره را یاد خواهید گرفت. و در بخش دوم هم با رشته‌ها و پردازش نمودار آشنا خواهید شد.

معرفی کانال‌های یوتیوب یادگیری الگوریتم و برنامه نویسی

کانال freecodecamp: این کانال ویدئویی برای یادگیری ساختار داده و تمامی مفاهیمی که نیاز است در مورد الگوریتم بدانیم مناسب است. در این کانال آموزش ۸ ساعته‌ای برای یادگیری ساختار داده توسط مهندسین گوگل نیز وجود دارد که به شدت پیشنهاد میشود

کانال mycodeschool: اگر به ویدئوهای این کانال نگاهی انداخته باشید، میبینید که در زمینه‌های مختلف برنامه‌نویسی، آموزش‌های متعددی مثل معرفی و شروع برنامه‌نویسی با زبان‌های مختلف، آموزش ساختار داده و الگوریتم که میتواند تجربه خوبی برای یادگیری باشد.

سری پادکست‌‌های آموزش ساختمان داده و الگوریتم

سری پادکست‌های Data Structures سایت Playerfm: این سری از پادکست‌ها در مورد آموزش ساختمان داده و الگوریتم صحبت می‌کند و اشاده دارد به الگوهای طراحی شی‌گرا و آموزش‌هایی با زبان C++ با رویکرد و روشی جدید که میتواند مفید باشد. این دوره توسط دونگ ایکس نگوین و جی. استنلی وارفورد تهیه شده است. علاوه بر آموزش یک سری تمرین برای یادگیری بیشتر دارد که میتوانید در صفحه‌اش دانلود کنید.

شرکت در مسابقات برنامه‌نویسی و حل سوالات: پیشنهاد میشود اگر تا حدودی برنامه‌نویسی را با هر زبانی یادگیرفتید،برای تمرین بیشتر در مسابقات برنامه نویسی شرکت کنید و یا سوالات بیشتر حل کنید برای اینکار میتوانید از بانک سوالات برنامه‌نویسی کوئرا که شامل بیش از ۵۰۰ سوال همراه با سیستم داوری خودکار است استفاده کنید و در همان لحظه امتیاز سوالات و در صد خطای خود را میبینید که همین باعث حل مسوویه و تمرین زیادی خواهد شد.

معرفی کتاب‌های آموزشی الگوریتم و ساختمان داده

قدیم‌ترها در حالی که اینترنت و این همه امکاناتی که الان برای یادگیری داریم کم بود، با کتاب‌ها میونه بهتری داشتیم و لذت غرق شدن در بین صفحات کتاب را بیشتر تجربه میکردیم، ممکن است جزو کسانی باشید که عاشق کتابخانی و یادگیری موضوعات مختلف از روی کتاب هستید، همین که کتاب را در دست بگیرید و یک لیوان قهوه در کنارتان روی میز بگذارید و با ورق زدن صفحات کتاب بوی خوشی به مشامتان برسد. حتی یادداشت کردن نکات ریز و یا چسباندن برچسب‌های رنگی لای صفحات کتاب کلی کیف دارد…

همه میپرسند از بین منابع آموزشی مختلف، مثل خواندن کتاب، دیدن ویدئو، گوش دادن به پادکست‌های آموزشی کدام یک میتواند بهترین گزینه باشد؟

واقعیت این است که این موضوع کاملا به خود شخص بستگی دارد، باید بتوان با امتحان کردن روش‌های مختلف این را تا حدودی فهمید که آیا با خواندن کتاب بیشتر یادمیگرید و لذت میبرید و یا با دیدن ویدئو؟

در طول یادگیری برنامه‌نویسی علاوه بر انتخاب کردن منابع مناسب باید با تمرین، حل مسئله و یا انجام دادن پروژه‌های کوچک همراه باشید. برنامه‌نویسی، مهارتی است که باید در ابتدا با تفکر و سپس با پیاده‌سازی انجام شود و طبیعتا بدون تفکر مناسب نمی‌توانیم مسئله را حل کنیم و بدون مهارت پیاده‌سازی، عملا هیچ خروجی خاصی نخواهیم داشت. به همین دلیل رویکرد مسئله محور دارای اهمیت بسیاری است.

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

همه اینها را گفتیم تا برسیم به اینکه، بهتر است برای شروع یادگیری برنامه نویسی ابتدا، الگوریتم نویسی را یاد بگیریم و تفکر الگوریتمی، حل مسئله و تمرین زیاد را از ملزومات ورود به دنیای برنامه نویسی بدانیم.

در این جا میخواهیم چند کتاب مفید در این زمینه را به شما معرفی کنیم:

  1. کتاب طراحی الگوریتم با رویکردی خلاقانه(Introduction to Algorithms: ACreative Approach)

این کتاب با بررسی و آموزش فرآیند توسعه الگوریتم‌ها، بر جنبه‌های خلاقانه طراحی الگوریتم تأکید دارد. قلب این فرایند خلاق در قیاس بین اثبات قضایای ریاضی با القای و طراحی الگوریتم‌های ترکیبی نهفته است. این کتاب شامل صدها حل مسئله و مثال است و برای ارتقاء توانایی‌های حل مسئله و درک اصول طراحی الگوریتم طراحی شده است. در این کتاب علاوه بر معرفی تکنیک‌های مختلف طراحی الگوریتم‌ها و روش‌های حل برخی مسائل الگوریتمی، روش‌های تحلیل و حل آنها با جزئیات بیشتر و به صورت گام به گام بررسی شده است. و از جمله منابع اصلی پیشنهادی به متقاضیان شرکت در المپیادهای کامپیوتر و مسابقات برنامه‌نویسی برای یادگیری طراحی و تحلیل الگوریتم‌ها است.

۲. کتاب آشنایی با الگوریتم‌ها(Introduction to Algorithms)

این کتاب از انتشارات دانشگاه MIT می‌باشد و برای آشنایی با ساختمان داده‌ها نیز میتواند استفاده شود. کتابی است که توسط توماس اچ کورمِن، چارلز ای لایسرسان، رونالد ریوست و کلیفورد استین تالیف شده‌است. این کتاب به عنوان کتاب درسی برای دروس الگوریتم در بسیاری از دانشگاه‌های جهان استفاده می‌شود. این کتاب همچنین یکی از رایجترین منابع برای الگوریتم در مقالات منتشر شده می‌باشد. کتاب مذکور نیم میلیون نسخه در طول ۲۰ سال اول خود فروش داشته‌است. در اولین ویرایش این کتاب درسی استین به عنوان یک نویسنده حضور نداشته و به این ترتیب این کتاب با نام مخفف CLR (متشکل از حروف ابتدایی نام خانوادگی نویسندگان) شناخته می‌شد. پس از اضافه شدن نویسنده چهارم به جمع نویسندگان در ویراست دوم، این کتاب با نام مخفف CLRS شناخته شد. این نسخه اولین نسخه‌ای از کتاب بود که با عنوان “کتاب بزرگ سفید (الگوریتم)” شناخته می‌شد.

۳. کتاب برنامه‎‌نویسی به زبان C++

نویسنده این کتاب معروف، عین الله جعفرنژاد قومی می‎‌باشد. معمولا از این کتاب در درس مبانی برنامه نویسی استفاده می‌شود. ممکن است شما هم در هنگام جستجو در لابه لای کتب آموزشی زبان های برنامه نویسی به این نام برخورده اید. یکی از بهترین و بی نظیرترین تالیفات ایشان کتاب آموزش برنامه نویسی Cو C++ است که تقریبا تمامی دانشجویان رشته های مهندسی نرم افزار وIT ایران از آن به عنوان یکی از بهترین مراجع یادگیری این زبان یاد می کنند…

۴. کتاب Code Complete

این کتاب نوشته استیو مک کانل، کتابی است که اولین بار در سال ۱۹۹۳ توسط Microsoft Press چاپ و منتشر شد. نکته قابل توجهی که این کتاب دارد این است که اصلاً اهمیتی ندارد که شما چقدر تجربه کدنویسی دارید یا به چه زبانی کد میزنید و یا ابعاد پروژه شما چقدر است بلکه بدون در نظر گرفتن هرگونه پیش‌فرضی، این کتاب به خواننده آگاهی داده و او را به فکر کردن و ایده‌پردازی ترغیب می‌کند. در حقیقت با مقایسه منابع موجود در زمینه برنامه‌نویسی کاربردی، آقای استیو در کتاب Code Complete دست به ترکیب مؤثرترین تکنیک‌ها و اصول ضروری برنامه‌نویسی زده و آن‌ها را به شکلی روشن و شفاف در قالب یک راهنمای عملی ارائه کرده است…

۵. کتاب Clean Code

کلین کد کتابی است که در آن رابرت سسیل مارتین مبحثی کاملاً نو و انقلابی در رابطه با کدنویسی ارائه کرده است. این کتاب نکات مورد نیاز برای تبدیل شدن به یک استاد مسلط بر برنامه‌نویسی را در اختیار مخاطب قرار می‌دهد و از سه بخش تشکیل شده است: بخش اول اشاره دارد به اصول، نمونه‌ها و روش‌های مختلف توسعهٔ نرم‌افزار. بخش دوم هم به مطالعات موردی مختلف در رابطه با پیچیدگی فزاینده در دنیای کدنویسی اختصاص داده شده است. سومین بخش کتاب هم شامل لیستی از نکات و مواردی که در فرآیند انجام مطالعات، استخراج و جمع‌آوری شده‌اند می‌باشد. لازم به ذکر است که مهم‌ترین دستاوردتان پس از خواندن این کتاب، کسب دانش مورد نیاز برای فکر کردن، نوشتن، خواندن و انتخاب کدهای مناسب از کدهای نامناسب است.

فایل این کتاب را از اینجا دانلود کنید. http://zerobook.ir/

و در پایان هم لازم است یادی از شعار معروف لینوس تروالدز که میگفت:

Talk is cheap, show me the code

توصیه‌هایی مفید در استخدام برنامه‌نویس‌ها

این مطلب توسط تیم استخدام شرکت Daxx نوشته شده که در اروپا به شکل تخصصی در حوزه برون‌سپاری فرآیند جذب و استخدام استعدادهای برنامه‌نویسی فعالیت می‌کند.

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

استخدام برنامه نویس: توصیه‌های مربوط به مصاحبه

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

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

به کارجویان بهانه‌ای برای پیوستن به تیمتان بدهید. در یک دنیای ایده‌آل، وقتی کارجویان از جلسه‌ با شما خارج می‌شوند، باید با خودشان فکر کنند که کار در شرکت شما تنها کار جذابی است که در دنیا برایشان وجود دارد! متاسفانه، فاصله دنیای ما با دنیای ایده‌آل بیشتر از این حرف‌هاست. در اروپا، رقابت برای برنامه‌نویسان خبره همیشه بالاست. ما مطمئنیم که در کشور شما هم شرایط آنقدرها با اروپا فرقی ندارد. معنای این حرف این نیست که شما نباید به دنبال ایده‌آل‌ها باشید؛ بلکه به این معنی است که باید به کارجویانتان نشان دهید که چرا پروژه‌هایی که قرار است با هم رویشان کار کنید، مهم هستند. از خودتان بپرسید که «چه چیزی باعث شده شرکت من خوب باشد؟ چرا محصول ما از محصول رقبایمان بهتر است؟ ماموریت شرکت من چیست؟ چه چیزی شرکت من را منحصر به فرد می‌کند؟» وقتی به جواب رسیدید، آنها را به کارجویتان هم بگویید.

کارجویان را تشویق کنید سوال بپرسند مصاحبه خوب مثل یک خیابان دو طرفه است؛ قرار نیست فقط شما کارجو را سوال‌باران کنید؛ بلکه مصاحبه فرصتی برای کارجویان هم هست تا در مور کسب‌وکار شما و فرهنگ شرکت بیشتر بدانند. بعضی افراد اعتماد به نفس بالایی دارند و بدون اینکه نیاز باشد شما کاری کنید، خودشان هر سوالی که بخواهند می‌پرسند. اما آنهایی که خجالتی‌ترند را کمی باید هل داد و به پرسیدن تشویقشان کرد. یادتان باشد که جواب‌های صادقانه و روراست بدهید و از این فرصت برای ایجاد ارتباط صمیمانه‌تر با کارجو استفاده کنید

استخدام برنامه نویس: توصیه‌های مربوط به پروژه آزمایشی

پروژه‌های تست را زیادی بزرگ نکنید. قطعاً دوست دارید قبل از استخدام افراد، ببینید کارشان واقعاً چطور است. اما به یاد داشته باشید که اگر پروژه‌ تستی که به کارجویان می‌دهید زیادی طولانی و پیچیده باشد، حتی مشتاق‌ترین کارجوها هم دیگر دلشان نخواهد خواست ادامه بدهند! پس مطمئن شوید که انجام دادن پروژه‌ تستی‌، چیزی بیشتر از سه یا چهار ساعت از وقت کارجو را نگیرد.

استخدام برنامه نویس: پس از مصاحبه و پروژه تستی

در سریع‌ترین زمان ممکن با کارجویان تماس بگیرید و در مورد کارشان روی پروژه تستی، به آنها بازخورد بدهید! در حالت ایده‌آل، این بازخورد باید در دو سه روز بعدی به کارجو داده شود. حتی اگر جوابتان نه بود، تمام تلاشتان را بکنید تا بازخورد مفصلی در مورد عملکرد کارجو به او ارائه دهید. با مشخص کردن بخش‌های خوب کار کارجوها و ارائه توصیه‌های مفید به آنها، هم ناراحتی کارجویان پذیرفته‌نشده را کم می‌کنید و هم برند کارفرمایی خوبی برای شرکتتان می‌سازید.

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

استخدام برنامه نویس: همکاری با شرکت‌های کاریابی

اگر می‌خواهید بخشی از فرآیند استخدام برنامه‌نویس خود را به آژانس‌های کاریابی تخصصی حوزه IT برون‌سپاری کنید، این دو نکته را فراموش نکنید:

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

فقط با یک شرکت کاریابی کار کنید. به نظر توصیه عجیبی می‌آید، اما مطمئناً شما هم موافق هستید که اگر آدم در آن واحد با چندین موسسه کاریابی مختلف درگیر نباشد، مدیریت کردن فرآیند جذب و استخدام خیلی ساده‌تر خواهد شد.

استخدام برنامه نویس: جذب برنامه‌نویسان دورکار

سازمان‌ها به دلیل‌های مختلف، ممکن است برای همکاری با برنامه‌نویسان به سراغ دورکاری بروند: فرهنگ سازمانی خاص، برون‌سپاری یک پروژه موقت، محدودیت در تعداد استعدادهای برنامه‌نویسی یک شهر یا کشور خاص برخی از این علت‌ها محسوب می‌شوند. اگر قرار است با برنامه‌نویس‌های دورکار همکاری کنید این توصیه‌ها را در نظر داشته باشید:

کارجویان پذیرفته‌شده را برای ملاقات به شرکت دعوت کنید. درست است که بخش اعظم ارتباطات با مهندسین نرم‌افزار دورکار از طریق برنامه‌های پیام‌رسان انجام می‌شود، اما بهترین کار این است که در اول همکاری، یک ملاقات رودررو هم داشته باشید. با گفتگوی رودررو، برنامه‌نویس‌های جدیدتان را بهتر خوهید شناخت و می‌توانید از همان روز اول، ارتباطات کاری خوب و مبتنی بر اعتمادی را بسازید. در ضمن، برخی کارجویان وقتی دارند تصمیم می‌گیرند که به تیم شما ملحق شوند یا نه، سفرهای کاری را یک امتیاز مثبت تلقی خواهند کرد.

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

مطلب‌های پیشین Quera برای کارفرمایان: