ID:1288571
 
I'm really new to BYOND as far as coding goes. I read the DM Guide(though I haven't finished), read tutorials, do tutorials, but I barely seem to grasp the basics: actually I'm absolutely certain I don't have a full grasp of even the basics. I'm uncertain if I'm weak willed, incompetent or something else (perhaps both?) but I don't seem able to stick to the DM guide, and though tutorials do teach me a lot, what I want to do seems more advanced.

I want to get the communities ideas on this, what is the best approach to learning how to code or rather what has been the best approach for you, or what would you consider to be the best. I realize each person is different, but I'd like to hear a few of your stories and hopefully grasp a route to follow from it.

Thank you in advance,

Ligbyr.
Just re-read everything until you're sick of it. When you can start to recite some of it in your mind without looking at it, then you'll start to get the hang of it.

If drilling it into your skull method doesn't work for you, try more examples / hands-on tutorials.

If that doesn't work, check out albro1's video tutorial set. http://www.youtube.com/watch?v=L7hZ_bd90b4
What helped me the most was actually seeing real, working code over and over. Well, that, and once I had read over everything a friend told me to make something basic, and I kept referring to the DM Reference in Dream Maker. This was after reading nearly the entire guide twice, though.

That Reference very well may be even more useful than the DM Guide its self once you've finished reading, though. I still use the reference pretty often for reminders, and that sometimes even leads me to things I didn't know yet.

Edit: Whatever you do, don't just download sources and such you find via google. Anything that's a rip will teach bad habits, and anything that is open source will probably be too much for you. I started off reading a few demo's and libraries in the resource section, and then moved into a couple of old sources a friend of mine never finished, no longer needed, and said I could learn from.
Trial and error and editing code that works are the best ways to learn, IMO. I never read the DM Guide (I can't just read anything to learn it; I have to be actively involved with it), but everyone is different so don't think you can just skip it.
So far I've been scavenging from source codes to find things that are similar to what I want. Some of them have given me a better understanding, most of them just have me lost. I have yet to do a complete reading of the DM Guide and find myself restarting time and time again, I believe the farthest I've gotten is chapter 8. I'll read the guide from start to finish today and won't code anything until I have, hopefully I'll retain it.

Thank you for your stories, they were helpful.

Edit: If only to give me more resolve.
In response to FKI
FKI wrote:
Trial and error and editing code that works are the best ways to learn, IMO. I never read the DM Guide (I can't just read anything to learn it; I have to be actively involved with it), but everyone is different so don't think you can just skip it.

This, more or less, would be my recommendation for the basics. Programming is essentially a craft, and you nail basic skills by practicing them. Monkey see, monkey do.

Refinement, is usually what needs some reading and discussion with your superiors, to take on board their experience and open your eyes to newer ways of working. Then, you apply what you've discovered there, evaluate how well it worked etc, and iterate on it.
Im in the exact same scenario as you bro , I understand the basics but cannot extend to grasp a full understanding yet.
Trial and error. Find a tutorial and practice taking what you learned and stretching what you can do to the max. You'll get new ideas and try to implement them, and you'll fail... a lot. It's just part of learning. You need to persevere and keep looking towards a goal. You will get frustrated, you will stay up all night trying to solve a trivial problem, and you will be delighted every time you succeed.

There really isn't a magical method to learn fast. This is like learning a new language, and you need to rethink how you think in order to use it. Once you get decent at it though, it's much easier to learn new concepts and refine your skills, or even learn another programming language.
In response to Fugsnarf
Fugsnarf wrote:
Trial and error. Find a tutorial and practice taking what you learned and stretching what you can do to the max. You'll get new ideas and try to implement them, and you'll fail... a lot. It's just part of learning. You need to persevere and keep looking towards a goal. You will get frustrated, you will stay up all night trying to solve a trivial problem, and you will be delighted every time you succeed.

This.
It varies for each individual. If you're an abstract thinker, acquiring new knowledge and applying them where it's necessary will be easier for you compared to someone who is not an abstract thinker. With age comes experience, and with experience comes knowledge. But as the others have said, it's just trial and error at the most basic level--though for some individuals(which I elaborated on earlier), this will be difficult. I can practice juggling many times and fail many times, and still end up failing. Is it because you have difficulty catching the balls? You're too slow? You lack hand-eye coordination? Probably, but determination also plays a factor. If you're determined to be a juggler, you will practice and fail as many times it takes to get it because you're determined to do so; if you're not determined this will be very difficult for you, and you'll eventually give up.

As some other experienced users have suggested, just write some code. And then write some more. Your first few years you'll be writing some pretty awful code, but you get better.

Reading theoretical stuff is good - you'll misapply, misunderstand, and generally mis anything you get out of it at first, but the background is handy later when you've got more of an idea what you're doing.
I did it mostly by looking at code and books (then later internet posts) and fiddling with things. Change something, see what happened, try to understand what I was looking at. It was just fun, I never thought of it as trying to learn. Computers were a cool new toy.

Languages like DM are great for getting into programming and learning some basic ideas so keep doing what you're doing and don't worry too much about understanding everything or feel like you're incompetent. There's a lot to understand.

Break it down into small pieces, pick one thing you don't understand and try to figure it out. If you want to know what something will do, write a little bit cf code and run it and see what happens. There's lots of people around to ask questions, too.

If you really want to "get" what your code is doing you need to know what's really happening inside your computer. Read about the different parts of the hardware and how they interact. Read about the operating system and what it really does, and what a program actually is and does. Try and learn a simple, low level native language like C and think about how the code you write is controlling the CPU and memory.

The most important part of learning anything is time and the best way to spend time is to have fun. Just keep reading and having fun, playing around with your own and other people's code is the way to go.
In response to Stephen001
Stephen001 wrote:

Refinement, is usually what needs some reading and discussion with your superiors, to take on board their experience and open your eyes to newer ways of working. Then, you apply what you've discovered there, evaluate how well it worked etc, and iterate on it.

I have to agree with this, peer review is definitely the biggest thing that helps refine how you code - along with standards that you are held to on review. Even after a few years - there is someone there to say "What the heck are you doing here?"

Wow, thank you for all the advice, I did not expect this much honestly. I'm reviewing SS13 code right now, :^l it seems like gibberish to me, but I'll get it soon (I hope). :D You guys are awesome.
Probably not the best choice of code to try to learn from...
Here are what I used!

http://www.byond.com/developer/articles/resources
This is the BEST tutorials you can find on BYOND, most likely..

http://www.byond.com/developer/
Bunch of other Development resources! You can learn from few providers such as Forum_Account, Shadowdarke, Deadron, Flick and SilkGames' Hud Library too

EDIT: You can also find Super Saiyan X's post which are helpful too!
Zilal's Action RPG tutorial is the first tutorial I used. She literally goes through step-by-step from opening DM to writing your first piece of code. I remember being frustrated because I felt like it didn't give me enough actual code examples and was a lot of text, but it really pushed me in that way to get a handle on syntax when I literally had no knowledge of it. I still swear by her tutorial because of how much it helped me get started. Plus it gave me a lot to work with in order to stretch what I could do as much as possible.
I stopped reading the SS13 Code was too complicated, going to do every tutorial on the resource page, before I go back to coding my game. I'm definitely doing Zilal's Action RPG Tutorial. Thank you Fugsnarf.
DO NOT, I repeat: DO NOT. Use the SS13 code as a source of learning, ever.

half of it is done in the most stupid ways imaginable, and it just isn't very useful in terms of learning.

If you want some tips from a beginner, what helped me was just start my own game, make some small things I could make, then think about what I wanted to make next, and just try.

What also helps, is having someone to help you, and back you up. I've been having help from someone for 4 days straight until I got some of the basics through, it really, really helps to have someone to back you up on problems and questions you may have.


EDIT:

As you become better, you can try rewriting the simple scripts you made previously and just try to do it better, I've been doing this for a small time now, it helps.
Yeah, the public SS13 code is kind of a mess. It's a good example of the negative aspects of open source. You don't want to just blindly copy other people's code in any case, keep it small until you can understand what you're looking at.
Page: 1 2