programming
How to Think Like a Computer Scientist: Learning with Python
Douban
Allen B. Downey / Jeffrey Elkner … publishing house: Green Tea Press 2002 - 1
""How to Think Like a Computer Scientist"" is an introduction to programming using Python, one of the best languages for beginners. This is a Free Book -- you can download it from thinkpython.com. But if you would like to make a contribution to this project, you can do it by buying a hardcopy or paying to download the electronic version here. Thank you!
计算机系统要素
The Elements of Computer Systems: Building a Modern Computer from First Principles Douban Goodreads
[美] Noam Nisan / [美] Shimon Schocken translator: 周维 / 宋磊 … publishing house: 电子工业出版社 2007 - 1
本书通过展现简单但功能强大的计算机系统之构建过程,为读者呈现了一幅完整、严格的计算机应用科学大图景。本书作者认为,理解计算机工作原理的最好方法就是亲自动手,从零开始构建计算机系统。 通过12个章节和项目来引领读者从头开始,本书逐步地构建一个基本的硬件平台和现代软件阶层体系。在这个过程中,读者能够获得关于硬件体系结构、操作系统、编程语言、编译器、数据结构、算法以及软件工程的详实知识。通过这种逐步构造的方法,本书揭示了计算机科学知识中的重要成分,并展示其它课程中所介绍的理论和应用技术如何融入这幅全局大图景当中去。全书基于“先抽象再实现”的阐述模式,每一章都介绍一个关键的硬件或软件抽象,一种实现方式以及一个实际的项目。完成这些项目所必要的计算机科学知识在本书中都有涵盖,只要求读者具备程序设计经验。本书配套的支持网站提供了书中描述的用于构建所有硬件和软件系统所必需的工具和资料,以及用于12个项目的200个测试程序。 全书内容广泛、涉猎全面,适合计算机及相关专业本科生、研究生、技术开发人员、教师以及技术爱好者参考和学习。
The Self-Service Data Roadmap
Douban
Sandeep Uttamchandani publishing house: O'Reilly Media 2020
The world’s most valuable resource is data. Companies across all industry verticals are using data-driven insights as a key competitive advantage. But the time required for transforming raw data to insights can take days or weeks when you want it in minutes or hours. Data scientists spend nearly 80% of their time in data engineering, rather than developing insights. And most organizations can't scale their data science teams fast enough to keep up with growing business needs for better, faster insights. This book will help data engineers, data scientists, and data team managers address these issues by building a self-service data science platform that democratizes the ability to extract insights from the data to everyone in the organization. Data scientists, software engineers, product managers, and marketers can use it to discover, transform, and analyze data and publish automated insights in production. This book is not: A deep dive into the “shiny new” technologies, or any one specific technology A silver bullet technology for building a self-service portal. Organizations differ in their maturity, people, process, and technology and require tailored solutions This book is: A collection of must-have operational capabilities for building a self-service data portal A blueprint for achieving better and faster insights A process for democratizing data engineering expertise across an organization A practical and indispensable guide for any decision-maker, implementer, or strategist working with an organization’s data science platform
编码
Code: The Hidden Language of Computer Hardware and Software Douban Goodreads
★ 9.6 9 ratings
Charles Petzold translator: 左飞 / 薛佟佟 publishing house: 电子工业出版社 2012 - 10
本书是一本讲述计算机工作原理的书。不过,你千万不要因为“工作原理”之类的字眼就武断地认为,它是晦涩而难懂的。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程序员”的理解。 不管你是计算机高手,还是对这个神奇的机器充满敬畏之心的菜鸟,都不妨翻阅一下本书,读一读大师的经典作品,必然会有收获。
Essentials of Programming Languages, 3rd Edition
Douban Goodreads
Daniel P. Friedman / Mitchell Wand publishing house: The MIT Press 2008 - 4
This textbook offers a deep understanding of the essential concepts of programming languages. The approach is analytic and hands-on. The text uses interpreters, written in Scheme, to express the semantics of many essential language elements in a way that is both clear and directly executable. It also examines some important program analyses. Extensive exercises explore many design and implementation alternatives.
A Beginner's Guide to R
Douban
Alain F. Zuur / Elena N. Ieno publishing house: Springer 2009
Based on their extensive experience with teaching R and statistics to applied scientists, the authors provide a beginner's guide to R. To avoid the difficulty of teaching R and statistics at the same time, statistical methods are kept to a minimum. The text covers how to download and install R, import and manage data, elementary plotting, an introduction to functions, advanced plotting, and common beginner mistakes. This book contains everything you need to know to get started with R.
Reading April 29, 2020
每一小节结束后都有一个“which functions did we learn"总结,感觉非常为初学者考虑。
programming R
The Pragmatic Programmer
Douban
★ 8.9 8 ratings
David Thomas / Andrew Hunt publishing house: Addison-Wesley Professional 2019 - 9
“One of the most significant books in my life.” —Obie Fernandez, Author, The Rails Way “Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.” —Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied “. . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.” —Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks “. . . lightning does strike twice, and this book is proof.” —VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks The Pragmatic Programmer is one of those rare tech books you’ll read, re-read, and read again over the years. Whether you’re new to the field or an experienced practitioner, you’ll come away with fresh insights each and every time. Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories. Now, twenty years later, this new edition re-examines what it means to be a modern programmer. Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you’ll learn how to: Fight software rot Learn continuously Avoid the trap of duplicating knowledge Write flexible, dynamic, and adaptable code Harness the power of basic tools Avoid programming by coincidence Learn real requirements Solve the underlying problems of concurrent code Guard against security vulnerabilities Build teams of Pragmatic Programmers Take responsibility for your work and career Test ruthlessly and effectively, including property-based testing Implement the Pragmatic Starter Kit Delight your users Written as a series of self-contained sections and filled with classic and fresh anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best approaches and major pitfalls of many different aspects of software development. Whether you’re a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you’ll quickly see improvements in personal productivity, accuracy, and job satisfaction. You’ll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You’ll become a Pragmatic Programmer. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
To read March 8, 2020
recommended by Hadley Wickham
programming
Concepts, Techniques, and Models of Computer Programming
Concepts, Techniques, and Models of Computer Programming Douban Goodreads
Peter Van Roy / Seif Haridi publishing house: The MIT Press 2004 - 2
This innovative text presents computer programming as a unified discipline in a way that is both practical and scientifically sound. The book focuses on techniques of lasting value and explains them precisely in terms of a simple abstract machine. The book presents all major programming paradigms in a uniform framework that shows their deep relationships and how and where to use them together. After an introduction to programming concepts, the book presents both well-known and lesser-known computation models ("programming paradigms"). Each model has its own set of techniques and each is included on the basis of its usefulness in practice. The general models include declarative programming, declarative concurrency, message-passing concurrency, explicit state, object-oriented programming, shared-state concurrency, and relational programming. Specialized models include graphical user interface programming, distributed programming, and constraint programming. Each model is based on its kernel language--a simple core language that consists of a small number of programmer- significant elements. The kernel languages are introduced progressively, adding concepts one by one, thus showing the deep relationships between different models. The kernel languages are defined precisely in terms of a simple abstract machine. Because a wide variety of languages and programming paradigms can be modeled by a small set of closely related kernel languages, this approach allows programmer and student to grasp the underlying unity of programming. The book has many program fragments and exercises, all of which can be run on the Mozart Programming System, an Open Source software package that features an interactive incremental development environment.
To read March 8, 2020
recommended by Hadley Wickham
programming
Cracking the Coding Interview
Douban Goodreads
Gayle Laakmann McDowell publishing house: CareerCup 2015 - 7
Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hundreds of software engineers. The result is this book. Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions. These interview questions are real; they are not pulled out of computer science textbooks. They reflect what's truly being asked at the top companies, so that you can be as prepared as possible. WHAT'S INSIDE? 189 programming interview questions, ranging from the basics to the trickiest algorithm problems. A walk-through of how to derive each solution, so that you can learn how to get there yourself. Hints on how to solve each of the 189 questions, just like what you would get in a real interview. Five proven strategies to tackle algorithm questions, so that you can solve questions you haven't seen. Extensive coverage of essential topics, such as big O time, data structures, and core algorithms. A behind the scenes look at how top companies like Google and Facebook hire developers. Techniques to prepare for and ace the soft side of the interview: behavioral questions. For interviewers and companies: details on what makes a good interview question and hiring process.
Structure and Interpretation of Computer Programs - 2nd Edition (MIT)
Douban Goodreads
★ 9.6 21 ratings
Harold Abelson / Gerald Jay Sussman publishing house: The MIT Press 1996 - 7
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.
Pragmatic Thinking and Learning
Douban
Andy Hunt publishing house: Pragmatic Bookshelf 2008 - 11
In this title: together we'll journey together through bits of cognitive and neuroscience, learning and behavioral theory; you'll discover some surprising aspects of how our brains work; and, see how you can beat the system to improve your own learning and thinking skills. In this book you'll learn how to: use the Dreyfus Model of Skill Acquisition to become more expert; leverage the architecture of the brain to strengthen different thinking modes; avoid common 'known bugs' in your mind; learn more deliberately and more effectively; and, manage knowledge more efficiently. Software development happens in your head. Not in an editor, IDE, or design tool. It's time to take a pragmatic approach to thinking and learning, and start to refactor - and redesign - your brain.