Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Is it a good way to start or a quick way to end?

Options
  • 22-07-2002 11:35am
    #1
    Closed Accounts Posts: 32


    The thought of programming puts so many ideas into my head. The possibilities go on and on. Now that i have looked into it a little bit more i have decided that i gotta crawl before i walk so the idea of starting with Q Basic is here but i read somewhere that if i start to learn with Q or Visual Basic that it will only teach me bad habits for the future. I'm not sure to this though and i think that if i can learn Q and Visual, wont that give me the overall idea of the capabilities and fundaments of programming??


Comments

  • Registered Users Posts: 68,317 ✭✭✭✭seamus


    Originally posted by prophet88
    and i think that if i can learn Q and Visual, wont that give me the overall idea of the capabilities and fundaments of programming??

    Ummm.....yes and no. I'm only going to put out my feelings on this as regards QBasic, don't take this as popular opinion. QBasic is just that, basic. It's easy to get started and very easy to write your own programs, but after a while you can get stuck. IMO, it lacks the flexibility of Java or C/++ for writing half useful programs. It can, imo, also be more of a hindrence when you go to learn other languages. The lack of data typing may confuse you, at least for a short time, when you go to learn the likes of Java or C. It's much easier (in fact it's a relief) to know Java or C, and then learn a language without fixed data typing.

    If you teach yourself Basic, imo, it'll be almost no use to you. While writing your own programs, you'll be very tempted to use the GOTO command (use of this is highly disputed, but I personally think it interrupts the flow of well-written source code). It will also teach you some ettiquette/style bad habits. A lot of the usefulness of code can depend on how well it's presented and commented. While QBasic can be just as well commented and presented as any other language, you probably won't, because it's not all that confusing to read back over, due to the short lines. Java though for example, can be quite difficult to read back over if it's not properly presented, and without comments, it can be a nightmare.

    Remember that's all just my opinion, but if I was you, I'd learn Java or C++. Basic is fine if you have a good teacher, but if you'll be teaching yourself, go for something Object-Oriented. Get yourself a good IDE, a good book, and you'll have Java or C++ cracked in a month.

    :)


  • Closed Accounts Posts: 1,322 ✭✭✭phobos


    When I started programming properly, I was advised to learn C (just C, not C++). Personally it was the best move I ever made, because without me first realising, it was going to make learning other languages later on, much easier. The kind of programs that you will write while learning C, will get you thinking of how to solve problems in a proceedural manner. The other thing that I didn't realise while I learned C, is that it wasn't the easiest language to start with, but this would later be to my advantage. The reason I'm telling you this is because if you learn C properly, not skim through it, and make assumptions, you will have a very good programming foundation.

    Where you go after that is up to you. I branched out in hundreds of directions after C, and found most languages to adopt C like syntax. This made learning the basics of new languages possible in a matter of an hour or two. I coded in VB, Delphi, C++, Java around that time. My first OO language was C++, but I only hung around that language until I had used it enough to prove I understood the concepts behind Object Oriented programming. The reason I ceased programming in C++, is because there were sooo many interesting things being done with Java, that I just couldn't ignore it.

    At the moment I'm spending most of my time with Java in open source direction.

    It's up to you, what way you want to go. But I don't recommend learning BASIC (or a derivative) first. It will make your next step feel like having to learn the basics all over again.

    ;-phobos-)


  • Registered Users Posts: 1,842 ✭✭✭phaxx


    Spot on, stay away from qb, it's what I started on and I regret it. :)


  • Registered Users Posts: 944 ✭✭✭nahdoic


    Well I'm studying Computer Applications in DCU. THe ONLY language we learned in first year was Java. The course just changed in the last year or two to allow for this. So all those smart lecturer heads must think java is a pretty good starting block. We learned c++ in certain year then.

    From that foundation in Java though, after a few weeks I got bored and learned Perl, then PHP, then went onto learn SQL on my own. And it was so easy to learn any other language after java. There's a little too much freedom in some other languages, that could get you into some awful habits.

    I'd recommend learning java first. After learning c++ as well, it's nearly TOO hard for your first language. But java gets you thinking in the right manner, and isn't as hard.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    As someone else who began with BASIC, I would agree with many of the sentiments expressed. BASIC, QBasic or VB are all good languages to get into except for the fact that they do engender bad habits at an early stage.

    C or Java would be good to start with. I'm not ruling out a member of the BASIC family of languages, I'm just warning that it's easy to pick up bad habits from them.


  • Advertisement
  • Registered Users Posts: 16,413 ✭✭✭✭Trojan


    Originally posted by nahdoic
    So all those smart lecturer heads must think java is a pretty good starting block.

    lol

    You're not cynical enough by far :)

    Al.


  • Registered Users Posts: 944 ✭✭✭nahdoic


    Originally posted by Trojan


    lol

    You're not cynical enough by far :)

    Al.

    lol. you really don't know me at all ;)


  • Closed Accounts Posts: 9,314 ✭✭✭Talliesin


    I think the problem with VB as a beginners language isn't the language itself, rather the tutorials that exist.

    While there are a few idioms that VB encourages that would be poor style in other languages, that's true of all languages (you could just as validly argue that C teaches bad habits because a lot of coders with a C background use return values for error-reporing in VB, which is poor VB style) so I wouldn't blame VB.

    Many tutorials for VB seem to be written with the chronological order of features being introduced into VB in mind more than the logical order of the features.

    A good example is that it is normally near the end of a beginners guide the Classes are introduced.

    Ideally chapter 1 would let you know just enough about Forms to give you somewhere to place your tutorial code, chapter 1 or 2 would introduce Standard Modules and then chapter 2 or 3 would introduce classes and use them as the basis of the rest of the book. Around chapter 8 it would return to Forms and explain them as a specialisation of Classes. This way beginners would have a better idea of how both Classes and Forms work than most tutorials provide.


  • Closed Accounts Posts: 1,322 ✭✭✭phobos


    I completely agree Talliesin, but...

    The reason people regard VB as a language that can easily introduce bad habbits, is because VB is quite different to a lot of other languages. I can safely say that the core languages used in industry are C/C++/Java/VB, and of course many others, but they would be the main ones. Out of the 4 core languages mentioned, 3 of them have a very similar syntax, and are easily interchangable as far as learning is concerned. VB is there on it's own and can be either very easy, or a complete headfuk, depending on which language you started with. The reason I'm glad I started with C is because I personally found it easier to pick up other languages, without worring about bad habbits.

    As you mentioned "coders with a C background use return values for error-reporing in VB". I know I do that, and I know it's wrong. But it's fine in so many other languages it doesn't bother me. I have come on this board and displayed a hatred for the VB language, but I will honestly admit today that it's actually getting it's act together, but is still a far cry from what I'm used to.

    So if you remember anything, remember this:
    VB does not introduce bad habbits, if you stay in the confines of VB (ignoring the possibility of [dare I say] GOTO). If you start with VB you will head off and possible learn C++ or Java after that, and find yourself quite confused (usually), because things are done quite differently. You will try and implement methods learned from VB and find they lead to problems within C-style code. On the other hand if you strart with C (or similar) you will most likely conquer many new languages without any problems, until you hit VB.

    ;-phobos-)


  • Registered Users Posts: 16,413 ✭✭✭✭Trojan




  • Advertisement
  • Closed Accounts Posts: 32 prophet88


    Thanks for the words of wisdom guys, appreciate it. I think ill give VB a try for now seeing as i am handcuffed to windows for the next few months. Hopefully all goes well and i bet you can be sure of me posting a few further comments in the months to follow about how its going. Wish me luck....


  • Registered Users Posts: 21,264 ✭✭✭✭Hobbes


    Originally posted by Trojan
    You guys might be interested in this:

    http://www.joelonsoftware.com/articles/fog0000000319.html

    Al.

    The guy is very pro-microsoft and it's certainly reflected in most of his site. Also he doesn't seem to "get it" with regards to XML.


  • Registered Users Posts: 4,156 ✭✭✭Quigs Snr


    I started with C++ and spent 4 years with it. You can do a lot more with it. Specially with low level stuff such as graphics.

    After that I moved to VB, a large portion of the industries bespoke software market is using VB, this is because in VB you can get results faster than in C++.

    You often hear people, snobs really, state that VB is an easy language or not a proper language. Being experienced at both (having been a well paid contractor in both for some pretty big companies) I have to say that it's easier to be a bad VB programmer than a bad C++ programmer, but it is very very difficult to be a truly outstanding VB programmer. Theres a lot to learn.

    After 3 months VB you will be producing better apps than you would be 3 months C++.

    I still prefer C++, it's a better language from a purists point of view. However VB is worth starting out with, you will get reasonable results fast and hopefully be encouraged to stick at it.


  • Registered Users Posts: 4,156 ✭✭✭Quigs Snr


    By the way, I did Comp Apps in DCU as well and we were started off with Pacal ! Good structural based language, then moved onto C, C++, Prolog, Lisp, Cobol, ASM and Java, they never did VB. I only got to do it as part of a database project in my 3rd year and also on work experience.

    In WIT Computer Applications, I think they start you with VB and move you to C++, then Java.

    Personally, I think that you're best start with a proper OO language like Java and to a lesser extent C++ if you're going the academic route. If you are going it alone, VB is probably the one to go for. Lots of work out there in it too.


  • Registered Users Posts: 16,413 ✭✭✭✭Trojan


    Originally posted by Hobbes

    The guy is very pro-microsoft and it's certainly reflected in most of his site. Also he doesn't seem to "get it" with regards to XML.

    Who cares about his pro-MS stuff? tbf, he was a program manager there, so got to actually use enforce good programming practices (within the scope of his own domain).

    If you ignore his MS stance, he actually has a lot of really useful softdev practice info on that site.

    I thought his attitude towards XML as represented there seemed to be a criticism of C's null-terminated strings, and not XML in general (or have you another example).

    Cheers,
    Al.


  • Registered Users Posts: 21,264 ✭✭✭✭Hobbes


    Maybe I misread it but he seemed to be saying that XML is bad at storing large volumes of data. Well duh, it's not what it's supposed to be used for.

    Just noticed someone pointed that out to him in his "Discuss" section.

    There's other bits as well like saying "XSLT" is a programming language, when it isn't.

    TBH I didn't know he worked for MS but that explains why some of his descriptions on other pages is based on the illision that "MS cares"


  • Registered Users Posts: 32,417 ✭✭✭✭watty


    VB6 is very flexible.
    I woulodn't use a VB earlier than V4
    Always put option Explicit so that variables must be declared.

    You can write "write only" C, Java or C++ very easily. The problem with C++ is that is uses the same syntax a C so many people never learn C++ style or the spirit of object orientated programming.

    You can't learn to program without some decent text books to show techniques and algorithms... Are you going to try and discover 50 years of Computer science research on your own?

    All decent languages (VB, Modula-2, Delphi/Borland, C, C++) as so flexible that you would never learn to program just by learning the "language". Conversely if you learn "programming" it is only a few days to change from Modula-2 to C++ or Java.


    You can write a program in C++ which just looks like a Java version of an old Fortran / Basic program (i.e. rotten). You can write (more easily than in C++ or Java) a VBScript or VB program that is very readiable (easy to change later) and has no relation to anything writable in QBasic, but looks like a clean version of a really nice Object orientated C++ program.

    For Windows programming VB (or possibly Delphi) is best as each windows window and widget is easily created and can have it's own C++ / Modula-2 style little program in VB. So the "project" becomes lots of small easy to understand programs.

    The equivalent to C++ / Java classes, are , er, Class Modules OR a user written OCX or a User Writen Active X DLL. If its vistual make an OCX, if not use a Class or DLL.

    VB can use C++ or Modula-2 written DLLs and Win32 APIs as easily as C++ too. The wierder old C style ones can be wrapped up in a nice to use VB class. (Object property and methods rather than a bunch of wierd functions).

    I was doing C++ since 1987 and VB since VB4 was released.
    Modula-2 Since 1984
    Assembler since 1979

    Don't write VB in style of Basic. Write it in style of best Delphi /Java. You can't easily do that with C or QBasic.

    The syntax and grammer of C++ can lead to unreadible programs and bizzare errors that the same structure in VB won't give.
    VB has it's own pitfalls.
    Always explictly convert anything in a on screen widget to the kind of thing you need (Integer, Long etc).
    DON'T use Varients... Always explicity use types to avoid really mysterious assignments.


  • Closed Accounts Posts: 32 prophet88


    Thanks for your time guys, I've decided to go with Java for now because it seems a little easier to me what with the books and tutorial Cd's i have for it. I will be starting VB in September when i go back to school so hopefully it'll be cool and i won't get confused.

    Once again thanks for your advice.

    Prophet88


  • Registered Users Posts: 4,156 ✭✭✭Quigs Snr


    Good choice Prophet. I think you'll find that VB and Java are different enough so that you won't get confused.

    Java and C++ share far more with each other than either does with VB. Good luck with it anyway. Look me up when you're qualified, I'm always on the lookout for good programmers.


Advertisement