Frameworks Vs Vanilla 🍦? What should you start with when learning a programming language?

Omar Trkzi
2 min readJul 5, 2022

--

Some beginners tend to learn frameworks, like Symfony/Laravel for PHP or VueJs/ReactJS for JavaScript, without getting to grasp the basics of the language. That might not look problematic at first, but can cause multiple issues later on.

The framework first, or the plain language first?

My story

This week, I tried to solve an issue on a Symfony 5 web application that I am working on. The problem was so complicated and specific that the framework was like: “It’s simply beyond my control”.

“It’s simply beyond my control” — the framework

I attempted to ask related questions on StackOverflow and in the Symfony Slack, but was unable to present my question in a simplified manner. I’d like to mention that I first started learning Symfony 4 months ago (April 2022), and I can confidently say that I now understand and have used most of its components. However, I didn’t know much about PHP (other than its syntax obviously) when I first started, nor did I understand the lifecycle of a request. NGL I thought I wouldn’t need any of it. And that exact idea caused me to “waste” some valuable time this week.

How I solved the issue

After spending some time testing different solutions, that failed of course, I finally admitted that I was missing certain basics, so I went a little down to the language level, PHP in my case.

I first re-learned some web fundamentals, like routing, sessions, cookies and specially the lifecycle of a request, which helped me tremendously. Then I read the docs of certain pure PHP functions.

After investing my time in learning these fundamentals, the solution seemed quite obvious. And foreach( $questions as $question ){ $question.isAnswered = true; }.

Learned lessons

Disappointments can always become great opportunities to grow and change, and this is what I learned from this experience:

  • Whenever you feel lost, go back to the docs.
  • Do one or two small projects covering most of the Vanilla language you plan to learn, before moving to a framework.
  • while( $this.isAlive() ){ keepLearning();}.

Conclusion

Though I used to think, that a framework must be the first thing to learn, then the language will come with time. I now firmly believe that grasping the basics and fundamentals of, not only the language, but also the domain in which it is applied (e.g., web, Android), is a must-have before stepping in the framework’s door.

Thanks for making it this far! If you enjoyed the article, make sure to give it some claps đź‘Ź, or share it with your audience, so that more people can learn from it.

--

--