0. How to do a good POC
Proof of Concept (POC) is a important tool, it’s like a lab where you should be doing experiments. POC allow you to learn something about a programing language, approach, school of tought, library or even to validate some crazy idea/hack. POC can be shallow but is important to have Deep POCs. Doing POCs must be a mindset, something you do everyday.
1. How to go Deep in a POC?
- Debug the code (write down classes names, make diagrams) do it multiple times
- Write down code that test, simulate or exaserbate the problem or target of your poc
- Do Research, see what other people do, are there any patterns? or idiomatic ways of doing this?
- Read the documentation, read book, avoid tutotials, read the source code
- Do experiments, test the API in several different conditions and scenarios of sucess and error see what happens
- Reading the source code of a framework or library is a must, is how you can understand how it works and how to use it
2. What NOT todo in POC?
- Be shallow all the time
- Just call methods
- Do not challenge yourself, if you know is too easy is not a good POC
3. Examples of Good Deep POCs
- Servers Benchmark
- If Alternatives
- Java 21 Spring Boot 3 Async
- Elegant Objects
- Elegant Objects Vol 2
- Scala 3.5 Patterns
4. Keep in mind
- The more you pratice, the better you get.
- POCs comparing libraries, approaches, languages, patterns help a lot to learn and master tecnhiques.
- Make sure it gets harder, no matter if you need to do 10-100x to understand. Repetition is key.
- You are only fooling yourself if you just go shallow all the time.
- Doing Shallow pocs is not neccesary bad or wrong, but you should be doing Deep POCs as well.
- Challenge yourself, do not be afraid to fail, is part of the learning process.
- Consider doing crazy things like: a parser, a compiler, a framework, a library, maybe even a new language.
- Remember learning with code is a long term game and a mindset, so keep doing it everyday.
5. To improve
- Share the code with others ask feedback
- look for different and better ways to do the same thing
- Be curious, ask questions, do not be afraid to ask for help
- Go read the source code of big projects, is a great way to learn like: Java, Spring, Netty, Linux, React, Nodejs, etc.
- Document your POC, write text exmplaning what you did a why and why is impotant.
- Good POCs take hours, days and weeks and thats fine, the more time you invest the better you get.
- Make doing POCs a habit, do it everyday, is like going to the gym, you need to do it everyday to get better.