Turning An Artist Into A Programmer

Started by
19 comments, last by stimarco 18 years, 4 months ago
For approximately ~3 years, I've been using Photoshop. I literally know the ins-and-outs, but I can never obtain great results. It may be due to my habit of perfectionism, and always wanting to pump out the maximum detail achievable in the confines of Photoshop... but then again, I never know if it looks good to others. I started editing when I was naive, in a sense, and it has really hurt me in the long run. To keep it frank, I am sick and tired of creating the artistic side of games and modifications. I want to expand my abilities into programming, and totally forgive and forget my previous working habits, and start fresh, so to say. I have a few questions (remember, I have no idea how programming works and I do not know a single language except BBCode)... 1) Which language would be the best bet for an introduction to programming, as in programming theory, basics, standards, etc? 2) Which books, as well as authors would you recommend (or tutorials on websites)? 3) Is my habit of wanting everything in order a good or bad thing when it comes to programming? 4) Do you have any other relevant information for starting out? Note: I apologize if these questions have been answered multiple times, and if they have, then I would highly appreciate it if you could direct me in an appropriate direction.
Advertisement
Start Here
"Are you threatening me, Master Jedi?" - Chancellor Palpatine
Python makes a nice jumping off point. Read the tutorial and you shouldn't have too many problems.
Quote:Michael TanczosCut that shit out. You shouldn't be spying on other people.. especially your parents. If your dad wanted to look at horses having sex with transexual eskimo midgets, that's his business and not yours.
What is "the" tutorial? :P
Python Tutorial

Personally, depending on your age if you at least above 12. You could easily grasp a language like Java or C++. If your in college consider taking a programming class.

Some really basic C++ tutorials can be found here.

Those should get you started in C++, for a beginning C++ compiler I suggest Express VC++ 2005 only because its currently free to download.

However assuming you eventually want to buy visual studio and not use the expression version. You can buy either visual studio as a whole package or buy just visual c++ which is what I do. Even though now I also buy C# seeing as its pretty cool too.
- GDKnight
Beginning C++ Game Programming is good if you want to learn C++. If you want to learn 3d programming then your going to have to learn alot.

NBA2K, Madden, Maneater, Killing Floor, Sims http://www.pawlowskipinball.com/pinballeternal

Quote:
Is my habit of wanting everything in order a good or bad thing when it comes to programming?

Probably good, but can be bad from my experience ... I have the same problem sometimes, I obsess over some minor thing so much that I miss the point on what I'm even trying to do in the first place.

However, programming is something where if you are a perfectionist you should feel right at home.

OK, My advice to start is ...
1) Get "C++ From The Ground Up" by Herbert Schildt.
2) Download an IDE such as Visual Studio Express Beta or Code::Blocks (You can just download a compiler and use notepad to write code and compile it from the comand line, but it is a lot easier to use an IDE).
3) Start learning, and coding!
4) Get extra help from online tutorials and this site.
5) You'll probably be wondering how the hell can I accomplish anything with C++, it all seems so pointless ...
6) Hang in there ...
7) Use a 2D game library such as Allegro or SDL to make pong.
8) Make a better game.
8) Start learning other stuff such as Win32 API, OpenGL, DirectX, some type of graphics engine ... etc.
9) I haven't finished step 8.

Good luck!
How to Think Like a Computer Scientist: Learning with Python
Quote:Original post by AsOne
1) Get "C++ From The Ground Up" by Herbert Schildt.

He of bullschildt fame? Not a good idea.
Could those who know multiple languages (And know them well) and still suggested C++ please raise their hands? No one? I thought so. [lol]
C++ is usually heralded as the one and only language you need to learn, and as a good starting point. But usually only by people who are still learning C++, and who are not already programmers.

Of course it's perfectly possible to do so, but C++ is not very well suited for beginners. And here, beginners usually say "Yeah, but game programming is done in C++, so if I learn something else first, I'll have to spend extra time later on, moving to C++".
And again, I disagree. (Out of experience, really)

There are two aspects to programming. One is to get into the mindset, the way to transform your ideas, problems and solutions into something the computer can understand. If you want to make a Pacman game, where do you even start? How can you break the vague concept of "a Pacman game" down into code?

The other is to learn the specific syntax of a language.
Does a line end with ;, a ) or just a line break?
are blocks of code defined just by the level of indentation, or are they surrounded by { }'s? And so on.

The former can be learned from *any* language. But the fewer obstacles the language throws at you, the easier you'll learn it. (Because you have fewer distractions. It's really hard to think about how to break down your vague idea into something the computer will understand, if you're constantly being bombarded with hard-to-track bugs and weird language "features" that cause your program to crash.)
What's more, this is language-independant. If you're able to figure out how to implement your program in one language, then you can do it in any language, pretty much. And it's the hard part. This is what people can spend months or years learning.

The language syntax is obviously language-specific. And it's not really important. It's a matter taking a day or two to learn the basics of the language, and then looking things up as and when you need them.

On that basis, I'd say you should find a language that makes the former as easy as possible. Because that's what takes the most time. It's also the most useful in a cross-discipline scenario. If you go back to being an artist, the programmers you're working with will love you if you have an understanding of programming. It'll allow you to communicate with them. You can tell them how you were hoping your fancy graphical effects to look and work, and they can tell you why it can't be done. And you'll both be able to understand each others!
But they won't give a damn if you know C++'s specific syntax.

C++ is not a very forgiving or intuitive language. It's one that likes to kick you while you're down, and sneak bugs into your code when you're looking away. And it's one that gives you full freedom... when it comes to deciding which way you want your application to crash.

Doesn't really sound like a nice environment to learn programming in. [wink]

I'll have to agree with Oluseyi:
Python is a nice language to start with (Of course, so are plenty of other languages you can choose, but C/C++ shouldn't be among them)
Check out How to Think Like a Computer Scientist: Learning with Python
I don't usually like recommending online tutorials (nothing beats an actual book, written by an author who has to go through a quality check before it's published, who has enough pages at his disposal to actually explain things properly, and who has invested time into writing it).
But this tutorial is a very good primer. It'll get you started, and you'll learn things "the right way".

Quote:
3) Is my habit of wanting everything in order a good or bad thing when it comes to programming?

Which order, exactly? [wink]
It's definitely a good thing to want to enforce some kind of structure on your thoughts. Expect to have to reorder it all a number of times along the way though.
I guess you could say it's a very good thing, as long as you're willing to be the one to order things. Don't expect them to be ordered from the beginning.

Quote:
4) Do you have any other relevant information for starting out?

Hmm, expect to [google] a lot. [smile]
And have patience. You're going to spend a good amount of time writing text-based applications, and this is probably going to seem irrelevant or pointless to you. I'm afraid it's one of those things you'll only really see the value of afterwards. Because the programming you do there *is* directly applicable to games, even if it doesn't look like it.

This topic is closed to new replies.

Advertisement