As businesses collect increasing amounts of vital data, the need to structure software components increases every day. Using appropriate data structures and having a good understanding of algorithm analysis is key to writing maintainable and extensible quality software, thus solving the crisis.
This practical course will guide you through a web application development cycle using a structured and disciplined approach, focusing on accuracy and efficiency as you build quality software.
About The Author
Rodrigo received his Bachelor's of Science in Computer Science from Brigham Young University, Idaho, as well as an Associate's Degree in Business Management from LDS Business College in Salt Lake City, Utah.
His fascination for game development began in his early teenage years, and his skills grew as he discovered the power of a library subscription. He has a curious and willing mind, with understanding and supporting parents and friends.
Today, Rodrigo balances his time between the three great passions of his life—his family, software development, and video games (with the last two usually being mingled together).
Who am I, and what is this course about.
It is difficult to write complex software systems that run correctly. Most importantly, these systems must be easy to maintain and extend. Building software systems in a structured and efficient way helps to manage all three of the aforementioned problems.
Each data structure is explained in this manner: what it does, what it's used for, and what its supported operations are.
Arrays are great for constant time indexing and data locality. However, some operations can be very slow, such as inserting an item in the middle of a list. Linked lists offer many advantages over arrays in some cases.
Neither lists nor arrays enforce any rules regarding duplicate items being stored in them. A set is a collection of unique objects.
Queues are lists that preserve the insertion order of its elements, such that the first element added is the next first to be removed (FIFO). A common use case for a queue is a task queue. Tasks to be performed are added to a queue, and then they're processed in the order they were added to the queue.
Stacks are lists that preserve the insertion order of their elements, such that the last element added is the next first to be removed (LIFO). A common use case for a stack is performing nested operations such as recursion.
Binary trees are special types of trees that are most commonly used to search over a data space very quickly. Binary trees are also very fast to insert and delete, much like linked lists, but finding operations are much faster.
A graph is a complex data structure that is made up of a connection of vertices connected by edges.
An algorithm is a set of steps taken in order to solve a specific problem. One way to compare different algorithms in order to determine the best one needed, is to describe its complexity using Big-O.
There are two general approaches to traversing graphs, which is one powerful way to represent a map. These two approaches are depth-first and breadth-first searches.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.