We analysed more than 40 000 000 questions and answers on stackoverflow.com to bring you the top of most mentioned books (5720 in total)

How we did it:

  • We got database dump of all user-contributed content on the Stack Exchange network (can be downloaded here)
  • Extracted questions and answers made on stackoverflow
  • Found all amazon.com links and counted it
  • Created tag-based search for your convenience
  • Brought it to you

For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks

Recomended tags

Top instance-variables books mentioned on stackoverflow.com

Practical Object-oriented Design in Ruby

Sandi Metz

Take Ruby development to the next level: leverage Ruby's full power to write more maintainable, manageable, and pleasing applications * *Master object-oriented Ruby techniques for building applications that are as easy to maintain and upgrade as they were to write! *Discover concrete solutions for common issues associated with poorly designed, hard-to-change Ruby applications. *Solves painful problems now facing many of the world's 1+ million Ruby developers, including programmers at all levels of experience. Years after the initial release of Ruby on Rails, the chickens are coming home to roost. Suddenly, anyone could write a web application -- and it seems like everyone did. The web is now awash in Ruby applications that were easy to write but are now virtually impossible to change, extend, or grow. This book solves that problem by teaching developers real-world object oriented design techniques specifically focused on Ruby. Writing for more than 1,000,000 Ruby developers at all levels of experience, Sandi Metz shares knowledge and concrete solutions for creating more extensible, more maintainable applications - and for fixing many of the poorly designed applications they must now manage. The first book to focus squarely on object-oriented Ruby application design, Practical Object Oriented Design in Ruby will guide developers to superior outcomes, even if their previous experience has been strictly limited to 'procedural' techniques. Metz distills a lifetime of conversations about object-oriented design and many years of whiteboard drawings into a set of specific Ruby practices and patterns that lead to more manageable and pleasing code. Novice Ruby programmers will find specific 'rules to live by'; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues.

More on Amazon.com

javac#c++c.netalgorithmphppythonjavascriptdesignasp.netlanguage-agnosticdesign-patternsandroidoopsqllinuxdatabasematharchitectureperformanceprogramming-languagesresourcesuser-interfacemysqlhtmlsql-serverwindowsiphonerubyiosmultithreadingdata-structuresresearchobjective-csecuritycomputer-scienceassemblyruby-on-railsjquerydatabase-designdocumentationasp.net-mvcunit-testingrcompiler-constructiontestingunixcsssoftware-engineeringwpfartificial-intelligenceweb-applicationsvb.netreferenceclassvisual-studioweb-servicesoptimizationarraysnetworkingproject-managementjava-eeumleclipseosxcoding-styleagilegraphicswinformsoperating-systemmemory-managementoracleembeddedspringwinapivisual-c++image-processingmodel-view-controllerajaxhardwareparsingfunctional-programmingregexamazonmemorytddtheoryinheritancefunction3dstatisticsperlopenglkernelopen-sourcexcodeapistringnlpxmlcocoawcfentity-frameworkdebuggingmachine-learninginterfacerefactoringactionscript-3concurrencymatlabrestdomain-driven-designdelphic#-4.0stlgraphpointersnode.jsscriptingopengl-estemplatessharepointidelispsilverlightdjangoprocessparallel-processingamazon-web-servicesuntaggedcommand-linex86scalasocketssql-server-2008visual-studio-2008frameworkshtml5audioobjectlistneural-networkproject-planningvb6visual-studio-2010flexswinglinux-kernelstandardslogicproductivitysearchencryptionc++11mobilec++-faqqtscrumgccscalabilityf#genericsmfcflashhaskelltsqlsortingsoftware-designversion-controllinqsql-server-2005treeweb-scrapingterminologyimagemethodologyasynchronousvbaxamlvariablesshellasp.net-mvc-3boostexcelooadopencvusbcryptographyc#-3.0eventsphysicstypesapachepluginsnetwork-programminghibernatetcpclojurematrixsyntaxmethodsssasrecursionsignal-processinggeometrycachingfortranpostgresqlcocoa-touchdependency-injectionschemestackipadgame-enginefileclass-designauthenticationinterpreterdeploymentarduinomodelruby-on-rails-32djsondirectxbluetoothfrontendusabilityspring-mvccomputer-visionformslambdasoawebinternalscollectionslinux-device-driverfilesystemsejbexceptionnhibernatevectorqadllcomlanguage-design.net-3.5linq-to-sqlvideogarbage-collectionhttpembedded-linuxjvmsqlitenaming-conventionssystembashimplementationmvvmtimezend-frameworkwebsitebddjspdata-access-layerthread-safetyscientific-computingvalidationindexingjunitosdevmockingopensslconstructorgrailsuser-experiencexpathreal-timerelational-databasecompilationmodelingtextmongodbdata-modelingormextreme-programmingprotocolsdevelopment-environmentprojectwebformsanalysisposixlow-levelclient-serversingletonservletsdata-miningsynchronizationclrcomparisonlanguage-featuresamazon-product-apimonocommon-lispmicrocontrollercontinuous-integrationhadoopxnacomplexity-theoryasp.net-mvc-4diagramcudasimulationencapsulationrandomhyperlinkdommacrosmusicshaderprojectsgwtjoinms-accesse-commercelinked-listwindows-phone-7linkerbinarydictionarystaticanti-patternscontent-management-systempolymorphismloopsstructurevisualizationstructactionscriptjpasvndata-warehouseabstract-classgroovyclosurescss3distributedprologtfsexception-handlinganimationdynamic-programmingdiscrete-mathematicssocial-networkingiorepository-patternif-statementcpuhashautomated-testssslkeyboardcode-reviewdynamicmetaprogrammingseleniumeclipse-pluginestimationheapgenetic-algorithmcode-generationlockingclassificationolapdrupalroboticsreverse-engineeringspecificationscomputational-geometryazurenormalizationmemory-leaksdriverssisopenclprofilingopengl-es-2.0grammarraspberry-picastingjava-meelectronicsmsbuildpthreadsarmxhtmlscreen-scrapingpropertiescanvastomcatuser-interactionrenderingpython-3.xstored-proceduresinputnullandroid-ndknosql.net-4.0scopeplsqlhistorydevice-drivervhdlios5pattern-matchingmessagingrequirementscommentscpu-architectureubuntujsfcommunicationasp.net-ajaxnunitipcinversion-of-controldesign-principlesclouderlangdefinitionworkflown-tierxsltnamespacesmoduleblogssolid-principlessharepoint-2010gitgpudelegatesextjsdatasetlayoutsoaphigh-availabilityfftmakefileintegration-testingparameterscomputer-architecturenetbeansswiftruntimereporting-servicesquery-optimizationlegacygoogle-app-engineios4windows-7pocograph-theorydsltransactionsasp-classicautomationconfigurationsharepoint-2007workflow-foundationuse-caseinitializationfacebookreflectionbuttoniteratorado.netbig-odata-visualizationtimerbuildfull-text-searchactiverecordoperator-overloadingandroid-layoutcallbackjnibit-manipulationsymbianturing-machinesx86-64csvangularjsmigrationsdkconventionsexcel-vbajavafxtext-miningserializationerror-handlingbusiness-intelligenceannotationsbiztalkaopssl-certificatecucumberappleidiomaticmutexocamlcoldfusionrotationfinancebuild-processcore-dataincludedesktopfor-loopformal-verification