💡
I have left ThoughtWorks in December 2020. But I believe this post still holds. I have updated this post with the latest links.
I have been helping with recruitment in ThoughtWorks for quite some time now. Based on my experiences of interviewing developers, the following are some links I would recommend everybody should go through while appearing for an interview at ThoughtWorks.
💡
This is not an exclusive list by any means. I have tried to keep this list as programming language agnostic as I can. All of the points mentioned below are absolute basic knowledge to have. Advanced topics are usually covered in the interview based on the experience and expertise of the candidate.
About ThoughtWorks
Object Oriented Modeling and Design
- Object Oriented Analysis and Design – Wikipedia
- Classes and Objects
- Analysis: Finding the classes and objects
- How to find the classes
- Domain Model – Wikipedia
- What is Domain Modeling
Data Structures
- Data Structure – Wikipedia
- List of data structures
- Data Structures – Fundamental Tools
- Data Structures and Algorithms: When To Use What?
- The top data structures you should know for your next coding interview
- Data Structures & Algorithms I Used Working at Tech Companies
Programming general
- Programming Languages – Introduction – Wikipedia
- Object Oriented Programming – Wikipedia
- Functional Programming – Wikipedia
- Functional Programming – Haskell Wiki
- Functional Programming Principles in Scala – Coursera online course
- Comparison of programming paradigms
Clean code and Refactoring
- Code Refactoring – Wikipedia
- Online catalog of refactorings
- What Is Refactoring
- Code smell – Wikipedia
- Code smell
- Code Smells – Coding Horror
- Summary of ‘Clean code’ by Robert C. Martin
Computer Networks
- Computer Network
- The Fundamentals of Networking
- How does the Internet work?
- What happens when you type in a URL in browser?
Software Engineering / Agile
- Software Engineering – Wikipedia
- Software development process
- Waterfall model
- Agile – The New Methodology
- Agile Software Guide
- Agile software development
- What is Agile?
- Manifesto for Agile Software Development
- Principles behind the Agile Manifesto
Agile vs Waterfall
- Agile Vs. Waterfall: Evaluating The Pros And Cons
- Agile vs. Waterfall
- Waterfall vs. Agile: Which is the Right Development Methodology for Your Project?
- Agile vs. Waterfall vs. Kanban vs. Scrum: What’s the Difference?
Agile Practices
- 35 Agile Development Best Practices
- Agile Best Practices Every Agile Team Should Have in Place
- Agile Best Practices for More Effective Teams
Test Driven Development (TDD)
- Test driven development – Wikipedia
- Test driven development – Martin Fowler
- The Art of Agile Development: Test-Driven Development
- Let’s Play: Test-Driven Development
Extreme Programming (XP)
- Extreme programming – Wikipedia
- The Rules of Extreme Programming
- What is Extreme Programming?
- Agile Modeling and eXtreme Programming (XP)
- Extreme Programming
Pair Programming
- Pair Programming – Wikipedia
- On Pair Programming
- Pair Programming
- How to Pair Program
- Pair Programming Benefits – C2 Wiki
Useful blogs to follow
Books
- Refactoring – Improving the Design of Existing Code
- Clean Code: A Handbook of Agile Software Craftsmanship
- Clean Architecture: A Craftsman’s Guide to Software Structure and Design
- Growing Object-Oriented Software Guided by Tests
- Structure and Interpretation of Computer Programs
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- Test Driven Development: By Example
- Extreme Programming Explained: Embrace Change – Book by Kent Beck