I've been slacking off on personal projects for a while now and it's not because
I want to throw these projects out of the window but because I've been learning
Go Lang for the past few weeks and I'm not able to dedicate time to actual
coding just yet.
Umm, I'm trying to say that I've been reading books and blogs about Go for the
past few weeks and that is pulling away time from me to spend on building new
projects and/or optimise and improve TillWhen.
While I myself say that doing actual projects help you learn faster it doesn't
apply when you directly want to build a huge project in a new language.
It is a necessary step to learn the language inside out since just treating it
like an equivalent of another language I know already, will limit us from
actually understanding the actual use case of the new language and also blocks
our paths when reaching out for help.
If you don't know what the language calls a particular type or a function and
you search on google based on your previous language experience, you are going
to get stuck.
while now and every time I hit a road block in Rust and Go, I immediately jump
back to Node to complete the project or tool and this has been a pattern because
I lack the theoretical knowledge of the language and have been treating it like
a replacement for Node , which it's not and this thinking has been hindering my
A few weeks back I decided to build a project management portal for solo
developers which I didn't continue to build because it was going to have it's
own Git server and stuff but then the git implementation and the total size of
the binary crossed 70MB and I wouldn't want someone to self host something that
takes up 70MB with just 2% of the features and this is because it is hard to get
rid of node_modules completely when bundling to a binary and then I remembered
about pgweb which is just 8MB and is
bundled with a full fledged Postgres web UI.
I liked that and since the Go portable binaries are really well optimised,
scaling to desktop apps using an RPC server in Golang would make building native
apps a little more easier but, the history of me jumping away from the language
every time theres even a minute inconvenience was going to get in the way.
I started researching on how various people moved from language to language and
things they had learned about this move. The things they wish they considered,
the things that blocked them or took them time to understand, everything.
I got the answer that I'll need more theoretical programming knowledge specific
to this language to be able to avoid most of the blocks and the only ones
remaining would depend on the newer packages that I'd add to the codebase, which
makes sense and hence, I started reading.
I'm almost done with the book so I'll be working on small tools and maybe even
rebuilding tools just to get better at the language and then get to the project
management app again.
There's never one.