What now? I want to start using my book knowledge.

Started by
7 comments, last by jpetrie 17 years, 6 months ago
So I wanted to learn to program. Why? I saw how cool a certain Nintendo 64 port was. I wanted so badly to help make it better, particulary on the platform is was on, since it had been ported. Quality had been lost in the port. Since, I have seen so many more open source projects (Mostly Emulation-Ports) that I've wanted to help improve or port myself. Since then I've read The C Programming Language, C++ Primer, and Sam's C++ in 24 Hours. I've also got into HTML/CSS, PHP, and MySQL and have successfully created my own web page. I'm thinking I'm starting to understand C++/C. However, I have had very little hands on work. What should I be doing to test out and try to start programming. #1 I don't really want to make games or mods. #2 I don't want to create anything from scartch. I'm not interested in building huge frameworks for applications. I'm more into taking open source code and porting it to different platforms. #3 I'm kinda interested in Windows Programming, but I'm still hung up on the whole C# vs Windows Forms vs Win32API vs MFC. What should I try to do? I need something to work on and try my hand at to reinforce my reading. I'm more into application, porting, emulation, and web (PHP-MySQL) programming.
Advertisement
Try porting a simple but complete C++ project from sourceforge.net to a new platform.
--== discman1028 ==--
Don't believe those books who says they can teach you something in 24hours/7days etcs.

The more you payed, the more you gained.


if you don't wanna create anything from scartches, you can pick those like C# who have a lot of already prepared frameworks.

but I think recreating sometimes is recreation :)
Veni Vidi Vici
"C# vs Windows Forms vs Win32API vs MFC"

MFC is dead. The only people who use it are people who have used it for over 5 years and are very proficient at it (and therefore don't want to learn something else) and companies which have code bases with 3+ years of investment. Even those people and companies are slowly moving to the light. You might however want to understand a small amount of MFC's core philosophy and organization - just enough to recognize its use when you see it, since you will be looking into others code that might use it. But ever month the odds of that being relevant go down.

Win32 API. Good little API for your interest (being involved in open source port / emulation projects). Since most of these projects already exist and need high performance and good access to OS features, the windows versions mostly use the Win32 API directly. Also, understanding the first few chapters of the windows API (Device Contexts, Window Classes, Windows, Message Loops, WndProc) is really criticial to having a good understanding of how the rest of the frameworks / libraries plug in and work. That said, you would never really build your own app with the Win32 API anymore (I don't mean NOBODY would, I mean YOU won't, since you don't know it and don't want to build apps from scratch, big frameworks, or games).

.NET - Windows Forms is the .NET library for GUI applications. C# is the prefered .NET langauge (It is the simplest, near complete and most direct mapping of .NET framework features to a programming langauge.) I absolutely love using the C# / .NET / Windows Forms for creating small little windows applications. I still prefer C++ for big iron (god I love templates and the STL) and ruby for small experiments, but Windows Forms using Visual Studio is just a great mix of development speed and library power (it isn't the top tool in either category, but it performs well in nearly every area, while not having any significant drawbacks).
Quote:
#2 I don't want to create anything from scartch. I'm not interested in building huge frameworks for applications. I'm more into taking open source code and porting it to different platforms.


Tough. How much actual programming experience do you have? How many programs have you written? If you are just "starting to understand C++" then you will have a very difficult time jumping into existing codebases and effectively porting their code from one platform to another.

While it might sound unpleasant to you, you're really going to have to build up some experience with the language before you'll have a rewarding time hacking around in other people's code, and the best way to do this is work on your own projects until you have a much deeper understanding of the language.

Quote:
#3 I'm kinda interested in Windows Programming, but I'm still hung up on the whole C# vs Windows Forms vs Win32API vs MFC.


There's really no reason to bother with Win32 for non-trivial windowing needs, or MFC at all. Use C# and WinForms.
Do what we all did, write Tetris. Don't worry about choosing too much, just pick a technology that makes the most sense and go. If a number of technologies seem equally valid, use dice to break the tie. Doing something with *any* technology is so much better than doing nothing that the benefit of any particular technology over any other one pales in comparacent.
I really really appreciate your guy's feedback. It's very helpful. Gamedev.net is a very helpful community, and it's great to get such wonderful and postive feedback.

I guess it's time to crack open that O'Reily C# book I bought to go along with learning ASP.Net, before I decided that PHP was the best thing since sliced bread.
It will be very relavent with the new Xbox360 Framework and probably the tool of choice for Vista programming.

It won't be tetris for Windows. It will be touch screen Tetris for the DS. Working in homebrew for console platforms is where my real interest lies. So I'll try that.

This programming stuff is really tough. It's not just learn C++. It's learn C++(C), then grab an API. Every new platform requires a new API and sometimes more than one API, DirectX/(Windows Forms).

Other thoughts on my situation would be also very welcome.

you can't really learn anything about computers from a book. you have do get a lot of real-world experiance if you want to be good at a certain language. think of a few projects that interest you and do them from start to finish. I only got a good understanding of C++ after making a few games. it sounds scary but there's no way around staring dumbly at the debugger for hours in a row:)
"We've all heard that a million monkeys banging on a million typewriters will eventually reproduce the entire works of Shakespeare. Now, thanks to the internet, we know this is not true." -- Professor Robert Silensky
Quote:
It's learn C++(C)

C and C++ are not the same languages, especially modern C and C++. Disabuse yourself of that notion soon.

Quote:
It will be touch screen Tetris for the DS. Working in homebrew for console platforms is where my real interest lies. So I'll try that.

Then maybe C# isn't what you should focus on... C# currently will restrict you to the XNA framework, which won't have quite the distribution freedom as other homebrew options (only other XNA GameStudio users can use your game, you can't ship a binary, et cetera).

This topic is closed to new replies.

Advertisement