I wouldn't really consider myself a pro but...
I think many here are programmers first; meaning that we have learned and used a variety of languages. While many use a different syntax, the concepts and algorithms generally can be applied from one languge to another. for example...
===========
I started with Atari Basic then here was my progression
(There are other languages I explored as well, but never really became proficient in ie, pascal,logo,TI-basic etc...)
-Assembly language for the 6502 microprocessor
-Microsoft Basic
-Qbasic and GWbasic
-Assemmbly language for intel 8086 microprocessor
-C
-Microsoft Visual Basic
-C++ (numerous compilers and API's)
-PIC and Basic Stamp Microcontroller programming
-Java
.... Currently working with DBC/DBP Javascript and VBscript
I started learning early on in basic on my own. Lots of "Trial BY Error". I then learned from magazines like Compute! and books from the public library.
Eventually I studied a Computer Science Curriculum. It really helped me focus on Data structures, and algorithms, recursion, and all the stuff that I used to skipover while self-learning
===============
In the last few years there has been an explosion of game programming books and resources at retail booksellers like Borders. I learned alot about game programming from lamothe's series, the Gems series etc...
Lastly internet resources such as [href]www.gamedev.net[/href] and the like have helped out as well. It is a big advantage to know languages that have more articles and material around the web like C++.
As for DBC/DBP specific, I have tried to incorporate my past experiences, and again learn by "Trial by Error". The best learning for me comes from
1)Trying to code something yourself. Reading the Help, and trying some more. Some people give up to easily and then allow other to code for them without truly understanding how and why things work.
2)Reading the forums, and SERIOUSLY looking at other's code. Not just skimming, but truly understanding what and how things work together.
3)My best advice is to set a goal of learning 2-3 things every day. By learning i mean that you are solid on the concept or command; not iffy, but confident that you thoroughly understrand it. In a months time you will be 60-90 times more proficient then you are today.
========
some final thoughts....
Don't be afraid to make mistakes. More can be learned from experiments gone wrong than gettting it right on the first shot; in most cases.
Be easier on yourslef. Enjoy your programming.
Think Big, but start small.
Keep experimenting. Try to learn 2 or 3 ways to accomplish a task. Sometimes your first hunch at a solution isn't necessarily the best.
Remember... "TANSTATFC"
There Ain't No Such Thing As The Fastest Code
~zen
~zen