Ok... seems like my little intro thing was semi ignored
When I teach
brand new programmers how to program, people that have never programmed, regardless of background (business, art, etc), I teach them
1. Lua
This will introduce the basics of programming, break them in. Programming is mysterious to a lot of people, so this shows what it's all about without having to deal with types. It is a great introduction to functions, variables, and control structures.
2. vJASS
This will introduces types and the workings of a function brilliantly. It also brilliantly shows the design of if statements and loops. Furthermore, you will code custom allocators from scratch, which'll introduce you to memory
. This will really get you into knowing a lot about programming.
3. c++
Why c++ and not c or c#?
This will teach you OOP + Good modern design practices. This will also teach you all about memory, it takes it a step up from vJASS. It just really goes from the vJASS level to the mastery level.
So Lua = beginner
vJASS = intermediate
c++ = expert
I've taught quite a few people programming live and have never failed to teach them to it in a way that they'd understand it, regardless of background
. Well, there was one person, but they didn't even know math, so >.<, not much I could do, lol. Like, they didn't know what ( ) was for.
So that is my recommendation. Don't start with c# or java, ur ganna get overwhelmed. Don't start with vJASS, u'll be a bit overwhelmed. Start with a simple scripting language. I recommend Lua because you can declare functions like variables, which makes it much more beginner friendly.
Lua is like the most beginner friendly language there is. You can work with it online, no need for any tools.
I also recommend that you have someone teach you Lua rather than work off of online tutorials, that way you can focus on what you should be taking away from that language
1. introduction to syntax, comments
2. variables (numbers only)
3. calling functions (they are instructions, and you can execute those instructions)
4. calling functions with arguments (give instructions more detail, like X eggs vs 6 eggs)
5. local variables, intro to blocks (do block)
6. making functions (variable syntax)
That's all I recommend that you cover from Lua, from there you move on to vJASS ; ).
1. Comments (to get into the language and show other ways, plus to get more into blocks with /* */)
2. Variables (just the basic types, whole numbers and double again, showing how Lua differed from vJASS, experiment a bit to show value ranges and get into memory)
3. Calling functions + more variables (show that you must pass X arguments into the function, unlike Lua, plus introduce handles, not strings yet) + number systems + more on memory
4. Arrays + Strings + Substrings + Colors (colors use haxadecimal)
5. Boolean expressions, if statement structure (start to get into data structures, introduce indexed array)
6. Loops (start to get into algorithms)
7. Functions (return, local variables, etc)
And from here, you get into more and more stuff, like stacks, allocators, heaps, and so forth. Probably a list of ~20 items
.
After this, you get into c++. The first thing would be function syntax and the main entry point of a program. After this, you can go crazy with memory.