3 ms·
I work on progressively larger and larger apps. This teaches me more and more about coding in the large, in a very practical sense. Every time I learn about som
by johnfn 10y ago
I work on progressively larger and larger apps. This teaches me more and more about coding in the large, in a very practical sense. Every time I learn about something new, my learning is explicitly motivated by the problems that I ran into while implementing the large app.
I started by making a reasonably conplex TODO app, which took a few months. This taught me about the importance of declarative (popularized by React) style programming, and MVC separation.
Then I moved on to building a Vim extension for visual studio code. This took about 6 months, and taught me a bunch about programming larger apps and keeping them bug free. I also learned a lot about open source maintenance. I learned why Redux-style architectures are important.
Then I moved on to working on a fully featured pixel editor. This has been my toughest app of all. I've been working on it for about 4 months full time at this point, and I've learned so much about canvas perf, js perf, the importance of end to end testing, ... I could go on for a very long time. :)
And this is all a warmup for an even larger app I haven't started on...
This approach seems to have worked well for me, and I'd recommend a similar style approach of working your way up from smaller programs to larger apps. You learn lessons from smaller apps that will save you a lot of time when coding larger apps.
- molloy 10y agoDo you mind sharing your vim extension? Would love to check that out. My coworker is interested in learning vim and he uses VS Code, so it sounds like a good introduction.
- crystalPalace 10y agohttps://github.com/VSCodeVim/Vim https://github.com/VSCodeVim/Vim
- andai 10y agoIf you don't mind sharing, what's the big app you're warming up for? :)
- johnfn 10y agoIt's going to be a game. First I made the IDE... then the art editor... :)