none
a Development Map for Becoming a Good Programmer using SB and MSDN

    Question

  •  a Development Map for Becoming a Good Programmer using Small Basic and MSDN

    This is a question/discussion/any tips etc on some basics for planning a program. And an orientation and learning map for beginners using SB and this network.

    I've read and learnt on this network that it's important to plan a program first before diving in and coding away and backing yourself into a logical deadend. Coding away then hitting a deadend results in finding out where you went wrong then rewriting the entire program with the lesson you just learnt.

    btw I think it is better to rewrite a program that probably wont work rather then drive yourself crazy trying to fix an unfixable lemon.

    As a beginner I found it almost impossible to plan a program and even harder to write pseudo code. I think the reason for this is that I don't know what the language is capable of. Lack of experience.

    Now i'm a bit more experienced, say intermediate based off what challenges I can solve, I'm more aware of what the language offers but lacking some good coding techniques. At this point I would really like to be able to plan then pseudo code a program. I think I need to be able to do this to tackle more complex programs.

    At this point (intermediate):

    • I can plan and pseudo code a simple program (or do it in my head)
    • roughly plan and backwardly pseudo code an intermediate program (or just the bits that puzzle me)
    • and look forward to coding some of the more complex programs, like the games, and the traffic light challenge e.g..

    I'm hoping to write and post an article that provides nOOb's and intermediates some guidelines on how to approach a self paced open learning initiative to become a good programmer.

    Including some sound advise I've picked on this network and other web sources. A bit more of a mentoring thing compared to just a tip and reference article. nOOb's are super enthusiastic, ambitious and looking back I think could speed up their learning progress by not only having tips and references but a mentoring guide.

    Words like be patient, get solid with this 1st before tackling that, move to the next guide after you pass this test, to do this task 1st learn the basics of a game loop, post your solution and invite feedback and expect constructive fb (like go back and read this then do it that because it's a better method).

    All of this is done already with SB, this network and the web. So the purpose of the article would be to orientate nOOb's and speed up the learning process.

    Ch.1: How to become a good programmer - what it takes

    Ch.2: Welcome to the wonderful world of programming. Choosing a language.

    Ch.3: Resources: MSDN, the curriculum, this forum, Wiki and the internet.

    Ch.4: Basic concepts and basic theory/tips. (cover all the objects/classes with nOOb samples)

    Ch.5: Intermediate concepts and intermediate theory/tips. (intermediate samples)

    I'm respectfully inviting from all levels, the nOOb to Guru loop: fb, contribution and collaboration. I figure anything you know would be best served by giving it up to the internet. Who wants to be a zillionaire? I reckon most people who love doing something would just do it anyway whether they were paid to do it or not.

    I see the internet as a virtual brain. My brain has already changed. I can't even remember to buy milk without being prompted. Why should I? When I could be learning how to program a robot that could goto the shop for me.

    Hoping to post a start to this next month. Unless somebody beats me to it.:)



    Wednesday, June 19, 2013 10:55 PM
    Answerer

Answers

  • Very nice post! You are going to be such a big, huge help to a lot of people, and me. :D i can't really help, but i would love to see this finished.

    I am a 12 year old learning how to code using small basic.

    Thursday, June 20, 2013 12:26 AM

All replies

  • Very nice post! You are going to be such a big, huge help to a lot of people, and me. :D i can't really help, but i would love to see this finished.

    I am a 12 year old learning how to code using small basic.

    Thursday, June 20, 2013 12:26 AM
  • Do you want to do this on TechNet Wiki? You can use it to give Nonki some competition in the TechNet Guru competition (hint hint).

    Thanks!


    Ed Price (a.k.a User Ed), SQL Server Customer Program Manager (Blog, Small Basic, Wiki Ninjas, Wiki)

    Answer an interesting question? Create a wiki article about it!

    Thursday, June 20, 2013 12:45 AM
    Owner
  • Hi 8bit

    Actually I think you will be able to help and help a lot.

    There's no deadline for this but I will try and post a start next month and will surely ask for your assistance and fb.

    The questions that both you, myself and other beginners ask are a key input. Remember this post http://social.msdn.microsoft.com/Forums/en-US/cb4f1fee-62ea-43d3-8dff-0c743566743c/please-read

    I reckon the sort of initiative, passion and honesty it took to write that, and the subsequent replies, is an ingredient that helps push the internet to a more useful level, in terms of collective learning. And generates participation and enjoyment. Classic stuff. This forum is lucky to have your participation I reckon.

    Thursday, June 20, 2013 6:53 AM
    Answerer
  • Yes for sure. A TechNet wiki. Thanks Ed. I posted earlier on the guru post about this and gave a hint to what I was thinking.

    Personally I sincerely hope Nonki gets the recognition he deserves.:) He has done so much for Small Basic.

    Glad he's on this forum. It's people like Nonki that we learn from.

    I hope the forum helps write this. I'll get something started and hopefully some really clever people can help us develop it.

    Thanks for your encouragement.

    btw i'm starting to notice how learning resources are starting to come together a bit more.


    Thursday, June 20, 2013 7:19 AM
    Answerer
  • Well i'll be glad to help. :3

    I am a 12 year old learning how to code using small basic.

    Thursday, June 20, 2013 1:26 PM
  • Jibba Jabba,

    It's great to see you start this thread and look to improve your programming skills.

    Personally, the way I approach coding a new program is to break the problem down into smaller chunks. And document those chunks on paper. Then look to get those smaller chunks (or sub routines) working first. Getting some successes with smaller portions of code is great for morale. Then gradually, build or merge those portions together.

    It's also easier to fix faults in a small piece of code that you've spent 10 minutes writing, rather than within 100's of lines of code. And if you still can't work out where the fault is coming from, then insert lots of PRINT (write line) statements to show variable values, at certain points in the code. In small basic I tend to use the following...

    Writeline ("x = " + X + "y = " + y) or

    Writeline ("setup complete") ....etc

    Diagnostic techniques like this will always help towards solving the problem.

    Comments in your code are also invaluable. Comment as much as possible, unless you're going for outright speed in SB. These will remind you what a portion of code is doing within the larger context of the program.

    Regards

    Friday, June 21, 2013 7:36 PM
  • Thank you very much Old Basic Coder for your reply, encouragement and tips. Appreciate and understand the benefit of what you say.

    Your tips are very valuable. What I'm going to really try and get out of any assistance/tips/fb as well on this are advise that help mentor a beginner and intermediate in their learning objective. This is the extra bit on top of the tips. The icing on the cake.

    e.g. your contribution: "Getting some successes with smaller portions of code is great for morale." I think this is a helpful way of putting it. You said do this and why with a view of what might deter someone from sticking with programming.

    Small Basic was written AFAIK to simplify what the old learning language had turned into, BASIC to VB. Also to help encourage people into programming, because many were being deterred. Reason, maybe not enough material to mentor people with the challenges they will face and ways to deal with them.

    If you have any further tips or spot something you don't agree with then yours and others advise will be welcomed and appreciated.

    Thank you

    Friday, June 21, 2013 10:06 PM
    Answerer
  • Really helpful thread.

    The best way to learn is by doing, making mistakes, doing it better and seeing others do it differently (better or worse).

    Keep an open mind, always looking for neat tricks and reading lots of stuff.  The internet and blogs, wikis etc etc is such a great resource that just wasn't there when I started playing with computers - make the most of it.

    And of course have fun getting better at it and also try VB or C# or other languages as you go.

    I look forward to your wiki articles.

    Friday, June 21, 2013 10:23 PM
    Moderator
  • Using MSDN effectively:

    Technological anthropology has evolved from the most ancient of origins and heads towards us in another state of wellbeing. (one of my out there conceptual opinions)

    On this topic there's one area I think could be discussed. i.e. posting code and getting fb and advice from experts.

    Currently I feel this is done most thoughtfully and constructively. Among the many benefits of trying to achieve come a few downsides. That is feedback that could potentially upset the coder.

    I'm definitely big on this because I've experienced and observed it on this network.

    ATM i'm thinking this is bilateral issue. I'm trying to identify some ways of encouraging noobs to invite feedback and (respond to it) and also find ways on giving it. You see some good examples of this here. After all this is a learning forum.

    You can always ask a question, but will the answer inspire you, and will the answerer see really what's going on.

    e.g. I just looked at someone's solution to a challenge. They could've written the code differently because some parts of it weren't necessary. However what I really saw was this person using and experimenting with different coding methods. I saw a masterpiece but I could still, if they invited, encourage them to "now try this".

    If this poster had of asked for fb I would've been more compelled to offer congrats on successfully trying out those methods. You need to know what they can do and how/when to use them. Practice. Now if you like see if you can replace the unconditional branch with a conditional one.

    Friday, June 21, 2013 11:21 PM
    Answerer
  • My thoughts on using networks.

    The internet provides users with more information than ever before.

    Some helpful things to become aware of when networking. - From doing a web search to communicating via a forum.

    The internet contains different degrees in quality of information, some of these are:

    1. Accuracy: accurate, partly accurate to inaccurate.
    2. Relevance: relevant, somewhat relevant to irrelevant. (on or off topic).
    3. Objectivity: objective to subjective (facts to opinions). Facts are established and accepted, opinions are offered and need to be considered. Here's my opinion: "I always listen to someone else's opinion, but I respectfully consider it then form my own. It may become aligned with someone else's but it's always mine". It's also important to remember who the opinion comes from.
    4. Healthy to unhealthy: authoritative & constructive to misguided & destructive Abusive content can often be destructive. Info can be attitude as well, positive & negative. A positive comment can often be empowering. An example of authoritative info is an instruction from a regulator and or from someone in a position of responsibility.
    5. Cultural Origins: qualitative in terms of intention and interpretation. The internet is a culturally diverse environment and it's useful to become aware/respectful of some of the different ways people are accustomed to communicating. What's considered the norm in one culture maybe offensive to another and vice versa. Don't be too quick to take offense, and try to avoid unintentionally giving it. Global participation has diminished this dimension considerably.

    Most of the burden in determining the quality of info on the internet falls on the reader. It's useful to know who the info comes from and or verify the info against another source. There's no point in getting annoyed if you accepted a piece of misinformation and didn't first ask yourself "does this look right?" or check it.



    Friday, June 21, 2013 11:29 PM
    Answerer
  • just changed the above post quite a bit. No replies had been made.
    Saturday, June 22, 2013 11:43 PM
    Answerer
  • totally changed the above. (no replies had been made)
    Saturday, June 22, 2013 11:44 PM
    Answerer
  • Ch.1: How to become a good programmer - what it takes

    1. What is a good programmer
    2. Setting objectives and keeping an eye on them
    3. Monitoring your own progress
    4. Maintaining your enthusiasm

    Take a break and loop back to 1.1

    Sunday, June 23, 2013 12:50 AM
    Answerer
  • I like your loop above :-)

    could be written in Small Basic as....

    TryTryAgain:

    If success = 0 then

      Goto TryTryAgain

    EndIf

    :-)

    Friday, June 28, 2013 8:03 PM
  • Thanks Old Basic Coder, I like your use of the sometimes alienated and much maligned GOTO pointing to tryAgain. An ironic destination.

    Creative use of keywords. Art or science? "a touch of programming Impressionism". period 2013 - .." :)

    Silly me deleted that post of the "The SB forum function loop". I feel sometimes I make too much noise.

    Here it is again:

    TextWindow.Title = "SB forum function loop"
    fun = "1=Helping out;2=More practice;3=Satisfaction"
    While "true"
      TextWindow.Write(fun[1] + " = ")
      TextWindow.Write(fun[2] + " = ")
      TextWindow.Write(fun[3] + " = ")
      Program.Delay(80)
    EndWhile


    Friday, June 28, 2013 9:41 PM
    Answerer
  • You make your point very efficiently Old Basic.

    So it would appear that a story can be expressed in any language.

    Here's a build in of you're GOTO idea on unsuccessful. With more detail.

    lol. haha you guys are right programming is fun.

    TextWindow.Title = "SB forum function loop"
    SmallBasicForum:
    
    thisIs = "true"
    fun = "1=Helping out;2=More practice;3=Satisfaction"
    
    While thisIs = "true"
      For practice = 1 To 50 'times
        TextWindow.Write(fun[1] + " = ")
        TextWindow.Write(fun[2] + " = ")
        TextWindow.Write(fun[3] + " = ")
        Program.Delay(80)
      EndFor
      However()
    EndWhile
    
    Sub However
      If thisIs <= "not true" Then
        thisIs = "worth a second look"
        becauseSuccess = 0
        TextWindow.Pause() ', step back and
        TextWindow.Clear() 'your head
        TextWindow.WriteLine("Cheer up, and we'll get it sorted")    
      EndIf  
    EndSub
    
    If becauseSuccess = 0 then 
      TextWindow.Pause() ' and chill 
      Goto SmallBasicForum
    EndIf
    

    Friday, June 28, 2013 10:34 PM
    Answerer
  • ha ha, nice! that is so cool.

    I am a 12 year old learning how to code using small basic.

    Friday, June 28, 2013 10:59 PM
  • Thanks 8bit

    btw I ran your program JTK500 posted this months challenge. I try to be carefull running others code and then offering fb unless invited. That's why I didn't say anything. Silly me, it's probably why people post their code in the 1st place.

    Anyway, remember you did a challenge before and used the keyword Step and I used some over complicated conditional counter, you made me realise that a direct solution is the best. Thanks again for that.

    Your sample above is really good again. Very neatly written and readable at a glance. It shows you trying out as many methods as possible and your Goto target was close to the branch. Within sight. If they are out of sight then the reader has to go look for them. As usual your code was a direct solution to the challenge. A trick i'm still learning.

    There's usually many different ways of coding the same program, some simple and direct (arguably the best solution) and some over complicated and somewhat indirect. They all reinforce learning by doing and some repetition helps that cause as well.

    If you ever want fb and alternative methods, feel free to ask at each post. They're all correct (as long as they run) because they represent people practicing different methods, but the simplest and most direct solution will be the one I aspire to. Congrats on that again.

    cheers, look forward to your next solution

    oh, and communicating with other programmers is considered conducive to learning as well. good on you





    Saturday, June 29, 2013 12:20 AM
    Answerer
  • Well thank you. i will be sure to ask for fb. :3

    I am a 12 year old learning how to code using small basic.

    Saturday, June 29, 2013 12:29 AM
  • a Development Map for Becoming a Good Programmer using Small Basic and MSDN

    It's a 6 page word doc. I'll try and chop it down, but it is a discussion of points that I asked myself as beginner and have observed many others ask as well.

    Any fb or advise on content and editing is most welcomed.

    Will post to wiki tomorrow. Hope it's helpful and an enjoyable read.

    Updated the above with wiki link



    Saturday, June 29, 2013 8:49 AM
    Answerer
  • Very nice. It goes into explaining well to the beginner, and the development plan was really easy to follow. I wish i has this when i first started! Good job. :3

    I am a 12 year old learning how to code using small basic.

    Saturday, June 29, 2013 2:53 PM
  • Thanks for checking 8bit and I value your fb.

    I can still edit it??  I was a bit concerned with the length of it and there's a bit of redundancy in it.

    If you can improve it or have other comments down the track they are always welcomed here or on the wiki. The internet, what a resource, and it's really just the beginning.

    Thanks again 

    Saturday, June 29, 2013 8:09 PM
    Answerer
  • Well, i actually thought it was just the right length. Not too long, or short. If you feel you should change anything go ahead. :3

    I am a 12 year old learning how to code using small basic.

    Saturday, June 29, 2013 9:54 PM
  • Appreciate your honest fb, 8bit. Very helpful and relevant. I included you in the acknowledgments, hope that's ok by you.

    thanks again, I updated it a little and will now post to wiki


    Saturday, June 29, 2013 10:32 PM
    Answerer
  • Yup, thats fine. :3

    I am a 12 year old learning how to code using small basic.

    Saturday, June 29, 2013 11:54 PM
  • I wrote a chapter on ethics and mistakenly left it out on the grounds of relevance and readability.

    I hadn't seen any articles on becoming a good programmer that discussed this. They were all focused on skill. My thoughts were to be good you have to be 'Good'..... I should've stayed true to my thoughts.

    There's a lot to learn and a lot of fun to be had. Programming has become very important and impacts every body on the planet, including end users of varying skill levels. They rely on your chosen field of expertise and you.

    I will add it soon.

    Friday, July 05, 2013 1:14 AM
    Answerer