Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Do developers learn languages or frameworks lately?

Options
  • 07-01-2018 10:59pm
    #1
    Registered Users Posts: 1,298 ✭✭✭


    One thing i've noticed in the past interviewing candidates and within online discussions and articles is that a lot of developers are very good at using their frameworks but are not able to write simple vanilla JS code. For example I asked one candidate to write an ES5 class with prototypal inheritance. Did not go well.

    It seems that developers are learning all the offerings of a framework without trying to get a solid understanding of the underlying "Gotchas" that javascript can provide.

    So my question to all the developers here is do you feel lately that people are learning frameworks or are they learning languages.


Comments

  • Registered Users Posts: 768 ✭✭✭14ned


    The mark of a senior dev over a non-senior dev is that you can put them in front of a codebase written using frameworks they've never seen before, and within a week they'll be up and making safe, if very small, changes.

    Of course, there is always some new fangled fashionable framework which needs to be pretended to be learned so you look good in interviews. But after a while, all the frameworks start to look very similar, with very little true innovation in each new fashion.

    The last time I looked at a new framework and genuinely thought it broke the mould was NeXT back in the early 1990s. That was truly innovative, it was a GUI framework actually designed correctly which appeared at the time to be future proof. Then came along threads, and well it suddenly didn't look so great, NeXT was fundamentally single thread only capable. NeXT, by the way, turned into OS X and it's why OS X appeared to be so cool when it first came out, yet most of the internals were and still are NeXT from the late 80s early 90s. If you've written an iOS app and used Cocoa, that's actually NeXT and it's why all the APIs start with NS* (NextSTEP).

    Anyway, I'd choose devs who can program over devs who know a framework anyday. Devs who can program are flexible, devs who do frameworks are brittle.


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    I guess it depends. My experience is that those who learn the underlying principles learn the frameworks pretty easily. Those who learn frameworks run into problems that they cannot solve, and end up installing libraries to solve them.

    Always makes me think of http://needsmorejquery.com/


  • Registered Users Posts: 6,252 ✭✭✭Buford T Justice


    As a 3rd year college student with real world experience, I can tell you that vanilla js was only a single semester in Y2, and doing nothing but simple functions and dom manipulation. From then it was a semester in jquery and now two semesters of Angular2. Therein covers the extent of what some courses are covering in college.


  • Registered Users Posts: 768 ✭✭✭14ned


    As a 3rd year college student with real world experience, I can tell you that vanilla js was only a single semester in Y2, and doing nothing but simple functions and dom manipulation. From then it was a semester in jquery and now two semesters of Angular2. Therein covers the extent of what some courses are covering in college.

    I do find it a great shame that Ireland has given up on teaching any compsci which isn't web programming. It's become very noticeable how old we systems programmers are becoming, and all the younger engineers are almost universally non-European.

    Niall


  • Registered Users Posts: 1,298 ✭✭✭off.the.walls


    As a 3rd year college student with real world experience, I can tell you that vanilla js was only a single semester in Y2, and doing nothing but simple functions and dom manipulation. From then it was a semester in jquery and now two semesters of Angular2. Therein covers the extent of what some courses are covering in college.

    So the colleges are teaching frameworks? It is understandable that they'd want to keep up with current frameworks. But a semester of js is just not enough.

    Like if I were to say to you

    [HTML]setTimeout(function () {
    for (var i = 0; i < 10; ++i) {
    console.log(i)
    }
    }, 1000)[/HTML]

    would you be able to tell me the answer, without running it, how to fix it, and why it happens?


  • Advertisement
  • Registered Users Posts: 6,150 ✭✭✭Talisman


    Like if I were to say to you

    [HTML]setTimeout(function () {
    for (var i = 0; i < 10; ++i) {
    console.log(i)
    }
    }, 1000)[/HTML]

    would you be able to tell me the answer, without running it, how to fix it, and why it happens?
    I'm not sure what you're looking for there in terms of there being an issue to fix.

    If you are looking for knowledge of the gotcha which I think you had in mind then this is the snippet you may have meant:
    for (var i = 0; i < 10; ++i) {
      setTimeout(function() {
        console.log(i);
      }, i * 1000);
    }
    


  • Registered Users Posts: 6,252 ✭✭✭Buford T Justice


    14ned wrote: »
    I do find it a great shame that Ireland has given up on teaching any compsci which isn't web programming. It's become very noticeable how old we systems programmers are becoming, and all the younger engineers are almost universally non-European.

    Niall

    We are also learning OOP with C# and .NET, so technically not just web technologies, if that's any consolation.

    Perhaps Universities do focus more on compsci, but not at the institute I attend.
    So the colleges are teaching frameworks? It is understandable that they'd want to keep up with current frameworks. But a semester of js is just not enough.

    Like if I were to say to you

    [HTML]setTimeout(function () {
    for (var i = 0; i < 10; ++i) {
    console.log(i)
    }
    }, 1000)[/HTML]

    would you be able to tell me the answer, without running it, how to fix it, and why it happens?

    Standard javascript functions like setTimeout and so on yeah, they're not all taught, but in fairness anyone with an ounce of common sense can easily find a solution to a problem.
    Problem based learning is a much better option I believe. You get to learn about these things in context and less chance to forget it. I'll also add that rote learning of these types of functions is pointelss in my opinion. Its like learning maths formulas without any sort of context to go with it.
    If you can't adapt to problem based learning then perhaps programming sin't the career for you.


  • Registered Users Posts: 1,298 ✭✭✭off.the.walls


    Talisman wrote: »
    I'm not sure what you're looking for there in terms of there being an issue to fix.

    If you are looking for knowledge of the gotcha which I think you had in mind then this is the snippet you may have meant:
    for (var i = 0; i < 10; ++i) {
      setTimeout(function() {
        console.log(i);
      }, 1000);
    }
    

    Whoops my bad! you're right ( coding all day brains tired all night ) but people should be able to understand that problem and ways around it instead of thinking that a framework is going to help them solve the problem


  • Registered Users Posts: 6,150 ✭✭✭Talisman


    Standard javascript functions like setTimeout and so on yeah, they're not all taught, but in fairness anyone with an ounce of common sense can easily find a solution to a problem.
    I think the point was to check your knowledge of Scoping and Asynchronous callbacks.

    It's a relatively simple problem to solve but it's the kind of thing that will cause you to pull your hair out if you don't know it. Anyone that interviews for a JavaScript job should recognise the issue and know how to fix it immediately. If they can't then it's a good indicator that they don't really know JavaScript or haven't written anything beyond trivial code.


  • Registered Users Posts: 6,252 ✭✭✭Buford T Justice


    Talisman wrote: »
    I think the point was to check your knowledge of Scoping and Asynchronous callbacks.

    It's a relatively simple problem to solve but it's the kind of thing that will cause you to pull your hair out if you don't know it. Anyone that interviews for a JavaScript job should recognise the issue and know how to fix it immediately. If they can't then it's a good indicator that they don't really know JavaScript or haven't written anything beyond trivial code.

    Then in that context no; asynchronous programming isn't 'taught' in my college. If you're interested and do more than the bare minimum you would learn it as part of your projects - as problem based learning I must add, but that's it.


  • Advertisement
  • Registered Users Posts: 6,150 ✭✭✭Talisman


    Then in that context no; asynchronous programming isn't 'taught' in my college. If you're interested and do more than the bare minimum you would learn it as part of your projects - as problem based learning I must add, but that's it.
    That's not necessarily true - if you chose the right libraries for your projects then you might never encounter the issue and as a result you can code using the chosen framework but still not know JavaScript.

    If a person intends to use JavaScript in their career then they should read through Kyle Simpson's You Don't Know JS series at least once.


  • Registered Users Posts: 768 ✭✭✭14ned


    We are also learning OOP with C# and .NET, so technically not just web technologies, if that's any consolation.

    Perhaps Universities do focus more on compsci, but not at the institute I attend.

    I don't think Irish universities do any more. The government applies a ton of pressure on them to teach "relevant" skills, including throwing money at them if they teach "industry practice". Last time I looked at a curriculum it was basically written by Microsoft and Oracle. What you say above suggests the same for your course.

    Also, OOP is pretty useless except as a semantic convention to lower the learning curve. If you ever see a pure OOP codebase, it's usually horribly broken because OOP does not and never has worked. Same goes for microservices and service orientated architectures. Useful for getting up to speed on a new codebase quicker, otherwise best not applied strictly.

    But as an example of how Irish universities - and industry - are totally missing the boat, right now on C++ standards we're talking about how best to standardise RDMA into C++. This is hardly new technology, yet unless you take a Masters degree in HPC and specialise in HPC clustering, you'll never touch such technology in any course taught here. However RDMA is poised to be a hugely transformational technology in the 2020s, profoundly affecting all software, even web stacks. Our workforce here in Ireland will be utterly unprepared :(

    Niall


  • Registered Users Posts: 11,262 ✭✭✭✭jester77


    If the framework uses standard design patterns, then any half decent developer should be up and running fairly quickly, even if they are not too familiar with the language in question.


  • Registered Users Posts: 6,150 ✭✭✭Talisman


    jester77 wrote: »
    If the framework uses standard design patterns, then any half decent developer should be up and running fairly quickly, even if they are not too familiar with the language in question.
    That's fine if you work in the land of cookie cutter development and understanding how the language works is a nice to know as opposed to a requirement for the job. The original point was that job candidates know frameworks but not the language in which it is developed.

    When they need to step beyond what is available in their framework/patterns the cookie cutter developer is out of their depth - unchartered territory is potentially a great new learning experience for them but it can also prove to be a disaster area for a project.

    Unchartered territory is likely to lead to inefficient code. Inefficiency is one of the major problems with modern applications so it's an important topic to emphasise.

    I'm not suggesting that all code needs to be as efficient as possible but a developer should be competent enough in a language to be able to code their own solution to a problem rather than immediately reaching for a library from which they may only require a single function.


  • Registered Users Posts: 895 ✭✭✭Dubba


    My course in CIT has been very light on JS as well, just one semester of vanilla JS. They are introducing a JS frameworks module as part of a major changes of the computing courses, but unfortunately I wont get to do this.

    I moved from BSc in Comp, to BSc S/W Development for my final year. The people who did BSc S/W Development from the beginning have done 2 semesters of C. Now in the final year we have other non-web based modules, such as:

    - Embedded Sys. Tools & Models ( C )
    - Machine Learning ( Python, Pandas, Numpy, etc )
    - Security for S/W Systems ( C and web )
    - Advanced OS & Virtualisation ( more C )

    I have to admit I’ve struggled with C, especially since I missed out on the fundamentals that were taught in earlier modules. Thankfully our lectures have been generous in supplying some working code for our projects. It has been a tough first semester, a lot of new technologies and a FYP research phase thesis to get done. For me, 3rd year was a doddle in comparison.


  • Registered Users Posts: 8,615 ✭✭✭grogi


    One thing i've noticed in the past interviewing candidates and within online discussions and articles is that a lot of developers are very good at using their frameworks but are not able to write simple vanilla JS code. For example I asked one candidate to write an ES5 class with prototypal inheritance. Did not go well.

    Maybe because ES5 does not have a notion of a class? ;-)
    And if you say that devs need to understand the basics - do you check for x86 assembly code understanding as well?!

    IMHO much better question is to put someone in front of simple code in some less common language - like Haskell - and ask what it does.


  • Registered Users Posts: 5,982 ✭✭✭Caliden


    Kind of a follow on question but how do I go about getting actual experience in different frameworks?

    I'm in a role where it's native js/ext js for the last 5 years and I'm struggling to get out. Every role is either ember/react/angular and other frameworks are overlooked (despite them being extremely similar).

    I've had about 3 interviews so far where 2 have went well (in my mind anyway) but my lack of professional experience with the framework prevented me from getting the job. I want to change roles but I don't know where to start when it comes to showing that I can manage these frameworks.

    Do I just create github projects and upload a worthless snippet that could be ripped from somewhere else to show that I have these languages and they can just tick their boxes on the hiring form?

    Honestly I jumped into my current role having only jquery and it didn't take long to get up to speed but it's getting frustrating now that trying to find a job requires you to have more experience in the framework than the framework has existed. (I've actually seen jobs looking for 5 years React experience.)


  • Registered Users Posts: 8,615 ✭✭✭grogi


    Caliden wrote: »
    (I've actually seen jobs looking for 5 years React experience.)

    That's just HR/Recruiters speaking - React is only 4 years old.


  • Registered Users Posts: 5,982 ✭✭✭Caliden


    grogi wrote: »
    That's just HR/Recruiters speaking - React is only 4 years old.

    Yeah I know but these have been job specs from companies themselves not just recruiters. Not that I applied for them but my point was there's a lot of weight and importance being put on said frameworks.

    My question is, how does one even get the foot in the door to get experience in these frameworks without taking a substantial paycut just to get the experience?


  • Registered Users Posts: 6,252 ✭✭✭Buford T Justice


    Caliden wrote: »
    Yeah I know but these have been job specs from companies themselves not just recruiters. Not that I applied for them but my point was there's a lot of weight and importance being put on said frameworks.

    My question is, how does one even get the foot in the door to get experience in these frameworks without taking a substantial paycut just to get the experience?

    Start building a project in the framework is what I'd do. You then have experience, not 5 years or whatever but you still have a familiarity with it.


  • Advertisement
  • Registered Users Posts: 1,029 ✭✭✭John_C


    Caliden wrote: »
    Kind of a follow on question but how do I go about getting actual experience in different frameworks?

    I'm in a role where it's native js/ext js for the last 5 years and I'm struggling to get out. Every role is either ember/react/angular and other frameworks are overlooked (despite them being extremely similar).

    I've had about 3 interviews so far where 2 have went well (in my mind anyway) but my lack of professional experience with the framework prevented me from getting the job. I want to change roles but I don't know where to start when it comes to showing that I can manage these frameworks.

    Do I just create github projects and upload a worthless snippet that could be ripped from somewhere else to show that I have these languages and they can just tick their boxes on the hiring form?

    Honestly I jumped into my current role having only jquery and it didn't take long to get up to speed but it's getting frustrating now that trying to find a job requires you to have more experience in the framework than the framework has existed. (I've actually seen jobs looking for 5 years React experience.)

    If you're confident in your vanilla JS skills, I wouldn't change too much to meet the requirements of poor recruiting practices. If these companies aren't confident training you in their chosen framework, they're probably not great places to work.

    It's a strong jobs market at the moment. If you're looking for a move, You'll definitely find something.


  • Registered Users Posts: 1,298 ✭✭✭off.the.walls


    Caliden wrote: »
    Kind of a follow on question but how do I go about getting actual experience in different frameworks?

    I'm in a role where it's native js/ext js for the last 5 years and I'm struggling to get out. Every role is either ember/react/angular and other frameworks are overlooked (despite them being extremely similar).

    I've had about 3 interviews so far where 2 have went well (in my mind anyway) but my lack of professional experience with the framework prevented me from getting the job. I want to change roles but I don't know where to start when it comes to showing that I can manage these frameworks.

    Do I just create github projects and upload a worthless snippet that could be ripped from somewhere else to show that I have these languages and they can just tick their boxes on the hiring form?

    Honestly I jumped into my current role having only jquery and it didn't take long to get up to speed but it's getting frustrating now that trying to find a job requires you to have more experience in the framework than the framework has existed. (I've actually seen jobs looking for 5 years React experience.)

    The way I tend to do it is first build the Todo app, that'll give you a quick outline of what a framework can do.

    Then build something bigger! When I was learning Angular I helped out on an Electron App that used Angular for its frontend! Was an awesome learning experience, I'm working with vue in the current place and after learning Angular inside and out I've been able to easily spot the similarities in the frameworks and quickly learn how to work with it.

    The more you use it the better you get at it.


Advertisement