I'm on the faculty at Boston University in the computer science department, where I teach software engineering, intro courses, and application architecture and development. Also a bit of a Deadhead.
This might be part of the problem: "I am a normal guy, I don't really code at home, or work on a personal project."
I see this as an indication that you aren't all that interested in programming; those who have a passion for it can't get enough of it. Take a look at how you spend your time at home...what is it that gets you excited, something that you'll work on nonstop until the early hours of the morning? That's your real passion, and following it might make you a happy guy.
“As much as I’d love our code to be fully compliant with the great programming practices of this world, I’d rather have it working — if possible before the heat death of the Universe.”
With your definition of “passion”, and with the advice itself. I think it’s important that your studies and your job are something you like to do, and that do not feel like chores. Wether you make your whole life revolving around it is your choice to make, but I’m old school, I consider variety equals sanity ;)
I have many interests and friends, and only so much time. I am very glad I get to spend my working hours doing something I love, I think I’m even becoming pretty good at it, but work is work and life is… well, life. At the end of the day, I like to let my head rest and focus on other things to have variety.
As to wether I’m passionate about it, well – according to your definition – surely not; I do not have pet projects and I will never ever spend my night on anything that is not an absolute emergency (or astronomy, obviously). That does not mean I’m a sad person at work, or that I’m not all that interested in what I do. I just have varied occupations.
I’ll conclude by highlighting the fact that many companies – at least in France – avoid hiring newbies who make it seem that programming is their only life, because they have a reputation of not fitting in with the team very well (heck, we ourselves have an intern who only ever speaks about his pet programs and a single video game, and boy is it a hassle). This might or might not be related, this talk just made me think about it.
I agree with you rather than Perry. If I'm "not passionate" because I have a relationship and friends and spend time with my coworkers completely divorced from work, then so be it. But I (and those I work with) believe that code should fit into your life, not be your life. Pet projects and after-hours work are great, but they aren't the sole determinant of passion.
I will put it this way: We respect doctors for the work they do. It's highly specialized and takes a long time to learn to do well. Is a doctor less passionate about their field if they leave the hospital and go to dinner and a movie with their spouse? Or to the gym? Or should every waking moment be focused on their job, reading and doing research in their spare time?
A big reason we want doctors to have lives and get sleep is so they don't make mistakes out of fatigue or burnout. Considering developers write the code that runs healthcare systems, banks and websites that individual businesses depend on, does it not make sense to subscribe to the same beliefs with us?
We can keep developers passionate about the field by NOT demanding they be consumed by it. Plus, if all someone can ever bring to the table is coding X, they'll never be able to relate to the people they're writing the code for (and by extension the projects themselves).
I think I like programming, really, but I don't know, i'm going to the gym 4 times per week and the other days I'm doing my homework. I really feel like I don't have time for a personal project. But you're right, if I loved it that much I could make some times for it, this is why I'm going to learn React (or maybe another framework ?) and start creating something. I already have 2 ideas for a little project which can help me to increase my skills !
I agree with Perry, about the passion. I always find something interesting to do or at least to read about.
As for JS, I've avoided it until now (59 y/o and counting... being a programmer since I was 20).
The approach I took with JS is to use it as a compilation target and focus on Typescript instead. I read so many praises about the language, so I started learning it. It's amazing.
A few more points on JS:
Modern JS is fricking fast, sometimes even more so than compiled C++
Node.js and npm (i.e. like PHP and Composer) are such a great, complete platform. I guess you won't miss a thing from Composer).
JS is "the new assembler". And typed arrays gives the language stellar performance, there's even a CPU emulator running Linux, right on your browser tab.
Ok calling JavaScript "fricking fast" or "the new assembler" is simply dishonest and I can't not call you out on this.
Yes, JavaScript is a lot faster than it used to be. Yes, you can do many neat things with it. And yes it is definitely fast enough for a lot of common uses.
However many things are NOT that fast in JavaScript and the single-threaded nature prevents JavaScript from solving a lot of performance problems easily. Additionally MANY languages are much faster than JavaScript and are much more suitable for writing performance critical software.
In my experience for most common use-cases nowadays the performance limitations come from I/O, network, and other such things and the absolute performance of the language (as long as it's fast enough) does not matter much. This means you can write perfectly fine programs in JavaScript, Python, Go, as well as Java (and others) and mostly personal preference and the fit of e.g. various frameworks and libraries available for your needs matters much more than pure performance in benchmarks.
I would argue with this. He says he is in college, so I totally understand there is no time for personal projects (I know I had none between school, work and homework).
It is pretty wild, but the fundamentals are still just computer programming and hopefully your employer will be able to help reign in the insanity with good technical direction.
There are a lot of great JavaScript articles on this site. I recommend querying and reading a bunch. Here are a few you might find helpful:
Hi Ben and thanks for sharing my article It makes me really happy !
I will read all of them since I kinda like how the JS community is so active ! When I see all these articles and tutorials I'm a little more relieved about it
One more thing, you only need ONE job and there are PLENTY of jobs in Java, C, C++, COBOL, PHP.
You are in control of your own career and JavaScript is only eating a bit of the software industry. There is plenty of room for all the languages, personalities, etc.
Becoming a one-trick pony is not very good career advice for people working in IT. There are plenty of one-trick ponies that get replaced by people capable of working in more than one language, and get stuck in dead-end jobs working on maintaining 30 year old software because they thought there are enough jobs for COBOL.
I mean a pure js usage, without frameworks etc. Ok, maybe jquery to perform ajax requests, because they're messy, but other things can be done with pure js. Like, creating a component using prototypes and native dom manipulation etc. Just to try it out. Check out this: vanilla-js.com
You've managed to perfectly illustrate what I truly see as the biggest issue with the way CS is taught and why I would never advise someone that wants to code to spend the time and money on college. To put it succinctly, the neckbeards at Universities are simply too resistant to change and refuse to acknowledge that Javascript has grown up, and they're damning their students because of it. This is a generalization, but I personally never had a professor prove me wrong.
Also, I want to note that "I am a normal guy, I don't really code at home, or work on a personal project," isn't a good sign, IMO. Granted, most personal projects most people would have any interest in are going to be web-based, and that means Javascript. Personal projects are where you learn the most, and if you're not coding at home, you don't love it, and if you don't love it, there is a greater than likely chance you will burn out. In all honesty, if you don't develop in your off time, I'm hesitant to call you a developer at all. Perhaps that's harsh and I'm just a zealot, but alas.
With that out of the way, check out YDKJS. It's arguably the best, most comprehensive JS guide online. Then, once you've got the basics of JS down, React is the way to go. The community is huge, documentation plentiful, and the ecosystem is an absolute joy to work in.
The issue is that HR/recruiters still mostly expect people to have degrees. Most of the time your application will just end up in the garbage bin for not having a degree. This process might even be automated in many places. Beyond that there is a bias towards degrees from specific institutions. It doesn't make much sense on a technical level, but that's just how it is here in the US. There was a point in time that I was considering dropping out of school, because I was making extremely good money coding. It was my boss actually that convinced me to stay in school. After going through a couple rounds of job searching and seeing how tough it can be even with qualifications, I'm really glad that I had that voice in my ear telling me to stick with it.
I'm US based, and never finished school. I think you'd be genuinely surprised what a healthy GitHub account attached to your LinkedIn can do. Degrees seem to be a stopgap for having actual code published. In my experience, once you've published even a small amount of usable, well documented code, they're pretty willing to overlook the degree. My LinkedIn is a joke when it comes to "professionalism," yet I've been bombarded with recruiter emails since linking my GH, even when I only had a small number of projects. It does make that first contact harder to establish though, I will admit that.
Establishing a reputation on StackOverflow and HackerRank can aid a LOT as well.
With all due respect, being bombarded by recruiters on LinkedIn and actually getting the job you want are two entirely different things. I'm glad things seem to be working out for you though.
This is very true. I don't want to seem like an advocate for dropping out, or like college is entirely pointless. Rather, pointing out that I think much of what is taught is antiquated with regards to most of the jobs on the market.
At the end of they day, what it takes for you to learn the skills and get code published is the path you should take. For some, myself included, college wasn't it. If you're the type of person that functions better in a self taught environment, diving head first into open source and contributing wherever possible can work. IMO it's one of the things that makes this field great. The path you take is less important than the fact that you get there.
For the sake of completeness, I want to note that pretty much all of what I've said could very well be exclusive to the web. It's my niche, and in all honesty I don't stray far because it's what I love. The rise of coding bootcamps, and even projects like FreeCodeCamp, seem to have liberated web development from the traditional CS model.
I agree entirely. College is overrated and generally poor at actually teaching vocational skills. Hopefully people will eventually catch onto the fact that an undergrad liberal arts education isn't all it's cracked up to be, but I still recommend people get degrees for the time being.
I never finished school (I stopped at half of high school), because my informatics and systems teacher gave me an F as final valuation in both the matters. Looked like programming stuff wasn't my destiny at all.
You know what? I worked for 3 USA startups in the past 5 years, the one I'm working for now was in the 2017 CNBC Disruptor 50 companies.
At work I am one of the most performant developers and my (graduated) teammates seek for my advices often.
I get at least a (serious) job offer each 1/2 weeks and nobody ever complained about my lack of school degree (except for when they want me to relocate to the USA and I can't because your laws suck).
School, for programmers, is a huge waste of time.
If you can afford to waste all that time then good for you, carry on and get your piece of paper.
If you want to get a job and start producing stuff, just prove your skills creating some cool projects on GitHub and the rest will come.
I'm not sure if React and Symfony (a PHP web framework) is a good combination. With the modern JS frameworks (React, Angular etc.) server based web frameworks seems to be dead, at least for new projects. If I were you I'd choose another language for the business layer (Python, Kotlin etc.) instead of PHP.
To throw in my $0.02, Sails.js and Trails.js have very low barriers to entry and allow you to build a JSON API almost mindlessly. Plus, then you're in the magical world of full-stack javascript, and server-side rendering and other isomorphic patterns are only a Google and StackOverflow away.
Why do you think symfony is dead? Symfony along with Laravel are two of the most popular php frameworks. React and Symfony makes a great combination. As a matter of fact, symfony has support for react with symfony webpack encore component. Webpack Encore is a simpler way to integrate Webpack into your application. It wraps Webpack, giving you a clean & powerful API for bundling JavaScript modules, pre-processing CSS & JS and compiling and minifying assets. Encore gives you professional asset system that's a delight to use.
I didn't say that. I said web frameworks in general, language agnostic. If all the view/controller processig is moved to the browser and the server simply serves REST services many functionalities of the framework are not used. I'm thinking about Struts, JSF, Spring MVC. I don't know the PHP world, maybe its frameworks do different things but I doubt it.
You are entitled to your own preferences of course, but the idea that the client/server model is dead is simply not true... Traditional frameworks have become very good at serving APIs.
When I was a student in France 10 years ago JavaScript wasn't taught. We were learning low level procedural languages and OOP languages (mostly Java). Where I was, teachers / researchers probably didn't call JS a language. I only got exposure to functional programming later. Is it still much the case?
Nice post/discussion you started here! Definitely going to read all the suggestions the community commented here.
First of all, let me tell you that I know how you feel: I did Java, C/C++ and others in college and then discovered the JavaScript ecosystem just like you. To be honest I recently started learning React too, but you seem to be doing pretty well so don't be scared.
On the other hand, an internship doesn't define your whole career and, as Ben said, there are plenty of jobs in those other languages if the JS family doesn't suit you or you end up not liking it, so don't worry.
I understand how you feel. I'm kind of going through the same thing.
Way back in 2012 or so, I was really starting to learn programming and I fell in love with JS. The only real frameworks or libraries I knew about were JQuery and... that's it.
After finishing a few projects and having felt like I really understood Javascript, I started learning Ruby on Rails, and Javascript fell out of my view. I woke up four years later, in 2016, bored with Rails and realizing that my love, Javascript, was too good for me now. I didn't understand any of the frameworks or what was so special about them. There were so many different things to learn about: the tooling, the linting, the webpack-ing, the components, the arrow functions!
I've started to reconcile with Javascript a little bit. I've made my way through an Angular 2 tutorial (which is in TypeScript rather than Javascript, incidentally), but we aren't best friends anymore, and I don't use Javascript often, if at all anymore. I write lots of Java for my Computer Science classes and lots of Python for my job.
Anyways, I would say it's not a waste to learn vanilla/native/pure Javascript (Javascript without any frameworks or other tools). Javascript is, above all, a fun language. It's dynamic and flexible and helped me understand basic programming paradigms. But if you already have a strong background in programming (you've said you know lots of different languages), Javascript isn't a necessity. You can do great things all the while completely ignoring it. Don't feel like you have to get a Javascript job or know even a smidgen of it.
software developer with almost no qualifications, but a strong desire for learning. i believe that you can make it without qualifications if you push yourself.
don't give up. the difference betw...
oh! one more thing: use the documentation on mozilla developer network (developer.mozilla.org/en-US/) for anything you need to know. it's WAY better than w3schools. and they have good tutorials.
There is a Chrome extension to exclude W3Schools from search results, and I highly recommend it. The information on there is usually outdated, or just flat out wrong.
Nice article. This summarize the fear I had back in my days of 3rd year as a Computer Science student (2007, I guess). That was a time of plenty 'revolutionary' java Web frameworks, and I knew none of them.
I think this is a technology dilemma that will never end: there is always a 'sexy' technology that everybody talks. And here is my advise: focus on learning the programming paradigms and the benefits of them, not just frameworks. If you are learning different languages, as you said, you are already in the right path, I think. The best job offer is the one which takes you as a programmer, and not as a framework specialist, so, for you will be a matter of time.
So you was in the exact same situation, and I think you are absolutely right, even if I don't know JS (yet!) If I'm good at programming I will find something interesting.
Top comments (59)
This might be part of the problem: "I am a normal guy, I don't really code at home, or work on a personal project."
I see this as an indication that you aren't all that interested in programming; those who have a passion for it can't get enough of it. Take a look at how you spend your time at home...what is it that gets you excited, something that you'll work on nonstop until the early hours of the morning? That's your real passion, and following it might make you a happy guy.
I disagree with that.
With your definition of “passion”, and with the advice itself. I think it’s important that your studies and your job are something you like to do, and that do not feel like chores. Wether you make your whole life revolving around it is your choice to make, but I’m old school, I consider variety equals sanity ;)
I have many interests and friends, and only so much time. I am very glad I get to spend my working hours doing something I love, I think I’m even becoming pretty good at it, but work is work and life is… well, life. At the end of the day, I like to let my head rest and focus on other things to have variety.
As to wether I’m passionate about it, well – according to your definition – surely not; I do not have pet projects and I will never ever spend my night on anything that is not an absolute emergency (or astronomy, obviously). That does not mean I’m a sad person at work, or that I’m not all that interested in what I do. I just have varied occupations.
I’ll conclude by highlighting the fact that many companies – at least in France – avoid hiring newbies who make it seem that programming is their only life, because they have a reputation of not fitting in with the team very well (heck, we ourselves have an intern who only ever speaks about his pet programs and a single video game, and boy is it a hassle). This might or might not be related, this talk just made me think about it.
I agree with you rather than Perry. If I'm "not passionate" because I have a relationship and friends and spend time with my coworkers completely divorced from work, then so be it. But I (and those I work with) believe that code should fit into your life, not be your life. Pet projects and after-hours work are great, but they aren't the sole determinant of passion.
I will put it this way: We respect doctors for the work they do. It's highly specialized and takes a long time to learn to do well. Is a doctor less passionate about their field if they leave the hospital and go to dinner and a movie with their spouse? Or to the gym? Or should every waking moment be focused on their job, reading and doing research in their spare time?
A big reason we want doctors to have lives and get sleep is so they don't make mistakes out of fatigue or burnout. Considering developers write the code that runs healthcare systems, banks and websites that individual businesses depend on, does it not make sense to subscribe to the same beliefs with us?
We can keep developers passionate about the field by NOT demanding they be consumed by it. Plus, if all someone can ever bring to the table is coding X, they'll never be able to relate to the people they're writing the code for (and by extension the projects themselves).
Hey, thank you for your advices!
I think I like programming, really, but I don't know, i'm going to the gym 4 times per week and the other days I'm doing my homework. I really feel like I don't have time for a personal project. But you're right, if I loved it that much I could make some times for it, this is why I'm going to learn React (or maybe another framework ?) and start creating something. I already have 2 ideas for a little project which can help me to increase my skills !
I agree with Perry, about the passion. I always find something interesting to do or at least to read about.
As for JS, I've avoided it until now (59 y/o and counting... being a programmer since I was 20).
The approach I took with JS is to use it as a compilation target and focus on Typescript instead. I read so many praises about the language, so I started learning it. It's amazing.
A few more points on JS:
Ok calling JavaScript "fricking fast" or "the new assembler" is simply dishonest and I can't not call you out on this.
Yes, JavaScript is a lot faster than it used to be. Yes, you can do many neat things with it. And yes it is definitely fast enough for a lot of common uses.
However many things are NOT that fast in JavaScript and the single-threaded nature prevents JavaScript from solving a lot of performance problems easily. Additionally MANY languages are much faster than JavaScript and are much more suitable for writing performance critical software.
In my experience for most common use-cases nowadays the performance limitations come from I/O, network, and other such things and the absolute performance of the language (as long as it's fast enough) does not matter much. This means you can write perfectly fine programs in JavaScript, Python, Go, as well as Java (and others) and mostly personal preference and the fit of e.g. various frameworks and libraries available for your needs matters much more than pure performance in benchmarks.
React isn't a framework 😉
Don't learn React, learn the programming principles that React promotes: functional programming, data driven UI development, libraries composition (and composition in general).
Agree 100% with Perry.
I would argue with this. He says he is in college, so I totally understand there is no time for personal projects (I know I had none between school, work and homework).
It is pretty wild, but the fundamentals are still just computer programming and hopefully your employer will be able to help reign in the insanity with good technical direction.
There are a lot of great JavaScript articles on this site. I recommend querying and reading a bunch. Here are a few you might find helpful:
Writing modern JavaScript code
Setting up a Minimal, Yet Useful JavaScript Dev Environment
The JS Path: JavaScript Best Practices
Also @kayis posts a lot of great info on JS.
Good luck!
Hi Ben and thanks for sharing my article It makes me really happy !
I will read all of them since I kinda like how the JS community is so active ! When I see all these articles and tutorials I'm a little more relieved about it
One more thing, you only need ONE job and there are PLENTY of jobs in Java, C, C++, COBOL, PHP.
You are in control of your own career and JavaScript is only eating a bit of the software industry. There is plenty of room for all the languages, personalities, etc.
Becoming a one-trick pony is not very good career advice for people working in IT. There are plenty of one-trick ponies that get replaced by people capable of working in more than one language, and get stuck in dead-end jobs working on maintaining 30 year old software because they thought there are enough jobs for COBOL.
The key is to know vanilla js really well. If you know that, I dont't think it will be hard to switch to frameworks.
Vanilla JS? Never heard about it, I will do some research thanks
I mean a pure js usage, without frameworks etc. Ok, maybe jquery to perform ajax requests, because they're messy, but other things can be done with pure js. Like, creating a component using prototypes and native dom manipulation etc. Just to try it out. Check out this: vanilla-js.com
or rather than jQuery for ajax look at fetch - all the goodness of modern vanilla JS, with a great polyfill, and none of the jQuery bloat :)
You've managed to perfectly illustrate what I truly see as the biggest issue with the way CS is taught and why I would never advise someone that wants to code to spend the time and money on college. To put it succinctly, the neckbeards at Universities are simply too resistant to change and refuse to acknowledge that Javascript has grown up, and they're damning their students because of it. This is a generalization, but I personally never had a professor prove me wrong.
Also, I want to note that "I am a normal guy, I don't really code at home, or work on a personal project," isn't a good sign, IMO. Granted, most personal projects most people would have any interest in are going to be web-based, and that means Javascript. Personal projects are where you learn the most, and if you're not coding at home, you don't love it, and if you don't love it, there is a greater than likely chance you will burn out. In all honesty, if you don't develop in your off time, I'm hesitant to call you a developer at all. Perhaps that's harsh and I'm just a zealot, but alas.
With that out of the way, check out YDKJS. It's arguably the best, most comprehensive JS guide online. Then, once you've got the basics of JS down, React is the way to go. The community is huge, documentation plentiful, and the ecosystem is an absolute joy to work in.
github.com/getify/You-Dont-Know-JS
The issue is that HR/recruiters still mostly expect people to have degrees. Most of the time your application will just end up in the garbage bin for not having a degree. This process might even be automated in many places. Beyond that there is a bias towards degrees from specific institutions. It doesn't make much sense on a technical level, but that's just how it is here in the US. There was a point in time that I was considering dropping out of school, because I was making extremely good money coding. It was my boss actually that convinced me to stay in school. After going through a couple rounds of job searching and seeing how tough it can be even with qualifications, I'm really glad that I had that voice in my ear telling me to stick with it.
I'm US based, and never finished school. I think you'd be genuinely surprised what a healthy GitHub account attached to your LinkedIn can do. Degrees seem to be a stopgap for having actual code published. In my experience, once you've published even a small amount of usable, well documented code, they're pretty willing to overlook the degree. My LinkedIn is a joke when it comes to "professionalism," yet I've been bombarded with recruiter emails since linking my GH, even when I only had a small number of projects. It does make that first contact harder to establish though, I will admit that.
Establishing a reputation on StackOverflow and HackerRank can aid a LOT as well.
With all due respect, being bombarded by recruiters on LinkedIn and actually getting the job you want are two entirely different things. I'm glad things seem to be working out for you though.
This is very true. I don't want to seem like an advocate for dropping out, or like college is entirely pointless. Rather, pointing out that I think much of what is taught is antiquated with regards to most of the jobs on the market.
At the end of they day, what it takes for you to learn the skills and get code published is the path you should take. For some, myself included, college wasn't it. If you're the type of person that functions better in a self taught environment, diving head first into open source and contributing wherever possible can work. IMO it's one of the things that makes this field great. The path you take is less important than the fact that you get there.
For the sake of completeness, I want to note that pretty much all of what I've said could very well be exclusive to the web. It's my niche, and in all honesty I don't stray far because it's what I love. The rise of coding bootcamps, and even projects like FreeCodeCamp, seem to have liberated web development from the traditional CS model.
I agree entirely. College is overrated and generally poor at actually teaching vocational skills. Hopefully people will eventually catch onto the fact that an undergrad liberal arts education isn't all it's cracked up to be, but I still recommend people get degrees for the time being.
I never finished school (I stopped at half of high school), because my informatics and systems teacher gave me an F as final valuation in both the matters. Looked like programming stuff wasn't my destiny at all.
You know what? I worked for 3 USA startups in the past 5 years, the one I'm working for now was in the 2017 CNBC Disruptor 50 companies.
At work I am one of the most performant developers and my (graduated) teammates seek for my advices often.
I get at least a (serious) job offer each 1/2 weeks and nobody ever complained about my lack of school degree (except for when they want me to relocate to the USA and I can't because your laws suck).
School, for programmers, is a huge waste of time.
If you can afford to waste all that time then good for you, carry on and get your piece of paper.
If you want to get a job and start producing stuff, just prove your skills creating some cool projects on GitHub and the rest will come.
I'm not sure if React and Symfony (a PHP web framework) is a good combination. With the modern JS frameworks (React, Angular etc.) server based web frameworks seems to be dead, at least for new projects. If I were you I'd choose another language for the business layer (Python, Kotlin etc.) instead of PHP.
To throw in my $0.02, Sails.js and Trails.js have very low barriers to entry and allow you to build a JSON API almost mindlessly. Plus, then you're in the magical world of full-stack javascript, and server-side rendering and other isomorphic patterns are only a Google and StackOverflow away.
Why do you think symfony is dead? Symfony along with Laravel are two of the most popular php frameworks. React and Symfony makes a great combination. As a matter of fact, symfony has support for react with symfony webpack encore component. Webpack Encore is a simpler way to integrate Webpack into your application. It wraps Webpack, giving you a clean & powerful API for bundling JavaScript modules, pre-processing CSS & JS and compiling and minifying assets. Encore gives you professional asset system that's a delight to use.
I didn't say that. I said web frameworks in general, language agnostic. If all the view/controller processig is moved to the browser and the server simply serves REST services many functionalities of the framework are not used. I'm thinking about Struts, JSF, Spring MVC. I don't know the PHP world, maybe its frameworks do different things but I doubt it.
You are entitled to your own preferences of course, but the idea that the client/server model is dead is simply not true... Traditional frameworks have become very good at serving APIs.
cough cough GraphQL cough cougghhh
What about it?
When I was a student in France 10 years ago JavaScript wasn't taught. We were learning low level procedural languages and OOP languages (mostly Java). Where I was, teachers / researchers probably didn't call JS a language. I only got exposure to functional programming later. Is it still much the case?
Oui ! It's still the case, like I said it's all about C++/Java
Nice post/discussion you started here! Definitely going to read all the suggestions the community commented here.
First of all, let me tell you that I know how you feel: I did Java, C/C++ and others in college and then discovered the JavaScript ecosystem just like you. To be honest I recently started learning React too, but you seem to be doing pretty well so don't be scared.
On the other hand, an internship doesn't define your whole career and, as Ben said, there are plenty of jobs in those other languages if the JS family doesn't suit you or you end up not liking it, so don't worry.
I understand how you feel. I'm kind of going through the same thing.
Way back in 2012 or so, I was really starting to learn programming and I fell in love with JS. The only real frameworks or libraries I knew about were JQuery and... that's it.
After finishing a few projects and having felt like I really understood Javascript, I started learning Ruby on Rails, and Javascript fell out of my view. I woke up four years later, in 2016, bored with Rails and realizing that my love, Javascript, was too good for me now. I didn't understand any of the frameworks or what was so special about them. There were so many different things to learn about: the tooling, the linting, the webpack-ing, the components, the arrow functions!
I've started to reconcile with Javascript a little bit. I've made my way through an Angular 2 tutorial (which is in TypeScript rather than Javascript, incidentally), but we aren't best friends anymore, and I don't use Javascript often, if at all anymore. I write lots of Java for my Computer Science classes and lots of Python for my job.
Anyways, I would say it's not a waste to learn vanilla/native/pure Javascript (Javascript without any frameworks or other tools). Javascript is, above all, a fun language. It's dynamic and flexible and helped me understand basic programming paradigms. But if you already have a strong background in programming (you've said you know lots of different languages), Javascript isn't a necessity. You can do great things all the while completely ignoring it. Don't feel like you have to get a Javascript job or know even a smidgen of it.
oh! one more thing: use the documentation on mozilla developer network (developer.mozilla.org/en-US/) for anything you need to know. it's WAY better than w3schools. and they have good tutorials.
There is a Chrome extension to exclude W3Schools from search results, and I highly recommend it. The information on there is usually outdated, or just flat out wrong.
MDN really is the definitive source for JS.
Nice article. This summarize the fear I had back in my days of 3rd year as a Computer Science student (2007, I guess). That was a time of plenty 'revolutionary' java Web frameworks, and I knew none of them.
I think this is a technology dilemma that will never end: there is always a 'sexy' technology that everybody talks. And here is my advise: focus on learning the programming paradigms and the benefits of them, not just frameworks. If you are learning different languages, as you said, you are already in the right path, I think. The best job offer is the one which takes you as a programmer, and not as a framework specialist, so, for you will be a matter of time.
So you was in the exact same situation, and I think you are absolutely right, even if I don't know JS (yet!) If I'm good at programming I will find something interesting.