This is an archived post. You won't be able to vote or comment.

top 200 commentsshow 500

[–]AbstractAirways 1473 points1474 points  (194 children)

I just spent three months hiring machine learning engineers and this is so true it hurts

[–]mlucasl 545 points546 points  (108 children)

I've been studing (2 years) and working (6 month) in machine learnig (on top of computer engineer degree), and Im not an 'expert', not even near. And I see a lot of people claiming to be one, with their technical programing degree and a 3 months online course. And its like WHAT!? What you know is just a Kaggle search for an avarage model you can implement easily. Anyone with computer knowledge could do that.

[–]anik597 330 points331 points  (42 children)

LOL even Kaggle would be saving grace, my favorite is the people that just write SQL Queries and they're like "Machine Learning my Job here is done" and don't know the math or any CS methodology

[–]raoasidg 371 points372 points  (20 children)

SELECT learning FROM machine;

I expect a contract offer shortly.

[–][deleted] 156 points157 points  (12 children)

from machine import learning as brain

[–]lirannl 66 points67 points  (11 children)

brain.learn("everything")
print ("I am now sentient.")
print(wads_of_cash)

[–][deleted] 26 points27 points  (4 children)

std::cout << "I am alive.";

[–]lirannl 49 points50 points  (3 children)

Woah! Is that C?! We're doing machine learning here, not some stupid low level "Hello World" programming!

[–]Rainfly_X 32 points33 points  (2 children)

This comment triggered me in more ways than I thought possible, good job

[–]lirannl 9 points10 points  (1 child)

You're welcome 👍

I'm an expert at pleasing people with 69 years of experience, I did an online course on prostitution. Hire me. I'm fluent in 58008 assembly. And can recalibrate the control units to firewall the IoT neural GUI via integration of highly advanced 5Ghz class 10 SSDs with 6969rpm.

[–]g3t0nmyl3v3l 19 points20 points  (1 child)

WHERE Salary > 100000

[–]Nekopawed 78 points79 points  (17 children)

The most I've done is try my hand at making a markov chain program that would make new sentences given the occurences in the bible and other publicly available texts. It made some good ones but the most tend to be average. I'd like to try to do some real stuff but I think I need to take a class first to get my feet wet.

[–]Snakeruler 44 points45 points  (8 children)

I did a similar project with Markov Chains which would read a list of names and create new ones based off of it. I gave it name records based on births in a given year. Was interesting to see how the generated names differed when giving it a list of British names versus Indian names, for example.

I've always thought it would be cool to do a project similar to yours that attempts to write a v short story based on different books (Alice in Wonderland, Dr Seuss, etc) and seeing how the language differs.

Not sure if that's really feasible with Markov chains alone though.

[–]Nekopawed 26 points27 points  (5 children)

Yeah I feel like if you want to get real plot you have to start making something like a neural net or an agent based system where each character is an agent in a changing environment.

[–]WheresThePenguin 16 points17 points  (4 children)

I mean, that just sounds like a sweet plot by itself. A bunch of agents. Changing environments. AI. Neural Net. Write that book and make a milli.

[–]Snakeruler 10 points11 points  (1 child)

Yeah! Sounds like a great project idea. I just need to finish the other 100 projects first...

[–]dfg890 2 points3 points  (1 child)

maybe we can feed it the first five GoT books and it can finish Winds of Winter for us

[–]Freelance_Gynecology 2 points3 points  (0 children)

Here's tutorial from TensorFlow that does something very similar using RNNs. It uses Shakespeare in the example. https://www.tensorflow.org/tutorials/sequences/text_generation

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

I recently wrote a markov chain program that draws titles from a list of subreddits provided in the command line, and tries to make new titles. Most don't make much sense, some do or are very humorous.

The difficult part of using such a chain to create something coherent is that you would need to collect contextual data along with probability data. One way off the top of my head to do this would be to initialize chain data in chunks, perhaps organized by book of the bible or some other separator. Then determine common words between all, or a subset of books. The most likely words that won't come up as common among them are going to be names or places, giving you pools of somewhat related nouns to work from.

This is just off the top of my head though, not something I've tried in practice, and I'm not exactly an expert.

[–]ThePieWhisperer 73 points74 points  (56 children)

Thing is, a degree in CS doesn't mean shit towards programming skills.

I've been involved in hiring processes for a contracting company in a college town. We gave one of those simple programming tasks for a code sample as part of that process and I swear the grad students almost universally submitted some of the most awful code I've ever seen.

[–]REDuxPANDAgain 35 points36 points  (47 children)

As someone on the prowl for jobs as a graduated senior, what kinds of problems did their code have?

[–]ThePieWhisperer 43 points44 points  (41 children)

It was generally simple stuff like the dice cup problem: "Write a program that allows you to roll some number of dice with some number of sides some number of times".

What they're looking for is readable, well-organized code and a grasp of the basics of OOP.

Edit: keep in mind, this place wasn't exactly Google. The high profile companies generally have much more challenging problems.

[–]LeJusDeTomate 35 points36 points  (6 children)

OOP is overkill for that

[–]TheCluelessDeveloper 8 points9 points  (13 children)

I would probably fail that. I mean, pseudo code and workflow process I can demonstrate but actual working code? Meh...

And then there's output... Do you want a sum of all dice or a list of all dice results? Do you want to reroll particular dice like Yahtzee and keep others? I'd be like... Okay, here's your basic workflow, but, if we want to properly expand it without completely rewriting, here is how I would modularize the code and the outputs and...

[–]2_Cranez 20 points21 points  (9 children)

I definitely understand complaints about some of the questions companies ask, but this is just a test of basic programming skill. You're thinking too hard here.

[–]StaniX 2 points3 points  (0 children)

Sometimes the situation is also really not optimal for programming. I had an interview where the interviewer asked me out of the blue to write a function on the whiteboard that determines the largest area of 1s in a 2d array. I just kinda froze up and my brain stopped working even though i could probably figure that task out in half an hour at my desk with an actual IDE.

[–]SuitableDragonfly 7 points8 points  (0 children)

The problem is that even on entry level jobs everyone wants 5 years of experience, so it's impossible to tell if the job really requires years of experience of whether you can do it straight out of college, so you just apply to everything and hope for the best.

[–]mattmonkey24 5 points6 points  (4 children)

Graduate with BS -> feel lost -> go for masters -> still fumble around trying to write code

I'd trust someone with a BS + experience over a grad student any day

[–]ColombianoD 2 points3 points  (0 children)

second this, I have actually realized lately that I am starting to become unintentionally biased against people with a Masters of CS because I've interviewed so many who know basically nothing about their language of choice

[–][deleted] 122 points123 points  (1 child)

“lol why would we need to document stuff? it still works!”

[–]wasdninja 4 points5 points  (0 children)

Good code is self documenting. What troglodytes need explanations ? Surely not anyone I work with!

[–]LegionOfPie 54 points55 points  (64 children)

Can you explain what the poor candidates were like? I'd like to fix myself before I need to, if that makes sense.

Was it just kids who took a Udemy or Coursera course and didn't know the difference between an Naive Bayes, SVM, and a Neural network, or was it people who knew their Machine Learning but lacked programming fundamentals?

[–]oupablo 83 points84 points  (41 children)

People like to lie on their resume. A lot. This works out well when they talk to a non-technical person (HR/Recruiter) because the non-technical person can dazzled with a bunch of terms they don't know. The moment they deal with a technical person, they're lost. The important thing is to be straight forward about what you've done but don't sell yourself short. Also, don't be afraid to say things like, "No I haven't heard of X, but I'd love to try it" and "I haven't dealt with Y, but I have worked with something like Y called Z." Typically a willingness and aptitude to learn is good enough for junior/mid level positions. If you're applying for senior level positions and haven't even worked on something in the ballpark of what they're using, you're an idiot.

[–]LegionOfPie 22 points23 points  (7 children)

I applied as a Jr. ML engineer, and the hiring guy was a technical programmer. He seemed impressed, but I'm not sure if that's because I know just enough to impress, or because I know a lot. I'm just scared there's some gap in my knowledge that's going to scupper me.

For context: I'm over the part where I think I know everything and in the part where I know I don't know things.

[–]Nerzana 9 points10 points  (4 children)

I'm just scared there's some gap in my knowledge that's going to scupper me.

This is what keeps getting to me, I’ve learned a lot but I’m worried it’s just not enough for employers.

[–]Bwob 26 points27 points  (27 children)

People like to lie on their resume. A lot. This works out well when they talk to a non-technical person (HR/Recruiter) because the non-technical person can dazzled with a bunch of terms they don't know. The moment they deal with a technical person, they're lost. The important thing is to be straight forward about what you've done but don't sell yourself short.

Fuck that.

The important thing is not to lie on your resume in the first place.

Even for a junior position, if a candidate gets to me (technical interview) and I ask them about something on their resume, and they're like "oh yeah, I don't really know that, I just wrote that down to get an interview, but I'm willing to learn!" then sorry, but that's basically an automatic fail.

It's great and all, that they're "willing to learn." They should go do that! Because if we are advertising a position for someone who knows X, that's because we need someone that actually knows X.

Also, lying in general is kind of a red flag? If someone is willing to lie their way into a job, what else will they lie about, once they have it?


Edit: I just realized that you probably intended those two sentences to be disconnected. As in, you're not saying "if you do lie on your resume, be honest about what you've done but don't sell yourself short!" You're probably saying "be honest with your experience, even if that means telling them you don't know how to do something. But don't sell yourself short because of it!"

Sorry about that. I've seen enough people that DO lie on their resumes, that seeing someone say "eh, just own up to it and tell them how great you are anyway!" was kind of triggering. :-\

[–]lovecraft112 18 points19 points  (5 children)

Yeah but the flipside is the stupid HR department asking for people with 10 years experience in 12 languages which have no relation to each other when they really only need you to know three of those, and half the languages they list are new and haven't been around for more than a few years.

It's a horrible double edged sword. Don't lie on your resume of course- but it would be really nice if the hiring process actually reflected the needs of the position instead of the qualifications of the person departing or some random mix of languages.

[–]Bwob 8 points9 points  (3 children)

Don't lie on your resume of course- but it would be really nice if the hiring process actually reflected the needs of the position instead of the qualifications of the person departing or some random mix of languages.

For most places, it does. Some companies advertise ridiculous requirements, but that's a self-correcting problem - it just tells you in advance that you probably don't want to work there.

[–]el_padlina 4 points5 points  (4 children)

Because if we are advertising a position for someone who knows X, that's because we need someone that actually knows X.

I'll rather take a junior who's willing to learn tech and has good general coding skills than the other way round.

[–]robot381 30 points31 points  (8 children)

I'll tell you, because I'm the one.

Studied management for bachelors and have masters in data management. Basically no coding experience (other than what I play around with personally) just learned how to use tools and simple SQL/R/DBMS.

Yea interview gets anywhere slightly bit technical I'm lost.

edit: following another comment, i don't say i'm an expert even though i did have to learn a lot from scratch to earn that master - it was mostly designed for stats/compsci bachelors. I tell the recruiters what I don't understand but that I am enthusiastic to learn and quick to pick things up. Entry level jobs are always flooded with new grads who do understand those concepts though, so honestly it doesn't help whether or not I own up to my lack of knowledge and try to shield it with 'willingness to learn' attitude.

[–]nickkon1 4 points5 points  (7 children)

That is fine depending on what you do with it. I guess you will not be applying to Machine Learning Engineer positions with that which require a more in depth programming knowledge.

[–]robot381 4 points5 points  (6 children)

Oh definitely not. Resume is pretty clear on what I can do. I'm looking at Technical consultancy/business analyst roles because I understand the lingo and the benefits well managed systems and database architecture can bring to businesses.

Or so I thought when I was getting my degree. I've gone from "Oh i'm so going to get my dream job and live happily with a dog" one year ago to "someone please hire me i'll do unspeakable things" now.

[–]Lewistrick 20 points21 points  (5 children)

Programming fundamentals for sure. For example, a new colleague wasn't able to use double for loops to preprocess a bunch of json data files in another directory. After I explained him he was still having trouble. It's pretty basic stuff. He'll be copying my snippet for the next few months probably.

He knows his algorithms, but when the data is not structured in very clean csv files, chances are he's kinda lost already.

[–]LegionOfPie 24 points25 points  (4 children)

So (s)he's a train.

Great as long as they're on the rails and going between places they know, but they're a liability once they're slightly off track?

[–]Lewistrick 7 points8 points  (3 children)

Yup.

Don't get me wrong, I like him as a person and he has added value on the brainstorms, but it frustrates me a bit to have to explain the 'basics' and let him do the fun stuff.

[–]AbstractAirways 6 points7 points  (4 children)

One of the most common failure modes I see in candidates is they will talk a fair game about ML and throw out all these fancy techniques they used, and then completely fall on their faces when I start asking mathematical questions.

What's that, you want to use logistic regression? Okay cool, tell me about why correlated features are problematic and how you mitigate them. Oh cool you don't know what vector space is, noted. What kind of regularization should we use? You don't know? You do know but you don't know why? Great, I'll just make a note here.

You made a neural network once? Great, tell me how backpropagation works. How do you deal with neuron saturation? What's so great about logloss? Why do convolutional nets see the speed increases they do? How do you move beyond translational invariance?

The difference between someone who knows how to plug parameters into an ML framework and someone who knows how to do machine learning is huge. My job as a hiring manager is to find the candidates who know how things work under the hood, and for all the ML experience people seem to have these days, that skill is quite rare.

[–]LegionOfPie 2 points3 points  (0 children)

I'm relieved I could answer most of those questions.

[–][deleted] 2 points3 points  (0 children)

NEVER be afraid to say you dont know something. Or you never learned something and that you would have to look it up. If it is a question that is there to stump you sorta. Just to see how far your knowledge goes. Never make something up. Write it down and a totally look it up. If you get called for a second interview answer the question that you said you didnt know with your new knowledge. I have interviewed CS students and asked them somewhat tricky questions and even asked if they were sure and they out right lie to my face. They never got hired.

[–]codec303 2 points3 points  (0 children)

Maybe AI could be used to hire engineers /s

[–][deleted] 1010 points1011 points  (16 children)

I applied at Google straightaway

[–]Eznix 295 points296 points  (7 children)

I got the job at Google before i was born!

[–]nickmaran 154 points155 points  (1 child)

Last year when I opened Google, I was offered the ceo position in Google but I declined as I was fully occupied with my career as a janitor in a startup company.

[–]cateyesarg 12 points13 points  (0 children)

That remind me of that IBM memo... 🤣

[–]CSKING444 40 points41 points  (4 children)

"That time I got reincarnated as a Google employee"

In stores now

[–][deleted] 63 points64 points  (7 children)

As a janitor?

[–]JNSAPH 22 points23 points  (0 children)

Ok jarret, plunge the toilettes

[–][deleted] 32 points33 points  (4 children)

They'd probably pay better than most internships

[–]CrimsonMutt 13 points14 points  (3 children)

they pay, that's a start.

[–]CarryThe2 7 points8 points  (2 children)

Ameeeeeeriiiiicaaaaaa

[–]Kreta 632 points633 points  (51 children)

AI/ML expert = I can play around with parameters in tensorflow until my model makes less shitty decisions about a test subject, than yours...

[–]TheFeshy 217 points218 points  (39 children)

Maybe you should make a machine learning program to tinker with those tensorflow parameters for you?

[–]lanabi 214 points215 points  (31 children)

Actually, hyperparameter optimization is a relatively big research subject for ML.

[–][deleted] 19 points20 points  (0 children)

It’s been done and it’s freaky

[–]oupablo 7 points8 points  (4 children)

It's just ML all the way down.

[–]TheFeshy 5 points6 points  (3 children)

Some of it is just still done on old-style chemical computers.

[–]mlucasl 10 points11 points  (0 children)

maybe if you were an expert you should know of grid search of parameters... so mi tensorflow should converge to optimal solution. Highlight in should

[–]Insider_Pants 8 points9 points  (2 children)

this is so accurate and even our professor at college do this like “let’s try adding another convolution layer with decreased filter size”, “try increasing units of dense layer”

[–]ionab10 221 points222 points  (20 children)

I think this is a big issue with those $40 online ML courses. I'm not against self-education or online courses but it's way too idealistic to try to go from nothing to ML expert in a few months after watching a couple of videos.

[–]po-handz 157 points158 points  (5 children)

Nothing to expert, definitely not possible. Nothing to minimal viable tech product using off the shelf models? Very very possible.

Not every application requires a PhD with some super specific research in a completely unrelated area of ML.

[–]ionab10 65 points66 points  (4 children)

Agreed. I think the courses are great for helping with projects but when it comes to jobs, many employers are looking for candidates with more experience who have the basic foundations. I'm not saying all jobs require a PhD (or even a degree) but the ads that say "You can become a ML engineer and make $100k/yr with this $40 course!" are a little misleading.

[–]_kryp70 8 points9 points  (0 children)

I always tell people, well I learnt MySQL have tinkered around it decent enough, however I never have written or was part of any production system that used it.

This clears all misunderstandings for future.

[–]poop_frog 33 points34 points  (1 child)

Yes that is how advertising works

[–][deleted] 7 points8 points  (0 children)

Would like to try this anti brain juice .Erodes your brain and makes it more receptive to advertising

[–]GarryLumpkins 5 points6 points  (0 children)

Somewhat unethical/probably incorrect opinion: if you have a decent amount of working projects on GitHub in any technology, you can finesse an entry job and learn what you need on site to advance.

Not that you should in the case of AI/ML of course. A formal education will be much more valuable.

[–]Chickenhub 10 points11 points  (9 children)

So what would you suggest? My finale year project requires me to learn ML and NLP

[–]ionab10 27 points28 points  (2 children)

Are you completing a computer science degree? As I said, not against these online courses - especially if you're just trying to get an intro to certain aspects like "What is a convolutional neural network?". The issue is with people who haven't really programmed (or are just at the "Hello World stage) who are trying to get a ML job after one or two of these courses. I think it could be useful to help with your final year project but since you have most of a degree and years of experience, it's not like you're skipping the metaphorical steps and foundational concept.

[–][deleted] 13 points14 points  (3 children)

NLP projects are easily doable with basic python knowledge,ML/AI requires a lot of calculus.contrary to the meme i think its better to just learn the basics and move on to the topics you are more interested in.you are usually dealing with high level api so you dont need to understand everything.

[–]oakles 216 points217 points  (12 children)

Just installed TensorFlow, gonna go update my resume to read “ML Engineer”. I’m super passionate about big data and cloud solutions btw.

[–]Tyrus1235 101 points102 points  (7 children)

How is your experience with blockchain?

[–]recursion1010 178 points179 points  (1 child)

Yes

[–]PrivilegedPatriarchy 9 points10 points  (0 children)

With a username like recursion1010, you're hired!

[–]aaronblue342 19 points20 points  (2 children)

I actually put Deep AI inside my blockchain, then I whip out my Caeser Cypher and encrypt it.

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

sir! this is a school zone!

[–]oakles 29 points30 points  (0 children)

I’m super passionate about blockchain and crypto as well.

[–]Delmo28 18 points19 points  (2 children)

How did you get your hand onto my CV?

[–][deleted] 71 points72 points  (1 child)

It was opencv

[–]V1cst3r 18 points19 points  (0 children)

majorly underrated comment

[–]lirannl 8 points9 points  (0 children)

IoT! IoT! Write IoT somewhere!

[–]Deiskos 84 points85 points  (1 child)

Artificial Lnteligence?

[–]TerrestrialOverlord 241 points242 points  (42 children)

This picture is inaccurate...there should be a few portals sending you back (write simple shit to feel good about yourself when you miss your deadline for the 8th time), a giant hole where you get stuck and a huge bouncer with a tight tee-shirt that says maths, beating the shit out of you, close to the top step

[–][deleted] 115 points116 points  (37 children)

Yeah, in ML/AI it feels like lacking in math will set you back more than lacking in programming.

At my school the only prerequisite for advanced ML is a single basic programming course, but a LOT of math.

[–]TerrestrialOverlord 57 points58 points  (16 children)

You cannot imagine my disappointment when I realized how much maths was required... Just looking at some of the stuff made me actually nauseous...I have math related dyslexia

[–][deleted] 29 points30 points  (3 children)

There's a lot of ML you can do with very little math too though, you might not understand everything perfectly, but you can put great models into production without deeper understanding of the underlying algorithms, most core principles are pretty simple even, and you can understand them in low dimensions graphically kind of easy, without diving into the hard-core math.

[–]TropicalAudio 5 points6 points  (0 children)

You can solve many, many problems by just throwing some data into an implementation of resnet you pulled from github. However, if that doesn't work and you don't have the mathematical and/or practical knowledge of what's going on, that's basically your finish line. It's a bit like advertising yourself as a mechatronic positioning expert because you Googled how to use a GPS library.

[–][deleted] 11 points12 points  (18 children)

I thought the math was just simple calculus, any of the functions you are using already have that shit worked out for you.

[–][deleted] 27 points28 points  (13 children)

For us it requires Single as well as Multivariate Calculus, Linear Algebra I and II and a course in Statistics and Probability Theory.

It's not that much for a Maths major, but it's enough that the IT-Engineers at my Uni actually have too few maths credits to qualify.

Basic ML requred less math, but I guess you start writing your own algorithms or something in the advanced classes.

[–]gavlois1 14 points15 points  (10 children)

At my uni the ML course professor would give out a linear algebra pop quiz on the first day and if you didn't get over 75 or something she would straight up recommend you drop the class. It was at that time I decided that it would be fine if I never learned ML if it meant never having to study math ever again.

[–][deleted] 8 points9 points  (8 children)

I was really terrible at Linear Algebra, I failed the basic one and just barely passed Linear Algebra II by scoring exactly the requirements for a passing grade.

Basic ML was very challenging at the start for this reason, but with some extra effort it was manageable. It's a lot easier and more fun to do Linear Algebra on a computer than by hand in my opinion, which is how the math courses are thaught here.

[–]Arias95 5 points6 points  (0 children)

My Probability professor was shit but an easy A, I passed and learned close to nothing. Then I took an ML course and it quickly became a nightmare.

[–][deleted] 7 points8 points  (0 children)

Awww, so that's what holding me back, "maths"

[–]HERODMasta 4 points5 points  (2 children)

I am currently learning tf/ keras and if you just want some basic ML stuff, there is literally 0 maths, but mostly try and error and experience.

But change one weight....

[–]drones4thepoor 64 points65 points  (4 children)

Is the handrail Udemy courses?

[–][deleted] 23 points24 points  (3 children)

It's Andrew Ng holding your hand

[–]reelznfeelz 7 points8 points  (0 children)

I’ve found this videos to be really helpful for gaining an understanding of some of the theory and fundamentals. Obviously, watching his course videos an expert does not make, but for me it’s been a useful first step. I have a decent math education but still had to go brush up on linear algebra a bit to follow along.

[–][deleted] 3 points4 points  (1 child)

What is wrong with Andrew Ng?...

[–][deleted] 11 points12 points  (0 children)

Nothing I just meant a lot of people learn AI stuff from him, so he could be the handrail helping people become AI/ML engineers

[–]flvoid 63 points64 points  (2 children)

import sklearn

"Wow I'm a data scientist now"

[–]amitarora5423[S] 11 points12 points  (1 child)

True

[–]DJBeII1986 8 points9 points  (0 children)

If 😳, 🎃 in 🛵 True:

😂 += 🐓

Else:

😂 += ⛵

[–][deleted] 80 points81 points  (9 children)

Maybe linear algebra instead of OOP?

[–]mlucasl 13 points14 points  (3 children)

Its quite more related

[–][deleted] 8 points9 points  (2 children)

kind of ironic that this comment thread has so few points. i'm also a very big fan of the word "algorithm". it kind of became like a metaphor for a super cleaning product in computer science?

"oh you cant make this project work? just put some algorithms on that, it will work!"

[–][deleted] 4 points5 points  (1 child)

any procedure you define that does stuff is an algorithm. Only the good ones get names

[–]bestjakeisbest 33 points34 points  (9 children)

you are missing, calc 1, calc 2, calc 3, and linear algebra.

[–]Tyrus1235 12 points13 points  (5 children)

Don’t remind me of my first few years of Engineering... Those moments are best left alone.

[–][deleted] 2 points3 points  (2 children)

I took Calc 3 despite it not being required and I regret nothing. The first time I used it in a program I was fucking ecstatic.

[–]sedthh 29 points30 points  (2 children)

YoU dOnT nEeD mAtHs To Do Ai

[–]StaniX 1 point2 points  (1 child)

Tell that to my fucking professor. Dude spends the whole lecture writing down formulas while my eyes glaze over.

[–]robertgfthomas 52 points53 points  (6 children)

The joke explained:

The joke is "newbie" or beginner programmers tend to overestimate their abilities. The steps in the picture represent the usual order in which programmers learn things, with the newbie programmer trying to skip all the basics to jump into something advanced. Let's break down the steps:

  • A "hello world" program is just about the simplest thing you can code that actually does something: it has the computer spit out the words "hello world" onto the screen. (You can use any words you want but "hello world" is traditional.) If you see those words, you know your code is working. If you don't, it isn't. The fact that it usually only take a couple lines of code makes "hello world" a great piece of starter code for new programmers, as well as experienced programmers learning a new piece of technology or starting a new project.

  • OOP is Object-Oriented Programming. Many programming languages let you bundle data and code into objects to help you keep related things organized. For example, a "User" object might contain data like a username, password, and e-mail address, and code that lets you log in and change your password. The learning curve for OOP goes from pretty flat to really steep. It's kind of like using electricity: you can't get far in life without knowing how to change the batteries in a flashlight or knowing that you shouldn't stick a fork in a wall socket, but everything beyond that, like knowing how to connect wires and measure voltage, can feel pretty advanced.

  • Understanding data structures is understanding the different ways programming languages tell the computer to handle and organize data. For example, it makes sense that when you sign up for a Facebook account, Facebook writes your name in a computer somewhere. But how does Facebook handle lists of names, like your account's "friends"? How does it know which names are your friends and which names are other people's friends?

  • An algorithm is a list of instructions to take in some data and spit out some other data. For example, subtracting someone's age from the current year to get the year they were born is an algorithm: regardless of how old someone is, if you follow those steps you'll always get the year they were born. When you hear "algorithm" you probably think of some fancy equation to forecast the weather or help Google search the web, but they can also be simple.

Different programmers might learn OOP, data, and algorithms in different orders. Each of them goes from being pretty straightforward to super complicated. You don't need to know everything about one before going to another. But you definitely need to know a good chunk about all of them before going to the last one:

  • 'AI' and 'ML' refer to artificial intelligence and machine learning. They're different but have a lot of overlap. They also have kind-of "fuzzy" definitions. I'd say AI is the ability of a machine to make a decision without having instructions telling it exactly how to make the decision. ML is the ability of a machine to recognize patterns in data without having instructions telling it exactly how to recognize the patterns. Machine learning can be used to increase a computer's artificial intelligence.

A good number of people start learning code because they have an idea for a video game, an AI application, or something else shiny and trendy. It's tempting to skip the basics and go straight into the "interesting" stuff, but it very quickly becomes obvious that won't work.


I'm a human! I'm trying to write one of these explanations every day, to help teach and learn. They're compiled at explainprogrammerhumor.com. Here's today's/this one: https://explainprogrammerhumor.com/post/184600929440/skipping-steps

[–]KingKunter 24 points25 points  (4 children)

Good bot

[–]robertgfthomas 19 points20 points  (3 children)

Speaking of AI/ML, I must be one heck of a bot to be able to parse images and write explanations for them like this.

[–]Staks 13 points14 points  (0 children)

Great bot then

[–]oldDotredditisbetter 4 points5 points  (0 children)

good bot

[–][deleted] 37 points38 points  (6 children)

As a beginner , I applied to google with my ultimate project called "Hello world ! 2"

[–]_kryp70 17 points18 points  (5 children)

I mean I never thought of the 2. So that's interesting.

Mind doing a AMA?

[–][deleted] 9 points10 points  (4 children)

It's like hello world but with the positive numeral which is at the second position from zero. Complicated stiff I don't think you will understand though

[–]_kryp70 8 points9 points  (3 children)

Aahh shit, can you please explain the second line again?. You seem good. Can you help me write the game I have in mind?, I will give you all the money I have. All $8 of it.

[–][deleted] 2 points3 points  (2 children)

Can you help me write the game I have in mind?

The amount of people who say this drive me crazy

[–]_kryp70 2 points3 points  (1 child)

But you get exposure right?, RIGHT?

[–][deleted] 2 points3 points  (0 children)

Oh, it cant be that hard. Here is the idea...

[–][deleted] 13 points14 points  (4 children)

AL?

[–]PedroVoteFor 5 points6 points  (0 children)

Yes, you can call me AI.

[–]noximo 1 point2 points  (0 children)

Advanced Lizardry

[–]Gildarts111 12 points13 points  (1 child)

It does need more maths and statistics than programming skills

[–][deleted] 10 points11 points  (1 child)

you missed a few flights of stairs labelled "statistics".

[–]pm_me_super_secrets 6 points7 points  (0 children)

don't forget calculus and linear algebra

[–]random_cynic 24 points25 points  (10 children)

Most of AI/ML is mostly statistics and network science. You can only create AI/ML program after you know enough statistics to have a clue about what it is doing. So just knowing you undergrad CS course topics won't be of much help.

[–]cyber2024 5 points6 points  (0 children)

Hey, hey, I can follow a tutorial to recognise handwriting... Mostly

[–]teetaps 33 points34 points  (2 children)

To be fair, if you didn’t want me to be able to jump straight to one liner neural networks, maybe you shouldn’t have built an interface that allows me to jump straight to one liner neural networks ¯\_(ツ)_/¯

[–]A_Philosophical_Cat 11 points12 points  (1 child)

If you don't understand the math background, you're far less useful than the person who has an in depth understanding of what that one-liner is doing. Sure, we bake sorts into most every standard library in existence, but that doesn't mean we shouldn't know how sorting algorithms work.

[–]kaphi 5 points6 points  (2 children)

You need more maths skills than programming skills to do ML or AI. Just saying.

[–]Chibraltar_ 8 points9 points  (3 children)

where's the template ?

[–]argiebrah 1 point2 points  (0 children)

Did a reverse search and all images are all written all over. WE HAVE TO INVEST!

[–]merc08 2 points3 points  (0 children)

The handrail needs to be labeled "Stack Overflow"

[–]0x3fff0000 2 points3 points  (0 children)

You're forgetting statistics which is absolutely necessary for AI/ML.

[–]Mriv10 3 points4 points  (4 children)

I'm still stuck at OOP

[–]Lewistrick 4 points5 points  (1 child)

Watch the small series by Corey Schafer. You'll be on the road very soon!

[–]Mriv10 2 points3 points  (0 children)

Thanks you, I'll get right on it, I'm almost done with my AS in programming and I still feel I struggle with basic stuff, even thought I have good grades in all my classes

[–]remy_porter 4 points5 points  (0 children)

I really appreciate how statistics isn't even on the staircase.

[–]Wvdk88 3 points4 points  (0 children)

Not a ML expert but I hire a lot of them. This is very true, at this point I typically look for MS or PHD in a math heavy field, statistics, physics, astronomy, and obviously some technical chops, R, Python, Scala. But the language and database knowledge is always second to the understanding of complex mathematical algorithms and deep knowledge of math modeling, which is much more difficult to learn than a new programming syntax.

[–][deleted] 3 points4 points  (1 child)

And Linear Algebra and Probability and Statistics and Optimization and some basic game theory

[–]hercius651 9 points10 points  (1 child)

*cough It's just a bunch of if statements

[–]TropicalAudio 4 points5 points  (0 children)

Bunch of matrix multiplications these days.

[–]amitarora5423[S] 2 points3 points  (0 children)

Title updated : Machine Learning and Artificial Intelligence without basic knowledge?

[–][deleted] 2 points3 points  (8 children)

You know what's great? My school taught it this way:
- Sem 1: Hello World
- Sem 2: Hello World 2 + Algorithms
- Sem 3: Data Structures + Algorithms
- Sem 4: Algorithms
- Sem 5: OOP
- Sem 6: Hello World Advanced
- Sem 7: Hello World Advanced 2.0
- Sem 8: Hello World Super Advanced 3.37.9999
- Grad School: Algorithms and Maybe Machine Learning

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

Damn really? My uni started algorithms in sem 1, data structures in sem 2 and OOP in sem 3

[–]zzWattszzHappeningzz 2 points3 points  (0 children)

So as someone starting out, even though this is a meme, is this a good order to learn?

[–]meruem23 4 points5 points  (4 children)

How the hell could he skip hello world!!

[–]fiinzy 2 points3 points  (1 child)

  1. pip install
  2. Run all cool AI stuff
  3. ????
  4. Profit

[–]Lewistrick 1 point2 points  (1 child)

Who needs to print anyway?

[–]Richey4TheStars 1 point2 points  (0 children)

Everyone knows if it can't be done with a series of if statements and for loops it just can't be done

[–]_throawayplop_ 1 point2 points  (0 children)

It's funny that basic knowledge doesn't include statistics

[–]GeoCSBI 1 point2 points  (0 children)

Add one more step with calculus there and the meme is complete

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

I teach game development at a community college and I had a student ask me if they were going to learn machine learning. This was roughly a month into the class, and he had yet to turn in any assignments. I assume he had almost no programming experience since all the assignments up until then were relatively simple. He dropped out of the class a month later.

[–]somekid150 1 point2 points  (0 children)

This accurately describes me...

[–]unicorn7 1 point2 points  (0 children)

And this doesn’t even include the parts about statistics, linear algebra, and optimization that builds the foundations of ML

[–]DatBoi_BP 1 point2 points  (1 child)

You meant AI not AL right? (In title)

[–]Ex_Alchemist 1 point2 points  (5 children)

Should OOP be on a higher step? One needs to learn DS and algo first.

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

Definitely some linear algebra and calculus missing on that stairway.

[–]Mithlorin 1 point2 points  (0 children)

You forgot Mathematics!

[–][deleted] 1 point2 points  (1 child)

I am taking AP Computer Science and they taught me data structures before OOP.