Live data from Hacker News

Ask HN: How can a front-end developer dive into machine learning?

news.ycombinator.com

131–140 of 154 posts

Re: Ask HN: How can a front-end developer dive into machine learning?

#131

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 should…

From where to get the latest papers?

Cornell University Library [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

Also, you can join communities.

https://deeplearningstudies.slack.com

https://www.facebook.com/groups/1892696574296664/

Re: Ask HN: How can a front-end developer dive into machine learning?

#132
Cornell University Library [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

Also, you can join communities.

https://deeplearningstudies.slack.com

https://www.facebook.com/groups/1892696574296664/

Re: Ask HN: How can a front-end developer dive into machine learning?

#133
post #119

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, t…

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…

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?

Re: Ask HN: How can a front-end developer dive into machine learning?

#134
post #119

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, t…

[deleted]

Re: Ask HN: How can a front-end developer dive into machine learning?

#135

Earlier quoted context omitted.

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 va…

You are missing a lot of things that you don't know. If you want to do machine learning at some point you have to train a model. You need to know how to clean the data, how to create the train/validation/test set, how to measure how good your model is, how to compare to other models you trained previously. If the model is not performing correctly you need to know why. You need to know the trade offs between precision…

If you're trying to build or train new models then you probably need to go to school for ML or at least math.

The garden variety dev shouldn't be trying to implement a research paper or train new models - that's the point. There are enough proven tools out there to do good work and more are being put out there every day.

Re: Ask HN: How can a front-end developer dive into machine learning?

#136

Earlier quoted context omitted.

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.

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…

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.

Re: Ask HN: How can a front-end developer dive into machine learning?

#137

Earlier quoted context omitted.

I think 8 years of experience plus solid references and projects speaks for itself. It's a resume that lists a 3 month boot camp, a github full of forked projects with no original commits (plus the obligatory ToDo app in rails), Senior Software Engineer title, $100k salary demand, leaving their first professional programming job after 6 months, can't speak knowledgeably about basic shit like IPC. I don't... have time…

Posts like this definitely give me a nice flare-up of imposter syndrome. Had not heard the acronym IPC. So I guess I don't even know basic shit. As a bootcamp graduate, what do you want me to ... do? I can't go back in time and major in CS. My employer is satisfied with my work and I build things I'm asked to build independently. Should I give up a startup salary, inflated as it may be, and ship myself off to a CS mo…

Don't worry about it. Keep working and learning and focus on doing great work that makes people happy. As long as you take the time to learn why something works, rather than just cutting-and-pasting from StackOverflow, you'll be fine.

Frankly, the recommendations @seibelj is making are in a particular niche--OS fundamentals--and one that I'm guessing makes him feel smart knowing about. But they aren't necessarily relevant to you, or important to know. It depends on what you work on. Some people have trouble realizing that their pet interview question isn't actually as universal as they think it is.

PS: IPC is "Interprocess communication," and it's how you can have multiple processes coordinate with each other. You may have heard of pipes or sockets--those are for IPC. (Technically, so are files.) If not, don't worry about it. I have over 20 years' experience as a professional developer and while IPC primitives like pipes and sockets have come up from time to time, it's hardly central to my work.

Re: Ask HN: How can a front-end developer dive into machine learning?

#138

Earlier quoted context omitted.

Posts like this definitely give me a nice flare-up of imposter syndrome. Had not heard the acronym IPC. So I guess I don't even know basic shit. As a bootcamp graduate, what do you want me to ... do? I can't go back in time and major in CS. My employer is satisfied with my work and I build things I'm asked to build independently. Should I give up a startup salary, inflated as it may be, and ship myself off to a CS mo…

Don't worry about it. Keep working and learning and focus on doing great work that makes people happy. As long as you take the time to learn why something works, rather than just cutting-and-pasting from StackOverflow, you'll be fine. Frankly, the recommendations @seibelj is making are in a particular niche--OS fundamentals--and one that I'm guessing makes him feel smart knowing about. But they aren't necessarily rel…

Thanks for the very nice words. I realize, while still learning and progressing, at this stage in my coding life I'm an electrician, not an electrical engineer. Which can be ok - the world needs electricians too.

Re: Ask HN: How can a front-end developer dive into machine learning?

#139
post #71

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 Lea…

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 le…

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

Thanks!

Re: Ask HN: How can a front-end developer dive into machine learning?

#140
post #71

Earlier quoted context omitted.

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 le…

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 va…

I think there are good points here!

> Spinning up some K80s on Azure, installing TF/CUDA/OpenCL

I think a single k80 instance is roughly ~$1/hr. If you had an experiment running 24hrs a day for a year, you'd spend a little over $8.5k. You can build an equivalent desktop machine for less than $2k [1], which might be slightly more convenient (once it's built), although I haven't really factored in energy costs.

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

Btw, you don't really need a GPU to start learning about deep learning. You can train a SotA modal on MNIST using Caffe I think in roughly 10m on CPU (maybe 1m on GPU). You can also train a reasonable sentiment classifier or natural language inference classifier in less than an hour on CPU. My perception is that these types of tasks are really solid for someone who is beginning to learn about machine learning or deep learning, as they'll provide a playground to mess around with different optimization techniques (SGD v. SGD+Momentum vs. Adam vs. etc), regularization (L1, L2, dropout, batch norm, etc), data augmentation, error analysis, and so on. If you do an ML interview for an entry level position, chances are these are the types things they will ask about.

I guess deploying ML solutions for a company you are working at is a different story.

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

There's some truth to this! PhD (like a Master's) probably doesn't make sense most of the time as a dollar-efficient career move. Rather, it's something you should pursue if you find being in an academic environment personally satisfying. You definitely don't need to be in a PhD program to work on new stuff (although it might make things easier because you will hopefully be surrounded by lots of fresh ideas). I've heard about people in bootcamps working on novel research. Now that so many powerful tools are open source and easy to use (Pytorch, Tensorflow, etc.), it's pretty easy for anyone to put together a novel model.

[1] pjreddie.com/darknet/hardware-guide/

Post reply on HN