There are many measures to track your growth as a developer, and the logic of these measures changes according with the sub-field of software development you're currently looking at. You can be a full-stack developer, a mobile developer, frontend developer, hardware developer, etc. and there are specific skills required for each of these tracks. But, I think that exists a subset of skills that is common for every track of "being a developer". I'll point them out here and suggest a way of quantify each one: 1. Programming fundamentals (logic, data structures and algorithms) As a developer, you have started to learn and practice these skills since the beginning and probably will continue to take a look at these issues until the end of your life or career, due to the fact that these topics covers so many levels of complexity and applicability. There are some great sites that track your level on these topics, here are some: HackerRank - this site has programming questions, contests and is a showcase of software engineers used by many hiring processes. CodeForces - site of programming contests CodeChef site of programming questions and contests. These sites have questions of all levels of difficulty and as you solve them, your profile level increases. This can be used as a metric to measure how good you're on this topics. When someone says that it is "red" on codeforces, you can deduce that you're talking with a high experienced competitive programmer who masters most of programming fundamentals concepts and can solve problems of high levels of difficulty. 2. Programming Paradigms Knowing multiple programming paradigms helps you to think better when face a problem, since you'll have multiple ways to attack it. The most used programming paradigms are the procedural, object-oriented, functional and logic. Try to track your progress in at least one programming language per paradigm, you can do it by solving questions of sites mentioned in topic 1 with each of these programming languages. 4. Concurrency Soon or later a developer will need to deal with threads and multiple processes, so it's good to have this skill in your sleeve. Implement some of Embarrassingly Parallel problems to keep track of how good you're in this issue. These problems are known to be easily separable in parallel tasks. 5. Design Patterns This topic is more related with object-oriented programming, but it covers some design questions that all developers should care about. The most popular patters are described in book Design Patterns: Elements of Reusable Object-Oriented Software which is authored by the famous Gang of Four. Try to learn all solutions described in this book and apply them in your projects. 6. Version Control Almost all projects that you'll participate in your career will be developed in teams and the common practice is use a version control system such as Git or SVN. Mastering one version control tool will increase your growth as a developer. One good way to measure how good you're with version control is collaborating with open source projects, since many of these projects are usually maintained by a huge community and the contributors must have a good understand of the used version control logic and tools to publish their contributions. 7. Distributed Systems (network, protocols, etc.) It's 2018 and systems are distributed, this is the reality. Developers must know network concepts. I recommend this book: Computer Networking: A Top-Down Approach as a guide to this topic. Try to implement all programming questions of this book and you'll get a average level in distributed systems, which is usually required to be a developer. 8. Tests Every developer must know how to test their systems and other systems too. Master at least these three techniques of software tests: unit tests, functional tests and integration tests. You'll use it, no doubt about. 9. Deployment DevOps capabilities are increasingly required in developers. Concepts such as containerization and orchestration put highlights on developers which know them. Good related tools to learn: Docker and Kubernetes 10. Methodologies Every team programming should follow a development methodology. Agile methodologies such as Scrum and Extreme Programming are widely used these days. External Guides Moreover, there are great websites and repositories to track your developer level, with tasks to accomplish and list of skills to fulfill. Here are some of them: Google TechDive Guide Code Interview Academy FreeCodeCamp