
Ask HN: How can a front-end developer dive into machine learning? - FahadUddin92
I am a Computer Systems Engineer who is good at front end development. I want to learn machine learning next. How can a front end developer utilize machine learning?
======
mrdrozdov
In Feb 2015 I quit my job as a front end developer to learn more about machine
learning.

First, I went through the Recurse Center, which is a 3 month program sort of
like a writing retreat for programmers. I learned a lot about Python and AWS
in that time, and got an internship as a data engineer.

In that Fall, I started a computer science master's. I've taken mostly courses
in machine learning including: Machine Learning Theory, Deep Learning,
Probabilistic Graphical Models, NLP, and GPUs. I've collaborated with two
professors on research papers, which has definitely been the highlight of my
degree although I definitely think the courses were necessary as I continue to
use the information that was covered.

Finally, I'll be starting this summer as a research engineer doing deep
learning! This process took me 2.5 years, but I feel very prepared for my new
role. It probably is possible to do this faster by joining a program like
Metis or Insight, which prepare you for data science like jobs w/in 3 months.
I would say that approach is slightly more challenging / high risk. If you
really want to go into machine learning, I'd say doing the degree is a more
surefire approach, granted it's more expensive in time and money.

~~~
jorgemf
I work in machine learning and I don't think a 3 months course is going to
transform you in a machine learning engineer. I think you need at least the
time you took. You need to learn the maths, statistics, etc. Apply those tools
to real problems, get some experience with different problems and techniques.
And, finally, be involved in some type of research. Because machine learning
is evolving so fast, you need to learn how to read a paper, how to understand
it, and how to apply it to your problem. I see no way to do everything it in 3
months. You need at least a couple of years and be lucky to find a job
related, so you put your first step in the industry.

And congratulations for you achievement and your bravery to quit the job!

~~~
AndrewKemendo
As a computer vision/ML applications engineer I disagree with this. What you
describe is someone who is actively implementing cutting edge tech.

That is VERY different than what 99% of people should be doing with ML which
is: Spinning up some K80s on Azure, installing TF/CUDA/OpenCL, pulling
existing pre-trained models off the shelf, and running inference on a novel
data set.

That's how you get into it as a garden variety dev.

Otherwise, go for the PhD if you want to actually make new stuff.

~~~
PeterisP
I would definitely extend this to running training as well, but I agree with
the concept - for most people, it should be either transfer learning to adapt
existing models to their data, or running training from scratch with currently
known best practice methods, NN architectures and hyperparameters, but doing
it on their particular datasets. Possibly by using mostly existing code and
modifying mostly the data input/output routines.

~~~
AndrewKemendo
I think you need a bit more competence to get into the training realm though,
because it's a bigger step to create a new model - especially the hard step of
data labeling.

Unless you have a novel data set and a way to quickly train you're probably
better off using existing trained models in most cases.

I agree with the transfer learning piece wholeheartedly though.

~~~
PeterisP
Data labeling isn't _hard_ , it's _labor intensive_ , which is an entirely
different resource. If the business goal is valuable enough, then a non-tech
manager without any special expertise can organize twenty man-months of grunts
to do the labeling, three man-months of cookie-cutter junior dev work for
tools of labeling and data management, and a single man-month of an external
consultant with proper expertise to write sensible guidelines on how the
labeling should be done and supervise the process. All of which will cost
something comparable to a the annual cost a single ML developer.

Training models often is tricky, but it's not _that_ hard, my experience shows
that decent undergrads learn to train standard models on their own datasets
after a single one semester course, and train quite difficult models after two
semesters; so teaching/learning basic ML takes comparable time and effort to
e.g. teaching/learning basic JS frontend development.

So if some company's IT department has some minimum ML skills, lack of
expertise shouldn't be preventing them from training models. And even more so,
using your own data (IMHO) is the whole point of adopting ML; if the problem
is _so_ generic that you don't need to adapt it to your data, then you
shouldn't be learning to use ML but rather buying and integrating a SaaS API
run by someone else.

~~~
AndrewKemendo
_it 's labor intensive_

Which is a form of hard...for example if you need 60,000 semantically labeled
images, you need to train people to know how to do that specific of labeling
and then have them do it, then QC the data, break it up into training and
validation sets etc...

Don't forget that this advice is for a front end dev who hasn't ever touched
caffe or torch or whatever. In many cases it takes new people a week to set up
drivers and an environment on a GPU.

------
3chelon
Your question says "utilize" machine learning. I was in the same position. It
struck me that rather than go off and try to catch up with half a century's
research, and contribute nothing, I'd be better off utilizing machine learning
in my front-end work.

So I have started using IBM's Watson platform, and some of Google's AI tools.
I was specifically interested in speech processing applications (I have some
background in signal processing and audio, which helps a little), and I've
found the Watson stuff particularly useful.

At the end of the day, if depends on your motivation. If you really want to
become a true expert, stop reading this and start studying. Otherwise, I think
there does exist a significant "gap in the market", as it were, to build
useful front ends to these technologies, which currently exist as raw APIs.

In terms of career prospects, I have already met several Watson consultants,
who do exactly that, and charge top dollar for it. The plain fact is, it
doesn't take very much to be considered an AI "expert" in the current climate.
And you're probably more likely to get there quickly by standing on the
shoulders of giants than by dedicating your life to a PhD.

~~~
luked22
I have no clue about Watson and Machine Learning, I mean I've talked to people
and quickly glanced at the platforms. But in terms of the speech processing,
does that not require any back-end at all? I'm assuming your using the
browsers API to capture sound and then passing this off to Watson in some
back-end method to analyze? Or can this seriously be done all fron-end? Pretty
amazing if so.

~~~
emsal
It's not that the actual ML computation is done client side -- that would be
way too slow. With Watson and many other ML platforms, you're leveraging
someone else's (IBM, Google, Microsoft, Amazon, etc.) computing power.

Some people have made javascript-based ML models to run in the browser (I
think some were made for this course[1]), but these are for educational
purposes rather than actual use.

[1]: [https://cs231n.github.io/](https://cs231n.github.io/)

------
qorrect
I am a long time developer who is trying to move into data science / ML.

What I've found after taking off for 12 months of self-study, is that it
quickly dissolves into _you must know math_. As far as I can tell, its take a
problem, map it into a vector space, then use the full power of mathematical
analysis on it .

There is a huge push by large companies to make AI as a service though, and
for that, you only really need to know how to use the APIs.

Which makes me wonder, why in hell have I done burnt through all my savings
for this. Sure I have a new found love for math, but I'm not going to be
accepted as a mathematician ever without the rigor of a formal education, and
if I just wanted to use APIs ... I could have continued to do what I was
doing.

~~~
bkyan
I'm a little confused -- how does learning math involve burning through
savings?

~~~
MichaelBurge
If you live in an expensive place like San Francisco, you burn through savings
by default without a job.

~~~
bkyan
Ah... I didn't catch the "without a job" part...

------
nogbit
I don't usually comment on HN but when I do...

Kidding aside, I've seen these kinds of posts so many times and I want to make
sure that for those that are thinking "strategically" about their profession,
career and passions then I would advise to buckle down with a good BS in Math
at a minimum (or CS).

But why? Im your older self telling you that you will grow to really really
like and enjoy programming, computers, tech etc. and may want to continuously
dive deeper. And when you attempt to do that it all comes down to Math. So
save yourself a ton of time and money and just do it, close all your browser
tabs, cobble together all your transcripts and get into a Math program (if you
already have, go get a MS in Math at a uni that has a strong CS program).

~~~
hello_newman
That's exactly how i feel. I dropped out of school at 19, taught myself to
code, went to a hack school, and have been working as a rails dev for the last
4-ish years. I realized I wanted to go into ML, and instead of trying to take
shortcuts, at 24 I enrolled in my local community college to finish a degree
in comp-sci. Looking at 8+ math classes (from Geometry to Calculus 3), but the
only reason why I'm doing it is because I believe it will be worth it in the
long run.

The only thing that sucks about it is all the GE classes I have to take before
I can even start my fun Comp-Sci classes.

~~~
Jackalopiate
Hey its me, your past. Really though, I'm currently 20 and dropped out of
school last year (GE's kicked my ass), and started working full time as a
prototyper. I know I am probably going to have to go back at some point, but
what really made you decide to go back? Was it for a higher payroll, or better
fulfillment?

~~~
hello_newman
I want to master my craft, and i believe the way to do that is to have the
application and the theory. being a rails + mobile dev teaches a bunch about
the application side of programming and I find it fascinating.

In terms of the age thing, I get it. At 19 I hated being at school because I
wanted to be making $20+/hour working on websites. But now at 25 and right
under 6-figures, I see that I can simply work during the day and then go to
school at night. It just means I have to do that for 4+ years. I started at
24, but I will not be done until I am 30. So, if I would have done it right
the first time, and not dropped out, I __might__ have been further.

I don't regret it tho. I rolled the dice and although I was trying to hit the
start-up lottery at that age (why I got into programming), I ended up on a
great career with incredibly valuable experiences that I would not have had if
I didn't drop out at 19.

8/10 would do again.

------
tinyrick2
Dan Shiffman created a Youtube playlist titled "Intelligence and Learning",
which might be a good place to start.

This is the link to his channel
[https://www.youtube.com/user/shiffman](https://www.youtube.com/user/shiffman)

~~~
ahamedirshad123
Siraj Raval and Dan Shiffman are THE best, when comes to teaching.

------
seibelj
A lot of bootcamp / self-trained devs went into front-end JS for the money.
Now that it's saturated, time to move onto the next buzz word. A foundation of
CS fundamentals will still be lacking.

~~~
allyelsey
You say "for the money" like it's a bad thing. A job is where you trade labor
for money, no need to foist anything else onto it.

~~~
seibelj
It's great to do jobs for money, I just think programming isn't something you
can pick up in an afternoon and be good at, like mowing lawns or making
sandwiches. I can't trust the journeymen for high tech jobs, maybe for editing
wordpress or something.

------
krosaen
I'm about a year into a transition from traditional software dev / engineering
leadership to ML / robotics engineering, starting with 6 months off of
personal study and now continuing study while on the job as a research
engineer. I wrote about my experience and give advice on how to approach
learning ML here:

[http://karlrosaen.com/ml/](http://karlrosaen.com/ml/)

------
scotty79
You can check out this guy:

[https://www.youtube.com/watch?v=h3l4qz76JhQ](https://www.youtube.com/watch?v=h3l4qz76JhQ)

[https://www.youtube.com/watch?v=2FmcHiLCwTU](https://www.youtube.com/watch?v=2FmcHiLCwTU)

His videos are pretty dense but if you know Python and some basic ideas about
neural networks you should be able to follow through.

I'm a plain dev, gone fullstack, gone frontend and it was pretty fun for me to
reproduce and get to understand what's happening.

------
laughingman2
[http://course.fast.ai](http://course.fast.ai)

Its hands down the best course to get your hands dirty with latest , state of
art stuff, and then learn how it works. It has completely different approach
to most courses. It is top down.

Do this first, you can immediately apply it to cool stuff like image
classification , nlp etc.

The assignments have additional resources where you can get into more detailed
math (but the course doesn't dumb things down, but gives more intuitive
explanations) and dive even deeper.

------
ransom1538
Hey honest question.

I have worked with ai and nlp guys. How i have seen this works out: there is a
problem x. They get the best most recent respected research on the problem x.
They implement it most of the time it's on (github).

If it doesn't solve the problem at hand they shrug their shoulders and say
something like "it is the standford nlp parser can't do better than that!"

the concept "getting into ai" \- I am confused. We need more people to git
clone ai repos? Or are these people truly interested in ai research - at that
point they should be looking at a phd.

Then people pile on: "learn how an nn works!" Uh why? Anyone can git clone and
setup nodes. I am missing something. Please help.

~~~
sseveran
So I have been doing what I shall call applied machine learning since I was in
college when I built an ad classifier for a web crawler I was building at the
time. I made the real transition while working in the search team of a web
company almost 10 years ago now.

Let me first say that I am unlikely to ever design a new novel algorithm like
an SVM kernel. I have however studied ML theory extensively and have a good
grasp of the underlying math. I also had the advantage of working in medical
research starting in high school and even before college I had learned a lot
about statistics and was comfortable using a tool like SPSS to perform ROC
analysis as well as gaining a solid understanding of what real statistical
rigor was.

I, and those I know and work with, do a lot more than clone some repos from
GitHub and see if they work. Typically there is some sort of a business
problem that needs solving. Sometime we know of an approach that will work but
often there is a literature survey that needs to be conducted to see if anyone
has solved a similar enough problem and written about it. I am comfortable
reading ML/NLP literature and evaluating the methodologies described. Often
there is some open source stuff to get us started but rarely (I can't think of
any, but its early in the morning) have I been able to put together a complete
solution without solving some difficult problems on my own.

If I were to give someone advice it would be probably not the advice that they
would want but here goes. I assume that the person would already have a solid
mathematical foundation like engineering calculus. 1\. Start by getting solid
foundation in statistics and probability. 2\. You will need a foundation in
linear algebra. 3\. Find a mentor(s) that can help you with both the
theoretical side of ML and the applied side. In my case they were different
people. 4\. Implement some learning algorithms from scratch. I build a NN
library a long time ago. I never used it in a production application but the
learnings it gave me are still invaluable. 5\. Read the research. You need to
feel comfortable picking up a paper, understanding it, and evaluating whether
you should believe the authors or not.

Maybe there are shorter roads. Personally I don't believe so. I was lucky to
be paid to learn these skills through my career. I am sure there are people
who are smarter than me or who can just learn by reading. I learn by doing.
But this has led to success for me and I think gave me the ability to succeed
in different environments, using different technologies, and long before the
entire world was so enamored with deep learning.

~~~
a1exyz
do you have advice on whether it is worth going back to school if your goal is
to build novel and useful software/ai tools using deep learning - not
necessarily improving the algorithms themselves. Would you expect to still
need those 5 things you listed as advice.

------
ojr
[http://www.fast.ai/](http://www.fast.ai/) is a mooc, Coursera is a mooc that
has courses on the topic also there is udemy, the knowledge you retrieve
depends on the effort you put in, just like front end development

------
intellectronica
I did Udacity's Deep Learning and Machine Learning courses and found them to
be a really great introduction, and enough for me to continue on my own. I'm
not a front-end dev, but also definitely not a mathematician or computer
scientist. You should be able to learn enough to do some cool stuff.

\- Make sure you know Python well - pretty much everything interesting in ML
is in Python. If you already know JS this shouldn't be too difficult.

\- Learn you some classic ML using scikit-learn and some online course.

\- Learn Deep Learning using TensorFlow, Keras and/or PyTorch with one of the
online courses.

\- Get in the habit of reading new papers in ML (which are out on a daily
basis) and replicating the results.

\- Start working on some cool, original stuff.

~~~
reticentraccoon
From where to get the latest papers?

~~~
kiril-me
Cornell University Library [[https://arxiv.org/](https://arxiv.org/)] has a
lot of publicly available papers. You need to find the domain that you are
interested in and start looking. Usually, papers describe relative works and
state of the art algorithms. So you can start with one algorithm and go deep.

Books:
[https://medium.com/iambot/tagged/books](https://medium.com/iambot/tagged/books)

Also, you can join communities.

[https://deeplearningstudies.slack.com](https://deeplearningstudies.slack.com)

[https://www.facebook.com/groups/1892696574296664/](https://www.facebook.com/groups/1892696574296664/)

------
nerdponx
How can you utilize it? It's not "front end" per se, but you can use it to
build recommendation systems and predictive models for users. Basically,
anytime you need or want to make a decision involving some amount of
uncertainty.

------
autokad
it depends if you want to be a data engineer (lots of need for that), software
engineer that developers code for data scientists (Software Engineer: Machine
Learner - also lots of demand), or a data scientist.

the latter, 'might' be a challenge. I started looking into linkedin profiles
of data scientists of top tech companies after I realized there were more
wharton mba's as data scientists than there where people who mastered in CIS
in my program.

So far, 50% had a masters/phd in statistics, 25% Information / Data Science,
25% business background. However, I am still looking into it as my sample is
small and I have selection bias in my sampling.

~~~
potatoyogurt
That's probably because "data scientist" isn't a job description, it's a
trendy title for a whole constellation of jobs that involve looking at data. I
would expect that the Wharton grads are probably doing work that is
fundamentally different from most people with hardcore academic stats
backgrounds.

~~~
mrdrozdov
I think this sentiment is roughly correct. It's basically the same for
programmer as there are many jobs that involve programming. Note that data
science doesn't necessarily mean machine learning, and there are lots of data
scientists who do powerful work with stats that doesn't involve anything that
looks like ml.

The jobs for people working in machine learning tend to fall into: software
engineer (machine learning), research engineer, and research scientist.

Yann LeCun has an excellent Quora Q&A where he delves into the differences of
the roles. I do not have the link on hand but it is probably easy to find.

------
master_yoda_1
Just like you use socketio api without knowing about tcp ip or network routing
protocols. You can treat machine leaning as an api which does things. You
don't need to take a machine leaning class. Just treat it as an api.

And you never know, you might be already using some api which does machine
learning.

------
kunashe
Check out this excellent walk through by Per Harald Borgen:
[https://scrimba.com/casts/cast-1980](https://scrimba.com/casts/cast-1980)

~~~
niix
This is great.

------
ronreiter
One word: [https://www.coursera.org/learn/machine-
learning](https://www.coursera.org/learn/machine-learning)

~~~
iamjk
That isn't a word, per se bruh.

~~~
ice109
per se: in and of itself as such: exactly.

you meant as such.

------
RangerScience
I literally just grabbed the last (at the time) machine learning paper that'd
crossed my feed, and started reading.

Whenever I encountered something I didn't know, I googled around until I had
even a vague idea.

That said a) I don't know how do-able that would have been without the math
background I've already got, and b) I haven't gotten much further in that
reading that one paper ...yet.

Regarding the math - The only thing I know for sure to point you at is
multivariable calculus, which is also (probably) the most useful math class I
ever took. (It helps that the teacher was completely amazing). The set of
concepts it introduced me to are amongst the most useful things I ever
learned, and it's that understanding that has always given me a leg up on
jumping into things at the deep end.

(I took multivar from UC berkeley in, I think, spring 2002? I went looking for
video lectures, but did not find what I was looking for...)

------
kiril-me
Cornell University Library [[https://arxiv.org/](https://arxiv.org/)] has a
lot of publicly available papers. You need to find the domain that you are
interested in and start looking. Usually, papers describe relative works and
state of the art algorithms. So you can start with one algorithm and go deep.

Books:
[https://medium.com/iambot/tagged/books](https://medium.com/iambot/tagged/books)

Also, you can join communities.

[https://deeplearningstudies.slack.com](https://deeplearningstudies.slack.com)

[https://www.facebook.com/groups/1892696574296664/](https://www.facebook.com/groups/1892696574296664/)

------
anant90
I'm a front end developer who was in a similar position as you! I'd highly
recommend giving this playlist a shot:
[https://www.commonlounge.com/discussion/81f5bbcfea4e44b9b2bd...](https://www.commonlounge.com/discussion/81f5bbcfea4e44b9b2bd081d1ea536ac/main)

From the description: These tutorials have been chosen to maximize learning
curve, i.e. learn the most in the shortest amount of time and cover topics
from basic deep learning all the way to research done within the last 1 year.

They cover significantly more material than a typical deep learning course and
took me lesser time. Good luck!

------
sn9
Check out metacademy for some roadmaps that address precisely this question:
[https://metacademy.org/roadmaps/](https://metacademy.org/roadmaps/)

------
mooreds
I would suggest running through a tutorial or two using one of the hosted
machine learning options (Amazon has one I am working with right now).

This will let you focus on the essence of machine learning (data gathering and
cleansing, interpretation) rather than the mechanics. The gathering of data
and building of intuition about results are by far the hardest parts of
machine learning, in my experience and reading. This is especially true if you
are just getting started.

Plenty of time to focus on the mechanics later.

(Full disclosure, I am working on a ebook about Amazon machine learning link
in profile.)

------
Pigo
I'd recommend looking into Azure's offering if you want an environment that's
already setup, free to play with, and has some tutorials and templates
[https://azure.microsoft.com/en-us/services/machine-
learning/](https://azure.microsoft.com/en-us/services/machine-learning/)

If you want to get more hands on, I'd look into Tensorflow. You can search
github for popular projects using it to get some ideas. I haven't played with
it in awhile.

------
jugjug
Find a company with a data-science department, which needs engineers to
industrialize their proof-of-concepts (POCs). The POCs might often include
front-end work. Once you are in, learn machine-learning on the side and try to
transition into a machine-learning role.

EDIT: On top of it, if software engineering is your strength (testing,
automatic deployment, etc), data-scientists will also benefit, since you can
show them how to professionally develop a sw product.

~~~
mooreds
I have a friend applying for a job doing just this: being the software
developer to help the data science folks operationalize their models.

Not sure how applicable this is to a straight up front end developer, though.
I would definitely suggest learning Python if you head this route. R would be
good as well.

------
lngnmn
The Andrew Ng's course on coursera. Then some Udacity.

------
JaviLopezG
It don't answer you but it is related in some way. I saw some days ago a js
library to implement neural networks. I didn't dive in it but it looks like
something to do simple things on browsers
[https://synaptic.juancazala.com/#/](https://synaptic.juancazala.com/#/)

------
bkanber
I have a slightly older article series on Machine Learning in Javascript,
teaching algorithms assuming only JS knowledge:
[https://www.burakkanber.com/tag/ml-in-
js/](https://www.burakkanber.com/tag/ml-in-js/)

------
ahmedbaracat
I can't recommend [Practical Deep Learning for
Coders]([http://course.fast.ai/index.html](http://course.fast.ai/index.html))
enough. I am going currently through it and it is extremely educational and
practical.

------
boraturan
I have couple of links here. [https://medium.com/@boraturant/ai-ml-dl-
links-5cf596fd29a1](https://medium.com/@boraturant/ai-ml-dl-
links-5cf596fd29a1)

------
rojobuffalo
Hey, I'm in a similar boat. Is your motivation more curiosity or career-
related? Do you really like front-end code? I'm finding that it's an easier
path to get into ML through conversational UX.

------
jzig
Related question: If I only had an MIS undergrad degree (some 200 level stats
and no other math) and wanted to get into machine learning what kind of math
courses would I need to pick up to become proficient?

~~~
2_listerine_pls
> what kind of math courses would I need to pick up to become proficient?

look ML courses and their prereqs.

------
mythrwy
A front end developer can most easily jump into machine learning by reading
the docs for a machine learning API then querying it. Won't take years and
years and no PhD needed either.

------
cocoalasca
have not finish it but it seems good, you could check it out, this tutorial
uses processing for teaching neural networks and it relays on processing's
graphic feedback to visualize what is happening
[https://medium.com/typeme/lets-code-a-neural-network-from-
sc...](https://medium.com/typeme/lets-code-a-neural-network-from-scratch-
part-1-24f0a30d7d62)

------
niix
Anyone here have any good book recommendations?

~~~
ardivekar
I found "An Introduction to Statistical Learning with applications in R" to be
very useful.

------
Mikeb85
Learn statistics...

Generally speaking though, it's easier to go from maths/stats -> programming
than the other way.

------
geebee
There are a few ways to go about this.

One is very programmer heavy. There's a lot of data processing that goes into
machine learning, but you can't quite separate the two. Often, the programmer
who prepares and processes the data needs to write the code that actually runs
the model and parses the result, and this means you benefit from more
understanding of machine learning. That role is most likely the best one
available to programmers who don't have much mathematics background in this
area.

To really get into machine learning itself as a data scientist, though... I do
think it requires some math. There's a reason a large percentage of people who
work in this field have an MS or PhD in a very quantitative field. And I don't
just mean algorithm designers - to really be able to explain the difference
between naive bayes, random forest, neural nets, and logistic regression, it
helps enormously to have a background in math.

To illustrate this, I've taken two coursera courses on data science. They were
both excellent, but approached from different angles. Bill Howe's data science
class involved an exercise to use a random forest to do some classification,
but the focus was on calling the scikit-learn library. We did of course review
the algorithm, but not in mathematical depth.

Andrew Ng's course on machine learning got into implementing the algorithms
(with a language called Octave, which honestly I didn't like much, but that's
a completely different topic where plenty of people would disagree with me).
To do that class, honestly, I'd just ask if the terms "vector calculus",
"matrix of second order partial derivatives" or "logistic function" mean
something to you. It's ok if you can't define these things on the spot, but
was there a time when you could? You can get up to speed, but I'd say if you
haven't taken basic calculus through differential equations (with linear
algebra), then you won't be able to understand this material.

I've been impressed with how well people learn on their own, picking up a lot
of math as they go along. And I don't think you need to be able to implement
these algorithms yourself to use them meaningfully. But if you're going to be
deciding what kind of model to use, even if you're using libraries to do it
(and most people who can implement these algorithms would still use a
library), I think that you do need to be able to describe how a neural net
work vs random forests vs logistic regression vs naive bayes. There is a side
of this that is very math-y as well.

On the bright side, we live in an era of amazingly available learning
material. I personally think a dedicated person can probably learn calc,
linear algebra, and differential equations through web-based coursework now.

SO overall, I'd say - start on the data side as much as possible, leveraging
your programming skills. While doing this, keep getting more exposure to ML
algorithms, and make sure you are taking a coursera or other web-based class
on the side.

------
erikb
face first, feets pushing

------
rsrsrs86
If you really want to learn machine learning you should pursue a PhD. You
might be able to do very simple stuff and follow tutorials because there are
very high level tools around, but to really know what's going on and how to
use it to produce new products and services, you need to master it properly.

~~~
davis
This is not true and harmful to the progress of the field:
[http://www.fast.ai/2017/03/17/not-commoditized-no-
phd/](http://www.fast.ai/2017/03/17/not-commoditized-no-phd/)

~~~
rsrsrs86
Well the article builds around a very superficial view of ML.

If you want to do simple recommendation systems or spam filters than O.k.
Those are solved problems, hence commoditized.

If you want to build novel things, you really need academic-grade ML.

If you want another argument, I came from working in VC and startups, and they
think they understand ML. Boy, they really don't. They are like kids
pretending to play a guitar that can't strike a single chord right.

~~~
dalbasal
Different approaches suit different people and PHD is a relatively specialized
route. It's good to have people targeting similar goals with different
approaches.

For an anecdote, I recall hearing one of the Kaggle founders mention that many
of their bounties are won by non-statisticians/ML-ists. Producing novel (in
the academic sense) stuff is unlikely outside of an academic setting, but
producing products or solving problems is do-able.

Edit/comment: no need to downvote rsrsrs86 people. He's putting forward a
position and defending it, not trolling. If you disagree, then disagree. The
whole point of a thread like this is hearing people's take. Surely, PHD is a
valid suggestion.

~~~
rsrsrs86
Kaggle competitions are very restricted in the sense that they are supervised
learning problems. This typically results in applications in analytics. This
should o.k. be easier to get into.

But ML can do much more than analytics., and much more than supervised
problems. And the great problems to be solved are not supervised problems.
They involve learning as you go, without a clean database with examples to
learn from. They are adaptive problems.

You might optimize prices in an online retail player by trying to estimate
supply and demand curves, but you will fail, and the best way to do it is not
much different than teaching a neural network to play video games, but is
fundamentally different from supervised learning and regressions.

ML can do self-driving cars, it can build drones that learn to fly, it can
translate horses to zebras, it can play defeat humans at Go, it can make
guitars sound like pianos.

There is a lot of technique and theory into framing any problem as a problem
that can be solved by machine learning. Machine learning is generally not
feasible unless you restrict the problem properly.

------
throw_fraud_dev
For starters, what's your math background like? If you're interested in
seriously pursuing ML theory, I'd recommend having at least 2 semesters of
stats and 1 semester of linear algebra fresh under your belt. Don't short
change yourself here, because any remotely advanced material will be
incredibly frustrating (aka constant backpedaling) without the requisite math
intuition.

One approach might be to tackle a MOOC like Andrew Ng's coursera offering
(which isn't very math heavy) while simultaneously brushing up on your stats
and linear algebra (mostly stats tbh). Even if you end up just focusing on
implementation, I think this will be time well spent.

