Functionally Pragmatic Programming: 90 Mega Software Engineering Focused Exercises with a mild touch of AI and Data Analytics
English | 2022 | ASIN: B0BC6SXCPD | AZW3,EPUB | 12.03 MB
English | 2022 | ASIN: B0BC6SXCPD | AZW3,EPUB | 12.03 MB
Want to ace your software engineering interview and be confident in your programming and problem-solving abilities? This workbook not only strengthens programming skills, but exposes programmers to real-world applications, from cloud computing and database systems to artificial intelligence across a range of industries and use cases. This workbook not only contains exercises on functional programming –- a significant component of this book is dedicated to fundamental and practical software engineering principles from the Agile methodology and system design to project management.Functional programming opens up the horizons of programming, allowing for functional programming (primarily) but also a touch of imperative programming. The features of functional programming will better help programmers get through fundamental concepts, such as recursion, object-oriented design, and type-checking. That is the purpose of the exercises of this book being written in OCaml, a statically-typed functional programming language. In functional programming, pattern matching for instance simplifies the way we reason about recursive structures, as it allows the programmer to break larger structures into smaller sub-structures. And, recently, pattern matching has been adopted by Python. The version of Java originally released in 2014, Java 8, was the first to adopt streams, which brought a variety of functional programming functions to Java. Additionally, functional programming supports state isolation, which is where new objects are created with no natural mutations to existing objects. This can certainly be important in large-scale systems to ensure that one bug in a single component does not affect the other components.
With
90 exercises
and their solutions, this workbook’s primary objective is not to strengthen OCaml skills — more importantly, it is to improve programming skills, reasoning through problems that are directly applicable to computer science sub-fields and domains, and get exposed to the functional programming paradigm. Through its rich exercises, this workbook aims to solidify the concepts that are shared across problems you will likely encounter as a Software Engineer or during the process of becoming one. Certainly, this workbook does not cover all the data structures, algorithms, and software architectures you should know for a software engineering interview. Rather, this workbook lays the foundation for strong programming and debugging skills pertaining to the concepts you should know as a to-be-Software Engineer or an already-established Software Engineer, putting you in a position where you can easily expand upon them with further learning and practice. Remember, practice makes perfect!Even though the exercises in this book are written in OCaml, you can certainly code and work through many of the exercises in any language, by taking and understanding the problem statement and applying the same logic as you would in OCaml to your desired language. However, since this book is generally focused on functional programming, working through the exercises in closely-related programming languages to OCaml such as Haskell, Scala, Clojure, etc. would be further beneficial.To learn functional programming, the books Real World OCaml (Madhavapeddy et al.), Real World Haskell (O’Sullivan et al.), and OCaml Programming (Clarkson et al.) are all great resources.