DEV Community

loading...

What do you do to be up-to-date on new Frameworks and Technologies?

adancarrasco profile image Adán Carrasco ・2 min read

Hi, this is my first post on Dev.to and I'm joining with a topic that some of us may have faced at some point in our careers as Developers...

How do you keep yourself learning new technologies when your current work doesn't implement/use them?

Turns out that I've been working for three+ years in a company using Object Oriented JavaScript, good Design Patterns, Functional Testing, CI, etc. But, we don't use the so popular and new Frameworks as React/Redux, VueJS, AngularJS due to the nature of the project (policies, licenses, the instability of FE Frameworks :-), etc).

I try to learn in my free time, but sometimes the free time isn't enough to be up-to-date on those new technologies, (if you've picked the wrong one your Resume won't make it count, last time I chose Ionic). Now, I'm thinking on switch jobs to one that uses new and fresh Frameworks however, it's hard to get interviews because I don't have "work experience" on those Frameworks. Although, I have been following the best practices, patterns, etc, I think recruiters doesn't give me the opportunity for an interview because my Resume doesn't include implicitly "work experience" on those.

I really love and enjoy programming and learning new technologies but sometimes it's good to go out and breath fresh air as well.

Just wondering if you had been in this situation? What do you guys do to prevent this from happening? What are your thoughts on staying for that long on those kind of jobs that doesn't always use the latest technologies?

Thanks,
Adán

Discussion

pic
Editor guide
Collapse
kspeakman profile image
Kasey Speakman

So the answer for me was to research frameworks in my spare time. Then if they were promising, look for opportunities to introduce them into work. If I am not allowed to decide that, I convince or demo it for people who are. Still no dice? See if the company has other projects where you can explore those interests. Still no? You make a decision on what is more important to you. Stay if there is compelling reason, or look for another job.

However, I would not recommend moving on just to learn new frameworks. I have learned a number of them over the years, and they will all disappoint you. They are rehashes of the same ideas (usually components), except you have to learn to code against the framework's specific opinion. Then when you change to a different framework you have to learn a new opinion with different gotchas, and the same maintenance burden. (Granted, some frameworks are significantly worse than others, but all of them are fundamentally bad at maintenance.) The more important thing to focus on is Separation of Concerns in whatever framework you use. And conforming your mindset to solving the business problem over the technical one is most important of all. (Sometimes we make the solution more complex than is needed by focusing on the technical, when the solution to the business problem would have been much simpler.)

I am a large fan of the MVU pattern and functional languages like Elm for front-end. It is harder to get started and requires a shift in thinking. But maintenance and refactoring is fairly low-risk. Whereas component-based is more familiar and easy to get started but (in my experience) builds up a lot of accidental complexity over time. Plus with MVU, the application is almost entirely my own functions and data structures and the patterns I setup with them. It is a refreshing change from having to (memorize and) conform to whatever abstractions a framework decides are important. Under MVU, I find that bad design can be felt more directly. If the solution is painfully complicated, then it probably is not a good design. And since it is easy to refactor, early mistakes can be corrected later. Whereas frameworks try to identify pain and apply a numbing agent so you can ignore it, potentially masking bad design. The downside to Elm -- aside from the initial mental shift of functional programming -- is fighting with the compiler and "type tetris", but these trade-offs seem worthwhile for the benefits.

Collapse
adancarrasco profile image
Adán Carrasco Author

First of all, thanks a lot for your reply Kasey.

I'm not thinking of switching jobs because of the new Frameworks learning :). The project I'm working in my current job is great, it has taught me a lot (it's OOP project BTW haha). I'm more interested in switching jobs because of two main reasons:

Number one, an opportunity to lead and learn from the people who have been working on different frameworks, I have been working for more than 3 years with the same team in the same project, and sometimes is good to hear different opinions and different ways of thinking to improve. Unfortunately looking for another project inside the company is not an option due to all the company's projects (99% for FE) are under that internal Framework. Doing a demo using a different Framework to stakeholders is not an option, the project might have +6 years of development with 60+ people involved, it's huge and highly coupled :( not an option to introduce a section with a new Framework.

Number two, I'm interested on living in another country and learn from other culture, not an option to ask for a transfer in my current job.

I agree with you on learning new frameworks: "learn different opinion, better than others in some things, etc." I have been following FE Frameworks since 5 years now, and yikes there are lots of them.

A couple of weeks ago I first watched a conference about Elm and turns out that it's very interesting, and as you mentioned looks really easy to refactor. I'm going to give it a try and give it 1 hour a week to get familiar with it. :)

Another thing that I'm going to try is to have more participation on Open Source Projects. Hopefully this is considered as work experience and I will be a step forward to get there.

Thanks!

Collapse
papaponmx profile image
Jaime Rios

I love to use Twitter, Medium and Youtube. I also like to buy courses on Udemy about topics I'm interested in.

This week I'm learning how to integrate Firebase, Googe Auth and Redux. Last week I was studying GraphQL.