locked
Graduate RRS feed

  • Question

  • I wish to leave Microsoft Small Basic behind and move on to other languages. I have completed the Curriculum and created more than 100 programs while I was in college. That means that if I had more time I would have done even more. I learned most of the commands and combinations by my self because I enjoy experimenting. After that I completed the curriculum (please don't bother with the order I did things :)

    Mr.Coding Cat once told me that when I have completed Microsoft Small Basic, I should move to Python then C++ then Java. I am probably going to follow that path but Microsoft Visual Basic seems so attractive and easy and I suppose it's closer to Microsoft Small Basic than Python or C++ or Java are.

    Could you please give me your opinion? It doesn't have to match my opinion or Mr.Coding Cat's opinion. I just want to read as much as possible in order to make a decision.

    Thank you for your time, appreciate it!



    • Edited by Athasak Thursday, July 10, 2014 11:10 AM
    Thursday, July 10, 2014 7:57 AM

Answers

  • Thanks for the shout out, and congrats on the surviving the semester.

    Here is a brief repeat of what I stated in the past along with the reasons:

    Visual Basic - I have nothing against visual basic. I have used it professionally and few things will let you push out a professional looking app faster. Its downside is that it is form-centric. Everything is designed around a windows desktop type form. I'm sure there are ways of doing something akin to a SmallBasic graphics window in VB, but its not designed to support the idea. If you want games, you need to go in another direction.

    Python - As far as complexity goes, python is a good next step. There are no begin/end blocks, no braces and no semi-colons. Code blocks are defined by indenting, and variables are type free and do not need to be defined. All in all it is very friendly. The main bonus is that it is greatly supported by its user base. There are endless libraries available that will let you perform almost any task. Anything from games, to hardware interaction, to network communications. Everything. It is the primary language used by he Makers Movement (visit http://makezine.com) if you want to see what that is all about.

    Java - Java is a good first step into a full up, no holds bared, programming language. It is type safe, it is object oriented, you have to declare variables, every line ends in a semi-colon, and code blocks are defined by curly-braces. There are tens-of-thousands of predefined classes that will let you accomplish any sized project, and the ability to create your own classes lets you build your own tools and work with groups of any size. Its one real down side is also one of its biggest pluses. Java runs on a virtual machine. This means that the programs you build do not create code locked to one computer, but rather run inside of an application that acts like a computer. The upside is that your code will run unmodified on any computer or web-browser. The downside is that the virtual machine has to interpret the code and thus the programs run slower than a comparable program would in a compiled language such as C/C++. If you want programming to be more than a hobby, I would suggest picking up Java. And there are lots of game libraries for java that make creation easy, such as BadLogic's GDX engine.

    C++ - This is what the big boys play with. Anything where speed is important, or direct hardware control is required C++ is your answer. It's syntax is very close to Java. It is no holds bared object oriented programming, that is compiled directly down to the processors assembler. I wouldn't suggest it for a beginner, but if you want to write games professionally, or for the iOS, C++ is in your future somewhere.

    C# - This is half way between C++ and Java, and is Microsoft's response to Sun/Oracle enforcing their "No Private Versions of Java" rule. Lots of people us it, but I don't like it myself.

    And then there is also the web languages, Java Script, Ruby, Perl, HTML... a different direction and they all have their merits, but I'm not really experienced enough in them to give any a thumbs up or down.

    Ummm... so not so brief. Which one to choose?

    1. Visual Basic - Similar enough to Smallbasic that you could be write programs it without no extra thought.
    2. Python - easy, flexible, powerful with a huge pile of examples to start from
    3. Java - The modern teaching language. I love it, there are lost of examples, but there is a learning curve.
    4. C++ - Jumping into the deep end. Hard to suggest as a next step, but learning it would be like learning a super power.
    5. A web language? You could go to CodeAcademy.com or KhanAcademy.com and start with lessons and be going strong by tonight.

    A hard decision, but I can give a couple of hints to make it easier.

    1. Setup an account at http://stackoverflow.com - The MSDN won't be able to help if you stray further afield. Fear not! StackOverFlow has an active membership in the millions and you can ask programming question on just about any topic. It is really quite amazing. I have been posting questions there for three years, and even the really bizarre and obscure ones get a response.
    2. Visit youtube. It is really quite startling how many people have set up video channels for the sole purpose of helping other people figure out programming. If you think you want to try a programming language, pull up a video or two on youtube and watch a fellow nerd show you the ins and outs of the process.

    My final words: Python; and look into the Makers Movement -- if there is a Makers Faire in your area make sure you attend it.

    Good luck, and keep the questions coming.

    • Marked as answer by Athasak Friday, October 10, 2014 10:02 PM
    Wednesday, July 30, 2014 9:36 PM
    Answerer

All replies

  • I would play with a few:

    Look at .Net VB and C# - then choose one of these (C# would be my preference).  Perhaps write a few simple Small Basic extensions or use SmallBasicLibrary.dll referenced in VB or C# programs to get going.

    Look at python, ruby, VBA (in EXCEL if you have excel)

    Leave Java and C++ until happy with a .Net language.

    • Marked as answer by Athasak Saturday, July 12, 2014 9:03 AM
    • Unmarked as answer by Athasak Sunday, May 5, 2019 7:45 PM
    Thursday, July 10, 2014 9:31 AM
  • Thank you for your opinion litdev :)
    • Edited by Athasak Thursday, July 10, 2014 10:42 AM
    Thursday, July 10, 2014 10:42 AM
  • http://blogs.msdn.com/b/smallbasic/archive/2014/05/16/how-long-should-i-use-small-basic-before-taking-on-a-big-language.aspx

    Hi Athasak

    It's nice to exchange thoughts with someone who enjoys what they do as much as you seem to.

    The above link is a blog of some recent research I did on when to leave SB behind. It's from my pov and was angled at helping virtual colleagues maintain a positive approach and outlook to graduating.

    As for what language to start learning next- who knows? A very personal choice I would think. But good to ask and read up about. You could also ask this question on other forums as well.

    I recently decided to learn more programming skills on the dot Net platform, I chose c#. It's quite a step up but fortunately I like learning.

    I think that whatever you learn if you get good at it you will derive a lot of satisfaction from it.

    Perhaps also you could apply a process of elimination as a way to help discover your thoughts, e.g. (extreme)

    BASIC, Fortran, Objective C and so on.

    C# will keep me busy for many years, I might even try / pick up some other stuff along the way.

    Even though I've started learning c# I'm still not finished with SB because I've finally started to see what it's good for and will write a couple of diverse end to end programs that I can post on my own website that help consolidate a balanced summary and application of what I've learnt so far about SB and what it's good for.

    Here's another article that might have some info that will help you "maintain" as you embark on new pathways.

    http://social.technet.microsoft.com/wiki/contents/articles/18192.development-map-for-becoming-a-good-programmer-using-small-basic-and-msdn.aspx


    • Edited by Jibba j Thursday, July 10, 2014 9:45 PM
    • Marked as answer by Athasak Saturday, July 12, 2014 9:03 AM
    • Unmarked as answer by Athasak Sunday, May 5, 2019 7:45 PM
    Thursday, July 10, 2014 9:43 PM
  • I think that depends on what kind of program you like to create.

    In my case, I'm developing board game programs.  And I'd like to share my program through internet.  So, I use

    • Small Basic
    • Java (Applet)
    • JavaScript (+HTML5)

    Those programs can be shared through internet.  But, many Go game programmers use C language for the performance.  And for conveying the fun of programming, Small Basic is the best, I think.


    Nonki Takahashi

    • Marked as answer by Athasak Saturday, July 12, 2014 9:03 AM
    • Unmarked as answer by Athasak Sunday, May 5, 2019 7:46 PM
    Friday, July 11, 2014 8:41 AM
  • I recommend c#
    • Marked as answer by Athasak Saturday, July 12, 2014 9:03 AM
    • Unmarked as answer by Athasak Sunday, May 5, 2019 7:46 PM
    Friday, July 11, 2014 8:13 PM
  • Thanks a million I love you all :D
    Saturday, July 12, 2014 9:03 AM
  • Hi Athasak

    As I mentioned before I'm learning C# (my choice after SB). Absolutely love it! and it gives a deeper understanding into SB, .NET and coding in general.

    I also find it beneficial to put C# down (when it gets too hard) and come back and practice some ideas in SB.

    By intermittently switching between languages and paradigms I find it puts my head in a good place for the other.

    I find starting out with OOP it's helpful to just work in the Console till you "click" with Classes, Objects and methods.

    Here's a link to the learning resource I'm currently using: http://channel9.msdn.com/Series/C-Sharp-Fundamentals-Development-for-Absolute-Beginners

    Bob Tabor makes awesome video tutorials!

    I think as you mature as a developer you pick up other languages as well as you go. I'm getting a bit interested in web languages as well now.

    Don't forget: If the big languages "bust your brain", take a break, do something else then go back to them where you left off.

    All the best with your new language.

    • Marked as answer by Athasak Friday, October 10, 2014 10:02 PM
    • Unmarked as answer by Athasak Sunday, May 5, 2019 7:46 PM
    Sunday, July 27, 2014 2:30 AM
  • Thanks for the shout out, and congrats on the surviving the semester.

    Here is a brief repeat of what I stated in the past along with the reasons:

    Visual Basic - I have nothing against visual basic. I have used it professionally and few things will let you push out a professional looking app faster. Its downside is that it is form-centric. Everything is designed around a windows desktop type form. I'm sure there are ways of doing something akin to a SmallBasic graphics window in VB, but its not designed to support the idea. If you want games, you need to go in another direction.

    Python - As far as complexity goes, python is a good next step. There are no begin/end blocks, no braces and no semi-colons. Code blocks are defined by indenting, and variables are type free and do not need to be defined. All in all it is very friendly. The main bonus is that it is greatly supported by its user base. There are endless libraries available that will let you perform almost any task. Anything from games, to hardware interaction, to network communications. Everything. It is the primary language used by he Makers Movement (visit http://makezine.com) if you want to see what that is all about.

    Java - Java is a good first step into a full up, no holds bared, programming language. It is type safe, it is object oriented, you have to declare variables, every line ends in a semi-colon, and code blocks are defined by curly-braces. There are tens-of-thousands of predefined classes that will let you accomplish any sized project, and the ability to create your own classes lets you build your own tools and work with groups of any size. Its one real down side is also one of its biggest pluses. Java runs on a virtual machine. This means that the programs you build do not create code locked to one computer, but rather run inside of an application that acts like a computer. The upside is that your code will run unmodified on any computer or web-browser. The downside is that the virtual machine has to interpret the code and thus the programs run slower than a comparable program would in a compiled language such as C/C++. If you want programming to be more than a hobby, I would suggest picking up Java. And there are lots of game libraries for java that make creation easy, such as BadLogic's GDX engine.

    C++ - This is what the big boys play with. Anything where speed is important, or direct hardware control is required C++ is your answer. It's syntax is very close to Java. It is no holds bared object oriented programming, that is compiled directly down to the processors assembler. I wouldn't suggest it for a beginner, but if you want to write games professionally, or for the iOS, C++ is in your future somewhere.

    C# - This is half way between C++ and Java, and is Microsoft's response to Sun/Oracle enforcing their "No Private Versions of Java" rule. Lots of people us it, but I don't like it myself.

    And then there is also the web languages, Java Script, Ruby, Perl, HTML... a different direction and they all have their merits, but I'm not really experienced enough in them to give any a thumbs up or down.

    Ummm... so not so brief. Which one to choose?

    1. Visual Basic - Similar enough to Smallbasic that you could be write programs it without no extra thought.
    2. Python - easy, flexible, powerful with a huge pile of examples to start from
    3. Java - The modern teaching language. I love it, there are lost of examples, but there is a learning curve.
    4. C++ - Jumping into the deep end. Hard to suggest as a next step, but learning it would be like learning a super power.
    5. A web language? You could go to CodeAcademy.com or KhanAcademy.com and start with lessons and be going strong by tonight.

    A hard decision, but I can give a couple of hints to make it easier.

    1. Setup an account at http://stackoverflow.com - The MSDN won't be able to help if you stray further afield. Fear not! StackOverFlow has an active membership in the millions and you can ask programming question on just about any topic. It is really quite amazing. I have been posting questions there for three years, and even the really bizarre and obscure ones get a response.
    2. Visit youtube. It is really quite startling how many people have set up video channels for the sole purpose of helping other people figure out programming. If you think you want to try a programming language, pull up a video or two on youtube and watch a fellow nerd show you the ins and outs of the process.

    My final words: Python; and look into the Makers Movement -- if there is a Makers Faire in your area make sure you attend it.

    Good luck, and keep the questions coming.

    • Marked as answer by Athasak Friday, October 10, 2014 10:02 PM
    Wednesday, July 30, 2014 9:36 PM
    Answerer
  • Thank you very much for your time mister Coding Cat. I still remember the day you told me about calling a subroutine (that afternoon was awesome! ^_^) and of course for all the rest that you did for me!

    I had a great summer and in my free time, from June to August, I split my time into trying to learn a new language. I tried 3 languages:

    1) Python

    2) C#

    3) Visual Basic

    I really enjoyed every single moment of playing with python! I would have chosen it from the beginning but I had to try more languages. Then I started taking courses on C#. I can't say I liked it, actually I didn't and that's why I don't think I will be learning it any time soon :)

    As for Visual Basic, I liked it a lot. Actually I was able to learn it twice faster than I was with Small Basic. I felt as if everything made sense and I could "fast forward" with the visual set up of GUI unlike Small Basic. But the thing is that this language felt like a one way road. Windows Forms, that's it. So I stopped learning Visual Basic when July ended.

    After been away from creating programs, I felt like I was loosing the game and I didn't like that, at all! So I spent August making programs in Small Basic. In September I had to study for the university exams so I didn't do any programing. Since October I've been programming in Small Basic again but I don't like it anymore.

    I really want to start using another stronger language and so I will. I decided to use either python which I can also combine with Blender and I suppose I can start normal, or C++ which is the exact opposite as you said. Jumping into the deep doesn't scare me as it used to. It fascinates me and pushes me forward! I am almost done with university, I have only one year left and I don't have to study as much as I had to in the previous years. Things are easier in the university now because we learned the most of the profession and that means that I could use some more time in programming than I could in the past.

    Thank you for everything mister Coding Cat! I know that it took me some time but I think that wasting 2 months is better than wasting years. I will choose either Python or C++.

    • Edited by Athasak Friday, October 10, 2014 11:19 PM
    Friday, October 10, 2014 10:58 PM
  • Thank you very much Jibba for your time! You know... in the past you gave me so much strength when you used to comment on my programs and try to make me move forward and try to teach me and make me understand that I can do more. I don't think I ever told you but you were like a power source from which I was draining strength to carry on and learn as much as possible!

    I did everything you said. Reading articles, listening to your advices, I learned about arrays as you told me when I felt I could. I did go back to Small Basic when I didn't know what to do. But now I am almost in the end of my decision, I know what to do and when I feel like that I know I am doing the right thing, trust me. I think in a week or two I will have my answer :) (finally). It took me so long but I am happy to know that I will be spending my free time on a language that is going to make me feel good when playing with it's commands and combining them with my ideas :) Just so you know I am either going to dive in the deep with C++ and never look back, or go with Python with which I had so much fun and that I can combine with Blender.

    No matter what I'll do, I will NEVER forget you and your support or mister Coding Cat's support and his skills as a teacher. It was so easy to learn from him!

    I hope you guys will read this ^_^


    • Edited by Athasak Friday, October 10, 2014 11:20 PM
    Friday, October 10, 2014 11:15 PM
  • If you decide to go w/ Python, take a look at this game-oriented library and SDL wrapper called PyGame:

    http://www.pygame.org/wiki/tutorials

    Another similar framework is Löve2D, based on the Lua language:

    http://love2d.org/


    Click on "Propose As Answer" if some post solves your problem or "Vote As Helpful" if some post has been useful to you! (^_^)

    • Edited by GoToLoopEditor Friday, October 10, 2014 11:35 PM
    • Marked as answer by Athasak Friday, October 10, 2014 11:53 PM
    • Unmarked as answer by Athasak Sunday, May 5, 2019 7:46 PM
    Friday, October 10, 2014 11:35 PM
    Answerer
  • Thank you for you time GoToLoop ^_^ I will check this out.
    Friday, October 10, 2014 11:55 PM
  • Thanks for the forum feedback Athasak! Helpful and good fun!

    Good to see some critical thinking. Look, listen, feel, consider.


    • Edited by Jibba j Saturday, October 11, 2014 12:37 AM
    Saturday, October 11, 2014 12:34 AM
  • Go with vb.net because it is very close to smallbasic. More ever you can do a lot of things in GUI using vb.net. Its graphics support is also very good. If you are doing programming as hobby and that to on desktop environment it shall be obvious choice. Java is good for multiplatform choice.  Nearly everything you can do by vb.net that can be done with C# and VC++ because underlying class library is same only syntax changes. That means for further moving from smallbasic to graduate vb.net is obvious choice. So that has been given in smallbasic too.

    • Marked as answer by Athasak Wednesday, November 5, 2014 10:00 PM
    • Unmarked as answer by Athasak Sunday, May 5, 2019 7:46 PM
    Monday, October 20, 2014 3:24 PM
  • I would go with C# as this is a 'professional' language and, if you follow my tutorial (shameless plug!) here:

    http://programmingprof.blogspot.com.es/

    you will be able to use the stuff that you've learnt in SB in C#.

    Also, from C# you will find it relatively easy to move on to Java or C++ as the syntax, and many of the concepts are similar.

    Python is a good OO language but a bit niche, Java is more mainstream and C++ more specialist but it depends on what you want to do. If you want to produce desktop apps for Windows, or Windows Phone, then C# is a good choice. If your going to be programming the next "Call of Duty" then C++ is probably the way to go but this is a complex and pretty difficult field. For mobile apps it has to be Java (Android) or Objective C (IOS). For web apps many languages are used, the main ones being Java, PHP or ASP.NET (you'll need C# or VB.NET for this) and Javascript.

    • Marked as answer by Athasak Wednesday, November 5, 2014 10:00 PM
    • Unmarked as answer by Athasak Sunday, May 5, 2019 7:46 PM
    Monday, November 3, 2014 7:47 AM