I am new to programming and would like to create a chatbot(I know a little about arithmetic, statistic, linear algebra but no knowledge yet in ML/DL/AI theory. And as I'm starting, I haven't done any projects yet. But the final goal I set myself is to be able to create a chatbot with artificial intelligence. But after some research, I saw that it will take me quite a long time.
So I set myself an intermediate level. One just to create a chatbot that can send and reply to messages automatically. To this end, the programming languages that have been recommended to me are: Python, Ruby, PhP, Java... but (in view of my final objective : creating a chatbot with AI) I would like to know which programming language will be more useful and more appropriate for me?
[RE]: Given my situation, I haven't started a project yet (I'm looking for the right language to be able to get started). Yes, I know I'm repeating myself but that's why I can't present a community-specific problem. Besides since I just learned that my question is a matter of opinion and that it does not respect the rules of the platform, I humbly ask the moderators to remove it.
Thanks !
Hey that’s an interesting project to do.
As you are more focused on the artificial intelligence I would stick with the biggest and most common ML language:
Python - this is currently the biggest Machine Learning language and allows you to use open source tensorflow for your ML models.
I think what you will find interesting and challenging, once you go into more complex sentences is dealing with natural language processing, Python has the nltk (Natural Language Toolkit) that’s a good place to start and learn from.
Once you have gotten a possible basic python console chat system working you might want to show it off in a nicer presented way so more so you could wrap it in a simple python api and call upon it using a small JavaScript web browser chat application. Although your more interested in the first part so I’d suggest go with python.
I’d start off by trying to make the ai respond to predefined strings and then go from there. It’s worth nothing there is a number of open-source GitHub projects that have ML and Natural Language Processing bots so have a little look around for inspiration. https://github.com/topics/chatbot
Also fyi if your writing a report on this doing detailed investigative work in what tooling and language to use is an important part of your report and you should gather information and sources about usage etc and then reason as to why.
Hope this points you in the correct direction and good luck 👍
totally newbie,
for long time I want to start learning but when I ask question I get question "for what purpose do u want to learn programming? u want make android apps? web development? etc etc".
I am totally new and dont have clue, I just want to start learning, and discover on the way what is more interesting for me. dont have clue whats the difference between android app developers or web developers.
now I have "goal" to create maps app, google maps always show wrong directions, and my country is not in their support list, they dont do changes when i report wrong streets etc. so I want to create map app or whatever its called. I want to take for example google maps source, and start recreating it, adding streets buildings, changing road directions, etc. but googling it does not help me at all, can anyone give me direction from where I should start? 3 years ago I gave up because when I followed articles i wasted months "studying" maybe absolutely not related stuff, I just need guidance. for first even it will be good to tell me where should I ask where should I search for answers, advices. which programming languages which books, or online courses, not going to pay for any courses till I have idea what I am doing. so am after free lessons. I am forced to write tag on post... dont have clue what to write. maybe maps? thats how clueless I am.
If you want to create mapping software to publish your own maps I think a good starting point can be ArcGIS Online from Esri. They offer a free resources for developers (create dev account here for free)
There is a lot of samples to learn from, and you can go through different technologies and programming languages, check resources page.
If you decide that you want to prepare some software components to easier collect GIS data (GIS stands for Geographic Information System) I would suggest to give a chance to QGIS application (QGIS website) which is mature mapping software with plugins system on board. It bases on plugins prepared with the python language to change UX of base QGIS application. There are also a lot of samples - you can even check how existing plugins are designed because most of them is open source.
Im looking into to starting to do some AI programming especially aiming at robots. Creating robots that think and act for themselves. Just wanting some advice on what coding platforms/languages are out there that are best suited to this area?
Im a microsoft developer through and through, so would I be able to accomplish this with the MS Robotics studio at all. Or is that all based on remote control robot development?
Am a little confused because there is so much contradicting information out there. Please help.
Thanks in advance
What kind of robotics are you trying to do? (i.e. is it a robot where a laptop or another powerful device might be an acceptable controller? Or are you looking at a small true embedded robot?)
If it's the first, MS Robotics might be right for you. It uses .Net IIRC so there's a nice low entry barrier. If you wanna do something smaller, maybe look at Arduino, which has so much support around its platform that you'll probably find what you need. Arduino uses something very very much like C++.
Regardless of what you choose, find a kit robot. I can't stress this enough. You want to spend time doing AI, not getting hardware to all work correctly.
If you wanna try something weird and interesting, the Parallax Propeller Microcontroller is a relatively cheap arudino-weight processor with 8 cores. Might be nice for AI, where thinking generally is best done in parallel.
Try using webots for designing the control. I found it very intuitive and friendly... lets you focus on your core programming logic. Hardware should start from Boebot (the very basics) and graduate to Arduino platforms as you gain knowledge.
Try getting a Pioneer, once you move to real robotics (excellent sensor suite but prohibitively priced). Or try flying bots like A.R.Drone etc. It would be nice to program and will give you insight into UAVs as well.
I´m a tutor in a programming introduction course.
Tomorrow i will lecture the class.
The course is a Laboratory of Programming, and we use C in a Linux Envoriment.
I think about do some different exercises to then, because CLI development is really boring.
So anyone can recommend some exercises and some VERY easy library were i can teach a GUI basic development ?
http://www.lugod.org/presentations/gtk/gui.html
Google is full of tutorials on C-callable GUI frameworks. That's just the first one.
I have taught C programming and I would stay away from GUIs in an intro class. If you want to do something fun, consider making a simple game with ASCII art, like a really simple version of nethack or something.
GUI programming in C is a frustrating experience.
You could also look at solving big problems that are not possible on pen and paper. Things like calculating the first 5000 prime numbers are always impressive to people who are new to programming and have an interest in math.
But again, stay away from GUIs with C in an introductory. It is not worth it.
Edit: Or show them something else C is well suited for. Bring in some variety of hardware like an Arduino robot or something and show a simple wall avoidance program or interface with an LCD display or something. I think this would be the best path to take if you want to get them hooked on C programming.
I would like to write some simple Mario-like game from scratch using language C. But honestly I have no idea how to do so, and I can´t find any good tutorial for this, which is for free.
But to the actuall question, I have only written WinAPI programs so far, so all event handling and user input was handled by OS, with minimum work, But to develope game, with for example menus with non-rectangular buttons, animations, and so, I guess, there is no such thing in WinAPI taht could help me with this more than just some basic routines mouse pointer location and keypresses.
So, is the right way to write your game to write entire draw part of game engine by manipulating objects for player, enemies, and even background yourself, and than just use directdraw for output to screen?
EDIT:
I actually want to learn how to write games from scratch, becouse it must be great programming experience, and if you consider games like Commander Keen on DOS, created with no framework or libraries, but still so great.
A good approach to this would be to have a look at the SDL library. I'm not saying it's necessarily the best library for 2D games, but it's easy to get started with and the web is flooded with tutorials and open source code samples for simple homebrew 2D games written using SDL.
I do recommand the SDL too, but you should definitely have a look on lazyfoo tutorial, which is just great.
When I started programming I started doing it with Allegro, back in the good old DOS days. It was the first usable library which worked with SVGA libraries, and had a good sprite support. Then version3 came and they added support for windows (using GDI and Directy X, you could choose at runtime which engine to use). The linux port came to life, and all is good.
It's a very basic 2D library, and it will teach you the very basics of graphics and animations. Now it even contains audio support which is a very needed addition (well, I still remember V 2.9X...). They are in betas for version 5, and I think this is an interesting project for you to look into.
http://www.talula.demon.co.uk/allegro/
What are you guys talking about, the WinAPI has low level drawing routines.
Although using an established library like SDL is probably a better idea you could create your own abstractions to the WinAPI drawing routines without too much difficulty.
Then it's just a matter of creating the while loop that has all the drawing instructions and interpreting input. For 2D games this isn't too difficult.
I also used SDL, but try to look at HGE. It requires at least DirectX 8.0 so your applications will work only on Windows but on their forum you will find many topics on how to port it to OpenGL. In my opinion HGE will be easier to learn than SDL, because SDL is a low level library and you will have to learn how to handle many things by yourself. HGE is more ready to start just out of the box.
In short, yes - there's nothing in the WinAPI that will help you much. However, there are dozens of game engines that you could build your game on that would take a huge amount of gruntwork out of creating the game itself. A bit of Googling will help you.
(Personal recommendation: although it's technically a 3D engine, something like Unity is an excellent engine that includes tutorials for creating 2D games. Unity isn't C, but it does make your life a lot easier...)
EDIT: I actually want to learn how to write games from scratch, becouse it must be great programming experience, and if you consider games like Commander Keen on DOS, created with no framework or libraries, but still so great.
This is actually not quite right. Commander Keen (and any DOS games) do use libraries: the ones provided by DOS, BIOS, etc. Without libraries of one form or another, you wouldn't be able to do anything useful with C. For game programming, you really do want to leave all the low level details to someone else.
I'd recommend Allegro as a beginning game programming library.
Check out this one Game dev starting
They have realy a big resource related to game programming and a lot of beginner stuff. SDL is good, but you should consider about learning basic game techniques before start coding and even before start thinking about the api/libs you use.
Clear out how much "intelligence" you need (Ki), consider about loading/Saving a an early time, ... so much things that you should keep in mind if you want to finish your project.
Do you need a game editor? (Also..work) What about sound/graphics? Writing all this stuff on your own will take a lot of time (if you do not have experience). Creating the content is another big issue which can consume a lot of time, if you make it at all.
Maybe it will help you to have a look on some dev kids, because that will give you the idea how their engine works. Like this one (outdated) Dev kid
I've just started a similar project a few days ago, you can check it out over at GitHub.
It should give you some ideas about how the game is structured. As well as some details on a scrolling 2D map with collision (which turns out to be quite complicated if you want to get it 100% bug free). Oh, and it's using SDL as many here have already suggested.
As for me, this is my first C project. But I'll have to admit that I've done similar stuff in Java and Python before, so this was a good way for me to quickly learn C. And since it's learning and not any productive stuff, I'm using plain C99, which makes the task even "funnier".
But back to the game, you really need to think about your design before you start coding, write it down on a sheet of paper, or if you're like me and you don't have tree stuff in reach write it in pseudocode.
Think about as many possible game states as you can, nothing's worse than having to re-implement the whole player/map/whatever stuff from scratch just because you did not think about feature XYZ before.
Design is very important, if you don't have a goal to begin with, your project will reach a point where it fails, just like my Tuff did, well it also failed due to missing music and somebody who would have designed enemies, etc.
Speaking of graphics and such, bear in mind that the game will consist of much more than just the plain code. If you aren't good in graphics then take that into account while designing. Because you will quickly lose your motivation when the only things on the screen are colored rectangles.
Action Arcade Adventure Set (originally published as a book) is probably one of the most complete tutorials on how to write a 2D side-scrolling game. Although an older reference, many fundamentals for developing a 2D side-scroller have not changed.
Full source code examples and some tools to develop a side-scroller are provided as downloads. There is only one external library used to handle graphics primitives. As this is an older DOS program, you may have to use a DOS emulator like DOSBox or modify the examples for more modern environments.
I suggest you skim chapters 1 to 9 and focus on chapters 10 to 17.