Learn Ruby on Rails – Resources and Reading List

In Brief

Three popular books to start learning Ruby on Rails:

  • The Well-Grounded Rubyist (3rd Edition) by David A. Black and Joseph Leo III
  • Learn Rails 5.2 by Stefan Wintermeyer
  • Docker for Rails Developers (1st Edition) by Rob Isenberg

Reading List

The Well-Grounded Rubyist (3rd Edition)
by David A. Black and Joseph Leo III
Paperback: 584 pages
Publisher: Manning Publications; 3 edition (March 15, 2019)
ISBN-10: 1617295213 | ISBN-13: 978-1617295218

Agile Web Development with Rails 6 (1st Edition)
by Sam Ruby, David B. Copeland, Dave Thomas
Paperback: 500 pages
Publisher: Pragmatic Bookshelf; 1 edition (November 4, 2019)
ISBN-10: 1680506706 | ISBN-13: 978-1680506709

Agile Web Development with Rails 5.1 (1st Edition)
by Sam Ruby, David B. Copeland, Dave Thomas
Paperback: 496 pages
Publisher: Pragmatic Bookshelf; 1 edition (November 16, 2017)
ISBN-10: 1680502514 | ISBN-13: 978-1680502510

Learn Rails 5.2: Accelerated Web Development with Ruby on Rails
by Stefan Wintermeyer
Paperback: 464 pages
Publisher: Apress; 1st ed. edition (April 17, 2018)
ISBN-10: 148423488X | ISBN-13: 978-1484234884

The Rails 5 Way (4th Edition)
by Obie Fernandez
Series: Addison-Wesley Professional Ruby Series
Paperback: 1088 pages
Publisher: Addison-Wesley Professional; 4 edition (November 24, 2017)
ISBN-10: 0134657675 | ISBN-13: 978-0134657677

Component-Based Rails Applications: Large Domains Under Control (1st Edition)
by Stephan Hagemann
Series: Addison-Wesley Professional Ruby Series
Paperback: 304 pages
Publisher: Addison-Wesley Professional; 1 edition (July 2, 2018)
ISBN-10: 9780134774589 | ISBN-13: 978-0134774589

Rails, Angular, Postgres, and Bootstrap: Powerful, Effective, Efficient, Full-Stack Web Development (2nd Edition)
by David B. Copeland
Paperback: 344 pages
Publisher: Pragmatic Bookshelf; 2 edition (July 2, 2017)
ISBN-10: 9781680502206 | ISBN-13: 978-1680502206

Docker for Rails Developers: Build, Ship, and Run Your Applications Everywhere (1st Edition)
by Rob Isenberg
Paperback: 240 pages
Publisher: Pragmatic Bookshelf; 1 edition (February 24, 2019)
ISBN-10: 1680502735 | ISBN-13: 978-1680502732

Discussion

Recent releases of Ruby on Rails include:

  • Rails 6.0.1 / November 5, 2019
  • Rails 6.0.0 / August 15, 2019
  • Rails 5.2.2 / December 4, 2018
  • Rails 5.2 / April 9, 2018
  • Rails 5.1 / April 27, 2017
  • Rails 5.0 / June 30, 2016

When shopping for a book on Rails, make sure that the book covers your preferred version of Rails. Note that Rails 5.0 and higher are currently supported. The current version of Ruby at the time of this writing is 2.6.5, released October 1, 2019.

By the way, if you’re going to be programming extensively in Ruby on Rails, explore different IDEs to find the right fit for your working style. Many developers recommend RubyMine. Others like Visual Studio Code or NetBeans.

Learn Java – Resources and Reading List

In Brief

Three popular books to start learning Java:

  • Java: A Beginner’s Guide (8th Edition) by Herbert Schildt
  • Core Java Volume I–Fundamentals (11th Edition) by Cay S. Horstmann
  • Java in a Nutshell: A Desktop Quick Reference (7th Edition) by Ben Evans and David Flanagan

Reading List

Java: A Beginner’s Guide (8th Edition)
by Herbert Schildt
Series: Beginner’s Guide
Paperback: 720 pages
Publisher: McGraw-Hill Education; 8 edition (November 2, 2018) ISBN-10: 1260440214 | ISBN-13: 978-1260440218

Java: The Complete Reference (11th Edition)
by Herbert Schildt
Paperback: 1248 pages
Publisher: McGraw-Hill Education; 11 edition (December 12, 2018) ISBN-10: 1260440230 | ISBN-13: 978-1260440232

Java in a Nutshell: A Desktop Quick Reference (7th Edition)
by Ben Evans and David Flanagan
Paperback: 458 pages
Publisher: O’Reilly Media; 7 edition (December 23, 2018) ISBN-10: 1492037257 | ISBN-13: 978-1492037255

Core Java Volume I–Fundamentals (11th Edition)
by Cay S. Horstmann
Series: Core Java
Paperback: 928 pages
Publisher: Prentice Hall; 11 edition (August 27, 2018) ISBN-10: 0135166306 | ISBN-13: 978-0135166307

Core Java, Volume II–Advanced Features (11th Edition)
by Cay S. Horstmann
Paperback: 960 pages
Publisher: Prentice Hall; 11 edition (May 5, 2019) ISBN-10: 0135166314 | ISBN-13: 978-0135166314

Learn Java 12 Programming: A step-by-step guide to learning essential concepts in Java SE 10, 11, and 12
by Nick Samoylov
Paperback: 690 pages
Publisher: Packt Publishing (April 30, 2019)
ISBN-10: 1789957052 | ISBN-13: 978-1789957051

Sams Teach Yourself Java in 21 Days (Covers Java 11/12) (8th Edition)
by Rogers Cadenhead
Series: Sams Teach Yourself
Paperback: 720 pages
Publisher: Sams Publishing; 8 edition (December 30, 2019)
ISBN-10: 0672337959 | ISBN-13: 978-0672337956

Hands-On Design Patterns with Java: Learn design patterns that enable the building of large-scale software architectures
by Dr. Edward Lavieri
Paperback: 360 pages
Publisher: Packt Publishing (April 27, 2019)
ISBN-10: 1789809770 | ISBN-13: 978-1789809770

Java Design Patterns: A Hands-On Experience with Real-World Examples (2nd Edition)
by Vaskaran Sarcar
Paperback: 536 pages
Publisher: Apress; 2nd edition (December 7, 2018)
ISBN-10: 1484240774 | ISBN-13: 978-1484240779

Beginning Spring 5: From Novice to Professional (1st Edition)
by Joseph B. Ottinger and Andrew Lombardi
Paperback: 364 pages
Publisher: Apress; 1st edition (September 23, 2019)
ISBN-10: 1484244850 | ISBN-13: 978-1484244852

Mastering Microservices with Java: Build enterprise microservices with Spring Boot 2.0, Spring Cloud, and Angular (3rd Edition)
by Sourabh Sharma
Paperback: 446 pages
Publisher: Packt Publishing (February 26, 2019)
ISBN-10: 1789530725 | ISBN-13: 978-1789530728

Practical Microservices Architectural Patterns: Event-Based Java Microservices with Spring Boot and Spring Cloud
by Binildas Christudas
Paperback: 902 pages
Publisher: Apress; 1st edition (June 27, 2019)
ISBN-10: 1484245008 | ISBN-13: 978-1484245002

Continuous Delivery in Java: Essential Tools and Best Practices for Deploying Code to Production (1st Edition)
by Daniel Bryant and Abraham Marín-Pérez
Paperback: 482 pages
Publisher: O’Reilly Media; 1 edition (November 29, 2018)
ISBN-10: 1491986026 | ISBN-13: 978-1491986028

Discussion

Recent releases of Java include:

  • Java SE 12 / March 19, 2019
  • Java SE 11 / September 25, 2018
  • Java SE 10 / March 20, 2018
  • Java SE 9 / September 21, 2017
  • Java SE 8 / March 18, 2014
  • Java SE 7 / July 28, 2011 (not actively supported)

When shopping for a book on Java, make sure that the book covers your preferred version of Java. Many software developers are still using Java 8 in Production environments. Java 8 is still supported for now, as Java 8 and 11 are defined as Long Term Support (LTS) versions. The last Java enterprise edition release from Oracle was Java EE 8.

By the way, if you’re going to be programming extensively in Java, explore different IDEs to find the right fit for your working style. Most developers use either IntelliJ IDEA or Eclipse IDE.

Open Source Software for Big Data

With a dynamic ecosystem of developers, the open source community powers big data

”We’re seeing a rapid expansion of powerful tools available at low cost”

Key Points

  • Hadoop is the leading open source platform for big data
  • Related tools include HDFS, Pig, Mahout, Hive, HBase, Sqoop, Ooze, and Cassandra
  • Hadoop has a large user and support community

Big data management and analysis includes structured and unstructured information and has many uses: enterprise data fusion, decision support, competitive analysis, fraud detection, social media and sentiment analysis, intelligent power grids, medical research, healthcare, defense, intelligence, and security.
For example, healthcare big data solutions are being used with electronic medical records, ancillary systems, and financial systems to collect, standardize, and aggregate large scale clinical data, to enable healthcare leaders to identify and measure outcomes, correlations, and trends, and to improve quality of care.
Biopharma big data solutions are being used to support bioinformatics, data mining, genomics, and translational research. For example, in genomics, big data technologies enable researchers and clinicians to mine billions of data points in to discover new biomarkers.

Challenges of Big Data

Challenges of leveraging big data include: 1.) planning – prioritize use cases and identify value; 2.) data variety, volume, and velocity; 3.) analytical workload complexity; 4.) cost – solutions range from free open source software to proprietary products; 5.) skills – external resources may be needed.

The Information Supply Chain

The objectives of an information supply chain are to consume and integrate raw source data, analyze the data, and then deliver the analytical results to users.
A good approach to managing big data and supporting the processing involved is to deploy hardware and soft-ware solutions optimized for processing different types of big data workloads, and then combine these solutions with an existing enterprise data warehouse to create an integrated information supply chain.

Managing and Analyzing Big Data

Input to the information supply chain consists of raw source data required for analysis. In previous times, most business analytics were created using structured data extracted from operational systems and consolidated into a data warehouse. Big data dramatically increases the number of data sources, the variety and volume of data available for analysis.
A high percentage of this data is semi-structured or unstructured, in contrast to the structured operational data used to populate a data warehouse. In many organizations, unstructured data is growing faster than structured data.

Analytic RDBMSs

An analytic RDBMS or ADBMS is an integrated solution for managing structured data and generating analytics that offers improved price/performance compared with more generalized RDBMS offerings. Performance improvements are achieved with massively parallel processing, enhanced data structures, and data compression.

Non-Relational Systems

Non-relational systems are useful for big data where most of the data is semi-structured or unstructured. These systems support data structures such as document data, graphical information, and key-value pairs.

Hadoop

The leading non-relational platform for big data is Hadoop, an open source project from the Apache Software Foundation. Hadoop is a framework for running applications on a large hardware cluster of commodity hardware. Hadoop includes a distributed file system (HDFS) to distribute and manage large volumes of data across nodes of a hardware cluster to provide high throughput of data, while hiding cluster programming complexity.
Hadoop uses the MapReduce programming model to divide application processing into small fragments of work that can be executed on multiple nodes of the cluster to provide massively parallel processing. Hadoop also includes the Pig and Hive languages for developing and generating MapReduce programs.
Hadoop MapReduce is intended for the batch processing of large volumes of multi-structured data. It is not suitable for low-latency data processing, many small files, or the random updating of data. Instead, these capabilities are provided by database products such as HBase and Cassandra, which run on top of Hadoop.

Focus on Value

Big data adds new high-volume, multi-structured data sources to the information supply chain. Successful strategies for big data include prioritizing use cases, identifying critical success factors, and focusing on value up front.

Learn Python – Resources and Reading List

In Brief

Three popular books to start learning Python:

  • Think Python: How to Think Like a Computer Scientist (2nd Edition) by Allen B. Downey
  • Python Crash Course (2nd Edition) by Eric Matthes
  • Learning Python (5th Edition) by Mark Lutz

Reading List

Think Python: How to Think Like a Computer Scientist (2nd Edition)
by Allen B. Downey
Paperback: 292 pages
Publisher: O’Reilly Media; 2 edition (December 28, 2015)
ISBN-10: 1491939362 | ISBN-13: 978-1491939369

Python Crash Course: A Hands-On, Project-Based Introduction to Programming (2nd Edition)
by Eric Matthes
Paperback: 544 pages
Publisher: No Starch Press; 2 edition (May 3, 2019)
ISBN-10: 1593279280 | ISBN-13: 978-1593279288

Learn Python the Hard Way (3rd Edition)
by Zed A. Shaw
Series: Zed Shaw’s Hard Way Series
Paperback: 320 pages
Publisher: Addison-Wesley Professional; 3 edition (October 11, 2013)
ISBN-10: 0321884914 | ISBN-13: 978-0321884916

Python in 24 Hours, Sams Teach Yourself (2nd Edition)
Author: Katie Cunningham
Paperback: 320 pages
Publisher: Sams Publishing; 2 edition (October 11, 2013)
ISBN-10: 0672336871 | ISBN-13: 978-0672336874

Python Algorithms: Mastering Basic Algorithms in the Python Language (2nd Edition)
by Magnus Lie Hetland
Paperback: 320 pages
Publisher: Apress; 2nd ed. edition (September 4, 2014)
ISBN-10: 148420056X | ISBN-13: 978-1484200568

Python 3 Object-Oriented Programming: Python 3.8 (3rd Edition)
by Dusty Phillips
Paperback: 466 pages
Publisher: Packt Publishing (October 30, 2018)
ISBN-10: 1789615852 | ISBN-13: 978-1789615852

Learning Python (5th Edition)
Author: Mark Lutz
Paperback: 1600 pages
Publisher: O’Reilly Media; Fifth Edition edition (July 6, 2013)
ISBN-10: 1449355730 | ISBN-13: 978-1449355739

Python Cookbook (3rd Edition)
Author: David Beazley, Brian K. Jones
Paperback: 706 pages
Publisher: O’Reilly Media; Third Edition edition (June 1, 2013)
ISBN-10: 1449340377 | ISBN-13: 978-1449340377

Fluent Python (1st Edition)
by Luciano Ramalho (Author)
Paperback: 792 pages
Publisher: O’Reilly Media; 1 edition (August 20, 2015)
ISBN-10: 1491946008 | ISBN-13: 978-1491946008

Introduction to Machine Learning with Python: A Guide for Data Scientists (1st Edition)
by Andreas C. Müller and Sarah Guido
Paperback: 400 pages
Publisher: O’Reilly Media; 1 edition (October 21, 2016)
ISBN-10: 1449369413 | ISBN-13: 978-1449369415

Discussion

Recent stable releases of Python include:

  • 3.7.4 / 8 July 2019
  • 2.7.16 / 4 March 2019

When shopping for a book on Python, make sure that the book covers your preferred version of Python, namely 3.x or 2.x. Most recently published books will cover both versions.

Note that support for Python 2.7, which will be the last release in the 2.x series, has been extended to 1 January 2020.

By the way, if you’re going to be heavily using Python for Data Science, you might consider looking into the Anaconda distribution, which bundles some useful tools and manages package dependencies in order to avoid conflict with other versions of Python that you may be running on your system.

Top US Computer Science Programs

At a Glance

  1. Massachusetts Institute of Technology (MIT)
  2. Stanford University
  3. Carnegie Mellon University
  4. University of California – Berkeley
  5. Princeton University
  6. Harvard University
  7. Cornell University
  8. University of Illinois – Urbana-Champaign
  9. University of Washington – Seattle
  10. California Institute of Technology – Pasadena
  11. Columbia University – New York
  12. University of California – Los Angeles
  13. University of California – San Diego
  14. University of Maryland – College Park
  15. University of Pennsylvania – Philadelphia
  16. University of Massachusetts – Amherst
  17. Yale University
  18. Brown University
  19. Duke University
  20. Johns Hopkins University

Discussion

When exploring programs in computer science, consider key parameters such as: academic tracks offered or focus areas, faculty, research areas, student to faculty ratio, and opportunities for collaboration with other academic programs, industry, and government.

Ranking Methodology –
In the process of evaluating the computer science programs listed in this article, a proprietary eMarket Journal ranking algorithm is used, which weights several key parameters.

TechBrief – SOA

Service Oriented Architecture Overview

Advantages focus on optimized alignment of IT assets with business priorities

”Finally, we can get the technology capabilities we need across the enterprise”

  • SOA enables system modernization and agility
  • SOA leverages existing IT assets through services
  • Optimize alignment of IT investment with business goals

To break up organizational silos, improve interoperability of systems, leverage existing information technology assets, and increase business agility, government agencies and businesses are pursuing Service Oriented Architecture (SOA) to enable the Service Oriented Enterprise.

SOA can be defined as analysis, design, architecture, development, deployment, utilization, governance, and management of information technology (IT) assets as loosely coupled services capable of being used by multiple separate systems in a service-oriented environment. Key characteristics of SOA include: process optimization, service reusability, scalability, and seamless integration.

Service Orientation Principles

SOA provides an approach to building IT systems in which business services are the key organizing principle used to align IT systems with the needs of the enterprise. In contrast, earlier approaches to building IT systems tended to tightly couple system interfaces resulting in systems tied to specific execution environments. There are ten key service orientation principles: standardized service contract, loose coupling of services, service abstraction, reusability, autonomy, statelessness, discoverability, composability, optimization, and service encapsulation. There are four general types of services in SOA:

  • Line of Business Services (Capability Services)
  • Enterprise Services
  • Application Specific Services
  • Infrastructure Services (Utility Services)

Key Point:

Loose coupling of services improves information sharing, increases business agility and breaks the cycle of hard to maintain tightly coupled legacy systems.

Additional types of services include: entity services (data services), process services, and integration services.

SOA Lifecycle Phases

There are four phases in the SOA Lifecycle, which is based upon a process centric view:

  • Process Modeling
  • Process Implementation
  • Process Execution and Control
  • Process Monitoring

During the Process Modeling Phase, process analysts work with process owners to analyze business processes and define the process model, including activity flow, information flow, actors, roles, business rules, policies, drivers, constraints, and performance measures. Business Process Modeling (BPMN) and Unified Modeling Language (UML) are used to support these activities, and Key Performance Indicators (KPIs) are defined.
During the Process Implementation Phase, developers work with process analysts to implement business processes with development activities that map BPMN process models into an executable representation using Business Process Execution Language (BPEL). Processes are decomposed into services, which are developed or reused, processes are orchestrated, and the presentation layer user interface is developed. Services and processes communicate using an Enterprise Service Bus (ESB), which functions as a common integration layer to connect systems, processes, and services.
During the Process Execution and Control Phase, users execute business processes utilizing the developed system of services and IT assets.
During the Process Monitoring and Optimization Phase, process owners monitor KPIs of the processes using Business Activity Monitoring (BAM). As a result, business issues are analyzed and processes are optimized for increased operational efficiency and business value.

Business Advantages

Key drivers for SOA include the need to align IT assets with business requirements, process optimization, and business agility, which enable an organization to increase operational efficiencies and create new business value. Key business benefits of Service Oriented Architecture include:

  • Better alignment of business and IT
  • Increased speed to market using modular solutions
  • End to end business process support
  • Process monitoring, control, and optimization
  • Increased operational efficiency
  • Leverages IT investment across multiple solutions and projects

Summary

Service Oriented Architecture breaks up silos of information, breaks the cycle of hard-wired brittle systems, increases business agility, and provides a pathway to enablement of the Service Oriented Enterprise. Loose coupling of services improves agility of information sharing and enables process optimization to increase organizational effectiveness.

Innovation

It’s a light that suddenly turns on. An insight that leads to something new. An idea for something better, and you just can’t get it out of your mind. So, you go with it. And the idea begins to form into the beginnings for a startup.

We write about interesting startup companies. Maybe it’s you and your team. Drop us a line and tell us what you’re up to.

Best wishes on your next great idea,

eMarket Journal

Explore more – emarketjournal.com