Intro to Programming

Avatar image for spartyon
SpartyOn

529

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#1  Edited By SpartyOn

Ok so I know more than the average person about the technical aspect of computers and such (mostly due to the fact that I play games), and was thinking about dabbling in programming to see if it's something I could understand. I'm a pre-med major and my folks help me pay for school so I can't really afford to spend a few hundred bucks on a class, unless I know for sure it's something I could enjoy.

So I ask all of you tech geniuses out there, where's a good place to start this summer, to get my feet wet in all this computer programming nonsense?

Avatar image for jondavis
jondavis

632

Forum Posts

2210

Wiki Points

0

Followers

Reviews: 1

User Lists: 2

#2  Edited By jondavis

Buy an Introduction to Java Programming book. They're not too expensive, and pretty thorough.

Avatar image for spartyon
SpartyOn

529

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#3  Edited By SpartyOn

@JonDavis: Are there any books you could recommend?

Avatar image for jondavis
jondavis

632

Forum Posts

2210

Wiki Points

0

Followers

Reviews: 1

User Lists: 2

#4  Edited By jondavis
Avatar image for mcshank
McShank

1700

Forum Posts

920

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#5  Edited By McShank

Not to butt in but I will anyways, Is devry even worth going to for a degree in programming or game design or well.. anything?!? I hear so much shit about them but honestly theres like 1 other school near me that has anything computer related i want and its the damn art institute and 80k+ a year is not something i want. :D Also anything you find davissc9 id love to know on the java books.

Avatar image for sjupp
sjupp

1949

Forum Posts

40

Wiki Points

0

Followers

Reviews: 0

User Lists: 1

#6  Edited By sjupp

I think there already are a couple of old threads and/or blogs here on Giant Bomb about programming and more specifically game programming. Can't remember where though. Also, yay for free education in Sweden!

Avatar image for deactivated-5b6c667dde711
deactivated-5b6c667dde711

961

Forum Posts

10021

Wiki Points

0

Followers

Reviews: 15

User Lists: 5

I'm just finishing up a first programming unit, and I would have to say that the key to learning is finding someone who teaches pseudocode and algorithm design. The actual code thereafter is pretty straightforward.
 
Several times in the past I would be looking at a tutorial or a book for programming which would give me a bunch of code to type in, but barely anything talking about the reasoning behind the code, or focused on applying my knowledge to something else.
That's my take, anyway. I'd like to see what more advanced coders here have to say.

Avatar image for jadeskye
Jadeskye

4392

Forum Posts

2125

Wiki Points

0

Followers

Reviews: 0

User Lists: 6

#8  Edited By Jadeskye

@davissc9: http://www.w3schools.com/ is awesome if you want to learn the web side first. It's usually a good grounding to have some idea of the aspects required. Full programming is much more thorough and infinitely harder but a start in some easier stuff can let you know what you're in for.

Can also come in handy down the line when you decide to web integrate.

Avatar image for bollard
Bollard

8298

Forum Posts

118

Wiki Points

0

Followers

Reviews: 3

User Lists: 12

#9  Edited By Bollard

I don't know if Java is really a newbie (as in, never studied any programming or theory behind it) start point. Maybe try something like Python? I learnt that first and it allowed me to easily get to grips with structured programming (although its rather light on syntax) which should be transferable (or Transfarrable if you prefer) to other more difficult languages (See: Java and C++).

Avatar image for jay444111
Jay444111

2638

Forum Posts

1

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#10  Edited By Jay444111

What are they types of math skills one should have to learn programming? (just wondering?)

Avatar image for slaker117
Slaker117

4873

Forum Posts

3305

Wiki Points

0

Followers

Reviews: 1

User Lists: 11

#11  Edited By Slaker117

@Jay444111: You don't need much specific math knowledge to get started, but you need a math mindset if you actually want to be decent. It's all logic, so if you aren't good at one you aren't going to be good at the other.

Avatar image for deactivated-5b6c667dde711
deactivated-5b6c667dde711

961

Forum Posts

10021

Wiki Points

0

Followers

Reviews: 15

User Lists: 5

@Chavtheworld said:
I don't know if Java is really a newbie (as in, never studied any programming or theory behind it) start point. Maybe try something like Python? I learnt that first and it allowed me to easily get to grips with structured programming (although its rather light on syntax) which should be transferable (or Transfarrable if you prefer) to other more difficult languages (See: Java and C++).
No, Java is totally a good learning language; it's what I've been using this semester.  It's easier than c++ I think when debugging and all.
 
In terms of maths required - for most stuff discrete level mathematics is fine, problem solving skills are a bit more important I think.
Avatar image for nickl
NickL

2276

Forum Posts

695

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#13  Edited By NickL

@Kowbrainz: I actually think a language harder to debug is better for learning, since debugging is one of the hardest things to learn when it comes to programming. Its definitely not for the faint of heart though.

Also, math is EXTREMELY important in some fields of programming. Not at all necessary for getting started though.

Avatar image for joru
Joru

314

Forum Posts

440

Wiki Points

0

Followers

Reviews: 0

User Lists: 2

#14  Edited By Joru
@Jay444111: It entirely depends on what you want to do. For websites and stuff like that, all you need is logic, for graphics you'll need good geometry skills, an understanding of vectors and functions and so on.  

@Kowbrainz: Agree with this, Java is a nice first language since it is quite modern and allows you not to worry about more complex topics that are prevalent in C++ and so on. You will need to read up on those eventually regardless of the language, it's just that stuff like Java and Python doesn't force you into it. 
 
@davissc9
: You should decide on a simple first goal you want to achieve, for example: 
Something more technical, like reading up on programming, algorithms and so on in general. 
Making a website ( http://www.w3schools.com/, as was mentioned before is a great site).  

Making some console applications (console as in command console for windows or another OS). This is the one I'd recommend if you want to understand application programming. You could, for example, make a super simple trivia game or something like that. Basically, anything that requires only text or text-based graphics. I think that this is a great way to learn as it will not bother you with graphics programming or any huge libraries like XNA. Almost all tutorials for programming languages are essentially about making console apps, so it's easy to find a starting point.  

If you want to try out Java you can find lots of great resources at http://download.oracle.com/javase/tutorial/java/index.html which is the official site for this stuff. It may be more complex than some other tutorials online, but it should be about as hard as any good book on this. 
For C++, http://www.cplusplus.com/doc/tutorial/ is a great tutorial on language ranging from simple things to advanced features of the language. 
For Python, http://wiki.python.org/moin/BeginnersGuide/NonProgrammers is a list of Python resources for beginners. 
 
In terms of books, I would stay off those unless you decide that you really like one of these languages and want to learn more about it, or want to learn more about programming in general. This is because the books that are good are usually fairly expensive. 
 
You should also always remember, that the concepts in all of these languages are the same, so if you learn them properly, learning the languages themselves will become easier and easier over time.
Avatar image for wolverine
Wolverine

4642

Forum Posts

3776

Wiki Points

0

Followers

Reviews: 0

User Lists: 3

#15  Edited By Wolverine

@davissc9: I'm a Computer Science major but I reference a lot of online tutorials. This youtube user, The New Boston makes great tutorials. I recommend you check his channel out.

Avatar image for zero_
zero_

2105

Forum Posts

378

Wiki Points

0

Followers

Reviews: 0

User Lists: 6

#16  Edited By zero_

I am also a Computer Science major, and my tip to starting with programming is to start learning very basic Java. You'll hear a lot of people say that Java is not a good starting language, but I think it is - it's got good and easy to understand syntax and doesn't delve too much into the "machine" level of things. You'll hear a lot of people say that it doesn't matter what language you start off with and that programming is a way of thinking, which I kind of disagree - they're correct, but thinking about when I was first getting into programming through University only a few years ago, algorithmic problem solving would've scared the hell out of me.

So yeah, Java - you can grab a book, or go through online tutorials/sites etc. I think you'll be right. :)

Avatar image for faint
Faint

837

Forum Posts

46

Wiki Points

0

Followers

Reviews: 1

User Lists: 7

#17  Edited By Faint

I am studying a Bachelor of Video Games Design at university and one thing that you need to realize first and foremost is that playing games is very different to making them. A lot of people think because they've played a lot of games that they know the ins and outs of them, but it's rarely the case. Programming can be boring and time consuming and will take a lot of your focus to get good at.

Avatar image for ediscool
EdIsCool

1140

Forum Posts

112

Wiki Points

0

Followers

Reviews: 3

User Lists: 2

#18  Edited By EdIsCool

I've just finished a bachelor in Game Development(the programming,not the design which Faint mentioned).

When choosing the language you should understand that games are programmed in two ways.

Engine code.

Scripting.

Engine code is the code that builds the engine(handles pixel transformations, lighting calculations, loading in models).This is hard as fuck, is generally coded in C++( DO NOT START WITH C++, its very difficult and takes at least a decade of experience to use safely and well(anyone who says otherwise dosent understand the damage a non memory managed language can do).

Scripting code is the code that determines an entities behaviour, this is generally written in a lighter,easier to use language i.e one that designers can be trained to use.Examples would include my favourite language C# as well as Lua,Python and UnrealScript.

I would not recommend Java as your first language as it is not used much at all in engine code and very seldom used as a scripting language.CMy stock recommendation for people is to check out C# and XNA. Theres loads of tutorials and even starting from scratch you should have a basic 2D space shooter in a day.

Avatar image for mr_skeleton
Mr_Skeleton

5195

Forum Posts

7918

Wiki Points

0

Followers

Reviews: 0

User Lists: 15

#19  Edited By Mr_Skeleton

Buy yourself a C# or Java programming book or go hardcore and find yourself a book for Lisp.

Avatar image for grumbel
Grumbel

1010

Forum Posts

12

Wiki Points

0

Followers

Reviews: 99

User Lists: 2

#20  Edited By Grumbel

I'd strongly recommend starting with Python, its a much nicer language then either C# or Java. Tutorial can be found at:
 
http://docs.python.org/tutorial/
 
And for you game programming needs there is PyGame.
 
XNA and C# wouldn't be the worst choice either, but I don't consider it any good as introduction language.

Avatar image for shiftymagician
shiftymagician

2190

Forum Posts

23

Wiki Points

0

Followers

Reviews: 2

User Lists: 3

#21  Edited By shiftymagician

Man, I don't know about most of you guys, but the first language I learn't was funnily enough C++ and found that to be pretty straight forward.
 
Anyways, I would also say Java as well, but not for reasons of lower barrier of entry.  It is a language that will allow you to immediately see something visual once you come to grips with the fundamentals.  C++ and other programs can do the same, however they require plugins and learning how to use the plugins as well as learning how to write good code for it.  Java has most of your interface elements that you need built-in, so it is a useful first language to learn.

Avatar image for kieran_es
Kieran_ES

270

Forum Posts

408

Wiki Points

0

Followers

Reviews: 4

User Lists: 1

#22  Edited By Kieran_ES

You'll get a whole lot of different answers, but really just pick one and go. There is no perfect beginner language.
 
Oh and just to pick up on something people were recommending. Do not use w3schools! Go with HTML Dog instead, or one of the many good sites. 

Avatar image for herocide
herocide

451

Forum Posts

2

Wiki Points

0

Followers

Reviews: 0

User Lists: 4

#23  Edited By herocide

If you decide to go into Java or Python, http://codingbat.com/ is a good beginner practice tool that I've used in high school. Lots of assignments that help you get into a logical mindset for programming that I've found enjoyable to work with.

Avatar image for cr0wej0hn20
cr0wej0hn20

12

Forum Posts

0

Wiki Points

0

Followers

Reviews: 0

User Lists: 0

#24  Edited By cr0wej0hn20

I'd start with Python as well. It's easier to understand and takes care of all the cumbersome functions from other languages for you (while and for loops etc.) 
 
Here is a great online book thats FREE.  http://inventwithpython.com/chapters/   You'll be up and running in no time. 
 
GOOD LUCK! 

Avatar image for tourgen
tourgen

4568

Forum Posts

645

Wiki Points

0

Followers

Reviews: 4

User Lists: 11

#25  Edited By tourgen

I learned C by reading and doing the examples in Kernighan and Ritche. The core C language is simple. You can learn basic coding with it in a week or so.

Then I added basic OpenGL and a couple other nice libraries. Codeblocks with the included gcc compiler is all you need to get started.

After you fully understand C, how pointers work, and how malloc() works, then you can optionally gently ease yourself into C++. Don't believe the OOP hype. Only use object oriented programming where it makes sense. Use Boost for smart pointers to keep yourself out of trouble.

Learn by reading thru and experimenting with other people's code and projects. It's the best way to learn how to REALLY do it. If you want to start seeing stuff on the screen fast jump into the HeNe OpenGL tutorials.

Java is not a good place to start. Java just isn't good. If you want to start with a managed language use C# and XNA. It's a better language, a better platform, and has better high-level functions and libraries. It also sets you up for releasing directly onto XboxLive Indie channel and of course Windows OS native. If you have your heart set on Java, don't, use Processinginstead of raw Java.

Avatar image for devwil
DevWil

976

Forum Posts

8022

Wiki Points

0

Followers

Reviews: 11

User Lists: 7

#26  Edited By DevWil

If you want to get into programming for game development purposes, maybe look into working with Unity3D. It uses JavaScript, which I think is an easy language to learn (and it's got syntax similar to other popular languages). There's also a lot of tutorials available and a very supportive community. Don't be afraid of the Unity forums if you have questions! 
 
I've taken two semesters worth of classes where we used Unity and even the least experienced students had relatively little trouble programming for it. 
 
Also, maybe post  a thread like this over at Tested. Those are the real tech geniuses of the Whiskey Media community.