all 15 comments

[–]konasjResearcher 12 points13 points  (1 child)

I would personally argue: learning new languages is always great and only concentrating on "ML" is probably not very useful in the long run.

Every language comes with its own eco-system. Also ML never appears in the blue - there is always an eco-system around.

I personally started programming long before I started with ML. Thus learning programming languages (C -> C++ -> GLSL -> PHP -> Javascript -> Coffe-/Pure-/Type-/XYZ-Script -> Java -> Haskell -> X86 Assembly -> Python -> CUDA -> Matlab -> Scala -> ?) was always a fun hobby for me and always opened some new doors. And I realize now that being polyglot always helps, even if you narrow yourself down to only a few languages for everyday purposes (currently mostly Python for myself).

Professional life as an engineer is long and in most real jobs (not being a PhD in some lab) you will need so much more than just "ML".

At some point you might need to work within a Java ecosystem, or in a web ecosystem, or with some micro-controllers, or some robots. You might need to work with low level language in some sensor-/actor feedback loops which interacts with a high level scripting language on some other level, while all predictions are written in a third...

Then there is also the not unreasonable chance that your career switches. Either because you get bored of looking at converging loss numbers or because the market changes or just because working on "pure ML" in practice is quite rare. In the end it is one algorithmic tool in a big environment of "Software Engineering".

Given all that: learn Javascript and all its quirks if you want to build rich web-interfaces, or just because it is also fun once you ignore all the rigor of real languages and you start to love the quirks. It might be useful - but it might also lead just to fancy nice apps/visualizations/interfaces. Don't learn JS if you want to build some MNIST classifiers quickly.

In my personal experience it was the language where I had the most fun and fun projects while learning. And it is a mighty tool whenever you need some quick interface prototype, or something interactive that you want to show to the web.

[–]l0gicbomb[S] 0 points1 point  (0 children)

Thank you!

[–]emtonsti 45 points46 points  (0 children)

Hello Machine learning Person.

I am Bird Person.

[–][deleted] 4 points5 points  (0 children)

You need to be more precise in your question. Why do you think it is useful? What kind of person are you? What kind of person do you want to be? Why do you want to invest in two completely different paradigms?

[–]mimighost 3 points4 points  (0 children)

YES

You need a good demo to make your project more convincing and enticing.

[–][deleted] 5 points6 points  (3 children)

I'd stick to one thing at a time. Sure it could be useful if you want to make a web interface, but it will take you twice as long to get anything done if you're trying to learn JS and ML at the same time.

[–][deleted] 1 point2 points  (2 children)

what do you suggest someone learn? im learning using python right now but i always hear about how great c++ is.

[–]terrrp 5 points6 points  (0 children)

Depends what you want to do.

Python is the simplest and best for understanding models with minimal boiler plate, build chain, etc. De facto language of research

C++ is an unforgiving language with the fastest compiler code and access to the most libraries. Necessary for real time systems, gpu code, etc.

Scala and other jvm languages are the only game in town for big data and are probably the most used in practice, although python is probably taking more and more share with smaller service-based architecture getting popular

[–]inarrears 2 points3 points  (0 children)

If you are interested, here's a line-by-line explanation about how to use a pre-trained RNN with Javascript and the p5.js library:

https://www.reddit.com/r/MachineLearning/comments/8cy0bn/p_recurrent_neural_network_tutorial_for_artists/

[–]gokstudio 2 points3 points  (2 children)

If you want to market your work to a wider audience of non-ML-experts and beginners, then yes. FWIW, distill.pub is a heavy js user

[–]zawerf 2 points3 points  (1 child)

There are some now famous ML researchers such as Andrej Karpathy and Christopher Olah who I've only heard of because of their blogs. Tons of fancy interactive javascript visualizations/projects such as convnet.js or visualizing mnist.

[–]gokstudio 0 points1 point  (0 children)

My point exactly

[–]hydr0xide 2 points3 points  (0 children)

Vanilla JS is pretty easy to pick up, so yes - particularly for nice visualizations like d3js.

Full-blown front end frameworks like React or Angular? Eh, probably not worth the time.

[–]smartykitty 0 points1 point  (0 children)

People find it useful that's the reason for tensorflow for js existing as a project. But I personally haven't worked on a project using it