I re-learned to code by building a small web app: https://ako.beyondmachines.net/
I'm still a noob, but I did re-learn a lot:
1. You don't appreciate something until you try it - Talking about an MVP seems like slacking. You see that your app is not perfect - best you can do is meet agreed quality criteria. Talking about CyberSec is like sci-fi. First day in production you get exploited by elements you didn't even consider. Talking about full testing before go-live seems an overkill. You spend whole day deploying because something wasn't tested in dev/test.
2. Know where you want to go - Coding isn't the only challenge. You must understand what the product should do. Otherwise you around the concepts, never tying it all together into product.
3. Design for desired data - Build a product with understanding of what data it will store. You avoid a lot of pain of data leaks if you don't have such data.
4. Idea creep is real - As the app came to life i got into "this would be much better if". I got bogged down into refactor and more ideas. I wasn't getting more done, just built more frustration.
5. Maintain redundancy - Things fail. Don't rely on only one place to code, store, test, run. Combine the tooling to help in redundancy.
6. Open and transparent - One-person-show must get help. People will find more issues than you will. Invite scrutiny to build a better product.
7. Improve it - Use the idea creep and feedback. Come back and build a better iteration.
What did I build? A small web app with challenges for young engineers - things with real-life practical application in real companies. We should find ways to build and showcase experience as close to practical as possible. As of today - the product is living it's first 24 hours live.
Thanks for reading all this. I would appreciate a visit, test and feedback.
Bozidar Spirovski