Swift is actually quite intuitive and has a lot in common with Zig and Golang syntactically. Therefore been a lot easier to pick up than I imagined. Although I'm not a huge fan of the error handling, at least the bits I've seen so far. I'm doing what I normally do, go through the intro for the language. Usually a good starting point and the swift docs have been no exception so far. I'm not learning Swift for the sake of it. I'm learning because there is something I'd like to build for myself. That does mean I'm simultaneously learning two languages at the same time. Admittedly I'm much further along with Zig and I'm building my fifth big project with it. Comparatively Swift so far has been super easy. I have been able to intuitively do what I do in Go and so far it has been very similar. I do miss errors as values though. In only a couple of days I've gotten very comfortable with it.
It's even got me excited about working on the UI. I guess thanks to SwiftUI. It was born out of my frustration with React native and I'm glad for having gone through it. I've been building few small things on the UI and I have to say so far I'm liking the API. It's quite different from the web side of things but at the same time, it's just programming.
Leaving the box
Sometime this year I decided to step outside of the web sandbox (which is awesome and something I still love building in) to other areas of programming. It's been quite refreshing, a couple of months ago I built a few embedded projects, even wrote some drivers just by reading the datasheet. Currently I'm building my first Compiler and Virtual machine, guided by the awesome Compiler book. The only change is that I'm using Zig instead of Go. It's exponentially improved my understanding of Zig and how to make things with it. It's a lot of fun. Now I've decided to write some stuff on mobile, just because I need something built for me. I'm enjoying this freedom quite a bit. To be able to program on a computer of any shape or size. It has been one of my dreams, to be able to program on anything. So far it's going in the right direction. I have an awesome idea on what to build after the Compiler. It's another one of those things I've wanted to do, but never thought I could.
It turns out, the things I thought I would never be able to build, are not so. I only thought so as an excuse to keep myself from wandering into the unknown and face truth about my incompetence revealed to me. Some odd reason, I'm finding myself on the other side of the fence, wanting to go after all the things I never thought to be able to do. The frustrations, disappointments and fear are all very real and all very present. The beauty is, deciding to face them is teaching me to deal with them. To understand them and in turn understand myself a little bit better.
Mindfulness is key
It really is. A friend of mine recently pointed out that all forms of self help is based on the core principle of mindfulness. Paying attention to your feelings both good and bad, deciding to stay in the present along with a little bit of courage and curiosity are the only long term solution to the demons you'll face along the pursuit of a worthwhile goal. It's made me grateful for experiences, especially the ones I perceived to be a disaster. They have taught me a lot about myself. The bigger the disaster, bigger the lesson. It's taught me to go after everything I ever dreamed of, and more. Disappointment at some level is unavoidable, so is failure. So might as well encounter them on the pursuit of things that you actually want. The frustrations are the same, really. Whether you are pursuing an ambitious to you goal or one that seem within your reach, you will be tormented by the same demons, more or less. The only difference is that at the end of one of them, you'll be left wondering, "What if I went after the fucking lot"? Not a question I want to ask of myself.