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

Beginner

Options
  • 07-10-2010 1:16am
    #1
    Registered Users Posts: 445 ✭✭


    Hi all,
    I was thinking about learning VB6 and maybe one day getting a career out of it? Right now Im a 'stay at home' dad and will be for the next year or two (or three). Im in the IT industry since 1998 and was wondering if its worth my while trying to change now? I will have the time to teach myself and work for free to get experience but when i return to the workforce and cant get a job (due to no experience) is there much point?

    Any advice is v much appreciated.


Comments

  • Registered Users Posts: 1,922 ✭✭✭fergalr


    gerarda wrote: »
    Hi all,
    I was thinking about learning VB6 and maybe one day getting a career out of it? Right now Im a 'stay at home' dad and will be for the next year or two (or three). Im in the IT industry since 1998 and was wondering if its worth my while trying to change now? I will have the time to teach myself and work for free to get experience but when i return to the workforce and cant get a job (due to no experience) is there much point?

    Any advice is v much appreciated.

    Its hard to give you advice, because you haven't really provided enough details.
    What have you done so far? What have you worked at within the IT industry? Would you like to become a programmer? Have you seen programming before, and do you think you'd like it?

    If you feel motivated to do it, and if you are good at the sort of work programmers do, then 3 years is probably enough time to learn to program well. A lot depends on what you've done so far, though.

    There seem to be jobs around at the moment for people that can program well, but fewer jobs for those who are not so good at it, or who don't have the fundamentals down well.

    You could almost do a degree in computer science in 3 years (maybe distance learning or some such?), but it doesn't sound if thats what you are after?
    You mention VB6 - I dont have experience with that language, but I think its on the way out, and VB.net is what people are using instead.
    But, if you want to be a good programmer and spend several years on it, its probably best not to aim for a single language, and instead aim to learn to be a good programmer generally. Again, this very much depends on where you are coming from, and what you want.

    I would advise against spending several years becoming a 'bad programmer'. Don't spend the time learning to program 'cookbook style'; some people do this, but I'm not sure it leads to secure job prospects. If you have that amount of time, I'd say do it properly, and thoroughly, or not at all. Its a long journey, though.


  • Registered Users Posts: 445 ✭✭gerarda


    Hi,
    Sorry should have given more details. I have a support background in manufaturing, service, banking and also software reselling. I am a complete novice to the programming world and just need some advice on where to start. I just downloaded the express editions of VB 2010 and also VC++ 2010 along with PERL (I will have the time to learn these).


  • Registered Users Posts: 1,181 ✭✭✭ronkmonster


    VB6 is an old language these days. You might get some mantainence work on existing applications but I wouldn't use it for a new application.

    You should checkout Java and C#, I learned Java in college and was able to pickup C# by myself ( similar languages). Then maybe look at C++ which would be a bit more advanced but programs are faster.

    You could learn VB.net but it has a different style than the above languages. If you learn one, it's relatively easy to learn the others.

    You should also look at supporting areas like source code management (eg subversion) and sql to interact with databases (specialised language just for getting data from databases)


  • Registered Users Posts: 445 ✭✭gerarda


    Thanks for all replies, going to go with:

    1) Java
    2) C#
    3) Perl


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    gerarda wrote: »
    Thanks for all replies, going to go with:

    1) Java
    2) C#
    3) Perl

    Java isn't a bad language to start with.

    You sound like you've got a lot of time though. If you have a lot of motivation, you might be better off starting with C (not C++). You can't get a lot of flashy done in it quickly, but by the time you've done a bit of C programming, you'll be well on the way to a good understanding of the fundamentals. Good fundamentals is what its all about with learning programming; get solid foundations to build on, rather than muddling through. Expect this to take at least several months.

    But Java is not bad either. Spend time learning how to do simple stuff in java, don't go straight into complex object oriented things, GUIs etc, or you'll get confused, and your conceptual models will get cluttered early.
    Oh, and put python onto your list instead of perl :P


  • Advertisement
  • Registered Users Posts: 445 ✭✭gerarda


    Cheers Fergalr,
    Again I'm a complete beginner but will have the time to get through it, you are dead right - getting the foundations right from the start is key. Thanks for all replies.


  • Closed Accounts Posts: 9,183 ✭✭✭dvpower


    gerarda wrote: »
    Thanks for all replies, going to go with:

    1) Java
    2) C#
    3) Perl

    All much better options than VB6. VB6 is old and is due to be deprecated soon (if it isn't already?).

    Java and C# are solid mainstream languages (you might also consider VB.NET).

    As a beginner who is going to have to self motivate yourself, I'd be inclined to one of these languages rather than C simply because these languages will reward you quicker and have lots of online resources.


  • Closed Accounts Posts: 9,183 ✭✭✭dvpower


    gerarda wrote: »
    Hi,
    Sorry should have given more details. I have a support background in manufaturing, service, banking and also software reselling. I am a complete novice to the programming world and just need some advice on where to start. I just downloaded the express editions of VB 2010 and also VC++ 2010 along with PERL (I will have the time to learn these).

    On a point of order, VB6 has nothing to do with VB 2010 (VB.NET), apart from a shared history.

    I'd stay away from VC++ (difficult for a beginner to pick up on you own).
    C# and VB.NET are quite interchangable - different syntatically but both sitting on the very same .NET framework. If you learn one you can very reasonably easily change to the other.


  • Registered Users Posts: 1,181 ✭✭✭ronkmonster


    I learned Java in college and switched to C# myself. But there seems to more Java work in Ireland so that might be something you should look at. Look at the langages in use in the areas you would like to work in.


  • Registered Users Posts: 14,148 ✭✭✭✭Lemming


    VB6 is dead and buried, and tbh I really wouldn't bother with VB.net when C# is available and far superior imo. So your two biggest options from a commercial perspective are C# & Java. Both are syntactically similar so swapping one out for the other isn't terribly difficult although the library support and 'plumbing' can differ wildly, but that's no different than for most any other language.

    The only benefit from optioning for VB.Net is that you'll have access to a shared library with C#, so if you move to C# you'll already be familiar with the .Net framework.

    Someone mentioned C as a beginners starting point to learn the fundamentals of programming which isn't a bad idea if you have time to monkey about with code.


  • Advertisement
  • Registered Users Posts: 445 ✭✭gerarda


    Lemming wrote: »
    VB6 is dead and buried, and tbh I really wouldn't bother with VB.net when C# is available and far superior imo. So your two biggest options from a commercial perspective are C# & Java. Both are syntactically similar so swapping one out for the other isn't terribly difficult although the library support and 'plumbing' can differ wildly, but that's no different than for most any other language.

    The only benefit from optioning for VB.Net is that you'll have access to a shared library with C#, so if you move to C# you'll already be familiar with the .Net framework.

    Someone mentioned C as a beginners starting point to learn the fundamentals of programming which isn't a bad idea if you have time to monkey about with code.

    Cheers


  • Closed Accounts Posts: 25,848 ✭✭✭✭Zombrex


    Learn Python, shortage of Python programmers in Ireland at the moment but the demand for people with the language is growing particular with companies like Google push for Python.

    If you learn something like Java you are just going to be competing against people with college degrees and tons of experience.

    My 2 cents


  • Registered Users Posts: 445 ✭✭gerarda


    Cheers,
    So many out there its hard to know what to do? Your right about the JAVA but I would still like to learn it. Lots of people with college degrees alright but you have to start somewhere I suppose?


  • Registered Users Posts: 2,119 ✭✭✭p


    Also, it'd be a good idea to experiment with programming to find what you're interested in.

    Java's good because it's quite flexible. You could code enterprise web apps or also Android applications. PHP is also a good language if you're interested in web development.

    I think right now, learn the basics and see how you get on. I think having a book, or online course that you can follow might be useful to give you some structure to your studies. It's easy to learn programming very very badly. A part-time diploma or degree could definitely help in the longer term.

    Regarding getting a job, if you're good, then targetting a particular emerging technology may give you an advantage. For example, if someone's written 3 Android apps, but not commercial experience, they've got an edge over a programmer who's never touched Android.

    But for now, I wouldn't worry too much about it. Learn the basics of programming, dabble play, and see how you get on :)


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    When you are trying to become a programmer, learning a particular language should just be a means to learning a set of programming competencies - it should not be an end in itself.
    You may learn a language as an end in itself, when you want to work a specific job ('java developers needed') - but that should come later, towards the end of the learning process.
    You've said you've got several years to go through this process, so this is particularly true in your case.
    gerarda wrote: »
    Cheers,
    So many out there its hard to know what to do? Your right about the JAVA but I would still like to learn it. Lots of people with college degrees alright but you have to start somewhere I suppose?

    It does seem that there are loads of languages out there, but it isn't really at all as bad as it looks.

    Many of the languages have a lot in common with each other. Furthermore, there are many programming skills that are relevant no matter what language you are using.


    For example, I've wrote a good bit of C++, Java, Perl and Python (in addition to others). A while ago, I wanted to write an application in Ruby. I had never written Ruby before, but I could pretty much just pick it up and start writing. I had to refer to tutorials and documents to learn specifically how to write stuff in Ruby - and there's a certain amount of subtlety thats unique to each language - but writing my program took me vastly shorter than it would take someone that had never programmed before. I wrote in a day what someone that had never programmed would probably take months to learn to write.

    This is because of two things: firstly, as a programmer, I knew roughly what parts the solution to my problem would break down into. This is the generic programming skill.
    Secondly, I had worked with languages quite similar to ruby (notably python) before, so I had a good idea how certain low level tasks would be accomplished in Ruby.
    Thirdly, having worked with a lot of java libraries before, I had some familiarity with the architectures that were used to make the particular Ruby libraries I was using.



    So, there are many languages, but there are much fewer 'families' of language ideas. Languages dont fall into distinct sets - they overlap - but if you know most of the sets of ideas that are used in a new language, you can learn it pretty quickly.


    Again, at the start, you shouldn't really care too much about what specific language you learn. It is more much important that you 1) learn how to program generally (learn how to break a problem down, how to structure a solution to it) and 2) that you learn how to program using particular techniques.



    I would recommend that you start with a language that is small, and simple, and that you can learn a particular set of concepts very well in. Then, having learned those, you could move on to another set of concepts.


    However, whenever you learn something new, there are motivational factors that are important. Some of the languages that are simpler, and that are the clearest to understand, also take a long time to do stuff in.
    In general, the more detail the language hides from you, the faster you can do things in it - but the harder it is to understand exactly what is going on.

    Sometimes people who are more practically minded should start with a language that enables them to accomplish practical tasks quickly, and then go back to learn the theory of what exactly is going on later.

    People with a more theoretical nature might learn the theory bit by bit, and eventually, after a hard slog, learn to accomplish practical tasks quickly.

    The first path sounds better, but the problem is that you can get confused, and end up learning how to make things happen, without realising exactly why they happen. (You get situations like like the scientist, who had fleas that were trained to jump when he range a bell; as an experiment, he cut their hind legs off, and range the bell. As the fleas did not jump, he concluded cutting their hind legs off makes fleas deaf.) A lot of people fall into patterns like this if they accomplish do too much too soon when programming.

    I'd recommend someone that is highly motivated to start with something like C and work up. This will take a long time, and the risk is that they get demotivated. Also, you won't be able to do much more than simple calculation, for a long time. But by the time you've done C, you'll have a very good mental model of how the simple things that you can do actually work. Its a great basis on which to build.


    Equally, you might start with a language with Java. Java is a small and simple language. The only problem is that people tend to write java libraries using very complicated object oriented architectures, which can make someone starting off think 'wtf is that?'

    This is a tradeoff you'll have to decide on for yourself - many people will have different opinions on it.


    After some time learning simple functional programming in C (or java), you might start trying to learn about object oriented programming. After more time, maybe even functional programming. Once you've got a core of programming skills, you might start trying to learn about different frameworks that are commonly used, by getting experience with a few different popular ones.


    The key things to understand here are that you should set out to learn how to effectively program within certain paradigms, using certain techniques - rather than just to learn a single language.


Advertisement