I listened to a podcast that said you should learn a coding framework first not a language. Now this might seem weird and confusing to existing developers as we were brought up with the basic languages and then frameworks have become a trend, but that’s because we are old. New developers are coming into the industry and frameworks are the top dog thing to know and use. You can’t see a job without one these day, so is it better to learn the framework first or should you go back to basics first?
When you learn the language you are learning like a baby. You start from small works like ‘var’, ‘string’ and don’t forget the bloody semicolon. From this you then build on these like bricks on a house, slowly building the finished product of a complete application. Now this seems smart as you start from the beginning to the end and you understand everything about the language. It can help a lot when you come across a new problem, search for it, get the answer and now you can understand what they are on about. I think learning like this will build you up to be a great developer in that language as you are learning everything about it.
However because you are learning everything about it, you also learning the rubbish you don’t need. A lot of languages will teach you fundamental code, but somethings are just not good practice and not how the real world works. The tutorials will tell you how to code in a perfect world from an application built from scratch, which isn’t bad as that is how you should be coding. The problem is most companies have an existing infrastructure and procedure to work with, therefore perfect world doesn’t help. For example when you are doing CSS and you build this perfect world style sheet, then you open it up in IE… enough said really! Maybe learning the language would be better if they also showed you common issues and how to fix them instead of just showing you what it will and will not work on.
Before I said that learning a language first is like building a house from the ground up. Well learning a framework first is like building the roof for the house before the house is built. The idea is if you learn to build the roof perfectly, then as you do this you will also slowly be building the house bricks at the same time. As you learn a feature of a language to say convert a string to an integer, you will also be learning what a string, a integer, a variable and a function is at the same time.
The issue with this can come that you are only learning what you need for the framework, so when you come across an issue with the language, not only do you need to understand the issue, you may have to read up to learn what the code is that fixes the issue, causing more work. Also you are not learning what is going on behind that framework you are using, which could be a debate that do you need to know, but for example if you only use Jquery then to display an element you would only know…
Document.getElementByClass('class').display = 'block';
This also plays into the real world working because at the moment frameworks are the hot thing. Therefore only knowing the framework might not be a bad thing. If the customer wants a pie, you give them a pie, you don’t need to know or care about the ingredients. This is why cutting out the middle man can be a good idea especially for the new developer on the block trying to get a job. You give what the recruiter is looking for.
So after all of that, what do I think?… I think for new developers coming out of university or just starting out this can be a great idea to learn the framework first. Your trying to get into the business, so you need to be the developer they want not what you think they need. If you learn the hottest techniques and code that is required in the industry you want to get into, then you have more chance of getting a job quick. Once your in, then your in, so from therefore can continue learning that path on the job while also back filling the spaces you didn’t get to learn.
However the older generation nearer the end of there career I wouldn’t suggest. At this point the younger person has the best opportunity to get the job and that is what you are competing at. Its not to say you are extinct, but to say that you are valuable how you are. The young generation can chase the rabbit of keeping up with the trends and the new troubles, all the while you are the tech support for the legacy technologies you know like the back of you hand. Developers who can keep the company running are getting paid more than the young guns, because no one knows what they know and no one wants to learn what they know, therefore your safe until the end.
There you have it my opinion that the young learn the new framework and the old stay comfortable with what they know, but what is your opinion? Tell us below in the comments.