Beginner AI, where to start?
-
@Julien said in Beginner, where to start?:
- Python is easy to learn but is mainly used for script, data and non complex system
Python is pretty much used everywhere where there is not a concern with having to tweak for performance with the underlying system.
-
@Julien said in Beginner, where to start?:
Unless I'm saying something stupid, isn't better to learn and master very few technologies instead of learning a little bit of everything?
In general, not necessarily, it depends on your role. When starting learning something, yes it would make sense to have the ability to actually do something. But you don't need to master it.
-
@Julien said in Beginner, where to start?:
Let's use an exemple, I learned some blacksmith skills with my grandfather when I was young, it was clear that to build a knife you need your set of tools and practice. I didn't have to choose between 10 type of hammers, 20 type of stoves...
That's the case when you go to university or take a course, they limit the exposure to the tools they decide to train you on. They've already chosen the stoves and hammers, but what they chose doesn't always represent what other shops are using.
But the knowledge you learn is culmalative. Pretty much all of what you learn on one stove will help you on the next different stove .
-
Python was the first language I learned. But these days I don't often get to use it. Would I have been further ahead in my career today if I had chosen one of the languages I use now as my first language? No, it just doesn't work that way. The knowledge is culmalative. Experience with a variety of things becomes an asset, even if you don't actually use that tool.
-
@Julien said in Beginner, where to start?:
It's also really frustrating to have so many languages and technology claiming to be used in AI (or any other field) but not having clear explaination of what it can do...
In a way this is like saying that there are so many languages for business (English, French, Spanish, German, Mandarin). Every language CAN do anything, just some languages are better than others. English is the top language for International business. Why? Mostly because it has loads of native speakers, is relatively easy to say and learn, there are loads of resources for it, it's spoken in business friendly locations, and it is insanely expressive and highly accurate.
Prolog and LISP rule AI because they are vastly more expressive at "thinking" tasks than other languages. They were written for the purpose of expressing AI problems.
You can write a Prolog or LISP processor in Python, so by Python can do anything they can do. And you can write a Python processor in either of them, so vice versa. But there are things that the language itself does well, mostly a performance concern. And there are things that the language encourages the human to do well, this is called expressiveness.
Python is highly expressive, but not for AI tasks. That's why it is so generally popular. But it is not performant for anything, and AI is heavily influenced by performance.
-
@Julien said in Beginner, where to start?:
R seems to be related to data, I am not sure it's something I like.
AI is a data field.
-
@Julien said in Beginner, where to start?:
Unless I'm saying something stupid, isn't better to learn and master very few technologies instead of learning a little bit of everything?
When one knows how to program, learning multiple languages is relatively trivial. Learning totally different programming paradigms can be rather demanding, but is considered pretty critical for teaching your brain how to think. That's why learning multiple spoken languages is considered important, it improves cogitative skills. It gives your brain multiple ways to express an idea, construct, or problem.
-
@Julien said in Beginner, where to start?:
My goal is to be able to work in a year or less, I don't care about the money for now.
I think you have to step back and realize that AI is very specifically an insanely niche part of the industry that has no entry level point.
This is like my Bard's Tale example. I wish more people knew that game. But in that game, you could be a Mage or a Conjurer at level one. If you wanted to become a Sorcerer, you had to master either Mage or Conjurer first. If you wanted to become a Wizard, you had to master any two of Mage, Conjurer, and/or Sorcerer. If you wanted to become and ArchMage, you had to master all four.
AI is like being a wizard. You can't get any real AI job when you are starting out in software engineering. There just aren't many AI jobs and those that are out there expect some serious experience. You get that experience by putting in lots of time doing non-AI programming.
Getting a job in the software engineering world in a year, yes that is very doable. Getting one in AI in a year? That's not realistic. It has nothing to do with you or where you are, no one is going to go from ground zero to AI programmer in a year. AI is the most advanced thinking that humans do. There is so insanely much to learn. And AI is a research field. So getting paid to be a researcher is always tough. You always have to do a lot of proving before you start doing that kind of stuff.
-
@Julien said in Beginner, where to start?:
For the long term I wanted to learn a more complex language that can be versatile in AI.
The simplest answer here is... by the time AI can be on your radar, learning languages will be a "I learned that in an evening" kind of thing.
Think of it a little like wanting to be a race car driver. Once you are a professional driver, certainly you will have your personal preferences as to the best car. And you might know one car way better than another. But the best drivers for Ferrari can jump into a Honda and don't think of it as a problem to "learn a new car". It feels a little different, you need to take it around the track a few times to get the feel for it. But fundamentally, they can drive any car that you throw at them and do so well and safely without thinking twice.
Programming is like that. Once you are a comfortable, experienced programmer you'll be able to jump between Python, PHP, C, Java, C#, etc. with almost no effort.
-
@Julien said in Beginner, where to start?:
Let's use an exemple, I learned some blacksmith skills with my grandfather when I was young, it was clear that to build a knife you need your set of tools and practice. I didn't have to choose between 10 type of hammers, 20 type of stoves...
I worked in metal manufacturing. Choosing the "blacksmith tools" alone means you just chose one of many hammers and stoves. You just worked with whatever tools were already at hand. But you had hundreds of different ways to make a knife. Your mentor, in that case, did the choosing for you.
But if you were asking me how to make a knife, I'd be pretty unlikely to approach it anything like how your grandfather did. I might not even use the same kinds of materials. I might even talk about glass, obsidian, or ceramic knives!
You can approach AI in the same way. Pick a language at more or less random. Pick a framework more or less at random. And just start going at it. Or you can try to learn all the possible ways to do it.
But there is a certain value to seeing how actual people who do the job you want to do do it, and then use the same tools as them. I think that hardest part right now is defining who it is that you want to emulate.
-
@flaxking said in Beginner, where to start?:
Python was the first language I learned. But these days I don't often get to use it. Would I have been further ahead in my career today if I had chosen one of the languages I use now as my first language? No, it just doesn't work that way. The knowledge is culmalative. Experience with a variety of things becomes an asset, even if you don't actually use that tool.
My first language was BASIC. Then LISP. Then C, and on to Fortran. Then a bit later, Java. Not a single one of all of those do I use today
-
@scottalanmiller said in Beginner, where to start?:
@Julien said in Beginner, where to start?:
R seems to be related to data, I am not sure it's something I like.
AI is a data field.
In my mind data is like make diagram like in school when you do statistic lol...
-
@scottalanmiller said in Beginner, where to start?:
@Julien said in Beginner, where to start?:
My goal is to be able to work in a year or less, I don't care about the money for now.
I think you have to step back and realize that AI is very specifically an insanely niche part of the industry that has no entry level point.
This is like my Bard's Tale example. I wish more people knew that game. But in that game, you could be a Mage or a Conjurer at level one. If you wanted to become a Sorcerer, you had to master either Mage or Conjurer first. If you wanted to become a Wizard, you had to master any two of Mage, Conjurer, and/or Sorcerer. If you wanted to become and ArchMage, you had to master all four.
AI is like being a wizard. You can't get any real AI job when you are starting out in software engineering. There just aren't many AI jobs and those that are out there expect some serious experience. You get that experience by putting in lots of time doing non-AI programming.
Getting a job in the software engineering world in a year, yes that is very doable. Getting one in AI in a year? That's not realistic. It has nothing to do with you or where you are, no one is going to go from ground zero to AI programmer in a year. AI is the most advanced thinking that humans do. There is so insanely much to learn. And AI is a research field. So getting paid to be a researcher is always tough. You always have to do a lot of proving before you start doing that kind of stuff.
Maybe I didn't express myself well but I when I meant working in the industry in a year or less related to AI was because I don't know the steps before this. It's not like there is a manual with a path to follow to build software to interact with.
I don't have the vocabulary or knowledge to express what I really mean or want to I tried with my own words.I'll try your game, it's looks like it's the type of game I like to play haha!
-
@Julien said in Beginner, where to start?:
@scottalanmiller said in Beginner, where to start?:
@Julien said in Beginner, where to start?:
My goal is to be able to work in a year or less, I don't care about the money for now.
I think you have to step back and realize that AI is very specifically an insanely niche part of the industry that has no entry level point.
This is like my Bard's Tale example. I wish more people knew that game. But in that game, you could be a Mage or a Conjurer at level one. If you wanted to become a Sorcerer, you had to master either Mage or Conjurer first. If you wanted to become a Wizard, you had to master any two of Mage, Conjurer, and/or Sorcerer. If you wanted to become and ArchMage, you had to master all four.
AI is like being a wizard. You can't get any real AI job when you are starting out in software engineering. There just aren't many AI jobs and those that are out there expect some serious experience. You get that experience by putting in lots of time doing non-AI programming.
Getting a job in the software engineering world in a year, yes that is very doable. Getting one in AI in a year? That's not realistic. It has nothing to do with you or where you are, no one is going to go from ground zero to AI programmer in a year. AI is the most advanced thinking that humans do. There is so insanely much to learn. And AI is a research field. So getting paid to be a researcher is always tough. You always have to do a lot of proving before you start doing that kind of stuff.
Maybe I didn't express myself well but I when I meant working in the industry in a year or less related to AI was because I don't know the steps before this. It's not like there is a manual with a path to follow to build software to interact with.
I don't have the vocabulary or knowledge to express what I really mean or want to I tried with my own words.I'll try your game, it's looks like it's the type of game I like to play haha!
The Bard's Tale is from 1986, but it's a classic.
-
@scottalanmiller said in Beginner, where to start?:
@Julien said in Beginner, where to start?:
Let's use an exemple, I learned some blacksmith skills with my grandfather when I was young, it was clear that to build a knife you need your set of tools and practice. I didn't have to choose between 10 type of hammers, 20 type of stoves...
I worked in metal manufacturing. Choosing the "blacksmith tools" alone means you just chose one of many hammers and stoves. You just worked with whatever tools were already at hand. But you had hundreds of different ways to make a knife. Your mentor, in that case, did the choosing for you.
But if you were asking me how to make a knife, I'd be pretty unlikely to approach it anything like how your grandfather did. I might not even use the same kinds of materials. I might even talk about glass, obsidian, or ceramic knives!
You can approach AI in the same way. Pick a language at more or less random. Pick a framework more or less at random. And just start going at it. Or you can try to learn all the possible ways to do it.
But there is a certain value to seeing how actual people who do the job you want to do do it, and then use the same tools as them. I think that hardest part right now is defining who it is that you want to emulate.
I see.
My example with blacksmith was mostly to express how frustrating it is to do not know where to start at first. In my mind the language matter on what you are interested and is a long process so you better not choose the wrong one.
Also, sometimes internet doesn't help to guide beginners haha -
@Julien said in Beginner, where to start?:
In my mind the language matter on what you are interested and is a long process so you better not choose the wrong one.
I think you'll find that that fades away. Once you really learn Python and you are learning C# or Go or Java you are going to be like "Oh wow, this is ridiculously easy to learn!"
-
One of the best ways to get started without having a software engineering job is to pick a project that you like. Either a project for you to undertake; or an existing project that you can join like an open source project, and just jump in and attempt to contribute. This gives you two things... first a portfolio piece to talk about; and secondly it gives you a concrete goal on things to learn.
-
Thank you all for your kindness, it feels less cloudy in my mind.
I really appreciate all of those advice! -
Something that you'll find quickly is that learning a language is almost a background task. At first, or if you talk to universities, they talk about languages all of the time. But in the real world, they don't matter all that much.
Example... if you work in PHP, meh, whatever. Once you work in PHP then you have to decide if you are working with or without a framework. There are so many PHP frameworks. Examples are CakePHP and Laravel. Each of those frameworks is loaded with framework options.
You easily spend more time learning the framework than you do the language. Don't get too lost in the language itself, it's not as important as it seems.
-
@scottalanmiller said in Beginner, where to start?:
One of the best ways to get started without having a software engineering job is to pick a project that you like. Either a project for you to undertake; or an existing project that you can join like an open source project, and just jump in and attempt to contribute. This gives you two things... first a portfolio piece to talk about; and secondly it gives you a concrete goal on things to learn.
I don't know if you call those projects, but I passed the nanodegree from Udacity "Intro to programming" (which I don't recommend haha), then I started to build a little software to talk with (It was more like I was talking to myself because the output were written by me lol).