In the past year, we have been using RxSwift programming in our project extensively. And if I have to be honest, I feel very inadequate when it comes to RxSwift. I read these codes all the time, but couldn't "code" it at all.
Personally, I am very hesitant in learning RxSwift because by the time it became quite popular, Apple is about to release Combine as well. So in my mind, I didn't want to learn RxSwift if I'm gonna have to learn Combine later. So I have been procrastinating, and I was being stubborn in not wanting to learn RxSwift.
Although, I am not totally ignorant of how RxSwift looks, as I said, I see it in our codes all the time, I can understand it, but couldn't write it. There were multiple times I'd try to code RxSwift in our project but ended up getting very frustrated because I couldn't make it work the way I expected it to work.
We have been hiring more and more RxSwift Engineers and I don't want to be left out. I figured that it's about time I really study RxSwift. I have to level up my skills and knowledge, too.
So, I talked (chatted) with my teammate (who is also our Engineering Lead) and told him I'm gonna take a week off from work because I want to study RxSwift. I couldn't do it during normal working hours because I have other stuff to work on (work-related, of course), and when night time comes, I will have to be with my child and get him ready to sleep. I can read articles during nighttime, but reading and practicing how to code is different.
The good-est thing that happened after is that our Engineering Lead is very supportive and even asked me if 1 week is enough. He talked to the other PMs and someone from HR to give me 2 weeks off, and even bought me a book from Raywenderlich.com. Of course, I'm gonna have to show / demo something by the end of the 2 weeks training, but that's all good to me. At least, I can test what I've learned about RxSwift.
So here I am today, at the start of the 2-weeks training. I have actually read up until chapter 8 of the book, but I was not able to practice it at all. I only read it to prepare myself for these 2 weeks and to get myself more familiar with the jargons. But really, reading isn't enough. In my mind, I have my own expectations of how the code (in the book) will work, but when I tried coding something from the hundreds of questions I have, all my expectations happened to be wrong! So now, I know! I know why it just doesn't work when I tried to code RxSwift before.
I'll update this post to let you guys know if I became confident coding RxSwift after 2 weeks!
I feel much confident now than 2 weeks ago. I did a 30-min demo in front of my team, and we discussed RxSwift topics, asked questions - it was totally fun. It seems that we discovered something new or interesting during the demo session. Of course, there are Advanced RxSwift stuff that I haven't really covered yet, and I will continue to learn during my free time, but at least, right now, I'm confident I can write RxSwift codes.
Let's allow ourselves to be a beginner. Noone starts out as an expert.