(Updated) Struggling With Remembering What I've Learned.

posted in ODDVIKINGSTUDIOS
Published November 11, 2018
Advertisement

Well, in my journey (and completion) of learning C#, I've come upon a rather peculiar problem. I don't know if it has to do with having high-functioning autism, which I do, but I seem to struggle to remember anything related to this. If I see it and am given an example I can copy and reproduce results from a simple tutorial, I can do it usually without error (if not too complex). When I attempt to write my own script, my brain completely goes white. I can't remember or figure out how to use different parts of the C# language, and it's like attempting to read Chinese when I look through Unity's Scripting API and look for other tutorials for supplemental learning. I take notes, I pay full attention to the videos and interact along with them, and I do attempt solitary practice. I just can't seem to get anything to "stick" to the point where it makes sense outside of a learning example. I can't seem to apply what I'm learning in reality, and it's becoming a great problem. Does anyone have any advice for getting this stuff to stick? I've always been a visual learner and a hands-on learner, but with logical stuff that isn't within the realms of art has always been something I've had a hard time learning and remembering later on. I appreciate any advice you can give. Thank you.

EDIT: Updated on 11/11/2018 because I've been sick and busy AF with stuff outside of coding. I have been making great headway thanks to the set of tutorials made by http://rbwhitaker.wikidot.com. I was recommended this tutor by the user Septopus, and good gods has he been helpful at breaking down the stuff I didn't understand. I've been following along with the beginning C# tutorials, and will move on to MonoGame ones when I am comfortable. I cannot thank you all enough for the support and encouragement you've given. Just another sign I should keep going with this. :)

Take care! 

3 likes 27 comments

Comments

alnite

How long have you been programming? This is a common problem among new learners that they cannot form basic logic when tasked to write the code from a blank slate. Especially nowadays with the massive availability of code on the open source and stack overflow. People have gotten lazy.

Practice writing your own code (do not copy-paste from sample or open source) is the only way to do it. Start with pseudocode. It helps in forming the basic logic without dealing with syntax details, then convert your pseudocode into real C# code.

November 01, 2018 07:15 PM
ODDVIKINGSTUDIOS
15 minutes ago, alnite said:

How long have you been programming? This is a common problem among new learners that they cannot form basic logic when tasked to write the code from a blank slate. Especially nowadays with the massive availability of code on the open source and stack overflow. People have gotten lazy.

Practice writing your own code (do not copy-paste from sample or open source) is the only way to do it. Start with pseudocode. It helps in forming the basic logic without dealing with syntax details, then convert your pseudocode into real C# code.

I have been attempting to learn for almost 3 years. I honestly wasn't trying to be lazy when I'd look for references; I was needing an example of how different parts are used, and usually I'd still end up scrapping the code I was working on because I couldn't get it to work correctly. This has been a major block for my game development and the main reason I haven't made anything yet.

What is pseudocode? EDIT: Looked it up, gotcha. Thank you!

November 01, 2018 07:18 PM
bdubreuil
15 minutes ago, ODDVIKINGSTUDIOS said:

This has been a major block for my game development and the main reason I haven't made anything yet.

May I suggest you to do something extremely simple, like a Pong? 

 

The only problem with Unity is that you cannot start to learn C# with it and totally understand what's going on under the hood because Unity is such a gigantic game engine. If you want to learn how to code and not just program video games, which is always applied to game development contrary to some closed minded people believe, maybe you should start with the basics and then jump into game development by slowly making bigger games with bigger engines?

 

I personally do not understand why some people think they can make games alone without any relevant programming knowledge such as what are collections and what is the difference between them? What I mean is that I believe programming should be learnt on the side or beforehand.

 

My final advice would be to use a small 2D engine to make games. That would force you to learn how to program properly and understand what you do.

 

I hope you will figure out a way to learn what you want and make the games you want :) 

November 01, 2018 07:46 PM
ODDVIKINGSTUDIOS
Just now, thecheeselover said:

May I suggest you to do something extremely simple, like a Pong? 

 

The only problem with Unity is that you cannot start to learn C# with it and totally understand what's going on under the hood because Unity is such a gigantic game engine. If you want to learn how to code and not just program video games, which is always applied to game development contrary to some closed minded people believe, maybe you should start with the basics and then jump into game development by slowly making bigger games with bigger engines?

 

I personally do not understand why some people think they can make games alone without any relevant programming knowledge such as what are collections and what is the difference between them? What I mean is that I believe programming should be learnt on the side or beforehand.

 

My final advice would be to use a small 2D engine to make games. That would force you to learn how to program properly and understand what you do.

 

I hope you will figure out a way to learn what you want and make the games you want :) 

Thank you very much. To be honest, I got interested in game development some years ago and heard about Unity - I was okay at first when they allowed Javascript, and then that functionality was removed and I have struggled since then. Which engine do you suggest for the 2D game making you suggested? I'd love to get started! 

November 01, 2018 07:48 PM
alnite
34 minutes ago, ODDVIKINGSTUDIOS said:

I have been attempting to learn for almost 3 years. I honestly wasn't trying to be lazy when I'd look for references; I was needing an example of how different parts are used, and usually I'd still end up scrapping the code I was working on because I couldn't get it to work correctly. This has been a major block for my game development and the main reason I haven't made anything yet.

 

Sorry, not accusing you of being lazy. Looking up for samples is fine, and in cases where you actually need to use the sample code verbatim, I'd suggest to avoid copy-pasting it directly, but rather, type in the code yourself. In other words, don't use Ctrl+C, Ctrl+V at all. Put the sample code side-by-side with your text editor, and write them yourself line by line. This somehow helps your brain better than just straight-up Ctrl+C, Ctrl+V

 

Quote

What is pseudocode? EDIT: Looked it up, gotcha. Thank you!

 

Code written in simple plain English (or whatever language you comfortable speak). It is not meant to be compilable. There is no formal structure to pseudocode.  It is up to you. Example of a pseudocode would be:
 


for each item in inventory
    if item value < 10
        discard item
    else
        check for item size
        if item size > screen_size
            resize item

 

You can work out your own logic without worrying parentheses, quotation marks, variable names, etc. Once you think the logic is right, you can convert every single line of the above into actual C# code.

November 01, 2018 07:59 PM
ODDVIKINGSTUDIOS
1 minute ago, alnite said:

 

Sorry, not accusing you of being lazy. Looking up for samples is fine, and in cases where you actually need to use the sample code verbatim, I'd suggest to avoid copy-pasting it directly, but rather, type in the code yourself. In other words, don't use Ctrl+C, Ctrl+V at all. Put the sample code side-by-side with your text editor, and write them yourself line by line. This somehow helps your brain better than just straight-up Ctrl+C, Ctrl+V

 

Code written in simple plain English (or whatever language you comfortable speak). It is not meant to be compilable. There is no formal structure to pseudocode.  It is up to you. Example of a pseudocode would be:
 



for each item in inventory
    if item value < 10
        discard item
    else
        check for item size
        if item size > screen_size
            resize item

 

You can work out your own logic without worrying parentheses, quotation marks, variable names, etc. Once you think the logic is right, you can convert every single line of the above into actual C# code.

Thank you so very much. I'm going to go ahead and get started! You've been a tremendous help, and don't worry! I didn't think you were calling me lazy; I just like to explain myself sometimes is all. Again, thank you very much for your advice! 

November 01, 2018 08:02 PM
bdubreuil
15 minutes ago, ODDVIKINGSTUDIOS said:

Which engine do you suggest for the 2D game making you suggested? I'd love to get started! 

It really depends on what you prefer. Back in 2012, XNA was nice for C#. For Java, I'd recommend LibGDX.

November 01, 2018 08:04 PM
ODDVIKINGSTUDIOS
1 minute ago, thecheeselover said:

It really depends on what you prefer. Back in 2012, XNA was nice for C#. For Java, I'd recommend LibGDX.

Alright, I'll look that up and grab a copy of XNA. I don't mind using older programs so long as it helps me learn. Thank you so much!

November 01, 2018 08:06 PM
Septopus

Another suggestion, spend some time writing simple console applications in Visual Studio Community Edition with c#.  Start with "hello world", work your way up to something like Pong, focus on the language that you are having trouble learning, gaming engines will certainly only confuse that learning process.

And, fwiw, the Unity scripting docs are about as helpful for me as they appear to be for you.  Simplify your learning process by focusing on c# programming outside of any other context first.  

November 01, 2018 09:30 PM
Rutin
21 hours ago, ODDVIKINGSTUDIOS said:

Alright, I'll look that up and grab a copy of XNA. I don't mind using older programs so long as it helps me learn. Thank you so much!

I wouldn't suggest using XNA as it has been unsupported for several years now. MonoGame is an implementation of the XNA framework and should be used as an alternative if you want to stick with C# and use a framework like XNA.

http://www.monogame.net/

November 02, 2018 05:43 PM
dthall43

I will tell you what I did to cement my knowledge of Java, a different language, but it taught me many things.

1.) How to read other's code.

2.) How to read documentation and come up with code from my own mind.

3.) How to come up with novel solutions to problems.

And other important points, etc..

I found someone else's open source project (A Minecraft mod) and decided to make a SMALL change, to get it to do what I wanted. Then each time I completed that change, I would decide on a slightly larger goal. Eventually, I knew the codebase like the back of my hand, and could come up with clever solutions, simply based on the practices I had seen in the code I was reading and analyzing.

 

Try to find a project in C# that interests you on GitHub, and begin doing this with it. Start small though. Newbies usually try to bite off more than they can chew.

November 02, 2018 06:20 PM
Gerry Rzeppa

Perhaps you should try a different approach, like programming in a language you already know. This is my favorite:

https://osmosianplainenglishprogramming.blog/

Our language and our interface quite different from the norm, and our approach to teaching programming is different too. As the second article on the above blog says, "Programming is a textual, left-brain kind of activity. But students learn best when both sides of their brains are engaged. So most of our introductory exercises produce inspiring, graphical outputs to enliven both hemispheres and the corpus callosum that connects them." This, for example, is our idea of a decent "Hello, World!" program:

832963101_helloworld.thumb.jpg.ca096728b236fc215233a8c619cdff57.jpg

And since our whole system was written in Plain English, you won't have to switch languages or development environment when you want to go deeper and learn how to write programs like native-code-generating compiler/linkers or wysiwyg page layout facilities.

Check it out. Stand alone, less than a megabyte, no installation necessary. The system is free and email tutoring is free, too. Just write me directly: gerry.rzeppa@pobox.com

 

 

November 03, 2018 05:08 AM
ODDVIKINGSTUDIOS

Oh my goodness, thank you guys. I've read all of your comments, and I appreciate the advice so much. I'll check out MonoGame first, as well as implementing the other suggestions in sequence to see which works best for me. I like the idea of building console applications to get my ideas and knowledge going - that sounds like the easiest part for me. However, I plan on trying all the methods given! Again, thank you so much!

November 03, 2018 05:44 AM
Rutin
5 minutes ago, ODDVIKINGSTUDIOS said:

Oh my goodness, thank you guys. I've read all of your comments, and I appreciate the advice so much. I'll check out MonoGame first, as well as implementing the other suggestions in sequence to see which works best for me. I like the idea of building console applications to get my ideas and knowledge going - that sounds like the easiest part for me. However, I plan on trying all the methods given! Again, thank you so much!

At the end of the day your goal is to be able to think about what you want to do, and use the language as a tool to create solutions for your problems. This is why when I started 18 years ago I would learn a concept, and make a ton of custom versions of the example without looking at the book. As I learned more and more I would keep combing prior concepts and continue to make more and more programs. It's okay to make mistakes, get errors, and royally screw up because this forces you to use a debugger to actually walk yourself through the code line by line and understand what is happening. I can only speak for myself, but I learned more by getting an idea about certain language features (reference book), and just coding hands on 99% of the time.

Best wishes on your learning.

November 03, 2018 05:48 AM
ODDVIKINGSTUDIOS
15 hours ago, Rutin said:

I wouldn't suggest using XNA as it has been unsupported for several years now. MonoGame is an implementation of the XNA framework and should be used as an alternative if you want to stick with C# and use a framework like XNA.

http://www.monogame.net/

Okay, encountered a HUGE problem with this program. I installed everything correctly, and set up my firewall as I needed to. I followed the directions step by step in order  to attempt to create a new project in Visual Studio, as that's where I was told to start one, only to find that there was no option of any Monogame template as shown in the tutorial on the website documentation. I do not know what has caused this, I have tried installing and reinstalling various times and even double checking I had the correct and up to date versions of everything, but I cannot get this to work properly. I'll try my luck with XNA, or perhaps that other one you mentioned, unless you've had this issue and can walk me through it. 

EDIT: Encountered a massive amount of issues regarding missing/incompatible files with XNA. Looks like I'm sticking with the Java one. Here's to hoping.

November 03, 2018 08:37 AM
Septopus
19 minutes ago, ODDVIKINGSTUDIOS said:

Okay, encountered a HUGE problem with this program. I installed everything correctly, and set up my firewall as I needed to. I followed the directions step by step in order  to attempt to create a new project in Visual Studio, as that's where I was told to start one, only to find that there was no option of any Monogame template as shown in the tutorial on the website documentation. I do not know what has caused this, I have tried installing and reinstalling various times and even double checking I had the correct and up to date versions of everything, but I cannot get this to work properly. I'll try my luck with XNA, or perhaps that other one you mentioned, unless you've had this issue and can walk me through it. 

EDIT: Encountered a massive amount of issues regarding missing/incompatible files with XNA. Looks like I'm sticking with the Java one. Here's to hoping.

Are you sure you installed MonoGame correctly AFTER installing Visual Studio?

as per the the tutorial:

Quote

To select this template, In the category tree on the left, select Visual C# > MonoGame. Note that if you failed to install the MonoGame correctly, you won't see these MonoGame templates at all. (Go back and follow the instructions in the previous tutorial to get it set up.

Excerpt from : http://rbwhitaker.wikidot.com/monogame-project-template

so, Install Visual Studio, Install MonoGame, maybe reboot, and THEN try to find the MonoGame Templates?

November 03, 2018 08:59 AM
ROGRat

You’re definitely not alone.  I can relate, and I know that there are plenty of others here that can relate too.

The fact that you’re still working away at it and haven’t given up in despair shows that you’re making good progress.  I’ve never understood how some people can commit all of the gory details to memory but I guess it comes down to how often you work at it.

I’ve never had much luck getting things to “stick”, and because of that, I have tonnes of documentation.  Every time I master a new concept or solve a problem I’m working on, I stop and document the heck out of it.

At first it seemed a bit pointless, but after a while I no longer worried about whether I could remember how to do a certain esoteric thing...chances are I’ve docuented it.  Maybe.

.NET framework languages are great for this because you can (and should) document your code as you go along.  If you get frustrated with something you’re working on, try not to throw the whole thing away.  Keep whatever code you can because it’ll help you remember when you suddenly try to do it again, out of the blue, six months from now ?

Regardless of which route you take, there are loads of very knowledgeable folk here that will gladly help out if you get stuck.

November 03, 2018 11:11 AM
silikone

I think it's also worth emphasizing the significance of innate general cognitive ability, something that you are not really able to improve by training.

I'd wager that the average IQ of successful game programmers is very high, as it is a field with an extreme demand for logical reasoning as well as a sharp memory that can contain a myriad of details. Intelligence is far from everything, of course, but it is at least almost as important as having the right mindset.

November 03, 2018 01:35 PM
ODDVIKINGSTUDIOS
6 hours ago, silikone said:

I think it's also worth emphasizing the significance of innate general cognitive ability, something that you are not really able to improve by training.

I'd wager that the average IQ of successful game programmers is very high, as it is a field with an extreme demand for logical reasoning as well as a sharp memory that can contain a myriad of details. Intelligence is far from everything, of course, but it is at least almost as important as having the right mindset.

Mind elaborating? I may be misunderstanding your intent with this comment. I did mention being high-functioning autistic, but I am quite gifted with computers and programs. There hasn't been a program I couldn't learn, and this is the first time I've actually encountered a serious difficulty regarding something computer-related. 

8 hours ago, ROGRat said:

You’re definitely not alone.  I can relate, and I know that there are plenty of others here that can relate too.

The fact that you’re still working away at it and haven’t given up in despair shows that you’re making good progress.  I’ve never understood how some people can commit all of the gory details to memory but I guess it comes down to how often you work at it.

I’ve never had much luck getting things to “stick”, and because of that, I have tonnes of documentation.  Every time I master a new concept or solve a problem I’m working on, I stop and document the heck out of it.

At first it seemed a bit pointless, but after a while I no longer worried about whether I could remember how to do a certain esoteric thing...chances are I’ve docuented it.  Maybe.

.NET framework languages are great for this because you can (and should) document your code as you go along.  If you get frustrated with something you’re working on, try not to throw the whole thing away.  Keep whatever code you can because it’ll help you remember when you suddenly try to do it again, out of the blue, six months from now ?

Regardless of which route you take, there are loads of very knowledgeable folk here that will gladly help out if you get stuck.

That's usually what I end up doing when I do figure out something like that. I am really glad that C# is so good for this, and that's why I'd like to stick with it and really continue to try to master it. I'm grateful for all of the help I've had so far!

10 hours ago, Septopus said:

Are you sure you installed MonoGame correctly AFTER installing Visual Studio?

as per the the tutorial:

Excerpt from : http://rbwhitaker.wikidot.com/monogame-project-template

so, Install Visual Studio, Install MonoGame, maybe reboot, and THEN try to find the MonoGame Templates?

Alright, I'll give that a go real quick. I might have messed up somewhere along the line. Thanks!

5 hours ago, fleabay said:

While I do agree to an extent...

 

Wonderful video. I like to think I have resolve in spades, even if it fades a little some days with discouragement. 

November 03, 2018 07:46 PM
Septopus

Also, don't let strange programmer forum comments get to ya.  While programmers may posses some above average logical abilities, sometimes we lack in social graces...

November 03, 2018 08:12 PM
Rutin
47 minutes ago, ODDVIKINGSTUDIOS said:

Alright, I'll give that a go real quick. I might have messed up somewhere along the line. Thanks!

This problem is most likely user error considering the amount of people using MonoGame. ;) If you don't want to bother with a Framework, just pick up Unity... When you need to script it just loads up Visual Studio by itself and you work in the files then save them, and go back to Unity to run your game.

At the end of the day learning by doing will far out weigh learning by reading without hands on experience. I always suggest people learn by console first because they don't have to worry with all of the extras tied into libraries, frameworks, and engines, but beyond that just go out and explore. :) 

November 03, 2018 08:33 PM
ODDVIKINGSTUDIOS
1 hour ago, Septopus said:

Also, don't let strange programmer forum comments get to ya.  While programmers may posses some above average logical abilities, sometimes we lack in social graces...

Lol no problem. I'm terrible socially, and don't always understand tones and stuff that's "between the lines" or things like that, hence why I asked. I figured it was harmless! XD

 

1 hour ago, Rutin said:

This problem is most likely user error considering the amount of people using MonoGame. ;) If you don't want to bother with a Framework, just pick up Unity... When you need to script it just loads up Visual Studio by itself and you work in the files then save them, and go back to Unity to run your game.

At the end of the day learning by doing will far out weigh learning by reading without hands on experience. I always suggest people learn by console first because they don't have to worry with all of the extras tied into libraries, frameworks, and engines, but beyond that just go out and explore. :) 

I fixed the Monogame issue, and I'm working on it now and found a great C# tutorial. The console way of learning does seem a bit easier than trying to tackle Unity, mainly because Unity has changed so much in the three or so years I've been trying to learn with it. Trying to keep up with all the scripting changes just became a hassle. Thanks!

November 03, 2018 09:58 PM
dthall43

You will always see cynicism in the world. But I really admire how helpful everyone is genuinely trying to be.

November 03, 2018 10:00 PM
Septopus
24 minutes ago, ODDVIKINGSTUDIOS said:

I fixed the Monogame issue, and I'm working on it now and found a great C# tutorial.

BRILLIANT!!  Great to hear! :D

November 03, 2018 10:23 PM
silikone
13 hours ago, ODDVIKINGSTUDIOS said:

Mind elaborating? I may be misunderstanding your intent with this comment. I did mention being high-functioning autistic, but I am quite gifted with computers and programs. There hasn't been a program I couldn't learn, and this is the first time I've actually encountered a serious difficulty regarding something computer-related.

My message wasn't targeted at one person specifically, and I hope you didn't take it as a source of discouragement. If anything, a quintessential autistic mind's retention of details and systematic perception are a boon for programming, and it shows. I'd wager that the proportion of programmers on the spectrum is notably high relative to the total population.

To rephrase, skill and will are both important. If one is lacking, the other can compensate. Finding your weaknesses also means finding your strengths.

November 04, 2018 08:48 AM
ODDVIKINGSTUDIOS
On 11/4/2018 at 3:48 AM, silikone said:

My message wasn't targeted at one person specifically, and I hope you didn't take it as a source of discouragement. If anything, a quintessential autistic mind's retention of details and systematic perception are a boon for programming, and it shows. I'd wager that the proportion of programmers on the spectrum is notably high relative to the total population.

To rephrase, skill and will are both important. If one is lacking, the other can compensate. Finding your weaknesses also means finding your strengths.

Ahhh, now I get what you mean. Thank you; I did misunderstand and I'm grateful you clarified. This is very encouraging. 

November 11, 2018 11:51 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement