Hello all, this is my first post.
About a year ago I decided I wanted to learn to create my own win32 programs. I was convinced programming was beyond me and so chose visual basic 6 which seemed like it would be the easiest to learn.
Now I find that I'm using more and more API functions and common controls to to what I want, and to avoid having to rely on external ocx files. I don't like the fact that you need the runtime files either.

I'm at the point where I'd like to learn something a bit more advanced. I heard about assembly from Steve Gibsons site; grc.com. I liked the idea of small unbloated code.

I'm currently reading "the art of assembly -- win32 edition". At times I understand what I'm reading and it all seems to make sense and I think that I'll maybe get to grips with it. Then with other chapters It just doesn't click and seems to be aimed at someoe with more knowledge, and I'm wondering if I'm wasting my time and perhaps should learn something a bit easier.

So, a few questions:
Is HLA a good place to start? My aim is to write failry simple windows GUI type programs. With visual basic, I've learnt how to use the API to make controls like list-view, tree-view, statusbar etc and can understand it.

Is it reasonable for someone like me who only started learning programming with visual basic less that a year ago to be able to pick up assembly?

Given what I've said, should I perhaps be looking at C++ instead?

Any encourangement or otherwise welcome, especially from anyone who started out with visual basic.
Many thanks for any help.
Posted on 2005-04-19 11:35:57 by royalbox
I think that C (not C++) should be your next step.  The reason I would suggest staying away from C++ (at least at this point) is you will not deal with classes/inheritance/polymorphism doing Win32 Applications.

The reason I would suggest to learn C instead of any type of assembly is the fact that you already have VB experience and it might be better easier to understand.  Some people have a hard time coming from a high level language such as VB all the way down to the low level of assembly.

That said, in my opinion, people that have an engineering type of thinking (great with Math, problem solving ... etc) have a much easier time with assembly.

In the end it all depends on what you really want to do.  If you are having a hard time with Mr. Hyde?s HLA, then try C.  If you have a hard time with that, try something else.  I've heard quite a few people talk about PowerBasic, although I do not have a clue about the language.  You could also try one of the .NET languages, such as C#.

But I would suggest you stay away from MFC (Microsoft Foundation Classes) ... I hate those with a passion, and I have been told by a Microsoft employee that he knows of nobody that uses them.

Just my two cents
Posted on 2005-04-19 13:14:47 by gorshing
@gorshing
Thanks very much for the advice. I think you're right. Although I would like to be able to understand things at a low level, I think it may be a bit too much for me so perhaps 'C' would be a better step. I want to avoid .net though. I'm OK with classes in vb and have made classes for several things mainly controls and have been reading about inheritence (which vb doesn't fully support) so I may be ok with c++.
Thanks again for your advice.
Posted on 2005-04-19 15:19:42 by royalbox
Ranma_at is/was a VB programmer and he wrote a couple tutorials on how easy it is to make the move from VB to win32asm.

His page is here: http://members.a1.net/ranmasaotome/main.html .. Good Luck.
Posted on 2005-04-20 09:34:39 by JimmyClif