
@ Parman - Activate OP_GFY now!!
2025-05-11 18:29:57
My big tip about coding for people who are thinking about learning (from personal experience) ...
Don't learn to code and then build something.
Instead, build something, and keep improving the code, and soon enough, you'll have to learned to code.
I knew a little Bash. And I built Parmanode, starting with a very basic script that downloads Bitcoin. I kept improving Parmanode, and finding ways to do things better, even accidentally reinventing standard programming practices (like making and reading config files, running tests, debugging, file flags, anticipating and prevention dumb things users might do etc).
When I learned a new skill, like sed or regex or heredocs, creativity pushed me to find ways to use those things to make Parmanode better and more efficient... accidentally practicing the language. Now I'm quite comfortable reading Bash code.
I took a look at the Btcpay server install script (in bash)... Complete gobbledygook to me a few years ago (even unable to follow install instructions and not comprehending what pre-install environment variables are and what they do), and I followed along, sometimes thinking, "hey, I do that too", or "that's an unnecessarily complicated way to do something simple", and best of all, "damn that's a cool trick, I'll have to use that."
I did end up sending a pull request for a little fix as well - it was possible because I accidentally became competent with git and GitHub while building what I wanted to build.
Now the opposite of this, something I had done in the past, is to study a computer language with no desire to particularly build anything.
I've read beginner books on C++ and some python, watched heaps of videos, but never built anything, and never really felt I "knew" the language well. I kept thinking, "I need to revise what I've learned first, make sure I know all the syntax varieties" etc. It's interesting at the start but becomes boring fast.
When you're building something, you get lost in the project, constantly learning, improving things, researching, and troubleshooting. You learn without realising.
Reading a book though, you're focussed on getting through it, and it's not the way, and not enjoyable.
So dream of something to build, and go and build it in the best language for the job, not the language you want to learn. You'll learn more than one language anyway. They get easier.
For example, my confort with python drastically improved after I decided to build my own bitcoin wallet, and I chipped away at reading BIPs and putting it into code. Eventually I cracked a passphrase for someone using the code I created. Fun.
If you're thinking, "but what if there isn't anything I want to build?". Well then, there's no need for you to learn to code is there?
Anyway, hope this helps you to make the first step.