Python for me, and more or less self-taught it online. I used to play a 2D mmo way back in 07-09, which was infested with people using bots. And I didnt trust the available ones, so I got it in my head to write my own. Looking back, it was really, really basic but it did what I needed. I dont really remember much Python now though lol
Comment has been collapsed.
There's a super Python-based course on coursera based on learning programming in a video game context. That and codecademy, along with lots of web forums like stackoverflow.
For gamemaker, Udemy has some good courses that you can usually catch on sale.
My first programming was back in the late 80s/early 90s, but that was more formal on older languages like Pascal, C, Fortran, Assembly. I think the online resources available now are excellent though - really helps speed up the process vs. being stuck on code in pre-internet days.
Comment has been collapsed.
How did you learned your programming language?
I learned it? Why no one tell my I can do it -.-
Comment has been collapsed.
Learned in school Pascal and C# and later in university some others (incl. C/C++), but modern online courses + online books in my opinion are much better. There are even some fun courses with online compilers right after each theory section (have seen some of these courses on Datacamp for example). There are plenty of exercises to motivate you. If you also need some person to motivate your progress, create a small learning group with you real life comrade(s) and define some learning day-time, tackle topics together and decide the 'homework' tasks. You can also divide theoretical topics and then tell to each other in a presentation-QA manner if it seems convenient.
For some people, videocourses can be better which show concepts and principles in a graphical manner. At least I have seen some videocourses like this e.g. in algebra, analytical geometry etc. There are a lot of things which is better to see once in movement to understand, than to read a few times or look at plain illustrations. I still remember first time when I saw a video for fourier transformation
Hopefully finding the courses themselves isn't a problem. For python, google "free online course python". There are a few learning bases:
http://learn.edx.org/mit-python/
https://www.coursera.org/courses?query=python
https://www.learnpython.org/
https://eu.udacity.com/course/programming-foundations-with-python--ud036
Same with C++, "free online course C++". I started using Python much later than C/C++ and in my opinion python is more convenient and simple, plus today python is speculated to have a wider package support than C++, in modern computational sciences. Depends on what are you planning. If you want to code some games, probably I shouldn't have written anything :]
Comment has been collapsed.
I'm too but my specialization is business and process consulting.
My bachelor's and master's degrees are almost equal to Emptiness. For example, I have to write the diploma for 1 week (was 3 days), when I was preparing for a different subject more than year! More than 70% education program was deleted too. x.x
So, you really could proud and happy that you had cool education. I'm happy to know someone reach goal while taking Degree.
P.S.: does your Master's Degree equal to 1/2 stage of Phd? (some countries have this)
Comment has been collapsed.
I semi-learned Pascal at school half a life ago and forgot it almost instantly, does that count?
As for Baumanka, my sister graduated from there (although also ages ago), and I remember that she used to complain about insufficient level of programming education they acquired. Don't know about educational courses or current situation though.
Comment has been collapsed.
Codeacademy.com > JS course first few lessons > GameMaker: Studio coding tutorial + 4 years of practice and... And here's my game - http://store.steampowered.com/app/465020/Sector_Six/ (there's demo).
Not recommended if you want to be a real programmer.
Recommended if programming bores you and you just want to get to good stuff fast.
You're going to suck first few years but it'll be fun.
Comment has been collapsed.
Technically it's GML - GameMaker Language.
Gamemaker does most of things for me.
One of my scripts (I think they are called functions in JavaScript) from the game:
Comment has been collapsed.
I first learned BASIC with the help of the handy manual that came with my Radio Shack TRS-80, then used various books to transfer that knowledge to GW-BASIC on my first MS-DOS PC and QuickBasic later on.
In college I learned Pascal (and Delphi), Cobol, C, Visual Basic and SQL.
I learned ASP from a coworker, then HTML, PHP and Javascript pretty much on my own from online tutorials. I also dabbled a bit with Python and Perl, mostly to edit some pieces of code I had found online and needed to adapt to my needs. I also touched a bit of Synergy DBL to bridge an in-house app with a web front-end.
I learned Java from a teach yourself book in order to be able to contribute to libGDX, and learned C# the same way when I needed to do a programming test when I applied for my current job.
I'm probably forgetting a bunch of languages I've touched over the years.
Comment has been collapsed.
I taught myself Forth, Basic and Assembler from books on a TRS80 back in the late 70s. I've taught myself lots of languages on lots of machines over the years, but I mostly work with Perl these days and some c# if I need to knock together something on Windows.
Comment has been collapsed.
taught myself Java so i could make a basic game for my EPQ(Extended Project Qualification),
then applied to a computer science course(currently in my last year),
I've been taught Java,C, C++, Haskell, database SQL stuff, HTML, Php, JavaScript. Android ect.
a message to anyone who wants to learn coding:
the best way to learn is to do, start off simple, i know you probably wanna make a game immediately but hold it buckaroo!
I mentioned i made a game for my EPQ, well let's just say it was very poor and sloppy,
i was too eager and inexperienced, it was all too much for me, i wanted a game with 8 levels, 8 bosses, cutscenes and 15+ enemies dammit!
oh past me, sweet naive past me, that awesome game idea became 1 level with 1 type of enemy and even then it was tough to make.
Ok Novazch, so where should i start then?
well we should start with the basics that most programming languages have(trust me, once you learn one you pretty much know them all).
i'll choose Java as an example.
Java is an object oriented language, it consists of classes, objects, variables, methods, if conditional statements, while loops and for loops.
Ok i'll explain what that means to the best of my ability(note: i'm just covering the basics, not everything).
Comment has been collapsed.
Variables
variables are simply types of data, the basic types include int, float, char and boolean.
int variables contain a whole number e.g.
int number;
number = 8;
here i have created an int variable called 'number' and then on the next line i assigned it the value of 8, i could of also
done int number = 8; on a single line and it would of had the same effect, i also could of changed the variable name to anything
e.g. int differentNumber = 8;
float variables contain a decimal number e.g.
float f = 8.49;
char variables contain a single character(letter) e.g.
char c = 'a';
boolean variables contain one of 2 values(true or false) e.g.
boolean tired = true;
In some programming languages like C and C++ but NOT Java, there's something to note, true = 1 and false = 0, so bool tired = 1; is equivalent to bool tired = true; also note that they use type 'bool' instead of 'boolean', this is reminder that programming languages are very similar but they are not the same m'kay.
; is how we end a line of code(i can't stress enough how important semicolons are, they are the number one cause of problems, remember to use them!)
i should also mention that variable values can change e.g.
int number = 8; // 'number' currently contains value of 8, also using '//' is how you comment in code, what i'm writing after // on
//the same line is ignored at runtime
int differentNumber = 3;
number = 5; // 'number' contains value of 5
number = differentNumber; // 'number' contains current value of 'differentNumber' which is 3
differentNumber = 5; // 'number' still contains value of 3
number = number + differentNumber; // 'number' contains (value of current 'number' value + value of current 'differentNumber' value),
//3+5 = 8
// 'number' contains value of 8
it should also be noted that if you don't initialise a variable i.e. give it a value, it will have a default value(though this isn't true for all programming languages and as a personal note i like making it clear in the code what the initial values of my variables are).
int number; // number = 0
float f; // f = 0.0
boolean tired; // tired = false
char c; // c = \u0000, that just means a blank space character
last thing for variables would probably be casting i.e. converting a type to another type, i won't get too much into this but
all you need to know is that you can convert a type to another type but only if it's possible e.g.
int number = 8;
float f = 6.0;
int floatToInt = (int) f; // 'floatToInt' contains the value of 6
float intToFloat = (float) number; // 'intToFloat' contains value of 8.0
float div = (float) (1/2); // 'div' converts the result of 1/2 to a float to get 0.5, this is necessary because 1 and 2 are integer types and so
// would give an integer result of 0 otherwise(cause 1 goes into 2 zero times)
Comment has been collapsed.
if conditional statements
if conditional statements are used to check if something true and if so then a section of code will be executed accordingly e.g.
int number;
boolean tired;
if(number == 10){ // if number has value 10 then execute the code number = 2; number = 1; and exit the if-else statement
number = 2; // just putting this here to show you that you can have multiple lines in these code blocks
number = 1;
} else if(number < 10){ // else if number has value less than 10 then execute the code number = 2; and exit the if-else statement
number = 2;
} else if (number > 10){ // else if number has value greater than 10 then execute the code number = 3; and exit the if-else statement
number = 3;
}else { // else if number doesn't meet any condition then execute the code number = 0; and exit the if-else statement
number = 0;
}
things to note, {} are used to create code blocks that will be called if the corresponding condition is met,
also note (number == 10) becomes a boolean value of true or false, we can do if(tired) and it will work.
here's an example i found on the internet to explain all the conditional operators
int a = 4;
int b = 5;
boolean result;
result = a < b; // true
result = a > b; // false
result = a <= 4; // a smaller or equal to 4 - true
result = b >= 6; // b bigger or equal to 6 - false
result = a == b; // a equal to b - false
result = a != b; // a is not equal to b - true
result = a > b || a < b; // Logical or - true
result = 3 < a && a < 6; // Logical and - true
result = !result; // Logical not - false
i should note that the operators & and | also exist, the difference between (&&,||) and (&,|) is that the operators && and || are short-circuiting, meaning they will not evaluate their right-hand expression if the value of the left-hand expression is enough to determine the result
e.g.
3 > 5 && 4 < 8
3 > 5 is false so the operator doesn't check the other statement as the logical And is false
Comment has been collapsed.
while loops
while loops are used to execute a block of code while a conditional statement is true e.g.
int i = 0;
while(i < 10){
i++; // i++ means i = i + 1 (i is incremented)
}
the while loop repeats the code block 10 times, after i has been incremented 10 times it becomes 10 and then the
conditional statement (i < 10) is checked, well 10 < 10 is false so the while loop stops.
you can also do a do-while loop which is just like a while loop except the conditional statement is checked after the block of code, so it always does at least one loop e.g.
int i = 0;
do{
i++;
}while (i < 10)
arrays
An array is a container object(i'll explain objects later) that holds a fixed number of values of a single type. The length of an array is established when the array is created. After creation, its length is fixed.
Each item in an array is called an element, and each element is accessed by its numerical index. Numbering begins with 0. The 9th element, for example, would therefore be accessed at index 8. e.g.
int[] numbers;
numbers = new int[10]; // an int array called 'numbers' of length 10 is created
numbers[0] = 100;
numbers[1] = 200;
numbers[2] = 300;
numbers[3] = 400;
numbers[4] = 500;
numbers[5] = 600;
numbers[6] = 700;
numbers[7] = 800;
numbers[8] = 900; // the 9th element
numbers[9] = 1000;
// the numbers array could also of been created and initialised by writing:
int[] numbers = {100,200,300,400,500,600,700,800,900,1000};
i should also note that you can make double arrays, triple arrays and so on
for loops
for loops are used to execute a block of code while a conditional statement is true and increment/decrement a variable after each loop,
usually they're used to iterate through an array e.g. i'll now iterate through all (x,y) co-ordinates on a 3x3 grid and get the sum of the values
grid:
8 4 9
1 0 6
2 5 3
ok so (1,1) = 2 and (3,3) = 9
int[][] XY;
XY = new int[3][3];
// x = 1
XY[0][0] = 2;
XY[0][1] = 1;
XY[0][2] = 8;
// x = 2
XY[1][0] = 5;
XY[1][1] = 0;
XY[1][2] = 4;
// x = 3
XY[2][0] = 3;
XY[2][1] = 6;
XY[2][2] = 9;
// now wes about to do a for loop inside a for loop, woooooooooooooooooooooooooooooooh, we can nest loops inside one another, tubular dude
int sum = 0;
// this for loop initialises an int variable x with the value 0, x is incremented after each loop
for(int x = 0; x < 3; x++){ // this for loop iterates across the x-axis 3 times, this loop calls the y-axis for loop
// this for loop iterates across the y-axis 3 times, after it's iterated across the y-axis 3 times for the current x co-ordinate, it exits and then the
// x-axis for loop has it's condition checked to see if it will iterate again.
for(int y = 0; y < 3; y++){ // note: y is initialised to 0 every time this for loop started
sum = sum + XY[x][y];
}
}
these for loops iterate through all 9 co-ordinates in the 3x3 grid and add the value at each co-ordinate to sum,
which if you're actually curious comes to 38.
i'm getting tired(tired = definitely true) so i'm gonna finish by talking about methods zzzzzzzz
Comment has been collapsed.
methods
methods(also called functions) are blocks of code that can be called anyway in your code, things i need to cover
would be uhhh...arguments/parameters and return values e.g.
// here i've created a method called 'method1' and i've given it return value 'void' which means it doesn't return a value
void method1(){
// this is method1
}
// here i've created a method called 'method2' and i've given it return value 'int' which means it has to return an int value,so i've decided to return 4
int method2(){
return 4;
}
// here i've created a method called 'method3' and i've given it return value 'int' and i've said it has parameters int a and int b, this means
// when it's called 2 int values will have to be passed to represent 'a' and 'b' in the method call and 'a' and 'b' will be multiplied and the result
// will be the return value
int method3(int a, int b){
int c = a * b;
return c;
}
last example
your program runs in a method called main(), an example of a program would be:
// variables defined and initialised
int numberOne = 7;
int numberTwo = 9;
int[][] XY;
int main(){
method1(); // method1 does whatever it does
int return = method2(); // return = 4
int result = method3(7,9); // result = 63
XY = new int[3][3];
// x = 1
XY[0][0] = 2;
XY[0][1] = 1;
XY[0][2] = 8;
// x = 2
XY[1][0] = 5;
XY[1][1] = 0;
XY[1][2] = 4;
// x = 3
XY[2][0] = 3;
XY[2][1] = 6;
XY[2][2] = 9;
for(int x = 0; x < 3; x++){ // this for loop iterates across the x-axis 3 times, this loop calls the y-axis for loop
// this for loop iterates across the y-axis 3 times, after it's iterated across the y-axis 3 times for the current x co-ordinate, it exits and then the
// x-axis for loop has it's condition checked to see if it will iterate again.
for(int y = 0; y < 3; y++){ // note: y is initialised to 0 every time this for loop started
sum = sum + XY[x][y];
}
}
}
right, last note is gonna be that in an object oriented programming language, classes are templates for objects,
in a class you have...shiet i forgot local variables, ok to simplify e.g.
int one = 1; // the outer block variable 'one' can't see the inner block variables so one = two; won't work
{
int two = 2; // the inner block variable 'two' can see variable 'one' because it's outside the code block so two = one; will work
{
int three = 3; // the inner block variable 'three' can see variable 'one' and 'two' because they're outside the code block so three = two or
// three = one works
}
}
the variable 'three' will be destroyed when it's block is exited because it's only local to that block, the same with 'two'.
anyway as i was saying, classes have object variables(variables defined outside of a method) and methods, when an object of
a class is created, it contains those variables and methods, that's the basic summary more or less.
so to summarise if you wanna learn how to code get familiar with the basics concerning classes, objects, variables, methods, if conditional statements, while loops and for loops.
you don't gotta be a genius to program, if that was the case i'd be screwed, last words of advice:
for the love of god remember semicolons, very important, don't lose your hair if you get an error
Comment has been collapsed.
13 Comments - Last post 43 minutes ago by osztihun
1,767 Comments - Last post 56 minutes ago by CBlade
21 Comments - Last post 3 hours ago by Seibitsu
3 Comments - Last post 6 hours ago by lostsoul67
540 Comments - Last post 10 hours ago by Ledyba
47,106 Comments - Last post 11 hours ago by kbronct
49 Comments - Last post 11 hours ago by blueflame32
55 Comments - Last post 12 minutes ago by warhero2314
2,807 Comments - Last post 17 minutes ago by JMM72
15 Comments - Last post 22 minutes ago by hbguru
4 Comments - Last post 27 minutes ago by JMM72
2,729 Comments - Last post 1 hour ago by TinaG
142 Comments - Last post 1 hour ago by TinaG
16,774 Comments - Last post 1 hour ago by MjrPITA
How did you learned your programming language? I'm talking about C, C#, C++, Java programming languages. Sorry about other - I don't know enough about it so I don't talk about it.
Well, what was your way to learned your first programming language?
Upd.1: thank you for sharing your experience!
Upd.2: I tried did it by videos, books, web-guides but failed. So I bough course and try it but don't find it good enough - I learned only core with help of different materials like other courses (free this time), youtube channels. Learning core took more than 3 months for me x.x. It's mean I stopped between OOP and patterns.
Upd.3 (for community from Russia): did anybody tried java courses of educational center of Bauman Moscow State Technical University named "Specialist"?
Comment has been collapsed.