References for "The Future of Programming"
Reading List
The Debugging Mindset - ACM Queue
Software developers spend 35-50 percent of their time validating and debugging software. The cost of debugging, testing, and verification is estimated to account for 50-75 percent of the total budget of software development projects, amounting to more than $100 billion annually. While tools, languages, and environments have reduced the time spent on individual debugging tasks, they have not significantly reduced the total time spent debugging, nor the cost of doing so. Therefore, a hyperfocus on elimination of bugs during development is counterproductive; programmers should instead embrace debugging as an exercise in problem solving.
The mythical 10x programmer -
The Zen Programmer Book by Christian Grobmeier
The Zen Programmer is a book by Christian Grobmeier. It explains Zen in easy words to programmers.
Making Badass Developers - Kathy Sierra (Serious Pony) keynote
For a free sample of Kathy's book, visit: http://goo.gl/AU7A6j
From Fluent 2015. "Every moment of every day there’s a new language, framework, format, protocol to learn. Nobody has a more dynamic skill set than a web developer. We’ll look at the one metaskill to rule them all: The ability to come up to speed and stay there, over and over again.
Abouyt Kathy Sierra (SeriousPony):
Kathy Sierra worked as a game programmer, interaction designer, and learning specialist (Sun Microsystems, UCLA Extension) before creating the best-selling Head First series for O’Reilly. She was the original creator of one of the largest software developer communities, javaranch.com."
Google I/O 2009 - The Myth of the Genius Programmer
Google I/O 2009 - The Myth of the Genius Programmer
Brian Fitzpatrick, Ben Collins-Sussman
A pervasive elitism hovers in the background of collaborative software development: everyone secretly wants to be seen as a genius. In this talk, we discuss how to avoid this trap and gracefully exchange personal ego for personal growth and super-charged collaboration. We'll also examine how software tools affect social behaviors, and how to successfully manage the growth of new ideas.
For presentation slides and all I/O sessions, please go to: code.google.com/events/io/sessions.html
#NoEstimates (Allen Holub)
This keynote presents my (and many other's) thinking about #NoEstimates. It argues that estimation is a bad thing, particularly in the Agile world, and presents ways to plan that don't involve estimation.
8 Ways to Crank Up Speed in Software Development - Apptio
Every single CEO of any IT company wants to build software faster. Time is the most expensive and valuable resource. You can’t waste it on re-work,
Simple Made Easy
Rich Hickey emphasizes simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path.
Category Theory in Life - Eugenia Cheng
This presentation was the opening keynote of Lambda World 2017 by Dr. Eugenia Cheng.
Follow:
-https://www.twitter.com/47deg
-https://www.twitter.com/lambda_world
Visit:
-https://www.47deg.com/events for more details.
___
Category theory can be thought of as being 'very abstract algebra'. It is thought of as 'too abstract' by some people, and as 'abstract nonsense' by some others. In this talk, I will show that while it is abstract, it is far from being nonsense. I will argue that the abstraction has a purpose and that broad applicability is one of the powerful consequences. To demonstrate this, I will show how I apply concepts of category theory to important questions of life such as prejudice, privilege, blame and responsibility. I will introduce the category theory concepts from scratch so no prior knowledge is needed. These concepts will include objects and morphisms, isomorphisms and universal properties.
Unite Europe 2016 - ECS architecture with Unity by example
Simon Schmid (Wooga) and Maxim Zaks (Wooga) explain how the introduction of strict ECS architecture in Unity helped them to achieve easy to test, robust and scalable game logic. It also helped them to extract this logic and run it on a server. At Unite Europe 2015 they introduced their Open Source project Entitas-CSharp, which helped them achieve all the benefits they listed before. This year they present an example which explains how ECS and Unity can co-exist and empower developers to have a clean, scalable and testable architecture. They cover the following topics: - User Input - Integration with Unity Collision System - Reactive UI - Re-Playable games
Help us caption & translate this video!
http://amara.org/v/V6ZJ/
How JavaScript works: Event loop and the rise of Async programming + 5 ways to better coding with…
Welcome to post # 4 of the series dedicated to exploring JavaScript and its building components. In the process of identifying and…
How JavaScript works: memory management + how to handle 4 common memory leaks
A few weeks ago we started a series aimed at digging deeper into JavaScript and how it actually works: we thought that by knowing the…
How JavaScript works: inside the V8 engine + 5 tips on how to write optimized code
Couple of weeks ago we started a series aimed at digging deeper into JavaScript and how it actually works: we thought that by knowing the…
How JavaScript works: an overview of the engine, the runtime, and the call stack
As JavaScript is getting more and more popular, teams are leveraging its support on many levels in their stack - front-end, back-end…
GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep ...
Neal Ford - Evolutionary Software Architectures
Practical Object-Oriented Design in Ruby
Greg Young - CQRS and Event Sourcing - Code on the Beach 2014
Watch Greg Young's talk "CQRS and Event Sourcing" from Code on the Beach 2014 at One Ocean Resort & Spa, Atlantic Beach, Florida. Saturday, August 9, 2014. www.codeonthebeach.com
Abstract:
"Looking at mature domains it is odd that almost none have a concept of current state but instead are built off a set of facts that occurred; is your bank balance a column in a table? This is not by accident and there are many benefits to having this viewpoint of a system both from a business and a technological viewpoint. In this talk we will look at what cqrs (command and query responsibility segregation) and event sourcing are."
Growing a Language, by Guy Steele
Guy Steele's keynote at the 1998 ACM OOPSLA conference on "Growing a Language" discusses the importance of and issues associated with designing a programming language that can be grown by its users.
ACM OOPSLA conference
Speaker: Guy L. Steele Jr.
Out of the tar pit
Boxology
Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability by Steve Krug
Don't Make Me Think, Revisited book. Read 1,800 reviews from the world's largest community for readers. Since Don’t Make Me Think was first published in ...
Hashing, Encryption and Encoding ⋆ Mark McDonnell
Introduction I’ve written previously (and in-depth) on the subject of security basics, using tools such as GPG, OpenSSH, OpenSSL, and Keybase. But this time I wanted to focus in on the differences between encryption and hashing, whilst also providing a slightly more concise reference point for those already familiar with these concepts. Before we get started, let’s see what we’ll be covering: Terminology Hashing vs Encryption MAC vs HMAC Base64 Encoding Random Password Generation Hash Functions shasum hashlib cksum OpenSSH OpenSSL Generating a key pair Encrypting and Decrypting Randomness GPG Generating a key pair Automate Asymmetrical Encryption and Decryption Symmetrical Encryption and Decryption Signing keys Signing encrypted files Keybase Terminology OK, so using the correct terminology is essential and helps us to be explicit and clear with what we really mean.
Web Application Exploits and Defenses
OWASP Top Ten Web Application Security Risks | OWASP
The OWASP Top 10 is the reference standard for the most critical web application security risks. Adopting the OWASP Top 10 is perhaps the most effective first step towards changing your software development culture focused on producing secure code.
Foundations of Security: What Every Programmer Needs to Know by Neil Daswani
Foundations of Security book. Read 7 reviews from the world's largest community for readers. Foundations of Security: What Every Programmer Needs to Know...
An Open Letter to Developers Everywhere (About Cryptography)
An Open Letter to Developers Everywhere (About Cryptography) · GitHub
(Updated) Cryptographic Right Answers
(Updated) Cryptographic Right Answers · GitHub
Rolling Your Own Crypto
So you want to roll your own crypto. Well, be careful. Be very careful.