Dunning-Kruger
Guys, need some help... I feel that I know a fair bit about robotics however I am held back by my lack of computer knowledge in general... I have actually had a few job offers after my inMoov video but I turned them down because I am a bit of a dumb a** when it comes to computer knowledge... I can't very go into an interview if the HR guy asks me what software can you use and I look at him like I am Homer Simpson... I have a real interest in possibly working part-time in the robotics industry in general... Whether online helping or working local for a company.... I am not looking for a second career really, rather part time gig... So, what are the must courses would you guys recommend other than C++, C# etc?... What do you recommend that would be a good compliment with my interest in robotics... SLQ, Visual Basic, web design or ?
@Alan, Rich David, DJ... I especially welcome your input...
Sql is huge, used almost everywhere in one form or another. I would start with MS Sql Server or MySql to get the basics nad you can get them for free to practice with. Most of what you learn would apply to Oracle, but it has so much more to learn about server management that it is a hard place to start.
For programming languages, i would not bother with visual Basic. It is easier than others, but hardly used in commercial settings, mostly because of reputation than capability.
I am struggling with the same decision about what to concentrate on myself. At my job we use Java a lot, but also some C#. Python is good if you are interested in web development. A few years ago I would have said start with C++ as a good foundation that you can build on, but I don't think that is still valid (the idea was you should be abke to code in notepad without relying on an IDE before learning the easy stuff, but everyone uses an IDE now).
C# is probably the most useful for Robotics because of the EZ SDK and also Microsoft Robotics. I understand learning Java after knowing C# is also easy because they use a lot if the same concepts.
Alan
Not to sure about Canada Courses, but here in the U.S we have the CompTIA the A+ Certification. It is pretty much a basic 40hrs course that teach you the fundamental of computer system, most technical job here in the state without a degree require A+ cert.
https://www.coursera.org/ have a large amount of free courses different subject.
http://www.microsoftvirtualacademy.com/ also have large amount of free courses c++, c#, SQL, etc, self learning, at your own speed. Mainly for Microsoft product but free courses.
I can recommend: www.lynda.com www.learndevnow.com www.pluralsight.com www.infiniteskills.com www.microsoftvirtualacademy.com
As stated above C# is going to be better to know than VB, although VB can do anything C# does. Also stated above, knowing SQL is a must.
Even after you feel comfortable, still take 2-3 courses a month so you can somewhat stay on top of things.
Ok SLQ is on the list... check... C# probably too... check
SQL is good but is completely different than any structured programming language. C# is good also as Alan mentioned above. The concepts are very similar to java.
There are a great many books on C#, java and SQL but you will find that they all contain bad habits. Java less so than C# and SQL. Using MSSQL with C# is simple and takes all of about 10 minutes to figure out if you understand both. If you need help, you know where to turn for a quick tutorial.
On the C# front, learn first about OOP or you will develop some really bad habits that are hard to break. I started 20 years ago when OOP was more of a neat concept than a requirement. OOP is all that is being done now and without understanding it, you really have no chance of sustained employment. OOP isn't a C# thing but more of a way of coding that java, C++, C#, VB.net and a lot of other languages use. Learning how use OOP is probably the most foreign thing to most people but those that understand it are normally good programmers.
Okay, back to figuring out what to do with all of the movie and tv info with a robot...
Check this out:
http://www.microsoftvirtualacademy.com/training-courses/c-fundamentals-for-absolute-beginners
Thanks everyone for your input.... Going to have a look and see what kind of courses are available at our local college here....
I'm a professional programmer have been doing it over a decade. Sometimes I really enjoy it and other times I want to self immolate. Programming languages and frameworks have multipled so much over the last ten years it's overwhelming.
My first suggestion is don't go at learning it alone. Fund some mentors.
Secondly, programming in the corporate world has a lot of politics and can be down right boring and frustrating. Don't let it drain your love of Robotics. Some days I come home and my eyeballs feel like lead weights and as much as I would love to stair at a screen I just cannot do it.
In closing I would say let your curiosity guide you as it is the best teacher and motivator. It has a multiplier effect on learning and memorization.
If you want a hard suggestion that's symbiotic with your existing knowledge buy a Arduino and program c. The framework and library is easy to wrap your brain around. Once you get good at that then learn c# and the EZ robot SDK.
Personally, I write c#, html, just, vb.net and SQL all day every day and I really like the simplicity of EZ script because I can work on the basic katas. Sometimes going back to simpler languages can be great for getting out of the box ideas.
I'm only chiming in because you mentioned me...
But honestly, I can't recommend any courses since I'm self taught and every course I've ever taken I've found boring, tedious and in most cases I've known more than my mentor/tutor/teacher/lecturer.
I've "done" a whole bunch of courses, quite a few of the MCDST, MCSA, MCSD, MCSE etc. (I forget which ones I've actually finished (i.e. completed the exams etc. after reading all course materials etc. - there aren't many), which I've got bored with (this is most of them) and which I haven't touched - I think they are bunched together as MCP or something like that). They will give you more than enough knowledge for MS Operating Systems, MS SQL, etc.
It really depends which route you want to go down and where you feel you need guidance. For me personally, I can usually pick up a new application, OS or whatever and within a couple of hours am pretty competent with it (depending on how interested I am in it).
My real advice. If you enjoy robotics as a hobby why risk killing that hobby? Progress your skills for yourself but I like to keep work and play as two different things. I've turned down some pretty amazing opportunities because I don't want my hobbies becoming my work (despite the large figures thrown around, I'd rather be happy, poor but still have that escape than rich and miserable and a hobby that causes stress).
i totally agree whit rich.most people think that stress is something, that comes and go's.new reseurge has chowen it can be dangerues in high, levels.i chould say try it but take stress seriues.ones your in the downfall, its very hard to get out .i have a very low stress level means i get easly, very stressfull to the point off vomiting feeling really sick. i do like robotics but in an very easy way.
just my one euro.hehe
@Everyone... Again awesome... thanks guys... Like I said, I am not looking for a second career. I seem to be limiting myself because I don't really know anything outside of ARC. Since ARC works within Windows I feel I really should know more about the Windows environment, how to program within it, types of programming etc.... @Rich, you're right I do not want to ruin my hobby and make this a job only scenario. I bought a copy of RobReam. I needed help getting it to work with ARC. It works great, but to further my point I don't know why or how it works.... It uses the ARC's custom server.... I have no idea what the ARC customer server is or how it works either.... I know it passes variables back and forth to ARC, but I don't know how it does that... This is what led me to my desire to expand my skills ... Not knowing much about Windows in general and how to program within it means no possible work in the field, period.... If anything else it will enhance my programming skills. Knowing more about Windows inner workings and how it is programmed will give more confidence to accept some of these temporary sideline job offers I get once in a while....
@Ted, thanks for that C# link...
Custom server is largely HTML based. Learning the basics of HTML and web design (the code part not the aesthetics) will help you a lot there.
There are loads of free resources for HTML. The most useful of all I found is the "right click, view page source" or the "inspect element" will give you examples of code for specific things.
W3C also have a good glossary of terms and explanations of code etc.
Once the basics of HTML are down look further at javascript, php, SQL etc.
Almost all of my Jarvis/ARC communications is done at least in part by web pages on a small server in my house. I had started to shift it to Python but no time plus "if it ain't broke don't fix it".
One video game dev once told me "the hardest part isn't the actual programming", apparently it's working with other people and their code, naming things and giving people an estimated time until it's done. Once you know the structure of the language and the functions/commands the actual writing is rather simple (I agree there too, at least for the languages I know).
@Rich thanks.... Starting with a glossary of terms seems to be the logical place to start... Understanding what I need to know first then choose from there... My basic problem is I don't know how things work or what even what "those" things are....
Here is an example... If someone asks me... "do you think C# or Java would work best in this situation" or how do we install and use SQL.... My goal is to be able to answer those types of question.... I am not really interested in serious code crunching, just understanding the aspects of how these things work and how they are used in general...
Reading post #12 and #14, I might change my advice on your starting point. I would start with C# even before SQL. Once you get some basics down, you have all of hte examples in the EZ-SDK. If you compare how ARC does something to the code required to do the same function in C#, I think it would give you a really good idea of what is happening behind the scenes. Then tackle some SQL, and that will help you understand what EZ-AI is doing, and allow you to build your own functionality into it.
Throw in a basic "understanding computer networking" tutorial or class and simple web design (C# will give you the fancy web design, but understanding the HTML basics is needed to get a foundation of what it is creating) would round it out nicely. For web and SQL I can highly recommend the http://www.w3schools.com/ site. I initially learned SQL from SQL for Dummies book, but I refer back to W3Schools every time I need to figure out something I have never done before because I can zero in on an answer there much faster than trying to find it in the book. I learned almost everything I know about HTML from W3Schools.
Alan
@Alan... Thanks buddy for the W3Schools link! I just wrote my first html doc....
@Alan is correct. Once you understood how to create and use a stored procedure in SQL server, you could add tables and make your create your own features in EZ-AI. C# would allow you to access the ton of data that is available on the internet and use it with your robot. It the data could be stored in the database from these and then EZ-AI /D used to return this data to ARC, or with C# it could be passed back into ARC directly (the way that most of EZ-AI works to keep the database small). Learning these things will open an entire new world to you for robotics. I applaud your initiative and will help where you would like. You have my phone number and email. Don't be afraid to use it.
@David... You guys are awesome thanks for all the info... Made my list of things I want to learn... One at a time..
David, on a side note... I have been reading up on AVM navigator using Navigate mode and Nova gate mode... This is heavy stuff, but should do exactly what I need as far as giving my inMoov (and other bots) some sort of intelligent navigating abilities...
Like I said... lots to do... LOL
It is really cool stuff. I think it could be used for that whole charging platform conversation also. AVM is really cool. I haven't dug in enough to offer much help, but from what I have seen it be able to do, it was well worth the $58.
$79 for us Canucks... But I agree... It's definitely a great way to accomplish self docking... and not all that difficult, really...
Since you are thinking of taking courses, I would take c# or c++ to get a lot of programming basics, once you have a few of those under your belt I think you would really be helping yourself out by taking a software design patterns course. The reason being that design patterns courses will teach you lots of methods of problem solving different issues with software instead of hacking your way through a problem. I write code for a living and we use them all of the time. Essentially, this type of course will teach you to use the right tool for most jobs you will find yourself doing with a programming language.
@Brian, thanks dude... I know a little about C++ as I did my stint with arduino coding...
I do understand (pretty well) logic programming... it's just a matter of learning the newer languages and the way they do things...
So, yeah just looking to understand windows way of doing things now...