Ready To Learn A Framework? Hold Your Horses!
Wow, has it been awhile! So much has happened since my last post which was just a simple Misc post. I have been a lot busier growing my business and doing applications development for my own company and other companies abroad. In that sense, I have had to really prop up my coding skills. With that being said, I have had to learn frameworks for a couple of programming languages I’ve learned. Short and sweet post, but this is some good insight if you are a developer looking to learn a framework and kind of how the experiences you have with working on a framework.
Frameworks? What Are Those?
There are many frameworks out there alongside the many programming languages you learn. In programming, a software framework is an abstraction in that software, providing generic functionality, can be changed by additional user-written code. It helps you develop applications or even websites in a universal, reusable software environments as part of a larger platform to facilitate the programming of software applications. Frameworks may include support such as compilers, code libs, toolsets or APIDs that bring together all the components in a project or system.
Get that? System. Reuse, universal. Every words a dev on given timeframes or honestly a project manager’s dream of keeping things organized. The overall flow of control is not dictated by the caller, but by the framework of use. There are many programmatic frameworks based on many languages.
Here Are Some Examples Of What I Am Talking About:
JavaScript – Angular, React, Vue, Next.js and so many more
PHP – Laravel
C# – .NET, ASP.NET, .NET Core
Java – Vaadin, Apache Struts, Grails, Play
Kotlin – Spring
Python – Django, Flask, web2py, CherryPy
What Should You Know Before Learning A Framework
First and foremost, you should absolutely consider learning the programming language before learning a framework about the language. It’s like learning an advanced principle before actually learning the basic fundamentals of the principle itself. Or flying Link to Hyrule Castle before doing the important things needing to be done in in The Legend Of Zelda: Breath of the Wild. Pick your poison, but for real, it is very important you know about core fundamentals.
For example, if you are about ready to start learning Angular, React, Vue or Next.js frameworks for the JavaScript language, I would make sure you know a thing or two. Like asynchronous programming (Callbacks,Promises or Async/Await) introduced in the latest versions of JavaScript. Or perhaps core fundamentals like variables, data types, conditional structures, loops, OOP, Manipulating the DOM and basically up to being a novice or advanced JavaScript developer first. You would have no idea on how Angular (By Google, an SPA Framework per say), works with the DOM without knowing what the DOM is. Or writing http requests or using Angular, or RxJS Observables without knowing how asynchronous programming works. Just a few to be short. Oh, and lets not forget about npm (Node Package Manager), or Yarn, just to name a couple, you probably may have a hard time working with these frameworks because how do you install for developing? Why not just learn everything before this concept of programming? Because it is simply advanced. Rather it is MVC, SPA focused or Reactive, does not matter, must have your core fundamentals before hand.
I learned .NET, Angular, React, Laravel and a little bit of Django. But I needed to know a lot more about C#, JavaScript or PHP before learning the respective frameworks. If you do not know the core principles, why would you go for something that looks advanced? I wouldn’t think so, your brain probably would explode. I also think you should know a thing or two about version control and some sort of understanding of devops. If you are learning a new Framework, make sure you know what you are doing first! If you want to learn programming online, the internet is an amazing place to learn. Just typeaway a course on YouTube or Udemy, or join a subscription based model like Team Treehouse or Academind or Pluralsight or go to actual docs on their respective website that sometimes has a playground for you to write code (Kotlin or C#).
Have fun and cheers to the journey of code!