DEV Community

Cover image for RxJS learning cliff and developers mental health
Oleksandr
Oleksandr

Posted on

RxJS learning cliff and developers mental health

When I decided to change my carrier path and move from Senior Support Engineer role to Junior developer — imperative programming and OOP was something that I know and understand quite well. And at the beginning, everything was quite good until I get to the project that heavily used RxJS — something totally new for me. And while I was climbing that cliff and later on when I already decided to create even a video course about that library — I found out that learning hard can cause such effect that you may not feel good mentally. Someone calls it mental issues.

And here are some preventing things that I found useful while I was learning RxJS (or just learning something new a lot).

1. Start with a limited number of topics

If you start learning something new you can be overwhelmed with a variety of thing you have to read about. In case of RxJS there a re many functions and operators you can learn — so sometimes you may think ‘I can never learn all this stuff!’ and feel upset about it.

But the rule of thumb here is — limit the scope to some of core topics (up to 5–7) and start learning only them.

In RxJS case it can be:

  • What are Observables
  • map, filter, distinctUntilChanges operators
  • combineLatest and withLatestFrom functions Thas it.

2. Repeat and continue learning by small parts

Don’t think you learn everything by swallowing some video-course in one sitting. Although I learned a lot with this approach — RxJS was not an easy fish to catch. So just keep going and learn by small steps.

3. One coffee cup a day

Well, possibly it is very subjective advice but more your drink coffee to swing your mental activity — the more you feel exhausted at the end of day. And at some point, I found out that it's not worth it and can cause emotional instability. Now I drink 1 coffee cup a day and feel quite good. If I am tired — I need rest but not a new cup of coffee.
charlize-birdsinger-224179-unsplash.jpg

4. Change the context

Usually what helps to me if I am totally in coding and cannot stop thinking of it — I have to do something else: talking with someone, jogging, playing with children, social volunteering activity (you switch to other people issues and it frees your mind from being stuck in coding), walking on the street. What helps the best is jogging and some handwork (also I have housework todo list — something not very critical things that you can do if you have time — repairing, cleaning, etc..)

Running at least 3kms totally removes any mind-stuck states and I feel energy to continue coding.

alexander-redl-185764-unsplash.jpg

5. Don’t change the context … too often

It may seem controversial but it is not :-)
Except being a developer I also practice mentorship on codementor.io and reading and writing articles of Angular and RxJS. So there was a day that you have work to do, two different mentorship debugging sessions and that means you have to switch a lot. After third such switch, my mind stuck with the headache. So now I plan not more than 2 such big activities a day. If I have work to do — not more than 1 additional mentorship session.

Another thing that can harm your internal stability— trying to read all the messengers on your smartphone. I deleted some of them and often turn on a silence mode — and the whole world’s off its axis.

6. Driving in silence

I have about 7–8h commuting per week now and being able to drive in silence is part of my mental health self-therapy. Just drive — nothing else matters.

Actually sitting at a forest with no human about and just staring in front of me in total silence helps even without driving :-))

7. Allow yourself not to know something

It was a psychological trap I stepped into: a panic that tech is evolving so fast that I have to learn more or I lost my qualification!

It caused some level of permanent anxiety until I found a good article od Dan Abramov: “Things I Don’t Know as of 2018”.

Spend a week with leaning nothing. See? Earth is still rotating, you still have a job. Own tech and don’t let tech own you.

idk-1934218_1920.jpg

8. Community is good, but don’t overestimate its meaning

One more thing I met — I found that Twitter is full of interesting people posting many interesting things about Front-end. I spend a lot of time to read all of them — but then realized that reading it starts swallowing me totally. Use community wisely — you have to work, you have to learn and if you meet problem — ask a community. Don’t spend all your time trying to read everything. Not reading makes you a pro — coding makes you a pro.

9. Be thankful

Life is good even without coding :-) Coding is an intermediary goal but not a sense of life.

Have other methods to keep your mental health in a good mental state? Share in comments!

Top comments (8)

Collapse
 
anduser96 profile image
Andrei Gatej

I started learning Angular just a few days ago and yesterday I first delved into rxjs. It felt rough at the beginning, but once I grasped the concepts... well, it was great.

My mental health’s state highly depends on my personal achievements. That means progressing professionally, but also as a person. I know it might sound ambiguous.
I find it hard to explain now, but I feel it all comes naturally. I know when it’s time to take a little break and I know when I should go on.

Since I’ve found my passion and realized how awesome this world of programming is, everything went well. When I say perfect, I’d like to include bad and good stuff. I don’t know, I’m mentally happy know. Everything goes well and I can’t be thankful enough for that.

So, my way of keeping mental health in a good state is just to trust your gut and this entails, of course, to be a good person.

Apologies if I digressed a little bit. Thanks for the article!

Collapse
 
aturingmachine profile image
Vince

The biggest thing about learning RxJs for me was that the solution isn't always to get the value out of the Observable pipe to work with it. I was always trying to use Observables as little as possible and that made for some bad code, and hard to track down bugs.

Once I fully embraced the world of RxJs and learned the operators I fell in love with it. I am contemplating writing an article about that journey in the future.

Collapse
 
anduser96 profile image
Andrei Gatej

I just discovered that you can do state management with only services and rxjs, which I think it’s great.

I really like that concepts that rxjs brings out. Investing time in learning this library is certainly worth it.

Thanks for sharing! Can’t wait for the article!

Collapse
 
oleksandr profile image
Oleksandr

Waiting for the article!

Collapse
 
oleksandr profile image
Oleksandr • Edited

Thanks for sharing your experience!

Collapse
 
joaomarcusc profile image
João • Edited

Item 7 is SO important! One thing I learned after all these years is that it's impossible to be an expert at everything, and that's okay. You need to focus on specific technologies you use on a daily basis while keeping an eye on the general landscape just to have a bird's eye view of the current technologies. Most of the times, you just need to know the tools exist and how to start using them. You will inevitably face a challenge and remember you saw something about a library, framework, app, etc that does most of the job for you. It may save you and your co-workers several days or even weeks of work.

Collapse
 
bvmcode profile image
bvmcode

I am learning rxjs through a udemy course and its pretty good. Things are starting to click. I really wanted to learn rxjs because of its integration in things like redux-observables but then I found its really fun to use observables for many other things.

For reference the course is Master RxJs 6 Without Breaking a Sweat

Collapse
 
oleksandr profile image
Oleksandr • Edited

When I started to learn RxJS4 and then RxJS5 at 2016 - there was no courses and very little articles around. Now I have my own Hands-On RxJS for Web Development udemy course :-D