Understand essential computer science concepts and skills. This book focuses on the foundational and fundamental concepts upon which expertise in specific areas can be developed, including computer architecture, programming language, algorithm and data structure, operating systems, computer networks, distributed systems, security, and more. According to code. org, there are 500,000 open programming positions available in the US- compared to an annual crop of just 50,000 graduating computer science majors. The US Department of Labor predicted that there will be almost a million and a half computer science jobs in the very near future, but only enough programmers to fill roughly one third of these jobs. To bridge the gap, many people not formally trained in computer science are employed in programming jobs. Although they are able to start programming and coding quickly, it often takes them time to acquire the necessary understanding to gain the requisite skills to become an efficient computer engineer or advanced developer. What You Will LearnThe fundamentals of how a computer works The basics of computer programming and programming paradigms How to write efficient programsHow the hardware and software work together to provide a good user experience and enhance the usability of the systemHow computers can talk to each other How to ensure the security of the systemThe fundamentals of cloud offerings, implications/trade-offs, and deployment/adoption configurationsThe fundamentals of machine learning Who This Book Is ForComputer programmers lacking a formal education in computer science, and anyone with a formal education in computer science, looking to develop a general understanding of computer science fundamentals
Paul D. Crutcher is Senior Principal Engineer at Intel Corporation and manages the Platform Software Architecture team in the Client Computing Group. He has worked at Intel for more than 25 years and has also worked at two smaller software companies. Paul has a degree in computer science, with expertise spanning software development, architecture, integration, and validation based on systems engineering best practices in multiple areas. He holds several patents and has written multiple papers and presentations. Neeraj Kumar Singh is a Principal Engineer at Intel with more than 15 years of system software and platform design experience. His areas of expertise are hardware software co-design, system/platform architecture, and system software design & development. Neeraj is the lead author of two other books: System on Chip Interfaces for Low Power Design and Industrial System Engineering for Drones: A Guide with Best Practices for Designing, in addition to many other papers and presentations. Peter Tiegs is Principle Engineer at Intel with 20 years of software experience. Inside Intel he often consults on DevOps topics such as build automation and source code branching. Over the last decade Peter evangelized continuous integration and delivery as well as agile practices at Intel. He has written software at all levels of the stack from embedded C code to VUE. js. His programming language of choice is Python.