Where to start programming

Associate
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
Hi. I'm an aspiring student currently in my first year of a games design course at college, and am hoping to then progress potentially to university and beyond. Programming has been a great interest of mine for a while now, but I don't have any experience with it nor know where to start. Over the next few years during my education I want to build some kind of personal portfolio of software/games for my own use. The trouble is I don't really know where to start building a portfolio and what I should be making to start out with and how to do it, so I need some help..
Any resources for tutorials will be appreciated. Of course I'm not limited to any specific languages but obviously something more simpler for starting out would be great
Thanks.
 
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
Hi. Thanks for the suggestions.
I just completed the first section for the Python language on Codecadamy and will continue on it tomorrow. Getting used to the whole variables/strings (basically all of the beginner stuff) and to be honest it's been quite fun even though I've not been doing anything too complex..

Are any of the books available on the internet of any use for beginners?
 
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
Firstly, I would suggest you avoid any 'Game Design Degree'; it is barely worth the paper it is written on.

Second, I would agree wholeheartedly with the Python idea; it's a great language for beginners, and is brilliant for quickly hacking together programs. I would, however, suggest that if you want to do any large-scale projects, particularly games, you learn C, then move onto C++ (In that order, you'll end up a much better programmer).

Finally, I personally didn't bother with completing any of the more advanced tutorials; after learning the language basics, I would just set myself a project, such as an image downloader for a webpage, or a slideshow for my Raspberry Pi. You should the research how to do it, and learn lots along the way.

Good Luck!
That's what I've been thinking. I think it'll be a lot more efficient if I could do a degree with something more broad so I'm not directly tied to games design and games design only, since I know it's a very saturated/competitive market for the lack of jobs within it.

The thing I'm really confused with, and it may sound silly, but how do I actually create programs and stuff with the language, like what tools do I need to make stuff? (like for example how you said you made an image downloader) and what types of things can I expect to creating? (I don't want to just be copying tutorials off of the internet cause I wouldn't really be learning effectively, after a while I'd like to develop something dependently when I have a good grasp of the language).

As far as games go, I think I'm going to stick with something like Unity and create some basic games (I think the main language for Unity is JavaScript) and just work up from there.

I really do want to go somewhere with it, but like I said at the minute I'm just confused at how everything works/is put together. Don't get me wrong, I've been interested in programming for quite a while, but I've never actually put the effort in to find anything out, and this is where I want to start.
 
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
If you're using a desktop or laptop then you've already got all the tools you need to start programming in javascript. Javascript is what's known as an 'interpreted language'. That means that you don't have to write some code and create a .exe file from it. Instead, the code you write runs directly in a program called an 'interpreter'. As luck would have it, modern web browsers work as an interpreter for javascript. That's how most web sites do fancy stuff instead of just showing plain web pages. For example, this forum has a load of javascript running in your browser right now, and the code files can be found in the html for this page, such as - http://forums.overclockers.co.uk/clientscript/vbulletin_menu.js (don't be put off because this file seems unreadable! It was originally written in a much more readable way, but things like spaces and line breaks would have been removed to cut down the size of the file to reduce the download size).

If you want to create .exe files, such as most windows programs, then these are generally made using a 'compiled language'. These are typically languages such as C++. In order to do this, you need to download a "compiler" for the language you are using. Compilers turn the code you've written into an executable. This is generally a one-way process - once you've compiled your program into a .exe file then it can't be turned back to code.

Traditionally, compilers are free to download. Many are bundled with other tools and released as a "integrated development environment" (or IDE). Along with the compiler, IDEs have other tools to help programmers, such as text editors designed specifically for programming, tools to help organise your code and tools to track down bugs. One of the more popular IDEs is Microsoft Visual Studio. A free version (called 'Express Edition') can be downloaded here - http://www.microsoft.com/visualstudio/eng/downloads#d-2013-express (you want the Windows Desktop version for creating .exe files).

Hope this helps :)
Thanks for the help.

So what would the entire process be for making a program and then how would you use it afterwards? I know it may seem like a stupid question but it's confusing for me :p How could other people use it and it have it's own interface etc? Is that something you'd have to design and then implement the program itself into it?
 
Last edited:
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
Let's take an example of a program you have on your PC (if your running Windows) - the Windows Calculator. You can run it up from the start menu from 'All Programs->Accessories'.

This program is a single file in your C:\Windows\System32\ folder called 'calc.exe'. If you wanted someone else to have a copy, then you could copy this file onto a memory stick and give it to them, or email it through to them, or zip it up and host it on a web site just like any other type of file.

When programming, you are creating .exe files. Therefore, in the same way you can just give other people a copy of the file to use.

The interface of the calc.exe file is all part of the program and created when you do the coding. Here's a video of someone creating a simple calculator using Visual Studio from scratch. It will let you see what needs to be done to get it up and running:

Ok thanks, I get it now.

So do you think for starting out that I should just read some basic tutorials and get to grips with the language and then create some basic programs?

Edit: Also, just downloaded Visual Studio and I have one more question. When creating a new project, when would be the time when you create for instance a Visual Basic project, and when would you create a Visual C++ project?
 
Last edited:
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
When there is a man holding you at gunpoint forcing you to do so, and you want to live.

Oh ok thanks, I'll make sure to use it for everything and anything from now on then!

I wholeheartedly advise you to buy a directx book by frank luna, They are done in c++ (if you learn that then other languages are easy by comparison) and will walk you step by step from rendering a triangle on screen to writing a small engine rendering terrain/objects that you can walk around as well as shaders for water effects etc.

Thanks. I'll have a look into it.
Jesus. £32 on said river website... is it worth it? :O
 
Last edited:
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
Not sure if sarcasm, so just to be clear, I meant the EXACT opposite of what you said. Try to avoid VB.Net as much as physically possible.

Not when you're just starting out, and are learning what variables and types are, no.

Of course I was being sarcastic :p
Thanks for the heads up though.
 
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
Thinking of purchasing the Head First Java book, and 'Python for absolute beginners', they seem to get really good reviews and seem like decent books for starting out. I'm also looking for a C++ one but haven't found any beginner ones with great reviews (It doesn't really matter at this stage since I won't be learning C++ first), so if anybody has any recommendations that'd be appreciated, or I might as well just read tutorials off of the internet.

Also, I'm still a little confused as to what deanolfc said earlier which he didn't reply to me, am I doing something wrong here?
 
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
Good idea not to try and learn C++ first! Once you've got the concepts of a modern object oriented language like Python firmly under your belt then you can approach C++ as a second language, already knowing that many of the things that exist in Python must have their equivalents in C++.

With a solid background in Python I would send you straight to the fourth edition of the "C++ Primer" by Lippman et al. backed up with "The C++ Standard Library" by Josuttis.

I was looking at that book, but people said it really wasn't for beginners at all, so I'll definitely give it a try in the future probably, seems like the most efficient.
 
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
I disagree. It's perfectly feasible to learn C++ first. Also make sure to get the C++11 edition of those books (or any other C++ book...)

The only book I've seen recommended for learning C++ by almost everybody seems to be the C++ Primer book; and people have said that is the best introductory book, whilst others (even in this thread) have said that it isn't good for an introduction, and requires good knowledge before people would recommend buying it. The thing is, the only other book I've seen recommended is the 'C++ in easy steps', which is cheap, and short. I suppose I could get both of them if the short ones gives me a firm grasp on the language. I still have plenty of time to decide what to do though, I don't actually plan on starting to program until after Christmas so we'll see.
 
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
Hi again
Not sure if I'm allowed to bump this but I'm going to take the risk anyway :o

I've finally started to program, just today actually. Had some work to do in time for Christmas for college, probably should have started earlier but I'm going to stick to it now!
I got four books for Christmas as a kind of "long term investment"; which were: Python for the absolute beginner, Head first Java, C++ in easy steps, and C++ Primer. I've started on the Python book and I'm absolutely loving it. I'm going to finish this book first, and then move onto the next (whether that be Java or C++, I'm not entirely sure yet.)
I feel I've got a good grasp already on functions (although I'm yet to use more than the print/input function), arguments, and all of the "basic, beginner" terminology and I'm actually having a lot of fun experimenting; I had quite a few errors with the program I made such as missing out the bracket at the end of a function but I fixed them all.

Obviously I'm mainly focusing on Python at this point since I've been told numerous times throughout this thread that it's the perfect introductory language to OO-languages.
Is there a huge difference in terms of difficulty and complexity between Python and C++? Just a minor concern, but not too worried yet!
 
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
I realise I'm not answering your question but if I were you I wouldn't even bother looking at the Java/c++ books until you've spent a lot of time with python. The different syntax/keywords/etc will only confuse matters until you have a firm grasp of the key concepts.

I would suggest going through some more online tasks/tutorials for python, maybe set yourself a project you can work towards.

Once you are comfortable with python and oop, I don't think you would find c++ particularly difficult - the more you code, the easier it is to pick up other languages.

Yeah like I said, I'm going to continue doing this book until I finish it. The good thing about this book is that at the end of each chapter, the author has set the reader challenges to make their own programs based upon the factors learnt within that chapter, which means I'm not directly copying from the book, and then I can make some more of my own programs based upon those.
Thanks for the advice though!
 
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
Here's practically the second program I've ever made and it's based upon User Input. I just threw some random questions together to see what I could do. Would appreciate some feedback as to what I could improve on (i.e if there are any short cuts I didn't take advantage of). I pretty much used my own logic to determine how to approach questions with 'if' and 'else', even if it is beginner stuff.

I was also wondering if there were any websites with complete dictionaries of the terminology, it all gets a little confusing sometimes already since there's so many literal terms for things.

Code:
# User Input

print("-" * 80)
print("-" * 34 , "!User Input!" , "-" * 34)
print("-" * 34 , "!By Daniel James!" , "-" * 29)
print("-" * 80)

ready = input("Are you ready?: ")
if ready == "yes" or "YES":
    print("Prepare yourself for the mission that determines " \
          + "whether or not you are worthy. " + "COME WITH ME IF YOU " \
          + "WANT TO LIVEEE!!")
    name = input("\nHello there friend, what's your name? ")
    print(name)
    print("Hi, ", name)
    age = input("\nHow old are you, young padawan? ")
    age = int(age)
    print(age)
    print(age , "huh? I definitely think you shall suffice, squire!")
    attention = ("This service requires your utmost attention. " \
                 + "So pay CLOSE scrutiny.")
    print(attention)
    weight = input("\nHow much do you weigh in pounds?")
    weight = int(weight)
    print(weight)
    weight_jupiter = weight * 2.54
    weight_saturn = weight * 1.08
    weight_uranus = weight * 0.91
    weight_neptune = weight * 1.19
    weight_pluto = weight * 0.06
    weight_moon = weight * 0.17
    weight_venus = weight * 0.91
    weight_mercury = weight * 0.38
    weight_mars = weight * 0.38
    print("On Jupiter, you'd weigh " , weight_jupiter , "pounds.")
    print("On Saturn, you'd weigh " , weight_saturn , "pounds")
    print("On Uranus, you'd weigh " , weight_uranus , "pounds")
    print("On Neptune, you'd weigh " , weight_neptune , "pounds")
    print("On Pluto, you'd weigh " , weight_pluto , "pounds")
    print("On the Moon, you'd weigh " , weight_moon , "pounds")
    print("On Venus, you'd weigh " , weight_venus , "pounds")
    print("On Mercury, you'd weigh " , weight_mercury , "pounds")
    print("On Mars, you'd weigh " , weight_mars , "pounds")
    print("That's a lot of information to take in! Henceforth we " \
          + "shall resume the preparation of our mission in the near " \
          + "future!. See you soon, marine.")
    
    
    
    

    

else:
    print("God damn you little wretch, wasting my time." \
          + "I don't have time for scum like you.")

          

          
input("\n\nPress the enter key to exit.")
 
Last edited:
Associate
OP
Joined
16 Nov 2011
Posts
1,526
Location
Nottingham
dee, use code tags :) that's a nightmare to read :p

also, some people might put y/Y for yes :D

I'll have a look for some compiling solutions for you. They do all seem to be broken though or have some major issues. :(

Sorry! It was a quick post so didn't see the option there; edited it now. I've tried loads of different ways from an array of different tutorials on compiling .py files into .exe but none of them seem to work :( It's not mandatory, I'd just like to be able to send some friends a program when I make one for them to test it out. I also was going to but a few more options for 'yes' but since I'm the only one using these programs at the mo I knew what I would be entering :p

As a simple extension dee you could look at using a basic array to store the weight factors and use those for the outputs.
Ah. I knew there'd be a way around typing them all out. How would I go about this? I'm only up to chapter 3 in the book so I'm sure I'll find out soon enough.

I think the main thing is that I'm really enjoying it so far, and if I stick to it I'm sure I'll be able to become competent, and then develop further into C++ hopefully!! The one factor I've found the most fun is finding and fixing syntax errors within a program, even if it is only something like a bracket or a double quote.
 
Last edited:
Back
Top Bottom