Everyone is in such haste

DeX
06-24-2004, 11:59 AM
Has anyone else noticed how many threads there are along the lines "I've just got VB and I want to make a massivley multiplayer RPG. How do I do it?". Ok they are often not so blunt but a lot of the time people seem to be planning some project way above their current level of skill.

Lots of people seem to be so eagar to jump straight into the deep end and skip all the learning and experience it takes to realise such projects. I certainly don't want to discourage them because with enough motivation you could do anything but certainly a lot people think of an idea and say 'yeah I could do that'. I know I've fallen into the same trap. So many projects have been halted by unforseen problems or I just find my self up to my neck in all the technical aspects of a particular problem. I've probably been programming in VB for about 6 years and there's still a ton of stuff I've yet to learn. Recently I've been doing more and more graphical things. BitBlt was simple enough, then I learnt about double buffering and device contexts, and today have I learnt about DirectX, made a simple DirectDraw animation and learnt about tripple buffering.

I like to take things step by step in a bitesize fashion. This is the only way I've found I'm able to progress with things. I feel that people who set their targets too high will just turn around and give up. Anyone else have any thoughts on this?

HardCode
06-24-2004, 01:15 PM
Yes, some people ask how to do something without even knowing how to DO the steps once they are told.

Programming is so similar to being a doctor.
1. You always have to learn new technologies and techniques
2. You specialize in one area but have general knowledge about most areas

Only thing missing is a doctor's pay! Some people are business programmers, others program scientifically with extensive math, others specialize in graphics and game engines, some focus on device drivers. There is so much that you can do with a PC and one of today's programming languages that you almost need to decide what KIND of programmer you want to be.

Gruff
06-24-2004, 01:41 PM
Gee really? I never noticed. :rolleyes:

The width and depth of writing code (well) is beyond the ken of the average Joe novice. As you found out yourself many of us (hopefully) continue to learn after years of exposure. This of course is spice for those who like change. I'd go out of my mind doing the exact same thing everyday. Heh, Heh.

Nuff said.

PWNettle
06-24-2004, 01:55 PM
Has anyone else noticed how many threads there are along the lines "I've just got VB and I want to make a massivley multiplayer RPG. How do I do it?". Ok they are often not so blunt but a lot of the time people seem to be planning some project way above their current level of skill.

Lots of people seem to be so eagar to jump straight into the deep end and skip all the learning and experience it takes to realise such projects.

I think the key word there is 'experience'. When you're new to programming you often don't realize just how complicated and time consuming it might be to take an idea, code it up, and make it work. When you're new to programming it's easy to overlook the tons of details that might be involved in making a simple program.

Many of us get taught how to plan, write pseudo-code, etc - but not everybody incorporates this into their programming cycle. I know I hate doing it - I prefer to do minimal planning, maybe draw some pretty pictures, and then program by the seat of my pants. I've never met a programmer that actually did the whole planning cycle as I was formally taught. I'd like to think that after years and years of doing this that I've developed some sense of what my limitations are.

I would imagine that most of us at some point, when we were less experienced, thought we could write an application/program/game, only to discover that we were in way over our head and had underestimated the complexity of the project. I think it's part of the evolution of any programmer.

You have to keep in mind that this forum is visited by a lot of programmers of different skill and experience levels. Some are seasoned vets who should be familiar with the realities of vision vs reality - and some are people who are completely new to programming and VB and who might not incorporate reality checks into their vision.

Even though I do think people are sometimes wanting to write code way beyond their abilities or want to single-handedly write code more suited to a large team, I think it's a often a good thing to have such desires. One of the best ways to grow as a programmer is to be forced to learn how to do something entirely new. It might be painful but once you figure out whatever you're doing it's very satisfying and you're that much more knowledgeable. I also think that the more you conquer pieces of code, or solve problems, the better you become at it - which is also a good thing.

Cheers,
Paul

Banjo
06-24-2004, 02:02 PM
I often combine seat of your pants coding with writing pseudocode by writing it as comments within VB. This also make the process of converting the pseudo code into real code much simpler.

On the original topic, one thing you often see a novice say is "surely there's a function to do X". They often can't seem to accept that there's no easy way to do something.

00100b
06-24-2004, 02:07 PM
Here Here! I totally agree.

The only way to really grow is to find your limit and then strive to put that limit behind you. Not just in programming but in anything you do.

I think the key word there is 'experience'. When you're new to programming you often don't realize just how complicated and time consuming it might be to take an idea, code it up, and make it work. When you're new to programming it's easy to overlook the tons of details that might be involved in making a simple program.

Many of us get taught how to plan, write pseudo-code, etc - but not everybody incorporates this into their programming cycle. I know I hate doing it - I prefer to do minimal planning, maybe draw some pretty pictures, and then program by the seat of my pants. I've never met a programmer that actually did the whole planning cycle as I was formally taught. I'd like to think that after years and years of doing this that I've developed some sense of what my limitations are.

I would imagine that most of us at some point, when we were less experienced, thought we could write an application/program/game, only to discover that we were in way over our head and had underestimated the complexity of the project. I think it's part of the evolution of any programmer.

You have to keep in mind that this forum is visited by a lot of programmers of different skill and experience levels. Some are seasoned vets who should be familiar with the realities of vision vs reality - and some are people who are completely new to programming and VB and who might not incorporate reality checks into their vision.

Even though I do think people are sometimes wanting to write code way beyond their abilities or want to single-handedly write code more suited to a large team, I think it's a often a good thing to have such desires. One of the best ways to grow as a programmer is to be forced to learn how to do something entirely new. It might be painful but once you figure out whatever you're doing it's very satisfying and you're that much more knowledgeable. I also think that the more you conquer pieces of code, or solve problems, the better you become at it - which is also a good thing.

Cheers,
Paul

Flyguy
06-24-2004, 04:03 PM
I have the biggest problems with thread titles like "Simple problem" or "Easy question", it takes a lot of self control not to reply with some sarcastic answer.

Iceplug
06-24-2004, 04:26 PM
Has anyone else noticed how many threads there are along the lines "I've just got VB and I want to make a massivley multiplayer RPG. How do I do it?".
One big problem are the small projects which grow complex in the wrong ways.
OK... I made my button read the text in the textbox. How do I make a sound play while its reading the text? OK, how do I make it so that a little laser runs inside the textbox while it is reading the textbox? OK, how do I get the form to flip around while it is reading? OK, how do I get my program to turn on my oven?

I think that it's essential to get all of the basics of programming done before one ventures into other areas... learn the intrinsic VB functions before learning API (or at least half of VB's functions)... default controls before using 3rd party controls.
Addition before calculating Pi. :)

KermitDFrog
06-24-2004, 04:35 PM
with respects to the "there must be a function to do X" quote, I found that the best way (at least for me) to learn things, is just to build my own version, for instance, I built a personal version of the Instr function that incorporated a Loop and a few if's, did I need to? no, there is a perfectly good (in fact, better, it was about 5 times as fast as my version) function native to VB, but by building my own, I learned not only about the instr, but about left's and rights and mids and (to an extent) the like operator (which is seriously underrated, once you figure out how to use it.)

now, mind you, I'm still just a mediocre coder, so maybe im way off base, but maybe these newguys actually have something, The have alot of zeal to just get in an build it, regardless of whether they actually know what there doing or not. You gotta give em creds for that, at least, Having the will to code something is half the battle,

I wouldn't stay up till 2 am to find that ONE little bug in my Bitblt engine if I didn't WANT to, (or, for that matter, if I hadn't had that full pot of coffee at 11:39;21.5s pm... (yes, thats exact. to the 10th second... :) ))

~~Joe

Banjo
06-24-2004, 04:45 PM
You misunderstood me. I was referring to complex tasks like sending email, contacting chat servers and remote controlling other applications.

EracMan
06-24-2004, 05:34 PM
OK, how do I get my program to turn on my oven?


:chuckle: LOL. That's good...By the way how do you do that? ;)

blindwig
06-24-2004, 06:25 PM
I have the biggest problems with thread titles like "Simple problem" or "Easy question", it takes a lot of self control not to reply with some sarcastic answer.
It's usually best not to bother - Reboot will be more than happy to take care of that for you... ;)

Iceplug
06-24-2004, 06:41 PM
:chuckle: LOL. That's good...By the way how do you do that? ;)
Of course you add a reference to the Microsoft Easyactive Cooking DLL.

(Part of their new Olfactory User Interface project.) :p ;)

reboot
06-24-2004, 07:40 PM
You misunderstood me. I was referring to complex tasks like sending email, contacting chat servers and remote controlling other applications.
bahahahahaha! Banjo, you're killing me.... :D

PrOpHeT
06-24-2004, 08:36 PM
I have found that by setting my sights higher than I know I can code on my own, then figuring out massively over coded solutions to those problems, then refining those solutions to more efficient code, has probably been the bulk of my programming learning experience. The brain is just like a muscle, you do not go to gym and lift the weights you know you can lift and expect to gain strength. Why should you program any differently?

anon
06-24-2004, 10:52 PM
One issue is that programmers who are moving beyond the newbie stage know how to code this function,
...or that module,
...or how to use a snippet for a particular API,
...or learn to work with boilerplate code for DirectX.

But when it comes to developing projects in a way that they can scale up easily (and cleanly - without becoming brittle) they don't have a clue and you download someone's project and it takes an hour to clean up the code enough to begin to debug the issue the poster is anxious about.

And there are no really "big" projects that they can study (and learn how to structure/scale up a project) because the attachments size limitation on the forum.
You could say "go out and buy a book" or "take a course" but there are very few of either in how to do advanced games programming (in VB6) or work with large DirectX projects (in VB6).

00100b
06-25-2004, 05:32 AM
And there are no really "big" projects that they can study (and learn how to structure/scale up a project) because the attachments size limitation on the forum.
This makes a good point. The vast majority of examples are either simplistic or relevant to a specific point. There are very few, if any, full project tutorials that take you from the Feasibility phase to the Post-Implementation Support phase of a software project lifecycle.

This is not to down-play any of these tutorials/examples because they do focus on a specific point which is generally what a person with a problem will look for.

It would be benificial (IMO) to demonstrate a complete project that encompasses all aspects of its development. Although since only about 20% of a project is actually writing code, this may deter many of the hobby-programmers who may feel that all of that extra effort isn't relative to their project. I would contend that it is. It's just a matter of scale.

Hmmm... I might finally have an idea for a contribution to this site.

DeX
06-25-2004, 06:14 AM
I think it would a be a good idea for a kind of guide which outlines the software development process from planning to final release or beyond.

But then as others have mentioned I think the only way to really understand what is involed in any kind of big project is to have experience. A guide would be good though especially if you have done many projects your self.

A section on team projects would be good too. I have only done one proper peice of software in a team of three people but I learnt a hell of a lot from it and it was fun and rewarding.

Anyway if you do make a guide be sure to let us know. :)

Banjo
06-25-2004, 06:43 AM
I have found that by setting my sights higher than I know I can code on my own, then figuring out massively over coded solutions to those problems, then refining those solutions to more efficient code, has probably been the bulk of my programming learning experience. The brain is just like a muscle, you do not go to gym and lift the weights you know you can lift and expect to gain strength. Why should you program any differently?
There is a flaw with that analogy. When you go to the gym you don't expect to do 100kg on your pecs and have someone else lifting 70Kg of that.
That is the equivalent of what a lot of novices expect when they come here.

Now, if you can lift 30kg on your own and want to improve then you'd go to 35 or 40, not straight to 100. In the same way you can't go straight from writing a hello world program to a multi-user scalable chat system. You need to take small incremental steps to improve.

ElderKnight
06-25-2004, 06:55 AM
A collection of some complete, simple projects might be useful.

Suppose that there were provided a straightforward program that illustrated how to prompt for a path and file name for both input and output, open the file, copy it character by character to the new file and close everything properly. That's all it does. Useless, superfluous in itself, but . . .

When a new user asked for help in changing some file in a manner that couldn't be accomplished with a standard word processor, it would be possible to tell him
(1): Load and test the GenericFileCopier project.
(2) through (N-1): You'll want to write a Sub at such-and-such a point to detect this-or-that, read two more lines, delete this, keep that, replace something else, blah, blah . . . and make sure that you put the result in sLine.Out . . .
(N): at which point your problem is solved. Now, go back and improve the project!

Step (1) would save a lot of explanation. This would serve to solve the immediate problem and give the user a strong base to build upon. It should go without saying that the example program ought to be well-constructed and respect convention, so as not to perpetuate any bad habits. Anything that's oversimplified might be backed up by source comments suggesting better ways to accomplish the same. Writing these would be quite a challenge.

I wouldn't think it too much of a crutch: the example would just be telling the new user what he'd get in the first 300 pages of some beginner's book!

I'm sure that you can think of other generic-type projects for which skeletons could be provided.

Agent707
06-25-2004, 07:17 AM
WHAT?????? You mean you guys didn't read the SAM'S Publishing book on How to Program an MMORPG in 21 Days with VB6?????

WHERE HAVE YOU GUYS BEEN???? :D

Agent707
06-25-2004, 07:30 AM
On the original topic, one thing you often see a novice say is "surely there's a function to do X". They often can't seem to accept that there's no easy way to do something.
Well, this is true... in some respect. I "still" ask these questions. (this thread I started yesterday (http://www.xtremevbtalk.com/showthread.php?t=174803) ). I don't consider myself a novice programmer, but certainly am not an Expert.

I learned a valuable lesson a couple of years ago... Before I knew about the replace() function, I was led astay by MSDN into writing a function to do this. As it turns out, Replace() did not come on the to the scene until VB6, MSDN never "updated" that section I was reading with a statement "VB6 users can use the Replace() function". SO... I didn't know about it, for a time...

I was quit embarrased and PO'd when I learnt about Replace()...

My Point is, sometimes you never know... and it DOESN'T hurt to ask.

Obviously it "hurts" to answer though. :p

One thing I have observed though... MOST of the posts ("How do I do "this"?") are results of people not even looking for the answer before they ask.

I always look first... That's why usually when I do get around to asking the question, the answer is usually, "No, the function doesn't exist. You;ll have to write it yourself."

KermitDFrog
06-25-2004, 08:55 AM
well, if you say there are no Massive projects, then get some people together and lets just build one.

It doesn't have to be anything specific, most of my programs involve everything, I have one program that is a Calculator, a Texteditor (sorta) and a H4x0r sp33k translator. its obviously not the size you'd need to demonstrate a ''big'' project, but-- let me explain it like this


a long time ago there was an oilman who wanted to compile a large book the defended his particular religon, he called it the 'fundamentals.' Now, this man didn't know everything about his faith, so he found other people who contributed a small little portion, and then he compiled them and edited them into a large book.

Why not take the same Idea, I mean, i see maybe 10 -15 really good coders, and at least another 40 intermediate ones (includeing myself) that post around here all the time, why not get them all to contribute a simple demonstration of what they know best, be it bitblt or DX or Winsock communications or makeing a line dance around on the screen, then posting these projects in one space, (someone would have to organize them into skill levels) and in that way, have the 'fundamentals' of VB, so if someone had a question, the could know (or be told) exactly where to go?

just a thought.

DeX
06-25-2004, 10:11 AM
I think it would be good to have lots of people from these forums work on a single project together. I don't quite see how it would work though to have everyone write little applications demonstrating what they know. I have a massive folder of a lot of the random bits of code I've done over the years but I don't think it would be of much use to everyone else. The things I have done (for example an app to draw a pretty picture of a galaxy and create pronoucable names for each individual star - or a program to measure how far your mouse has moved over a few months) are too specific not to mention a little pointless.

I think if everyone did contribute to one big project it should be something useful but which also demonstrates a broad range of techniques such as graphics, file processing, internet communication etc. Here's an idea, why don't we all make a MMORPG? :D

reboot
06-25-2004, 10:29 AM
Not that I care one way or the other, but the "community project" thing has been tried several times before here. It never got off the ground. I only mention this so you don't get disappointed if history repeats itself. :)

PrOpHeT
06-25-2004, 11:16 AM
There is a flaw with that analogy. When you go to the gym you don't expect to do 100kg on your pecs and have someone else lifting 70Kg of that.
That is the equivalent of what a lot of novices expect when they come here.

Now, if you can lift 30kg on your own and want to improve then you'd go to 35 or 40, not straight to 100. In the same way you can't go straight from writing a hello world program to a multi-user scalable chat system. You need to take small incremental steps to improve.

I agree with that aspect that the request for help is sometimes worded in such a manner that implies the requesting party realy wants someone to do it for them. But I still believe that setting your sights always higher than your skill is the key to learning. And in the lack of knowledge of the actual problem the request for help can be misworded honestly.

Banjo
06-25-2004, 11:29 AM
True, but the true miswordings are very rare. You can easily tell them apart because you give the poster a few hints and tips and they then go off do some research, have a go and come back with problems, questions and other things that indicate they have given it a go.

More often than not they come back immediately with "how do I do that?" and they keep doing that until you're basically giving them the code.

KermitDFrog
06-25-2004, 11:30 AM
Dex, Im not saying a single project that ''does'' anything, just a single project that contains many smaller projects that show how various things work.

Reboot, I'm sure that a community project has been started before, in fact, I think I might have even been here when the last one was started, but I think the real problem is that though many have been started, many also have been ended, in that, they were given a 'due' date.

I don't like deadlines. Why would we even need one? also I never said it had to be a community project, if it comes down to me, myself, and I coding the whole thing, then I'll be the only one listed in the Credits. Which is fine with me.

However, if anyone wants to participate, I'll start getting something organized.

~~Joe

noi_max
06-25-2004, 03:23 PM
My $0.02

Let us not forget that while theres a lot involved in creating a game (code-wise) there is at least an equal amount involved in game design and artwork/animation as well as several other things I haven't mentioned.

If you're to be a "one man army" you'll need to be prepared to wear a lot of different hats, so to speak.

I've just started with DirectX and have done bitblt and some collision detection, but that's such a small part of the entire picture.

However I, like many other newbies, have been seduced by concept, and then wounded by reality.


But I'm not dead yet!

Gruff
06-25-2004, 05:28 PM
My $0.02
...
However I, like many other newbies, have been seduced by concept, and then wounded by reality.

My sense too. (Heh)

Agent707
06-25-2004, 07:44 PM
True, but the true miswordings are very rare. You can easily tell them apart because you give the poster a few hints and tips and they then go off do some research, have a go and come back with problems, questions and other things that indicate they have given it a go.

More often than not they come back immediately with "how do I do that?" and they keep doing that until you're basically giving them the code.
I have to agree with Banjo. Even if you set your sights just slightly higher than your capabilities, you're STILL reaching BEYOND your capabilities and somewhat limit what you are able to accomplish on your own.

If 100kg is the MAX you can lift 10 times.. than just continue lifting 100kg's until it is NOT the max you can lift, THEN add the weight.

It does you a LOT more good to lift 100kg's 10 times than it does to lift 110 just once. (and the other 9 times you're busy asking questions on how to lift the extra 10kgs).

Agent707
06-25-2004, 07:48 PM
However I, like many other newbies, have been seduced by concept, and then wounded by reality.
I think we all have fallen into this at one time or another in our programming life. I raise my hand. :D

KermitDFrog
06-25-2004, 08:13 PM
true, it would be hard to code the whole thing sols persona (thats not latin, really, I just made it up... :) ), but I'm of the belief that I can do anything, given enough time to learn how. even if it takes me 20 years, and it is completely obsolete by that time, at least I can say I did it.

~~joe

KermitDFrog
06-27-2004, 09:01 PM
in case anyone was curious, I worked up a litt- ok, not so little outline (nine chapters, but its pretty much a A-Z covering of VB) for the project, if you want to help, Give me a hollar with what you can code (and notably, write a couple paragraphs on, if you cant code it but you can write on it, thats fine, but If your gonna code, make sure you can write a paragraph on it, I'll edit it and buff it if needed) my email is below.

It is big, and I fully plan on doing it help or no, but as long as someone wants to help, yall are welcome to, I am posting the Outline as an attachment.

kermitdfrosch@hotmail.com

~~Joe

PS, the name of the Book is "The F.A.T. VB book" (F.A.T. VB stands for fundamental applications and theorys of VB), I thought it was clever... :P

PPS, oh, and I'm gonna take the Whole of the Cryptography point, except maybe the modern cipher part, I dunno how well I'll do with RSA and such. We'll see, for now, I got the first Chunk of Cryptography (Points A - D), I'll keep this updated with who's doing what (even if its only me.. :P)

Banjo
06-28-2004, 04:50 AM
The trouble with clever acronyms is that unless the target audience "gets" it then all they do is confuse.

KermitDFrog
06-28-2004, 06:21 AM
true, true, but i thought it was clever, so w/e... :)

EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum