Search Unity

i'm afraid i'll never get the hang of programming

Discussion in 'General Discussion' started by isanvel, Aug 2, 2019.

  1. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,921
    Can you show us, what you call a "good learning resource"? Because I am curious now, why none of presented approaches and materials here, are good in your opinion? Perhaps your academic slides / presentation, if you consider them to be good?
     
    angrypenguin likes this.
  2. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    900
    No, the recommentations are better if they have a short review after them. Right now, people are recommending stuff they haven't even looked at. The ones that are no good should be removed from the list. One of the video's linked was the same as the if-example on Unity's site. One of the books is about extra features in C# 5+. The Yellow Book recommendation would be improved by adding "few examples, but lots of general problem solving". The rest have not even been looked at by anyone.

    Right now, it's like a movie review site where you're just listing name of things that you think might be movies.
     
    frosted likes this.
  3. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    900
    They almost all have one very simple example for an entire topic, often doing nothing. Add more examples. The one in the Yellow Book is a "fix bad values" if. Add more of those:
    Code (CSharp):
    1. if(x<0) x=0; // can't be negative
    2. if(x>10) x=0; // don't need same # twice. if they go out of range, we penalize them
    3.  
    4. if(min<max) min=max; // using 2 vars in the IF
    5. if(min<max) max=min; // hmm...this is different, which is better?
    6. // min=6, max=3. What should final values of each be?
    7.  
    8. if(w=="ralf") w="ralph"; // fix wrong spellings
    9. if(w=="") w="J. Doa"; // fix missing name
    10. if(food1==food2) food1=food2+1; // can't choose the same food twice
    11.  
    12. // add points to total, but not past 100. Add, let it go past, then fix:
    13. total = total + points;
    14. if(total>100) total=100;
    15.  
    16. if(total+points<=100) total=total+points; // more math inside an if
    17. // hmmm... if we have 97 and 5, this does nothing. Is that what we want?
    18.  
    19. // x must be within 5 of y:
    20. if(x>y+5) x=y+5; // using math inside of the if
    21. if(x<y-5) y=y-5;
    22. // test with y=12 and x=4, 8, 12 and 20
    That's just one category, and before we know about else and compound conditions. I'm sure you can think of examples of common types of IF's you use. Put those in.
     
  4. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,921
    They are not bad. However, some are unnecessary. We don't need both examples of < and >.
    Since we use operators like < it can be deducted there is option of >.
    Either way, we repeat multiple times same thing, forgetting about other cases, like

    Code (CSharp):
    1. if (isValid) // print something
    2. if (!isValid) // print something
    3. if (isValid != isNotValid )
    And of course if else
    Then we should put || &&
    and so on.
    Soon we hit few pages just on IF discussion. Not to mention rest of book and very detailed examples.
    Then we end up with few hundreds pages of tutorials with much of information. As the result price of book go up ...
    with addition of clutter :)

    I think it is the case of balancing where to stop adding examples and moving on.
    That is why some books have only compressed amount of information.

    I posted few post before, reference to book, where scripts examples are put on website. These can be copied and executed. I think that is good format for learning, if talking about books. More practical examples are much better for conveying practical information.

    But as we discussed earlier, books become relic of the past, when information can be searched online in matter of seconds.
     
    Martin_H likes this.
  5. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    15,129
    I'm not positive we need them at all. On a whim I just searched for "first grade worksheets greater than" (link to the actual image search below) and there are tons of results for them (including some cute ones of symbols shaped like alligators) which makes me wonder if this is truly a problem involving programming resources.

    https://www.google.com/search?tbm=isch&q=first+grade+math+worksheets+greater+than
     
  6. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,359
    Right now, one person is recommending nothing while shooting down everyone else's suggestions.

    On the topic of stuff people apparently haven't even looked at...

    The Yellow Book has many examples of conditional statements, not just one.
    It's not as easy as "add more of those". You're talking about a section very early in the book, and many of your examples assume knowledge that the book hasn't touched on yet. Not to mention that it's an introductory book, too - it doesn't have to make people experts, it needs to get them going on the basics to prepare them for further learning.

    Also, again... that book is one part of a larger learning program. On the second page of the book the author points out that they have another book which is more example based, and presumably designed to be more standalone.
     
    Last edited: Aug 16, 2019
    Martin_H, GameDevCouple_I and Ryiah like this.
  7. TenKHoursDev

    TenKHoursDev

    Joined:
    Nov 9, 2014
    Posts:
    1,169
    Your first problem is keeping a fixed mindset. How can you never get the hang of programming? Only if you quit.Keep at it. I started learning programming at 13, took some classes in high school, took a five year break, now its my major (computer science).

    Before you cry "Oh no you started so long ago it too late for me!", stop it. All this means is that I've had a stubborn persistence to do what I wanted to. Success has nothing to do with age.
     
    Deleted User likes this.
  8. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    900
    Thank you. Of course how many and what kind of examples varies -- depends on opinion, experience, and the expected audience. Mine is that it helps to group examples that are almost the same. I also like to use every symbol at least once -- I should have had "if(n<=0) print("n must be positive");. But is it fair to say there should be a few examples of most of the many ways to use an IF?

    Reasonable coverage of IF's might have 30 examples total. A few lines each, a short paragraph before each one. Yes, that will be a few pages of IF discussion. Maybe 10, 20, 30 pages -- as you wrote, we'll balance when to stop adding. That sounds like a way to write a pretty good intro programming book.

    As far as < and >, the Yellow Book's two IF examples are that way: "if(x<min)" and "if(x>max)". I like stuff like that since It's one idea "make x be in range" that took 2 lines to write, I also like it as tell-then-show. After saying <, >, >=, <= work like regular math, show them: "if(n<=6) print("n is less than or equal to 6");" is "oh, wow, except for the parens it is just like regular math". I also feel that many people look for the example first. They see the code line, get and idea, then read the description to check.
     
  9. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    900
    I did agree Sam's seemed fine -- but I looked at one from before C# was around. I also recommended the Head fFirst series. Paged through for about 5 minutes, also years ago. It tries too hard to be friendly, but works through not-too-long semi-practical examples.

    But I feel like "don't waste your time on video tutorials" is my main contribution.

    Now that I think about it, the Yellow Book is a Survey book And it's fine for that. The single short program with a pair of IF's jumps around so much for 30 pages in order to feel light. They don't want to scare non-coders away. After a quick loop chapter, the "banking" example creates an array of classes. That's insane for a book teaching you how to code. But it's great for a book showing you some cool stuff.

    So here's my beef: if someone is scared of coding and is freaked out by "loop" and "conditional", the Yellow Book is fine to give a feel. But if someone is having trouble coding, stuff like "writing a program is like planning a picnic" or a chart with unsigned short isn't going to help them. Maybe their other book is great for coding. Maybe it's not on anyone's list since the people making the lists don't understand. You could look it over and decide whether to recommend it.
     
  10. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    3,806
    I was self taught from books. The reason that process worked is because I didn't look to a single book to "teach" me how to code. I tried a couple books out, jumped around and worked on examples and exercises.

    I think that people coming from a school background see this differently from autodidacts. For an autodidact, a book does not teach you how to do something, a book provides tools you use to learn.

    Fundamentally, you are the one who teaches yourself. What a book provides is a foundation of material, a roadmap of concepts for you to make sure you cover.

    If you lack the motivation to move through multiple resources while you self learn, you're not going to be able to teach yourself enough to be useful, so it doesn't matter.
     
  11. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,359
    What are these classifications and where are they from?

    You keep talking about it as if the book is intended to be stand alone. Once again, it's the reading material component of a programming course. However, even as a stand alone resource it's still of great value, because...

    ...this! The value isn't just in the technical knowledge, there are plenty of references* for that, often free. However, people learning a topic:
    a. Usually don't know what they don't know within that topic - first stage of competence.
    b. Don't know what order to learn sub-topics in most effectively.

    * By which I am referring to reference manuals and the like, not tutorials. Microsoft has a very thorough C# reference freely available, if only you understand enough of the basics to be able to read it effectively.
     
    frosted, Ryiah and Martin_H like this.
  12. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    3,029
    angrypenguin, Martin_H and Ryiah like this.
  13. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    3,956
    Awesome! I'm so glad to hear the thread helped at least one person.
     
    angrypenguin likes this.
  14. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    900
    Ah. "Survey Course" is like a 101 course -- a survey of the topics without details. I double-checked to see if it was still in common use -- if you google "survey textbook" or "survey class" you'll get stuff about actual surveying in-between the other meaning. https://www.chronicle.com/article/How-to-Fix-the-Dreaded-Survey/246252 was a funny read -- The Chronicle of Higher Ed is the main US college-instructor magazine. People know that word, and that style, so a Survey textbook is a real thing. Sometimes we call it Exposure or Familiarity.

    I'm criticizing the book as a stand-alone when it's recommended as a stand-alone. Put another way, you may love the book as part of school, or your weekly programming club. I'm not saying you're wrong. But if you think the book wouldn't be very useful without those things, why would you want someone to read this book you love, by itself, and hate it?

    The thing is, books meant to be used with a lecture tend to be dry: a page or two about rules for identifiers and examples. In class, the instructor shows the everyday way they're used. They don't have to cover one side of the board with rules, since the book has them all, methodically organized. The Yellow Book is chatty and jumps around. It feels like a stand-alone, where the author is the lecturer, trying to keep our attention.
     
  15. MaximumTre

    MaximumTre

    Joined:
    Nov 28, 2015
    Posts:
    135

    I'm a little late to this thread, but I wanted to say to you if it's your dream goal, keep trying and don't give up. Remember to try different things if something doesn't work. If you don't understand something, ask questions and read EVERYTHING carefully. Be patient, keep calm, and debug your code. Use logs to help you understand wtf is going on when something appears broken or isn't doing what you expected. I just recently got a simple humanoid AI working (with 90% less bugs!) and it took me quite a while to get my head wrapped around AI design. Some times, it also might help to take a break from a learning project and start your project fresh (keeping the old stuff, just make a new project) and try to build your project from scratch if it's something simple. Each time I do this, I remember mistakes I made and new techniques I've learned and apply them. I feel this helps me confirm my mastery of an issue.

    Don't give up if this is your dream. Seriously, keep going! Many people have learned this, you and I can too ;)
     
    Deleted User likes this.
  16. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,359
    Well that's not what I said. See @frosted's post above, and my earlier comments about an intro book not having to turn people into experts.
     
    Ryiah and Martin_H like this.
  17. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    371
    I struggled with coding for years until recently when I came across an asset on the asset store called 'Game Creator'. Since using this asset my output has increased dramatically and I don't get bogged down trying to invent the wheel all of the time. They have thought of pretty much everything and have a discord venue where you can get help and they'll even add features if you ask.. No coding, just drag and drop stuff and you are up and away... How it needs to be.
     
    Ony likes this.
  18. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    900
    Yes, examples and exercises; that's what I'm saying. A good book should have plenty of examples. You had to jump around, but what if you found a book that had 50% of the examples you learned from. Such a book is clearly possible. That would be a good book, right?

    No, people who went to school understand the concept of learning things on their own. And "giving you a tool" is just a fancy way of saying it taught you something. Maybe you think of teaching as basic facts, and a "tool" as a technique or trick. Or you have some other distinction. But there's no actual meaning to "gave me a tool" that isn't the same as "taught me that".

    My point is, saying "oh, but books work differently for the self-taught" is doubtful.

    That was my point about how a single good book is important. If you jump around, you'll see a lot of time-wasting topics and miss important tricks that don't have a good name. In C# if you learn functions first, learning Properties takes about 5 minutes. Trying to learn them first is a huge time-waster, but it's common internet advice.
     
  19. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,921
    Why in this particular order in your opinion?

    To be honest, in current light and available access to information, book should glide over basics techniques and point into direction, where to find more details on given topic. Sometimes I find that teaching and books often miss the point of teaching, by omitting deliberately guidance, how to find information. Teachers / lectures recommend to read books of certain authors. Had impression, is mostly about money, to ensure students buy certain books.

    We discussed if loop earlier.
    Why just not simply give 2-3 basics examples, then reference to official C#, or relevant documentation? Like
    https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/if-else
    Or mention keywords to search c# if loop documentation.
    Student would learn this way a lot, including important searching techniques, referencing official and up to date resources. Books can get outdated as well.
     
  20. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    3,806
    That's simply not possible.

    In the first five years I worked on software, I probably went through two dozen programming books. I remember stacking them on the floor and having like 6 or 7 feet worth of programming books. These weren't 'intro to' - they covered different languages, different aspects (good practices, oo, architecture), various references.

    To even imagine that a single book could cover a subject as large as 'programming' shows that your focus is not on learning, but on school style learning where the goal is to drill a specific curriculum into students.

    For autodidact there is a very different process than in traditional schooling. You do not need to worry as much that material is 'dry' or boring, because the student will either learn the material or not. If they choose not to, that is not a failure and the quality of a given book won't make much of a difference in the outcome.

    To self learn is a very different process than to be taught something in a traditional school setting. It might not be good for everyone, not everyone can learn without being directly guided, but for people who are serious about mastering a subject solo, the quality of one source or another doesn't actually make that big of a difference - you will eventually consume so many sources that any given one is irrelevant.

    My closest friend, also an autodidact, first learned to program from the help files in Microsoft Access. And I know people who crossed over from working Excel spreadsheets. The source is irrelevant.
     
  21. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    3,806
    @Owen-Reynolds
    Just another note - if you're an educator (which it seems you are) I understand your focus on the quality of the book. If you're planning to teach a course, picking a textbook is a hugely important decision - not only does it outline the material covered, but all students need to purchase it, supplementing materials need to be coordinated, etc.

    If you're an educator, I get where you're coming from.

    As a person who self learns most stuff - my view is just different. Having a good book is nice, but it doesn't actually matter that much. Like, if you wanted to go ghetto style, you could just take a picture of the table of contents of a few intro books and you more or less can go from there.

    If you're going to teach yourself, the book doesn't teach you, you teach yourself and materials are resources you draw on to learn. In self learning, the student is an active party, not passive. They are not being taught, they are teaching themselves.
     
    Ryiah likes this.
  22. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,359
    Because a property is a function, with some funky syntax so it looks nicer. In other words, it's a special case of a function. Teaching a special case before thorough understanding of the general case is achieved is potentially going to hurt more than help.

    That's one of the tricky things about self-teaching. People creating materials need to take a best guess at what will help the most people understand enough to move on. From there all they can really do is tell learners to take their time and not rush on until they fully understand what they've already looked at, and they don't have a teacher on hand to help make that call.

    That's also a part of the reason that I'm not too concerned by the "lack of examples" in The Yellow Book. I trust that as someone who has been teaching programming for three decades the author has a bit more of an idea about what works best for the most learners than I do. (I do have teaching experience, but he's got a few years on me!) If his experience says that a simple example of an if statement is about right for that part of the learning journey then I'm ok with that as a starting point until I see people running into issues there.
     
    Antypodish likes this.
  23. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    3,029
    I feel like teachers real job is teaching students how to learn and developing their interest in learning for learnings sake. In other words, a good teacher is going to turn class clown into motivated, dedicated self learner.

    Teacher knowing everything and never making mistake dont matter and.isnt.possible. . Student learns how to learn, they gonna surpass teacher in no time. That's the goal.
     
    BrandyStarbrite and angrypenguin like this.
  24. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    900
    My experience has been you buy a book since you need any reference quickly, it's not very good but better than nothing. Then you finally find a decent book on whatever it is. The other books didn't do any good -- there's no learning by accretion, and everything useful in them is also in the good one. I'd always rather have found the good book first. Unless you count general things like The Mythical Man-Month or ShowStopper, or even Joel on Software.

    But to get back to the topic, a single book can cover a practical knowledge of basic programming. Enough to do just about anything in Unity. Variables, if's, loops, functions, indexed lists, structs, pointers; then all the tricks and combinations. Those are pretty much the same in every language, and haven't change much in 40 years. Even OOP is the same as 20 years ago.
     
  25. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,681
    One thing to be mindful of is most of the people replying here are not people who found it hard to get the hang of programming.

    There's a big difference between not remembering the semantics of a specific function vs not being able to grok how the pieces fit together to produce a whole (and how those pieces can be reassembled to produce any whole that one desires).

    It would be really interesting to get some insight in to the process of learning from people that really struggled with programming but have now reached a reasonable level of competency.
     
    Martin_H and angrypenguin like this.
  26. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    6,921
    Check one of my last posts on page 3 #138, where I mentioned that I start learning from Delphi book, when I was young.
     
    Last edited: Aug 19, 2019
  27. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    3,029
    I am beginner in programming and not good with abstraction.

    I make a thread at some point to review resources I've used.
     
  28. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    900
    Maybe indirectly. A calculus class teaches calculus. No one wants student evals with "I didn't learn much calculus, but I learned how to learn it". But K-12 and college, ex-students might be able to think "if I was taking a class for this, how would it go?" Say you liked when a teacher drilled you on a few common technical terms, since you noticed how easy it made reading later. So maybe you start your own topics by making yourself an informal vocabulary quiz. But it's probably not as conscious -- you just naturally start organizing things based on what you liked in your classes.

    Even homework is part of that. A good class gives you some warm-up problems (what do these nonsense if-else-if's print? They make no sense, so you have to trace them). If you liked how those really taught you the semantics, you naturally start making them for yourself -- "what if took this example in the manual and changed this part for no reason".

    It seems nuts, but sometimes "What would Dr. Wolf do?" is pretty helpful.
     
unityunity