ID:1062116
 
Problem description:

Hello byond, I'm a new coder and I have a good grasp of the most basic DM programming. My problem is once I get into the more complex coding I feel overwhelmed and can't understand anything.. do you have any tips or tricks for me? I'm using the DM guide, ref, and various libraries/demos on my journey to becoming a programming master, thanks in advance.
Yeah. What I do when I run into this issue is close the Dream Maker and not touch it until the morning. That's a good way to get a fresh start with a fresh head.

Just take a break, bro.
Time away is time well spent. Every time I come back to a problem I had the night before, I nail it shut in about 10 minutes each morning.
I think this belongs in Design Philosophy, but anyway.

As Yusuke13 suggested, if you're having problems with something, take a break then come back to it later. Also, it doesn't hurt to take a look on the web or the forums--chances are, someone already provided a solution for the problem you are having trouble with. Don't try to learn everything at once, too; focus on a specific topic and when you feel you have a good grasp on it, move on to something else.
Usually if I'm stuck with something, I don't want to lose the momentum I've gained so I switch to another project in queue and then return to the problem I had later. That way, I'm still in a programming mood, but the project can be taken on with a fresh approach.
I'm with Maximus on that one. When I'm in a good programming mood, I need to milk that as much as I can. On the other hand, often times the frustration of one problem can make your life miserable. When I was first learning, I spent nights staying up until 6 AM just trying to figure out how to make something work. I loved it! Sometimes, I would fix the problem after a lot of work and concentration; there's no better feeling. Other times, I would just need to leave it alone and focus on something else completely. Succeeding in getting past this point in the learning process (your first few real struggles on problems) is what makes or breaks you. The frustration never ends, but it does get better. Just keep experimenting and don't lose heart.
I agree with what this ^, I've personally experienced it. It's almost like your brain somehow processes the problem in your idle time and then hands you the answer.

What I have to add is this: break a problem down into parts and don't think anything is out of your reach. For example, say I wanted to write a strategy game. I'd break this down into all the different things I'd need to first learn, research or work at, and if needed break those down too, and so on. This is where it is really important design your program on pen and paper or some other medium first so you have a clear outline of what you want the program to do or how you want it to be. This way you know what you have to program, and so you can then break the problem down in terms of code and structure.

So I think personally, the key to learning programming with more ease is to first learn the principles of good design. Whatever method of design works for you, stick with it, refine it and develop it. Without design, programming is useless.
I say this in response to a lot of similar questions, but it's just so applicable: Don't get too ambitious. Technically nothing that is physically possible on a computer is out of your reach. However, are you going to create a photo-realistic FPSMMO all by yourself? Probably not. Big commercial games generally have big commercial teams of paid employees who are experts at specialized fields within game creation: programming, artwork, audio, storyline, voice acting, you name it. Each of those can even be broken down into more sub-categories. Programming might be divided into graphics engine, physics, GUI, and so on.

As a single BYOND developer, who probably (hopefully) has other things to do besides hack away on DM all day long, you will have to fill many of those roles on your own. This can be both a curse and a blessing. It's great because you experience and learn about many facets of game development, and have full artistic control over your project. On the other hand, you have to fill several jobs as you write code, draw graphics, decide on the game's rules and structure, and more.

So although you should definitely spend a lot of time writing code and drawing icons, you shouldn't necessarily do it with an impractical goal. If you are constantly getting stuck in early development, your projects might be too big for you to take on right away.

I often find that things I learn while working on one project allow me to go back and surpass a block I had in a previous project. Then again, I also find that I have trouble finishing things because I start too many new things :/

I suppose a balance is what you want to find
With what Magicsofa said in mind, I always suggest making what I call "Stupid Games" when you're first learning programming and game design. I call them "Stupid Games" because that's what I called my first "game", Stupid Game. It was basically one big mash of concepts I had learned about, all starting with the basics I made via Zilal's tutorial. Basically, when I got a new idea, I tried to add it to Stupid Game. It was an excellent way to get my feet wet and learn all sorts of new things. It was also a lot of fun!
How I learned was to just work hard and ask for help (at first). No doubt you'll need some explanation, learning to program is tough. Read all the tutorials you can, and get a few of the knowledgeable guys to point you in the right direction when you're having an issue you don't understand.

Most of all, be confident when you go to learn something new. If you're uncomfortable, it means you're growing.

One final tip; There's no shortcut to learning to code. You wont learn one thing and magically be able to code whatever you want. Just keep trying things, you'll get it eventually.