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

Visual Basic Recommended Reading

Options
  • 23-08-2010 10:14am
    #1
    Registered Users Posts: 2,945 ✭✭✭


    Hi all,

    I am applying for jobs at the moment in Finance and although I have decent to excellent MATLAB and C/C++ skills a lot of places want people to know VB and VBA for Excel. Does anyone have any suggestions as to books to read to get to grips with VB?

    Regards,
    Kieran


Comments

  • Closed Accounts Posts: 18,056 ✭✭✭✭BostonB


    VBA IMO is all about learning the object model for the specific application, in this case excel. Which you won't find in a straight VB book.


  • Registered Users Posts: 2,945 ✭✭✭D-Generate


    Would learning VB provide any insight into VBA? As in to be successful at VBA is it ideal to have a good grounding in VB?


  • Closed Accounts Posts: 18,056 ✭✭✭✭BostonB


    My opinion is probably very simplistic, I'm not a real programmer. But IMO, if you're a good C/C++ programmer I'd say no.

    Most power users write VBA macros. Basically a macro to do one task (usually). But a programmer will write that macro not as a macro, as a VBA application. Modules, functions, variables etc. Resuable code etc.

    VB and VBA are the same more or less. But VBA for Excel has a lot of built in objects/functions that don't exist in VB. So on a machine without Excel you can't use those objects in your VB application. So most "learn VB" approaches will not go into the Excel object in any depth if at all. Of course once you have Excel on a machine, you can use Excel Objects in your VB application.

    If you are a programmer already (C/C++) you dont' need to learn programming. You need to learn the Excel object model. Most Excel VBA books show you this, but from the point of view of Macros not applications. But as a programmer you'll be able to fill in the blanks.

    http://en.wikipedia.org/wiki/Visual_Basic_for_Applications

    Theres probably a better way of explaining this. I'm sure someone else will be along eventually to do exactly that.


  • Moderators, Politics Moderators Posts: 39,853 Mod ✭✭✭✭Seth Brundle


    As someone who does quite a bit of VBA programming with Access & Excel, the main thing that you would need to know is the standard functions within Excel - no point developing a macro if the functionality is already there in a built-in function.


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    D-Generate wrote: »
    Hi all,

    I am applying for jobs at the moment in Finance and although I have decent to excellent MATLAB and C/C++ skills a lot of places want people to know VB and VBA for Excel. Does anyone have any suggestions as to books to read to get to grips with VB?

    Regards,
    Kieran

    You could learn C#, it compiles to the same thing as VB.Net (unless your talking about classic VB). In my experience people coming from Java/C++ go for C# - people coming from classic VB stick with what they know.

    Lots of finacial houses use C#, and even if they use VB.Net you'll understand it with C# behind you. The wrox books are generally good.


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


    D-Generate wrote: »
    I am applying for jobs at the moment in Finance and although I have decent to excellent MATLAB and C/C++ skills a lot of places want people to know VB and VBA for Excel. Does anyone have any suggestions as to books to read to get to grips with VB?
    Firstly, while VB and VBA may appear attractive languages for the job market, they are, dead ends in a developers career.

    VB is a legacy language, which means that no new projects will be written for it and all you'll have left are applications written ten years ago that will continue to be maintained until finally replaced. So for VB, there's a limited, and diminishing market, out there, plus you would be competing for jobs with dinosaurs like me or Evil Phil who would have been coding in VB 12 years ago.

    VBA, while very similar to VB, is a different beast in many ways. It's principally a macro language; most often used in Excel and Access, but also available in Word, Visio and a few other MS and non-MS applications. It's not really considered a real programming language as a result, and the roles that use it tend to lead on more to analyst or BI roles rather than further development.

    This is not to say it's not a useful to have - it is. I personally found it very useful as I moved out of development and into management, for the automation of a lot of 'pointy haired boss' type tasks.

    But at the same time, if I were to learn it now, I would not waste too much time on it, only really get to grips with the more procedural approach of VB and its syntax, and perhaps play around with some VBA thereafter. Instead, the most marketable languages at present seem to be C#, Objective-C and Java. PHP is also popular, but there's a supply glut there, so I wouldn't bother.

    Frameworks have also become just as important as the languages themselves - ASP.net, Rails, Silverlight, etc. - and so you will want to look at those too.

    Finally SQL, taking into account there are differences between TSQL, plSQL, SQL/PSM and so on, is an language skill you will use everywhere in IT. Other than DB development being part of most projects, it will give you the option to go down the DBA and/or warehousing route later on. In analysis, BI or management it's practically mandatory now to be able to use it too. It's also piss-easy.


  • Moderators, Politics Moderators Posts: 39,853 Mod ✭✭✭✭Seth Brundle


    This is not to say it's not a useful to have - it is. I personally found it very useful as I moved out of development and into management, for the automation of a lot of 'pointy haired boss' type tasks.
    Jedward?


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


    kbannon wrote: »
    Jedward?
    Pointy-haired Boss.


  • Moderators, Politics Moderators Posts: 39,853 Mod ✭✭✭✭Seth Brundle


    I know - should have used a smiley


  • Registered Users Posts: 2,945 ✭✭✭D-Generate


    Thanks for the information folks. I suppose I will get familiar C# since as you said, it compiles the same as VB.NET. I would probably be more familiar with the syntax and structure too so that will probably help also.

    Thanks again for taking the time to respond to the question. Was well informative!


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


    D-Generate wrote: »
    I would probably be more familiar with the syntax and structure too so that will probably help also.
    It's supposedly based upon C++, although I've always thought it was more like Java. They're all the bloody same, TBH. Know one, you know them all.


  • Closed Accounts Posts: 18,056 ✭✭✭✭BostonB


    My experience (YMMV) was that places who want someone with VBA for Excel or Access won't take someone without it. You could have lots of experience in VB6 and even VBA in other applications, and they won't be interested. Bit odd but thats been my experience.

    The advice here seems to be take jobs that don't involve VB or VBA as its not mainstream programming. Which is fair enough. Its a bit of a dead end. But I've yet to work in a place that does anything with finance, or stats that doesn't use VBA somewhere. I know Visual Studio Tools for Office (VSTO) is meant to replace VBA. But I've not seen anyone using that. We've tended to move the functionality out of VBA and into ASP.Net applications, or just left the old VBA in place, with the odd tweak if required.

    If you can get a job not doing VBA then theres no reason to learn it. You only need VBA if you want to get a job, that requires it.


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


    BostonB wrote: »
    But I've yet to work in a place that does anything with finance, or stats that doesn't use VBA somewhere.
    I agree, but specializing so early on in something like VBA may well severely limit his options in the future. I knew a chap who did a Fas course in VB back in the nineties. At the end of it, while his classmates went on to entry level positions in various IT companies, he was offered the job to teach VB in future courses. He took this up, as it paid very well, but regretted it thereafter as he effectively had no professional experience within a few years while his former classmates had leapfrogged him in terms of salary in the meantime.

    My view is that unless you're about to end out on the street and need the money desperately, any job - especially at the start of your career - needs to look to the long term. It you want to do it for the money, there will be plenty of time later when you can fall back on your experience.

    Certainly if the OP is looking to specifically get into financial IT, VBA is important, however on it's own it won't get him very far. Languages such as Java and C# are more important for development roles there and while VBA roles are available, they tend to be limited, unless you bring other skills to the table (analysis, risk management, etc.).


  • Closed Accounts Posts: 18,056 ✭✭✭✭BostonB


    I'm guessing that someone with
    decent to excellent MATLAB and C/C++
    is an entirely different situation to someone solely specializing in VB/VBA. Its just a a tick box to get a specific job.

    That said you don't want to be the only guy who can get things done in VB/VBA freeing everyone else up to do the cool projects, exactly because they don't know any VB/VBA (or pretend to be woeful at it)

    [daft analogy] In other words, don't let people know you are a good goalie, if you want to be a striker. Unless the only way to get on the team is to be the goalie [/daft analogy]


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


    BostonB wrote: »
    I'm guessing that someone with is an entirely different situation to someone solely specializing in VB/VBA. Its just a a tick box to get a specific job.
    Well depends upon what he means by "decent to excellent" - I took it to mean very good in college, but little or no professional experience, largely because he mentioned MATLAB (which while used outside college, it's not exactly a growth technology).

    If that's not the case, then I'd agree with you.


  • Registered Users Posts: 7,468 ✭✭✭Evil Phil


    OP sounds like you need to do a requirements analysis of your chosen industry. Finance is a broad term, I've worked in what a recruitment agency would call *finance* because I've worked for banks. What I developed had nothing do with money but apparently is still finance. Well, except all the VBA stuff I did :pac:, macros for Excel, recorded by a BA rewritten by a Dev (moi) to improve efficiency.

    Find out what area in finance you want to work in, and then find out what skills are required, and even what kind of future it will have. It's probably best to try and talk to somebody in the industry about their experience etc.

    As many have said already, VBA/classic VB is a dead end street. Languages like C# and Java have a future. And while VBA is really handy to know, there's not much of a future in it.


  • Closed Accounts Posts: 18,056 ✭✭✭✭BostonB


    I don't know how the job market is. But I assume theres no problem getting a graduate job with C/C++ that doesn't require VBA.

    If you want to target a job in finance > than a programming career that might put a different spin on it.

    That said almost everywhere I've ever worked used VBA somewhere.


  • Registered Users Posts: 2,945 ✭✭✭D-Generate


    Just to clarify, its more Quantitative Analytics roles that I am applying for and Trading Strategy. My background is maths and designing models for pattern recognition (Machine Learning), so its not really development or IT that I will be involved with.

    I know a few quants and their everyday programs are MATLAB and VBA for Excel but in an interview recently they asked my what I knew about VB. Now it was my understanding that VBA was common place throughout front office roles in finance but VB wasn't. Since that interview though I am basically thinking maybe I should learn VB to cover all bases and just to have another notched to the post.

    Thanks for all the hints folks. In retrospect I imagine he meant VBA instead of VB just forgot to tag on the old applications part.


Advertisement