Beginner AI, where to start?



  • Hi everyone,

    I am new here, this is my first time posting on a forum, so I hope I'm posting in the proper section.
    I'm interested in AI and robotics (building software and robots to interact with or to make them doing tasks for me), if you have any tutorial and programming language to learn to propose I would gladly accept.

    I am trying to keep my post as I short as possible, therefore avoiding putting information that is unnecessary so If you have any question please let me know.

    Thank you for your time!



  • I haven't done anything with robotics, but I believe the languages you would be looking at are Python and C++.

    Python is known as a great first language for beginners, and is very popular in pretty much all programming fields right now, so I'd start there.

    There's tons are good free resources out there, I'll post a link to one at the bottom. My recommendation is to go far enough to get a bit comfortable with Python, and then dive into robotics, it sounds like the robotics part is what will drive your motivation.

    So do some research to find out a good Python robotics stack for beginners, and then purchase what you need after you at least get some Python experience.

    And btw, I like to use Visual Studio Code with Python, Microsoft has a good document for how to set it up. I originally learned Python without using any IDE-like capabilities... but my opinion now is you might as well use IDE from the start.

    https://docs.python-guide.org/



  • AI is tough because there is real AI, that almost no one does, and there is random machine automation that isn't AI whatsoever, that everyone does. The latter AI uses Python heavily because it's easy and there isn't much processing to be done so its performance doesn't matter.

    For true AI, you'll find that Prolog, LISP, and R are the big languages because the work differently and make making AI a lot easier.



  • https://en.wikipedia.org/wiki/Artificial_intelligence

    The majority of AI done today is through Machine Learning and that is mostly using specialized hardware. Whether it's a nicer GPU or a specialty SBC, you'll likely want to get some ML hardware and start programming for that.



  • AI generally involves a lot of horsepower, even for learning. This is an example...

    https://towardsdatascience.com/how-to-create-your-own-deep-learning-rig-a-complete-hardware-guide-2bba792b001b



  • The RockPI N10 is highly rated for low cost machine learning hardware with TensorFlow

    https://www.seeedstudio.com/ROCK-PI-N10-Model-B-RK3399Pro-6GB-LPDDR3-32GB-eMMC-p-4380.html?utm_source=blog&utm_medium=blog





  • Lol, I missed the AI part. I thought, "he has an A. but no B."



  • @flaxking said in Beginner, where to start?:

    Lol, I missed the AI part. I thought, "he has an A. but no B."

    Oh yeah, I spoke to him offline. He writes AI as A. I



  • Thank you everyone for your help, I'm going to check all of those links.
    So far I was studying Python but I wasn't sure if I was on the "right track" anymore...

    Also, thank you Scott for giving some of your time yesterday, I learned a lot from you!

    Sorry for the A. I part, I just fixed the space, but do you guys use the point between the two letters?



  • @Julien said in Beginner, where to start?:

    Thank you everyone for your help, I'm going to check all of those links.
    So far I was studying Python but I wasn't sure if I was on the "right track" anymore...

    Also, thank you Scott for giving some of your time yesterday, I learned a lot from you!

    Sorry for the A. I part, I just fixed the space, but do you guys use the point between the two letters?

    typically, no. simply AI. If you are going to use the period, you need to use it after both as A.I.



  • @Julien said in Beginner, where to start?:

    So far I was studying Python but I wasn't sure if I was on the "right track" anymore...

    Python is a highly useful, general purpose language. So a decent place to start for anything.



  • @Julien said in Beginner, where to start?:

    Sorry for the A. I part, I just fixed the space, but do you guys use the point between the two letters?

    It is commonly written AI, but is okay to write A.I. but those are really the only two ways to do it. Can't have a space or it becomes something totally different, and can't have a period between the letters without one after the second letter additionally.



  • I'm going to try to put what I read with my own words :

    • Prolog and Lisp seems to be used for advanced AI and deep mathematical problems - Hard to learn but possibility to do many things even though I don't really get the difference between them.

    • R seems to be related to data, I am not sure it's something I like.

    • Python is easy to learn but is mainly used for script, data and non complex system

    • C++ is used in video games, can build powerful system but not as complex as Prolog and Lisp.

    Unless I'm saying something stupid, isn't better to learn and master very few technologies instead of learning a little bit of everything?
    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...

    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...

    Also, it might sound weird for some people but I intend to make a living asap with what I learn. I rather start small and being able to work in the field then having an idea. My goal is to be able to work in a year or less, I don't care about the money for now.

    I forgot to mention that until now I was learning Linux (I like the fact that I can interact with my system and configure things) and Python because I thought it was the best option to get me in the industry easier and faster. For the long term I wanted to learn a more complex language that can be versatile in AI.



  • @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.

    https://www.gog.com/game/the_bards_tale_trilogy



  • @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!"


Log in to reply