DEV Community

Harvey
Harvey

Posted on • Updated on

Javascript

Top comments (59)

Collapse
 
perrydbucs profile image
Perry Donham

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.

Collapse
 
elarcis profile image
Elarcis

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.

Collapse
 
kinnat profile image
Kinna

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).

Collapse
 
escobardrake profile image
Harvey

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 !

Collapse
 
marcegarba profile image
Marcelo Garbarino

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.
Thread Thread
 
erebos-manannan profile image
Erebos Manannán

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.

Collapse
 
fezvrasta profile image
Federico Zivolo

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).

Collapse
 
peters profile image
Peter Schussheim

Agree 100% with Perry.

Collapse
 
danhomola profile image
Dan Homola

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).

Collapse
 
ben profile image
Ben Halpern

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!

Collapse
 
escobardrake profile image
Harvey • Edited

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

Collapse
 
ben profile image
Ben Halpern

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.

Thread Thread
 
erebos-manannan profile image
Erebos Manannán

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.

Collapse
 
briedis profile image
Mārtiņš Briedis

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.

Collapse
 
escobardrake profile image
Harvey

Vanilla JS? Never heard about it, I will do some research thanks

Collapse
 
briedis profile image
Mārtiņš Briedis • Edited

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

Thread Thread
 
larrybotha profile image
Larry Botha

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 :)

Collapse
 
caseywebb profile image
Casey Webb • Edited

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

Collapse
 
evantbyrne_38 profile image
evantbyrne_38 • Edited

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.

Collapse
 
caseywebb profile image
Casey Webb

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.

Thread Thread
 
evantbyrne_38 profile image
evantbyrne_38 • Edited

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.

Thread Thread
 
caseywebb profile image
Casey Webb

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.

Thread Thread
 
caseywebb profile image
Casey Webb

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.

Thread Thread
 
evantbyrne_38 profile image
evantbyrne_38 • Edited

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.

Collapse
 
fezvrasta profile image
Federico Zivolo

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.

Collapse
 
lluismf profile image
Lluís Josep Martínez

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.

Collapse
 
caseywebb profile image
Casey Webb • Edited

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.

Collapse
 
olivedev profile image
olivedev

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.

Collapse
 
lluismf profile image
Lluís Josep Martínez

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.

Collapse
 
evantbyrne_38 profile image
evantbyrne_38 • Edited

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.

Collapse
 
fezvrasta profile image
Federico Zivolo

cough cough GraphQL cough cougghhh

Thread Thread
 
evantbyrne_38 profile image
evantbyrne_38

What about it?

Collapse
 
troch profile image
Thomas Roch

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?

Collapse
 
escobardrake profile image
Harvey

Oui ! It's still the case, like I said it's all about C++/Java

Collapse
 
danielsarmiento profile image
Daniel

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.

Collapse
 
polyov_dev profile image
Evan Derby

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.

Collapse
 
sir_wernich profile image
Wernich ️

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.

Collapse
 
caseywebb profile image
Casey Webb

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.

Collapse
 
clerton profile image
Clerton Araujo

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.

Collapse
 
escobardrake profile image
Harvey

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.

Collapse
 
shauntheroya profile image
Shaun Daroya

I was in the same boat a year ago! University thought basic programming and applied theories on C/C++,Java. As A student, HTML/JS sounds like kids work because we had those even back in highschool so no one really used JS to build their school projects.

I had to learn Angular 1 last year to actually be useful to the company business. I use some of my free time to checkout React and Angular 4. One day, I will read ECMAScript documentation to the heart! maybe.

Collapse
 
jheroje profile image
Javi

Don't fear javascript. It has gained a lot of (IMHO) undeserved hate, just by people pretending/forcing it to be more like other languages instead of embracing the simplicity and power that it has. You can do almost anything in JS fairly well from web, desktop, mobile, games to drones. Also, people don't like all those boiling frameworks and tools but I sincerely love the fact that is a language always improving and with lots of things to do. If Netflix can run full JS, almost any idea you'll think could.

Collapse
 
c0il profile image
Vernet Loïc

What was really frightening was 10 years ago and maintaining JS code for the %$`$ IE6 (ie6death.com/). Now things are getting better so don't be afraid! :)

Collapse
 
agazaboklicka profile image
Aga Zaboklicka

Don't worry too much about feeling a Junior when you're just a 3rd year. The more you know, the more you see you need to know. In a vast sea of Software Development, it's much more important to get the main principles first. Afterward, you can pretty much adjust to any new language/framework in a reasonable time - provided you understand the basics. (Maybe switching from object oriented to functional can be slightly more challenging since it requires a different approach but it's still same ol' programming.) The technology changes so fast that when you finally start working there may be completely different frontend framework or technology worth learning, so it's better to fully understand the language. When you'll understand JavaScript properly there's a short way to understanding other JS based technologies/frameworks.

Collapse
 
sir_wernich profile image
Wernich ️

i love javascript. and yes, there are a billion or more frameworks to pick... but start off with learning just the plain javascript before tackling the other frameworks. it's a lot like going straight to mindstorm lego before playing with duplo. hahaha!!

but seriously, javascript has se seriously quirky features, but as soon as you get thise figured out, you'll be able help anyone with "this". :)

i'm currently watching a video lecture series on nodejs by a guy called anthony alicea (on udemy) and he's really explaining the javascript fundamentals well. he does a course on plain js as well (understanding the weird parts) and i've liked the few videos i've seen.

tl;dr:
my suggestion: learn plain javascript and once you can make loops and popups and do stuff with the webpage, go for jquery. it's a really great framework and is still in use a lot (we use it at work - a decision they made because everyone knows it).

good luck!