First of: I am a software developer since many years, in a small company, without very complex applications, sadly no mentors or alike (more developers but we are all in the same situation).
So, every time I'm trying to develop a non-simple application I'm finding I have no idea on how to make a thoughtful (or even working) architecture for it. I have several hobby projects stalled because I just don't manage to progress without making an unworkable mess.
I realize the question is somewhat open-ended, but what I am looking for might be something like walk-throughs/discussions in REAL semi-complex applications. Something that approches actually designing an application together with a mentor. Everything goes: books, talks, youtube-channels, podcasts, ...
For example, in a complex text-editor:
- how to read and pass input
- store and update buffers
- where should syntax highlighting happen and where should it be rendered, how is colors passed to renderer.
- How do one design a plugin architecture
- How would one design for multiple GUIs
I know how to do the small stuff like actually reading input.I am not looking for the usual design-patterns, refactoring pieces, language tutorials, etc.
What I have tried:
- Actually coding, but as I said, I just can't progress on my own.
- Kilo/Hecto editor tutorials, and other projects, I'm unable continue beyond finishing them.
- Reading code, I can't even reason about my own code, let alone others.
- Books, the usual recommended ones, refactoring, design patterns, pragmatic programmer, Domain driven design (can't finish that one), etc...
Books that have helped me: Modern software engineering, A philosophy of software design.The latter book talks about mentoring lead discussion groups about application coding, that is something I would probably be very much helped by.
Sorry for the long rant, hopefully one of you fine people will have some input.
Small developer discussion outside of company time (not related to company stuff) might help with team building and understanding the strengths/weakeness of those working with.
'Mastering EMACs'[1] would seem to cover the example complex text-editor.
Looking at & understanding open source projects may help both code & using other resources to understand the 'meta-data'/setup of a given project. aka cmake, git, X11 resource, unix OS, shell programming, etc
Quite a few open source programs/projects also have forums where questions can be asked/answer reguarding why/how things were done in a project. Also typically have additional resources/pointers to things program/project makes use of.
----
unix as an ide : https://news.ycombinator.com/item?id=30169843
using ed : https://news.ycombinator.com/item?id=34162312
editor articles : https://blog.sanctum.geek.nz/links/
pioritizing technical debt : https://www.youtube.com/watch?v=fl4aZ2KXBsQ