Introduction history computers used to execute a single program beginning to end before operating systems Os evolved to allow more than one program to run at once (individual processes) motivated by resource utilization, fairness, convenience threads allow multiple streams of program control to coexist within a process sharing process-wide resources benefits exploiting multiple processors simpler… Continue reading Java: Concurrency In Practice
Author: yujinjc
Effective Java
Introduction most of the rules derive from a few fundamental principles clarity and simplicity are of paramount importance user should not be surprised by component behavior code should be reused rather than copied dependencies between components should be kept to a minimum errors should be detected as soon as possible for the most part, this… Continue reading Effective Java
How To Talk to Anyone
make your smile special don’t flash an immediate smile flooding smile: pause, soak in their persona and let a warm responsive smile flood your face how to appear more intelligent maintain strong eye contact sticky eyes: pretend your eyes are attached with warm taffy make less sticky between men How to use your eyes to… Continue reading How To Talk to Anyone
Clean Architecture
What is Design and Architecture? no difference between design and architecture low-level details and high-level structures are all part of the same whole The goal of software architecture is to minimize the human resources required to build and maintain the required system Bad architecture can result in increasing costs per new feature making a mess… Continue reading Clean Architecture
Never Split the Difference
The New Rules people want to be understood and accepted the centerpiece of the book is tactical empathy by learning to listen learning to listen is not a passive activity it is the most active thing you can do life is negotiating negotiation serves two distinct purposes: information gathering and behavior influencing you get what… Continue reading Never Split the Difference
Java: A Beginner’s Guide (8th Edition)
Java Fundamentals The History and Philosophy of Java created at Sun Microsystems to be a platform-independent language originally targeted for embedded consumer electronics blew up due to the world wide web internet populated with many types of computers, operating systems, and CPUs adopted syntax from C and object model from C++ Java simplified internet programming… Continue reading Java: A Beginner’s Guide (8th Edition)
The Effective Engineer
Focus on High-Leverage Activities leverage = impact produced / time invested use leverage to measure the effectiveness leverage can be increased by 1) reducing time to complete the task, 2) increase the output, and/or 3) shifting to a higher leverage activity for a meeting default to a half-hour meeting prepare agenda and set goals beforehand… Continue reading The Effective Engineer
Agile Software Development: Principles, Patterns, and Practices
Agile Practices Individuals and interactions over process and tools working well with others, communicating, and interacting is more important than raw programming talent tools can be overemphasized, start small until you outgrow it Working software over comprehensive documentation software without documentation is a disaster, but too much is worse than too little maintain a rationale… Continue reading Agile Software Development: Principles, Patterns, and Practices
Peopleware: Productive Projects and Teams
Managing the Human Resource Intro managers try to treat people as modules Somewhere Today, a Project is Failing 15% (worse for bigger projects) software projects fail due to people-related issues, not technology high tech illusion: we are in high-tech business we are mostly in the human communication business focus on the technical, because it is… Continue reading Peopleware: Productive Projects and Teams
A Philosophy of Software Design
Introduction If you can visualize a system, you can probably implement it Means greatest limitation is theĀ ability to understand the system we are creating Over time, complexity accumulates, leading to bugs which slows development two general approaches to fight complexity making code simpler and more obvious encapsulate complexity software design continual process, waterfall rarely… Continue reading A Philosophy of Software Design