Skip to content

The String, Issue 4 - When Is It Time To Learn A Framework?

Learning a software framework is a balance between patience, practice and utility.

Jonas Achouri Sihlén
Jonas Achouri Sihlén
4 min read
The String, Issue 4 - When Is It Time To Learn A Framework?
Photo by Lautaro Andreani / Unsplash

This issue was originally published through The String, on September 16.

I will not claim to have a single answer to this question because we all have subjective experiences and learning paths we need to consider. So consider these doors of entries as examples of when it could be a good time to start to learn a framework.

Fundamentals First

As beginners we are encouraged to start learning the basics of programming.
Learning the fundamentals so that we can build onto our knowledge base, piece by piece.

We learn how to use the syntax, how to construct an effective function or how and which loop to use.

We have learned to use a first principles approach in our coding journeys. A sustainable approach to build timeless knowledge. We learn the important foundations we need for future growth, so that we can continue to put additional learnings onto our branches of knowledge.

Personally I live by that learning strategy as it is setting up for longterm learning.

But as time flies we get interested to speed up the process a bit. Maybe we are curious to take some short-cuts along the way?
For example, there is that idea we want to launch and we feel stuck or limited by the knowledge and skills we currently have and feel we need an extra push.

Mastering Arrays

I had an interesting talk over a lunch with a developer friend, Emma Dawson, since I was curious to know when to start learning a framework.

We concluded an interesting break-point. More specifically the time when we have learned how to use and manipulate arrays effectively.

It took a while for me to understand why this could be a good breakpoint, but after fiddling with both plain Java and a bit of JavaScript I realized that once you are comfortable in arranging, structuring and manipulating larger chunks of data items while storing them in a single variable that proves that you have reached a level of knowledge that you are more in control of your application.

In addition to this I have learned that there could be other door-openers out there that we can take advantage of to learn a new framework.

Other Breakpoints To Be Aware Of

Without over-thinking it I was asking around on social media what other experienced developers thought.

As I got a lot of response and feedback I learned there are several opinions about it. From "you need to set the basics first" to "it is never too early" - ambassadors.

I resonate with both of them and for many of you this question is maybe a trivial one.

But for the rest of us who really want to learn quickly

As A Motivational Push

I could see a red thread from most of my responses that it is basically never too early to learn a framework.

A strong motivator for a developer is to really be able to complete a project or feature. That sense of completion and feeling you have created something from scratch is powerful.

As an example from my own learning journey. I started to learn Java a couple of months back and I can honestly say that I have bumped into the wall several times and felt like quitting.
But after I started to explore Spring and how to build a REST API effectively I realized the true power of the framework. I got practical insights that were hard to grasp compared to when I was deep down practicing syntaxes and 'do-while' loops.

It gives you a momentum forward.

A framework is great to push you forward on your learning journey.
Imagine you are stuck in endless learning loops and you feel like your progress have stagnated.

Maybe the first thing you do is probably not to jump into a framework when you are stuck learning to code.

But don't underestimate the power of getting a push from a powerful framework.

When You Just Need To Get The Work Done

Using a framework to build a business application is common practice nowadays and it is pretty ineffective to craft a compelling user interface or enhance the accessibility of your business application using only plain CSS, compared to Angular or React.

Another example. Take a highly skilled "CSS magician" who can do a lot of cool animations and tweaks on your application using plain CSS.

Let's say you want to improve the accessibility of your application used by thousands of users and you really want to get those changes out there.

Your frontend is built with Angular and to be able to get those changes merged, you need to adapt your frontend repository with the latest CSS additions.

So there is a wall to get over here, if you are not familiar with Angular as a framework. You create a dependency that your CSS code, which is really needed, cannot be used effectively without being included in the library and packages derived from Angular.

Instead of throwing lots of plain CSS code "over the wall" and hoping for the best, knowing enough Angular could really shorten that development cycle and you can complete your work quickly and get that valuable feedback from customers going.

There Are Always Gaps To Fill In

Finally, I would like to bring forward the learning aspect of it all.

Since frameworks can give you that extra push you will most probably be left out with some pockets to fill.

Those knowledge pockets are easier too fill now when you have got a sense of what you are able to build using your preferred framework. Whether it is a frontend, backend or Styling framework there will always be knowledge gaps to fill.

I like to think about the frameworks as the tools that do the heavy-lifting for you. Enabling you to fill in your learning gaps along the way.

There will always be "vanilla code" to craft despite which framework you pick.

The main lesson here is that it is never too early to start learning a framework.

But it makes sense to have enough knowledge to get started.

I mean, I would never jump into a Lamborghini and drive it without having an introduction first...

The StringLearning