Weekly Links #35

Top 100 Links For 30/9-27/10

There were a lot of interesting posts in the last four weeks,

so instead of the regular top 10 weekly list, here is a top 100 list.

For your convenience, I divided the articles into categories.

Next week I will publish a new post in the good old format.



Code Quality

  1. When creating an interface and/or abstract class is an overkill
  2. What does it mean when code is “easy to reason about”?
  3. The Liskov Substitution Principle (With Examples)
  4. Shades of the Single Responsibility Principle
  5. Elements of Helpful Code Documentation
  6. The hardest thing in computer science
  7. Dependency Inversion Principle (DIP)
  8. Habits that Help Code Quality
  9. No More Boilerplate Code
  10. The Myth of Sloppy Code


  1. Why Developers Should Focus On Communication
  2. Asking Questions Shows Strength, Not Weakness
  3. How to Leave Your Software Development Job
  4. Finding Time To Become A Better Developer
  5. Avoiding Distractions While Programming
  6. Enough Vacation — An Individual Goal
  7. Read, Search, (Don’t Be Afraid to) Ask
  8. Reviewing Strangers’ Code on Github
  9. 8 Things New Developers Should Do
  10. Revisiting The Technical Interview


  1. Giving Developers Autonomy While Still Maintaining Order in a Distributed Team
  2. How to Keep Your Employees and Avoid Turnover
  3. The Right Way to Run a Technical Interview
  4. 4 Ways to Help New Managers Succeed
  5. What Makes a Great Boss?


  1. How & Why to Use the Kanban Methodology for Software Development
  2. Kanban can create magic, but only when used correctly
  3. The Future of Agile: Innovators, Imitators, and Idiots


  1. Stop writing bad tests. Write only the tests that you can do great.
  2. Finding the Balance Between Unit & Functional Tests
  3. Caution when using TDD’s Triangluation technique


  1. Three ways you can find the largest number in an array using JavaScript
  2. Recursion in JavaScript with ES6, destructuring and rest/spread
  3. A Practical Introduction to ES6 Generator Functions
  4. Form Validation As A Higher Order Component Pt.1
  5. What I learned from reading the Redux source code
  6. JavaScript Grows Up and Gets Its Own Foundation
  7. Webpack or Browserify & Gulp: Which Is Better?
  8. The Definitive Guide to DateTime Manipulation
  9. Different ways to debug JavaScript code
  10. Tips for using async functions (ES2017)

Javascript Fatigue

  1. Progressive enhancement isn’t dead, but it smells funny
  2. You can’t get comfortable in web development
  3. How it feels to learn JavaScript in 2016
  4. We have to talk about JavaScript
  5. Totally get your frustration
  6. JavaScript Fatigue Fatigue
  7. Chasing Tools


  1. Yarn: A new package manager for JavaScript
  2. Yarn vs npm: Everything You Need to Know
  3. NPM vs Yarn Cheat Sheet


  1. React Props/State Explained Through Darth Vader’s Hunt for the Rebels
  2. Dissecting the React Lifecycle and Related Methods
  3. Dynamic React className – the way to achieve it
  4. Angular 2 vs React: The Ultimate Dance Off
  5. Helpful principles when starting with React
  6. How to Test React Components Using Jest
  7. Building D3 Components with React


  1. Avoiding Accidental Complexity When Structuring Your App State
  2. Redux: It’s Middleware All the Way Down!
  3. Introducing ReduxVCR


  1. CSS Flexbox Explained by Road Tripping Across the Country
  2. 12 Killer Ways to Improve Website UX with Animation
  3. The SVG `path` Syntax: An Illustrated Guide
  4. You know a site has its shit together when…
  5. How the Web Became Unreadable
  6. @supports will change your life
  7. Styling Underlines on the Web
  8. My thoughts on Inline Styles
  9. Spoooooky CSS Selectors
  10. On Style Maintenance


  1. Things I Wish I Knew When I Started (Debugging) Rails
  2. Learn Ruby Metaprogramming for Great Good
  3. When To Be Concerned About Concerns
  4. Go Full Stack Rails: The Backend part 1
  5. Diving into How Hashes Work in Ruby
  6. Tips for Writing Fast Rails: Part 1
  7. 10 Ruby on Rails Best Practices
  8. Refine Your Ruby Util Objects


  1. Simplifying Validations Using the Strategy(Enum) Pattern
  2. Memory efficient HashSet implementation for Java
  3. Making an Exception-Handling Mechanism
  4. Introduction to hash tables
  5. JavaOne 2016 – Nucleus
  6. API Design with Java 8


  1. Common Multithreading Mistakes in C#; Part II
  2. .NET on Linux – bye, Windows 10
  3. Why using finalizers is a bad idea
  4. Visual Studio Tips 4

Mobile Development

  1. Android 7.0 for Developers: New Features, Performance Upgrades & Other Stuff You Won’t Care About
  2. It’s Been Real, Android: Why I’m Retiring From Android
  3. Android Development Best Practices
  4. Why I hate iOS as a developer

Open Source

  1. How Junior Developers Can Contribute to Open-Source Projects
  2. Introducing GitHub Community Guidelines
  3. My First Open Source Adventure


  1. Google’s Dart programming language returns to the spotlight
  2. How Your First Programming Language Warps Your Brain
  3. Exploring CLI Best Practices
  4. Git auto-completion on Mac