Career Question



  • I am a 31 year old accountant (soon to be 32!), and I was curious as to anyone's thoughts of a career change into programming at such an ancient age.  I have been told that an "accounting aptitude" is virtually synonymous with a "programming aptitude" and I would have to agree with this insofar as my limited, self-taught, programming experience is concerned.  How feasible is this, really?

    From a financial perspective, I can do no better than to remain steadfast where I currently am.  I make good money and the potential is there to do even better; however, I'm just not happy.  I've always enjoyed technology, particularily programming, and would really love to transition into something in some related field.  Honestly, I would be content to just move into some kind of basic IT/MIS role. 

    Would the traditional four-year degree be the way to go, or should I attend a technical college that offers focused instruction in said topics?  Would it be reasonable to entirely forgo additional education and instead opt for selected certifications? 

    I had a buddy who graduated in engineering and then decided to switch to programming.  He spent one year, eight hours a day, teaching himself C+ and then landed a great job (who knows where the hell he is now ...).  I've wondered if a similar approach would work well, now. 

    I have a BS in accounting with a great GPA, so I'm not so hung up the four-year path given that I've already laid that foundation.  I'd be interested in an advanced degree, but I'm not sure if it would be too difficult given that I don't have an undergrad degree in some type of CS/IS area. 

    Any thoughts would be most appreciated?  ... job offers, too ...



  • IMO it's realistic that you can make a career in programming if you want to. I'm not even sure that an additional degree is necessary, though you might feel (and do) better with a good theoretical background.



  • @ammoQ said:

    IMO it's realistic that you can make a career in programming if you want to. I'm not even sure that an additional degree is necessary, though you might feel (and do) better with a good theoretical background.

    computer science degree is meaningless, don't bother



  • Check out the ACM's Computing Curriculum documents to get some more clarity on what kind of IT related work might interest you.  While a four year degree in CS is useful for someone without a bachelor's degree, it's probably not for you since you already have a Bachelor's.  I'm trying to add business credentials to my IT background, a whole different story with much clearer paths, so I can't give you much more advice.  I would think an accountant with IT skills would be pretty marketable(without knowing exactly where), so don't ditch your experience completely to go install servers somewhere.  You can probably find a happy medium between the money you'll make with your existing experience and the job satisfaction you would have by being more in touch with software.

    As a parting thought, software companies that make accounting related software might be a good direction...  Okay, apparently all the software I recognize in finance related applications is authored by one company now. :P



  • Q: Does it make you enthusiastic when there are discussions here on this site about programming languages, theory and practices, and the smart people say intelligent things?

    Q: Do the WTFs amuse and entertain you, in part because you may learn How Not To Do It?

    If the answers are No, then I wouldn't bother making the switch. If you do this "just for the heck of it", then you'll be looking for something else with months, or a year at best.


    If Yes, then go for it!

    Oh, and how much programming do you know right now? Which is a slightly different way of saying: do you know what you're getting yourself into?



  • First and foremost, when you see someone claiming that a "computer science degree is meaningless," it means that he (a) does not have a degree himself but has a job in the industry, and is lying to himself and others to validate the fact that he does not have one, or (b) has a degree, but is so incompetent that even a MIT education couldn't help him.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>

    I have worked with several "transitioners" to IT (both software and hardware) and the best advice that I can give in your situation is as follows.<o:p></o:p>

    Get a Masters degree in Information Systems (2-3 years)

    • Most IS programs are designed for evening/weekend students
    • This degree deals with computers as they are used in the world of business, not in the context of science or high-technology
    • Unlike a computer science degree, an IS degree will have far less prerequisites (such as Calculus) that you likely do not have.
    • Most accounting (especially BS) programs have some sort of accounting computer systems class, so if your’s had such a source, the IS classes will be similar to those, though more technical and detailed

    Get Business Analyst experience (at work, while working as an accountant)

    • This can be done at your current job as an “extra-curricular” activity
    • BA experience involves analyzing the processes (both manual and automated) used by the accounting and suggesting ways to improve and integrate the processes with technology solutions
    • Try to find simple things to simplify and automate: expense reports, vendor payables, etc.
    • Work with the IT department or an outside vendor (such as my company, if your in the continental US) to develop these solutions
    • Work closely with the developers to gain an understanding of how they are doing, get the source code, etc, for learning purposes
    • Important: don’t do it yourself. You don’t have the experience and will probably make a mess and lose credibility (thereby costing you further BA experience)

    Get Programming experience (at home, while working as an accountant)

    • Self-teach yourself programming and databases
    • Some of the courses in the IS study will provide this experience
    • Try to create business systems like accounting software

    Get a job as a Business Analyst (after you get your Masters degree)

    • You’ll need to find an accounting one in order to use your decade of accounting experience
    • This should not be difficult given your degree and BA experience at your current job
    • Look for one at large corporations and make clear your intentions to transition and gain programming experience; they can help you do that
    • Stick close and befriend the programmers. Mention this website, that seems to gain points in some circles (so i've heard ;-)).
    • Gain programming experience from your new friends and employer. Your employer will likely want you to work at least 75% as a Senior BA and the rest as a Jr Programmer

    After gaining experience at Megacorp, you will have a lot of options. There’s IT Management, Business Analysis, Programming, etc -- but amed with lots of business/accounting knowledge, BA experience, and some programming experience, you'll have many places to go. Done right, and with a lot of hard work, you could be at this point in 5-7 years.



  • @wiggzie said:

    @ammoQ said:

    IMO it's realistic that you can make a career in programming if you want to. I'm not even sure that an additional degree is necessary, though you might feel (and do) better with a good theoretical background.

    computer science degree is meaningless, don't bother



    Your debating skills are unmatched! You don't bother with any pesky argument - you just state the conclusion and get on with it. Bravo sir.

    That's sarcasm.

    sincerely,
    Richard Nixon


  • @Alex Papadimoulis said:

    First and foremost, when you see someone claiming that a "computer science degree is meaningless," it means that he (a) does not have a degree himself but has a job in the industry, and is lying to himself and others to validate the fact that he does not have one, or (b) has a degree, but is so incompetent that even a MIT education couldn't help him.<o:p></o:p>

    I have worked with several "transitioners" to IT (both software and hardware) and the best advice that I can give in your situation is as follows.<o:p></o:p>

    Get a Masters degree in Information Systems (2-3 years)

    • Most IS programs are designed for evening/weekend students
    • This degree deals with computers as they are used in the world of business, not in the context of science or high-technology
    • Unlike a computer science degree, an IS degree will have far less prerequisites (such as Calculus) that you likely do not have.
    • Most accounting (especially BS) programs have some sort of accounting computer systems class, so if your’s had such a source, the IS classes will be similar to those, though more technical and detailed

    Get Business Analyst experience (at work, while working as an accountant)

    • This can be done at your current job as an “extra-curricular” activity
    • BA experience involves analyzing the processes (both manual and automated) used by the accounting and suggesting ways to improve and integrate the processes with technology solutions
    • Try to find simple things to simplify and automate: expense reports, vendor payables, etc.
    • Work with the IT department or an outside vendor (such as my company, if your in the continental US) to develop these solutions
    • Work closely with the developers to gain an understanding of how they are doing, get the source code, etc, for learning purposes
    • Important: don’t do it yourself. You don’t have the experience and will probably make a mess and lose credibility (thereby costing you further BA experience)

    Get Programming experience (at home, while working as an accountant)

    • Self-teach yourself programming and databases
    • Some of the courses in the IS study will provide this experience
    • Try to create business systems like accounting software

    Get a job as a Business Analyst (after you get your Masters degree)

    • You’ll need to find an accounting one in order to use your decade of accounting experience
    • This should not be difficult given your degree and BA experience at your current job
    • Look for one at large corporations and make clear your intentions to transition and gain programming experience; they can help you do that
    • Stick close and befriend the programmers. Mention this website, that seems to gain points in some circles (so i've heard ;-)).
    • Gain programming experience from your new friends and employer. Your employer will likely want you to work at least 75% as a Senior BA and the rest as a Jr Programmer

    After gaining experience at Megacorp, you will have a lot of options. There’s IT Management, Business Analysis, Programming, etc -- but amed with lots of business/accounting knowledge, BA experience, and some programming experience, you'll have many places to go. Done right, and with a lot of hard work, you could be at this point in 5-7 years.



    I concur. Well-written. I went from a CS degree to working as a Business Analyst in a Finance department (some coding, mostly database stuff) to classic "MIS department" programming stuff now.  That middle part was invaluable and really taught me a lot, ironically, about how to write good apps  and how to approach solutions thinking about things from the user's perspective.  I also learned a lot of accounting and finance, which is always nice. 

    I always tell people -- writing code is easy.  Creating tables and relations and SQL and reports are easy.  The hard part?  Getting the customer to clearly understand and explain what the business rules are that determine how those things need to be done, and thinking ahead about things they didn't consider and knowing when to tell them what they want isn't really what they want.  In other words, the business end of things is the most difficult part of programming.

    So, starting out in Accounting could be an advantage for you in some ways. Too many programmers have no clue about how a business works or how to help a company really solve it's problems, they just want to write code and get the stupid guy from Billing off of his back so that they can get back to writing more code; they don't care if the guy from billing is really getting what we needs or wants to get his job done effectively.

    I also have noted that many accountants seem to "get" programming, more or less, because they are used to analytical thinking.  Not all, of course.  But there are definitely overlaps.

    Above all else, learn as much as you can about databases and data modelling.  Just about *everything* you will do in programming revolves around a database these days.


  • Oversimplifying Things

    I think all of your oversimplification is very misleading.

    It's really easy to say, "Oh yeah, just pick up a book on C# and flip through it. Programming concepts will just miraculously start to make sense, and 5-7 years from now everything will just fall into place like clockwork. Your career will be great, you'll be making major dollars, and all of your accounting skills will be perfectly matched for your position."

    That sounds rather simple, doesn't it?

    The truth of the matter is that you will still have to work hard, study, network, and sell yourself. You have to have a true desire to program. You have to be the type of person who will program all weekend on a pet project, just because you think the technology is so cool, and not for any financial reward. It's more of a lifestyle and mindset. This isn't something you just wave a wand over and "poof" you're this experienced programmer.

    This has to be the type of life change where if you don't make it to your ideal career spot in 5-7 years you will continue hacking away at it anyways. You won't give up if you truly enjoy it. And there's no substitute for hard work and studying, sorry guys.



  • @CPound said:

    The truth of the matter is that you will still have to work hard, study, network, and sell yourself.

    This is one of those "common sense" things that's applicable to every industry, be it IT or Hollywood. I don't think that anyone is saying or believes that becoming a success involves merely a XYZ For Dummies book.

    @CPound said:

    You have to have a true desire to program. You have to be the type of person who will program all weekend on a pet project, just because you think the technology is so cool, and not for any financial reward. It's more of a lifestyle and mindset

    Let's be realistic. Having such dedication is nice, if you're in to that sort of thing, but not by any means necessary. We don't do "important" work like that of teachers, doctors, social workers, researchers, etc. We merely provide tools to allow people to be more productive and make more money. Our field is definitely not one of those that require anything more than a financial drive.

    Everything hour I spend doing "programming stuff" is for a financial gain, either direct or indirect. I can't think of any "programming stuff" that I've done "just for fun." Yet, I am still successful in my field and continue to work very hard in it. When it comes time for fun, I think of a hundred things more satisfying than programming. If you can't, you should get out more and enjoy life.



  • Don't bother.  Better money to be made in accounting, better long-term prospects too.



  • @Alex Papadimoulis said:

    doing "programming stuff" is for a financial gain, either direct or indirect.

    <FONT face=Tahoma>I agree, that's why we have our jobs. Although I too can find other fun stuff besides programming, I myself find it fun and satisfying to program (which can also be classified for indirectly financial gain since it's not my primary objective on this statement).

    It depends on the person's definition of fun and satisfaction though...



    </FONT>



  • Programming is not that funny for me like it was when I was 12-25, but every now and then I like to write programs just for fun, especially if it is relatively small and challenging. Financial gain is not an objective, though it's quite possible that some of the "fun" stuff might help later for my serious work.



  • @Alex Papadimoulis said:

    When it comes time for fun, I think of a hundred things more satisfying than programming. If you can't, you should get out more and enjoy life.


    That's personal preference and is no means universal. Some people enjoy rock climbing. Others enjoy cooking. I enjoy programming. Who are you to tell me that my particular form of entertainment and enjoyment is less valid than yours?

    sincerely,
    Richard Nixon



  • Our field is definitely not one of those that require anything more than a financial drive.


    It's possible to care nothing about code outside of 9-5, but only the most disciplined of diligent workers will keep on producing quality code.

    It's a reall, really, really, big, fat recommendation to love code/programming in general, if you want a programming job.



  • ... and I would like learning more of the theoretical side ... what little exposure I've had vis-a-vis personal study has been enjoyable ...



  • @no, it was not ammoQ, learn to quote (your friendly moderator) said:

    computer science degree is meaningless, don't bother

    Please elaborate ....



  • @Oscar L said:

    Check out the ACM's Computing Curriculum documents to get some more clarity on what kind of IT related work might interest you.  While a four year degree in CS is useful for someone without a bachelor's degree, it's probably not for you since you already have a Bachelor's.  I'm trying to add business credentials to my IT background, a whole different story with much clearer paths, so I can't give you much more advice.  I would think an accountant with IT skills would be pretty marketable(without knowing exactly where), so don't ditch your experience completely to go install servers somewhere.  You can probably find a happy medium between the money you'll make with your existing experience and the job satisfaction you would have by being more in touch with software.

    As a parting thought, software companies that make accounting related software might be a good direction...  Okay, apparently all the software I recognize in finance related applications is authored by one company now. :P

    I concur, Oscar.  Thanks for the link.



  • @dhromed said:

    Q: Does it make you enthusiastic when there are discussions here on this site about programming languages, theory and practices, and the smart people say intelligent things?

    Absolutely.

    Q: Do the WTFs amuse and entertain you, in part because you may learn How Not To Do It?

    Well, given that this is only my second day, I'll defer an answer until later.

    If the answers are No, then I wouldn't bother making the switch. If you do this "just for the heck of it", then you'll be looking for something else with months, or a year at best.


    If Yes, then go for it!

    Oh, and how much programming do you know right now? Which is a slightly different way of saying: do you know what you're getting yourself into?

    I'm inexperienced.  I've been in the "C Neighborhood" for awhile.



  • @Alex Papadimoulis said:

    First and foremost, when you see someone claiming that a "computer science degree is meaningless," it means that he (a) does not have a degree himself but has a job in the industry, and is lying to himself and others to validate the fact that he does not have one, or (b) has a degree, but is so incompetent that even a MIT education couldn't help him.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>

    I have worked with several "transitioners" to IT (both software and hardware) and the best advice that I can give in your situation is as follows.<o:p></o:p>

    Get a Masters degree in Information Systems (2-3 years)

    • Most IS programs are designed for evening/weekend students
    • This degree deals with computers as they are used in the world of business, not in the context of science or high-technology
    • Unlike a computer science degree, an IS degree will have far less prerequisites (such as Calculus) that you likely do not have.
    • Most accounting (especially BS) programs have some sort of accounting computer systems class, so if your’s had such a source, the IS classes will be similar to those, though more technical and detailed

    <FONT color=#ff0000>Do you think I will be overly disadvataged by not beginning the Masters with prior academic experience in some type of CS field?</FONT>

    <FONT color=#ff0000></FONT> 

    Get Business Analyst experience (at work, while working as an accountant)

    • This can be done at your current job as an “extra-curricular” activity
    • BA experience involves analyzing the processes (both manual and automated) used by the accounting and suggesting ways to improve and integrate the processes with technology solutions
    • Try to find simple things to simplify and automate: expense reports, vendor payables, etc.
    • Work with the IT department or an outside vendor (such as my company, if your in the continental US) to develop these solutions
    • Work closely with the developers to gain an understanding of how they are doing, get the source code, etc, for learning purposes
    • Important: don’t do it yourself. You don’t have the experience and will probably make a mess and lose credibility (thereby costing you further BA experience)

    <FONT color=#ff0000>... excellent points!  However, I work in public accounting, so this realistically will require a transition into industry (which I'm contemplating).  (I should have taken the software company's offer a couple of years ago ... it fit your description almost perfectly).</FONT>

    <FONT color=#ff0000></FONT> 

    Get Programming experience (at home, while working as an accountant)

    • Self-teach yourself programming and databases
    • Some of the courses in the IS study will provide this experience
    • Try to create business systems like accounting software

    <FONT color=#ff0000>This I do; although, I don't have much experience with databases (actually, none).  Are we talking about Access and that type of thing or something more sophisticated?  Where is a good place to start?</FONT>

     

    Get a job as a Business Analyst (after you get your Masters degree)

    • You’ll need to find an accounting one in order to use your decade of accounting experience
    • This should not be difficult given your degree and BA experience at your current job
    • Look for one at large corporations and make clear your intentions to transition and gain programming experience; they can help you do that
    • Stick close and befriend the programmers. Mention this website, that seems to gain points in some circles (so i've heard ;-)).
    • Gain programming experience from your new friends and employer. Your employer will likely want you to work at least 75% as a Senior BA and the rest as a Jr Programmer

    <FONT color=#ff0000>...again, excellent points!  Thanks for the insight.</FONT>

     

    After gaining experience at Megacorp, you will have a lot of options. There’s IT Management, Business Analysis, Programming, etc -- but amed with lots of business/accounting knowledge, BA experience, and some programming experience, you'll have many places to go. Done right, and with a lot of hard work, you could be at this point in 5-7 years.

    <FONT color=#ff0000>5-7 Years ... Is it true that programmers really don't have much opportunity after their forties?  I've heard this and I imagine (if it is true) that this is due in large part to a "glass ceiling" that limits further income growth (people have to transition into management or another field to continue their income growth .... to meet life's ever increasing demands ... kids, retirement, etc...)?</FONT>

    <FONT color=#ff0000>Thanks for your perspective.</FONT>



  • @no, it was not ammoQ, learn to quote (your friendly moderator) said:


    I concur. Well-written. I went from a CS degree to working as a Business Analyst in a Finance department (some coding, mostly database stuff) to classic "MIS department" programming stuff now.  That middle part was invaluable and really taught me a lot, ironically, about how to write good apps  and how to approach solutions thinking about things from the user's perspective.  I also learned a lot of accounting and finance, which is always nice. 

    I always tell people -- writing code is easy.  Creating tables and relations and SQL and reports are easy.  The hard part?  Getting the customer to clearly understand and explain what the business rules are that determine how those things need to be done, and thinking ahead about things they didn't consider and knowing when to tell them what they want isn't really what they want.  In other words, the business end of things is the most difficult part of programming.

    So, starting out in Accounting could be an advantage for you in some ways. Too many programmers have no clue about how a business works or how to help a company really solve it's problems, they just want to write code and get the stupid guy from Billing off of his back so that they can get back to writing more code; they don't care if the guy from billing is really getting what we needs or wants to get his job done effectively.

    I also have noted that many accountants seem to "get" programming, more or less, because they are used to analytical thinking.  Not all, of course.  But there are definitely overlaps.

    Above all else, learn as much as you can about databases and data modelling.  Just about everything you will do in programming revolves around a database these days.

     

    Thanks for your perspective, too!  Where is a good place to start with databases?



  • @CPound said:

    I think all of your oversimplification is very misleading.

    It's really easy to say, "Oh yeah, just pick up a book on C# and flip through it. Programming concepts will just miraculously start to make sense, and 5-7 years from now everything will just fall into place like clockwork. Your career will be great, you'll be making major dollars, and all of your accounting skills will be perfectly matched for your position."

    That sounds rather simple, doesn't it?

    The truth of the matter is that you will still have to work hard, study, network, and sell yourself. You have to have a true desire to program. You have to be the type of person who will program all weekend on a pet project, just because you think the technology is so cool, and not for any financial reward. It's more of a lifestyle and mindset. This isn't something you just wave a wand over and "poof" you're this experienced programmer.

    This has to be the type of life change where if you don't make it to your ideal career spot in 5-7 years you will continue hacking away at it anyways. You won't give up if you truly enjoy it. And there's no substitute for hard work and studying, sorry guys.

    I agree with Alex: Your last sentence is implied.  I do appreciate your dedication, though.  That means a lot irrespective of one's profession. 



  • @DrPizza said:

    Don't bother.  Better money to be made in accounting, better long-term prospects too.

    You are probably right ... but, the whole issue with me is job satisfaction.  I need to strike a proper balance ...



  • @Alex Papadimoulis said:

    @CPound said:

    The truth of the matter is that you will still have to work hard, study, network, and sell yourself.

    This is one of those "common sense" things that's applicable to every industry, be it IT or Hollywood. I don't think that anyone is saying or believes that becoming a success involves merely a XYZ For Dummies book.

    @CPound said:

    You have to have a true desire to program. You have to be the type of person who will program all weekend on a pet project, just because you think the technology is so cool, and not for any financial reward. It's more of a lifestyle and mindset

    Let's be realistic. Having such dedication is nice, if you're in to that sort of thing, but not by any means necessary. We don't do "important" work like that of teachers, doctors, social workers, researchers, etc. We merely provide tools to allow people to be more productive and make more money. Our field is definitely not one of those that require anything more than a financial drive.

    Everything hour I spend doing "programming stuff" is for a financial gain, either direct or indirect. I can't think of any "programming stuff" that I've done "just for fun." Yet, I am still successful in my field and continue to work very hard in it. When it comes time for fun, I think of a hundred things more satisfying than programming. If you can't, you should get out more and enjoy life.

    I agree.



  • @dhromed said:

    Our field is definitely not one of those that require anything more than a financial drive.

    <FONT color=#ff0000>This is a lesser motivator, but nonetheless, the most practical.</FONT>

    It's possible to care nothing about code outside of 9-5, but only the most disciplined of diligent workers will keep on producing quality code.

    It's a reall, really, really, big, fat recommendation to love code/programming in general, if you want a programming job.

    <FONT color=#ff0000>This is a higher motivator, but limiting.  </FONT>




  • @Richard Nixon said:

    Who are you to tell me that my particular form of entertainment and enjoyment is less valid than yours?

    I, too, enjoy programming; this is one reason why I chose this field. I did not mean to imply that it isn't fun, but that in the context of all other things done for fun (social activities, watching movies, hiking, etc), it should not be considered the "most fun." If, however, the "fun factor" of programming does rate higher than everything else ... that's probably not healthy.

    @Alex Papadimoulis said:

    Everything hour I spend doing "programming stuff" is for a financial gain, either direct or indirect

    I'd also like to comment on my earlier comment. This certainly does not mean that I do not have programming as a hobby, too. Consider this site, after all. But I try to justify it all with an "indirect" gain, be it educational, networking, etc. For example, for me to invest programming time in a forums web application would be not a strong investment: I would not gain any technical experience nor would the software be any better than what's out there.

    I do believe there is a benefit to "puzzles" -- they exersize the brain, which is just good in general. So, like ammoQ, I do sometimes shoot for a challenge like a Soduko solver, or something like that. But I don't consider that to be "programming stuff" because it's not done with the same mindset of "developing a maintainable system that meets the requirements".

     

     



  • <FONT color=#ff0000>Do you think I will be overly disadvataged by not beginning the Masters with prior academic experience in some type of CS field?</FONT>

    <FONT color=#ff0000></FONT> 

    I don't think so. I took 12 hours of IS courses at the graduate level, and several of my colleagues did not have a CS undergrad degree. Keep in mind that the program I advise (MS of IS) is offered by the business college, whereas the MS of CS is offered by the engineering college. Here is what I suspect you would need for a MS of IS:

    • Intro to Programming (Level 200)
    • Intro to Computer Science (Level 200)
    • Data Structures (Level 200/300)
    • Intro to Database Systems (Level 200)
    • Computer Architecture (Level 200/300)
    • [maybe] Programming II (Level 300)
    • [maybe] OO Programming (Level 300/400)
    • [unlikely] Operating Systems (Level 300/400)
    • [unlikely] Compilers (Level 300/400)

    <FONT color=#ff0000>... excellent points!  However, I work in public accounting, so this realistically will require a transition into industry (which I'm contemplating).  (I should have taken the software company's offer a couple of years ago ... it fit your description almost perfectly).</FONT>

    <FONT color=#ff0000></FONT> 

    If you work at a small/mid-size CPA firm, then there is lots of opportunity for BA experience. All you have to do is find a process problem and make suggestions to fix it. If you're at a giant, they will have people who do that, so I'd suggest transitioning to a smaller company where you can play that role.

     

    <FONT color=#ff0000>This I do; although, I don't have much experience with databases (actually, none).  Are we talking about Access and that type of thing or something more sophisticated?  Where is a good place to start?</FONT>

     

    Databases are key to this business. You need to learn theory first, it isn't too hard. I always recommend INTRO TO DATABAES SYSTEMS by DATE. It's a textbook so youcan get an old edition for a few bucks. Once you understand theory, then you can use them. Most vendors have a free developer edition that will be morethan suitable. Stay away from MySQL and Access; I recommend SQL EXPRESS from Microsoft.

     

    <FONT color=#ff0000>5-7 Years ... Is it true that programmers really don't have much opportunity after their forties? </FONT>

    There isn't a "glass ceiling" for programmers -- it's just a regular one. Like many fields (Accounting included) there is only so far that one position can go. Once you hit ten solid years of programming experience (a "strong" Senior Level), you are percieved to "know it all" and aren't going to be any more valuable than a thirty-year guy (still a "strong" Senior Level).

    Most programmers transition into consulting (real consulting, not the AA kind), self-employment, management, etc.



  • @Ringo said:

    I'm inexperienced.  I've been in the "C Neighborhood" for awhile.

    Have you heard of Objective-C?  I just saw some buzz about it and thought it might be an interesting way for you to learn object oriented programming concepts.



  • @Ringo said:

    Get Business Analyst experience (at work, while working as an accountant)

    • This can be done at your current job as an “extra-curricular” activity
    • BA experience involves analyzing the processes (both manual and automated) used by the accounting and suggesting ways to improve and integrate the processes with technology solutions
    • Try to find simple things to simplify and automate: expense reports, vendor payables, etc.
    • Work with the IT department or an outside vendor (such as my company, if your in the continental US) to develop these solutions
    • Work closely with the developers to gain an understanding of how they are doing, get the source code, etc, for learning purposes
    • Important: don’t do it yourself. You don’t have the experience and will probably make a mess and lose credibility (thereby costing you further BA experience)

    <FONT color=#ff0000>... excellent points!  However, I work in public accounting, so this realistically will require a transition into industry (which I'm contemplating).  (I should have taken the software company's offer a couple of years ago ... it fit your description almost perfectly).</FONT>

    Would it be difficult/overly expensive to earn a CMA or CFM coming from a CPA background(I only know what the acronyms stand for, not how the curricula differ)?  In the spirit of iterative refinement, this may be the shortest path into a big company's IS department.



  • @Alex Papadimoulis said:

     

    <FONT color=#ff0000>This I do; although, I don't have much experience with databases (actually, none).  Are we talking about Access and that type of thing or something more sophisticated?  Where is a good place to start?</FONT>

     

    Databases are key to this business. You need to learn theory first, it isn't too hard. I always recommend INTRO TO DATABAES SYSTEMS by DATE. It's a textbook so youcan get an old edition for a few bucks. Once you understand theory, then you can use them. Most vendors have a free developer edition that will be morethan suitable. Stay away from MySQL and Access; I recommend SQL EXPRESS from Microsoft.

    I would also recommend SQL Express.  It's free, has most of the features you'll need to know about in databases, and doesn't have a lot of the "features" that would complicate things for you if you were to go for a full blown installation(disclaimer: this last statement is hearsay).

    Also, approach databases as a way of thinking as well as a technology you need to master.  That's probably the biggest key to understanding and working with databases successfully.  Get set-based reasoning down and you won't get heat from Jeff S when you post here.



  • @Alex Papadimoulis said:

    @Richard Nixon said:

    Who are you to tell me that my particular form of entertainment and enjoyment is less valid than yours?

    I, too, enjoy programming; this is one reason why I chose this field. I did not mean to imply that it isn't fun, but that in the context of all other things done for fun (social activities, watching movies, hiking, etc), it should not be considered the "most fun." If, however, the "fun factor" of programming does rate higher than everything else ... that's probably not healthy.

    I enjoy programming, but I also enjoy trolling theDailyWTF.



  • @Oscar L said:

    Also, approach databases as a way of thinking as well as a technology you need to master.  That's probably the biggest key to understanding and working with databases successfully.  Get set-based reasoning down and you won't get heat from Jeff S when you post here.



    Now that should be good motivation !    :)

    Check out this thread: http://thedailywtf.com/forums/thread/77145.aspx

    Some of us have listed programming books that we found be well done.  A good programming book on the topics you are interested in is always a good starting point. 




  • @Alex Papadimoulis said:

    If, however, the "fun factor" of programming does rate higher than everything else ... that's probably not healthy.


    Hey, I never claimed to be healthy.

    (Actually, my interests include hiking, kayaking, and Russian literature. I enjoy walks on the beach and dinner by candlelight.)

    sincerely,
    Richard Nixon



  • @Oscar L said:

    Have you heard of Objective-C?  I just saw some buzz about it and thought it might be an interesting way for you to learn object oriented programming concepts.

     

    Thanks for the tip: I'll check it out.



  • @Alex Papadimoulis said:

    <FONT color=#ff0000>Do you think I will be overly disadvataged by not beginning the Masters with prior academic experience in some type of CS field?</FONT>

    <FONT color=#ff0000></FONT> 

    I don't think so. I took 12 hours of IS courses at the graduate level, and several of my colleagues did not have a CS undergrad degree. Keep in mind that the program I advise (MS of IS) is offered by the business college, whereas the MS of CS is offered by the engineering college. Here is what I suspect you would need for a MS of IS:

    • Intro to Programming (Level 200)
    • Intro to Computer Science (Level 200)
    • Data Structures (Level 200/300)
    • Intro to Database Systems (Level 200)
    • Computer Architecture (Level 200/300)
    • [maybe] Programming II (Level 300)
    • [maybe] OO Programming (Level 300/400)
    • [unlikely] Operating Systems (Level 300/400)
    • [unlikely] Compilers (Level 300/400)

    <FONT color=#ff0000>... excellent points!  However, I work in public accounting, so this realistically will require a transition into industry (which I'm contemplating).  (I should have taken the software company's offer a couple of years ago ... it fit your description almost perfectly).</FONT>

    <FONT color=#ff0000></FONT> 

    If you work at a small/mid-size CPA firm, then there is lots of opportunity for BA experience. All you have to do is find a process problem and make suggestions to fix it. If you're at a giant, they will have people who do that, so I'd suggest transitioning to a smaller company where you can play that role.

     

    <FONT color=#ff0000>This I do; although, I don't have much experience with databases (actually, none).  Are we talking about Access and that type of thing or something more sophisticated?  Where is a good place to start?</FONT>

     

    Databases are key to this business. You need to learn theory first, it isn't too hard. I always recommend INTRO TO DATABAES SYSTEMS by DATE. It's a textbook so youcan get an old edition for a few bucks. Once you understand theory, then you can use them. Most vendors have a free developer edition that will be morethan suitable. Stay away from MySQL and Access; I recommend SQL EXPRESS from Microsoft.

     

    <FONT color=#ff0000>5-7 Years ... Is it true that programmers really don't have much opportunity after their forties? </FONT>

    There isn't a "glass ceiling" for programmers -- it's just a regular one. Like many fields (Accounting included) there is only so far that one position can go. Once you hit ten solid years of programming experience (a "strong" Senior Level), you are percieved to "know it all" and aren't going to be any more valuable than a thirty-year guy (still a "strong" Senior Level).

    Most programmers transition into consulting (real consulting, not the AA kind), self-employment, management, etc.

     

    Thanks, Alex.



  • @Oscar L said:

    Would it be difficult/overly expensive to earn a CMA or CFM coming from a CPA background(I only know what the acronyms stand for, not how the curricula differ)?  In the spirit of iterative refinement, this may be the shortest path into a big company's IS department.

    I'm not sure about the CFM, but the CMA is considered a Cost Accounting (Managerial) Certification.  I've heard that it is even harder than the CPA (I doubt it).  The requirements to take the exam are less than those for the CPA, but I haven't taken a closer look as to the specifics.  Once eligible, it would merely be a matter of self-study - no harder than learning a programming language. 



  • @Oscar L said:

    @Alex Papadimoulis said:

     

    <FONT color=#ff0000>This I do; although, I don't have much experience with databases (actually, none).  Are we talking about Access and that type of thing or something more sophisticated?  Where is a good place to start?</FONT>

     

    Databases are key to this business. You need to learn theory first, it isn't too hard. I always recommend INTRO TO DATABAES SYSTEMS by DATE. It's a textbook so youcan get an old edition for a few bucks. Once you understand theory, then you can use them. Most vendors have a free developer edition that will be morethan suitable. Stay away from MySQL and Access; I recommend SQL EXPRESS from Microsoft.

    I would also recommend SQL Express.  It's free, has most of the features you'll need to know about in databases, and doesn't have a lot of the "features" that would complicate things for you if you were to go for a full blown installation(disclaimer: this last statement is hearsay).

    Also, approach databases as a way of thinking as well as a technology you need to master.  That's probably the biggest key to understanding and working with databases successfully.  Get set-based reasoning down and you won't get heat from Jeff S when you post here.

    I looked up set-based reasoning/logic.  You know, I found the concept(s) to be rather intuitive.  I suspect that the more analytical one is by nature, the more natural that type of reasoning would be.  I appreciated your point as to approaching it as a way of thinking - not only a technology to be mastered.



  • @Jeff S said:


    Check out this thread: http://thedailywtf.com/forums/thread/77145.aspx

    Some of us have listed programming books that we found be well done.  A good programming book on the topics you are interested in is always a good starting point. 


    Actually, I had already found the thread!  Thanks anyway, Jeff S. 



  • @Ringo said:

    @Oscar L said:
    @Alex Papadimoulis said:

     

    <FONT color=#ff0000>This I do; although, I don't have much experience with databases (actually, none).  Are we talking about Access and that type of thing or something more sophisticated?  Where is a good place to start?</FONT>

     

    Databases are key to this business. You need to learn theory first, it isn't too hard. I always recommend INTRO TO DATABAES SYSTEMS by DATE. It's a textbook so youcan get an old edition for a few bucks. Once you understand theory, then you can use them. Most vendors have a free developer edition that will be morethan suitable. Stay away from MySQL and Access; I recommend SQL EXPRESS from Microsoft.

    I would also recommend SQL Express.  It's free, has most of the features you'll need to know about in databases, and doesn't have a lot of the "features" that would complicate things for you if you were to go for a full blown installation(disclaimer: this last statement is hearsay).

    Also, approach databases as a way of thinking as well as a technology you need to master.  That's probably the biggest key to understanding and working with databases successfully.  Get set-based reasoning down and you won't get heat from Jeff S when you post here.

    I looked up set-based reasoning/logic.  You know, I found the concept(s) to be rather intuitive.  I suspect that the more analytical one is by nature, the more natural that type of reasoning would be.  I appreciated your point as to approaching it as a way of thinking - not only a technology to be mastered.

    It sounds like you have the potential to be good with software.  I hope to someday be good with software, too :P.  You'd be surprised how many actual working programmers don't "get" that.  This is typically where you can expect to see several comments bashing Java programmers, but like violence in old movies, I'll leave the gory slights to your imagination.



  • @Alex Papadimoulis said:

    @Richard Nixon said:

    Who are you to tell me that my particular form of entertainment and enjoyment is less valid than yours?

    I, too, enjoy programming; this is one reason why I chose this field. I did not mean to imply that it isn't fun, but that in the context of all other things done for fun (social activities, watching movies, hiking, etc), it should not be considered the "most fun." If, however, the "fun factor" of programming does rate higher than everything else ... that's probably not healthy.


    Uh-oh. I guess I also enjoy reading about programming and working on physics, too. Oooh, and math...

    Anyway, to overgeneralize what Oscar L already said, "It's not the tool, but the technique." Tools change... and quickly, in this field. Often before the old tool's potential is realized. The underlying techniques and processes change with a great deal less frequency, and I would consider them more important. The basics of set theory, and algorithms will take a you a great distance toward never seeing your code on this site. Of course, you still need tools to get any work done, but which tool to use is dictated by the problem, and less your lack of knowledge.

    Of course, there are extra benefits to specializing in a tool, too.

    I'm afraid I fall closer to CPound than Alex as to enjoyment, but I do know good programmers that don't enjoy it. No offense intended, Alex, but I simply haven't met any EXCELLENT ones that do it for purely financial gains. It's usually satisfaction of some other sort, followed by financial compensation. Of course, I'm still young enough to have my ideals...


  • @TheDauthi said:

    I'm afraid I fall closer to CPound than Alex as to enjoyment

    I'd have to agree -- if only because so much of the job is learning new technologies and techniques.  If you don't really enjoy figuring that sort of thing out, it's going to be a problem in the long-term. 

    But more than that, there's a particular mindset that really excellent devs/engineers have that never lets them stop fiddling with a puzzle or a problem or a program or a system of some sort.  They program because they love to...and if someone wants to give them a lot of money to do it, that's a pretty big bonus, but a bonus nonetheless.  

    It's like most any other profession....Some people really want to be mechanics, for instance, others just are.  Typically the ones who really want to be doing it are going to be better than the ones who just ended up there because of circumstance.   Every rule has exceptions, of course, but that's been my experience.

    -cw



  • For some tasks, the just-for-money programmers are more apt, provided they are reasonably skilled nonetheless. I'm talking about the "boring" tasks. Consider a project where dozens of relatively simple forms and reports have to be made. The just-for-money programmer simply does it and finishes his work in, say, 3 weeks. The code-loving programmer is likely to get bogged down in attempts to build a framework and a code generator to do the work. This might eventually work, but it likely takes longer than 3 weeks and adds a great deal of complexity to the project; and chances are (unless the programmer is really good) that the framework/generator thingy is still to limited in scope to be reused for other projects.



  • @Ringo said:

    @DrPizza said:

    Don't bother.  Better money to be made in accounting, better long-term prospects too.

    You are probably right ... but, the whole issue with me is job satisfaction.  I need to strike a proper balance ...

    Then get a hobby.

     



  • @ammoQ said:

    For some tasks, the just-for-money programmers are more apt, provided they are reasonably skilled nonetheless. I'm talking about the "boring" tasks. Consider a project where dozens of relatively simple forms and reports have to be made. The just-for-money programmer simply does it and finishes his work in, say, 3 weeks. The code-loving programmer is likely to get bogged down in attempts to build a framework and a code generator to do the work. This might eventually work, but it likely takes longer than 3 weeks and adds a great deal of complexity to the project; and chances are (unless the programmer is really good) that the framework/generator thingy is still to limited in scope to be reused for other projects.


    I'd suggest the code loving programmer you are referring to here is inexperienced. 

    An experienced code loving programmer would take and extend existing tools (potentially from his / her own "library of useful stuff") to do the job, and hand over not only the completed work (coded in a consistent and readable manner, with tests), but also a set of tools that make the next implementation of similar "boring" stuff a snip.

    In the absence of any existing tools (and the ECLP knows how and where to look for these), the ECLP would say "hey, we could make this job loads faster if we spend a week extra building tool X to do the job".  He / she would also recognise that in the case of a once-off boring job, it's faster to just chug through it manually.

    There is, after all, very little that's "new" in this business.

    Of course, there is a large crossover between the ECLP and the CFMP, both of them want to spend as little time as possible doing the boring stuff.  The main difference between the two is that  the CFMP will make good code when it suits him / her, whereas the ECLP makes good code because if it's worth doing, it's worth doing well; "just barely good enough" and "it works, doesn't it?" are not acceptable success criteria.

    The benefit of having ECLPs on your development team come when you reach the maintenance phase of a project and the original coders are long gone.

    Simon



  • @tufty said:

    @ammoQ said:
    For some tasks, the just-for-money programmers are more apt, provided they are reasonably skilled nonetheless. I'm talking about the "boring" tasks. Consider a project where dozens of relatively simple forms and reports have to be made. The just-for-money programmer simply does it and finishes his work in, say, 3 weeks. The code-loving programmer is likely to get bogged down in attempts to build a framework and a code generator to do the work. This might eventually work, but it likely takes longer than 3 weeks and adds a great deal of complexity to the project; and chances are (unless the programmer is really good) that the framework/generator thingy is still to limited in scope to be reused for other projects.


    I'd suggest the code loving programmer you are referring to here is inexperienced. 

    An experienced code loving programmer would take and extend existing tools (potentially from his / her own "library of useful stuff") to do the job, and hand over not only the completed work (coded in a consistent and readable manner, with tests), but also a set of tools that make the next implementation of similar "boring" stuff a snip.

    In the absence of any existing tools (and the ECLP knows how and where to look for these), the ECLP would say "hey, we could make this job loads faster if we spend a week extra building tool X to do the job".  He / she would also recognise that in the case of a once-off boring job, it's faster to just chug through it manually.

    There is, after all, very little that's "new" in this business.

    Of course, there is a large crossover between the ECLP and the CFMP, both of them want to spend as little time as possible doing the boring stuff.  The main difference between the two is that  the CFMP will make good code when it suits him / her, whereas the ECLP makes good code because if it's worth doing, it's worth doing well; "just barely good enough" and "it works, doesn't it?" are not acceptable success criteria.

    The benefit of having ECLPs on your development team come when you reach the maintenance phase of a project and the original coders are long gone.

    Simon

    CFMP: Coding For Money Programmer

    CMFP: Code Monkey For Pay?



  • @tufty said:



    I'd suggest the code loving programmer you are referring to here is inexperienced. 

    An experienced code loving programmer would take and extend existing tools (potentially from his / her own "library of useful stuff") to do the job, and hand over not only the completed work (coded in a consistent and readable manner, with tests), but also a set of tools that make the next implementation of similar "boring" stuff a snip.



    At some point, the boring jobs remain boring. Of course any programmer would strive to make the boring jobs as small as possible (by automating as much as possible), but then some work remains, i.e. to feed the generators, which also becomes boring - probably even more boring than doing-it-by-hand would have been, though it's less work.
    The CFMP is, in that situation, more likely to say: This framework/pattern/practice has been devised by experienced people and refined through the years, and it obviously works well, so I will use it as intended and finish the project.



  • Ringo, having been involved in computers/technology/engineering for most of my life, and now being a few years away from retirement, I would like to share just a few thoughts.

    It is quite possible to enter a programming career with no formal training.  However, most managers are unaware of that, and one of the first questions you will get (if you even get to an interview) is going to be about your training.  Just imagine how you are going to word your resume about being self-taught (without actually lying about it).  Now imagine defending that at a formal interview.  There are also a lot of unemployed programmers out there right now.  With the end of the cold war, and many companies deciding to go with a "world economy," there will continue to be unemployed programmers for many years.  There is something to be said about an unhappy job that has a good chance of being there for many years to come.  I know a number of programmers who would be happy to be complaining about their boring job (if they only had one).  Also, most programming jobs are actually temporary jobs.  You would be there to do a project, and then get laid off when the project is done.  You would work for a lot of different companies, and that doesn't look very good on a resume, either.

    I think that the advice of pursuing an advanced degree which would combine your accounting skills with some computer skills would be a good way of getting your feet wet, without completely changing your career options.  As a word of caution, though:  As you get older, an advanced degree is not always seen as advantageous by the hiring managers, because it means they will have to pay you more.  Most managers would rather hire staff that are cheap, rather than competent.  You might consider educational programs where you get a certificate of accomplishment, rather than an actual degree.  With the increase in age before you can draw Social Security, you will want to remain employable as long as possible.  I know it seems like an infinite amount of time before you get to that point, but you will be laying the foundation today for what will happen in the next several decades.

    However, after saying that, if you really desire an advanced degree you should probably go ahead and get it.  Some of the hybrid degrees (accounting/programming) have their own niches in industry.  As long as you have your primary accounting degree to fall back on for bread-and-butter jobs, you have a lot of freedom for pursuing something else, either as a hobby or a second career.

     



  • Lots of good advice from Alex and others. I'll add:

    • A technical education is important at some point, but it does not have to be immediately if you can already get programming work. Most people with formal educations take years before they can put it together in the real world anyhow.
    • If you're one of the few who can educate themselves, it may be quicker to go that route.  Lack of an advanced degree won't hold you back in most industries; there is an acute shortage of people who can do advanced work, and employers won't quibble about what you did or didn't do 10 years before.
    • The accounting industry is hungry for accountants with programming skills. There are plenty of accountants who spend a large part of their day doing database programming. Once you know that you can lateral into a full-time programming job easily.
    • Enterprise software gets a bad rap around here, and they do have their moments, but if you become an expert in one their accounting modules you can write your own ticket. One easy transition is to become an expert in a niche ERP programming language, like Oracle Forms or ABAP/4.
    • If you can stand working for one of the big consulting firms, they'll be happy to help you broaden your skills. The conditions are pretty awful, but you learn a lot in the 2-3 years you're there.



  • Some other points:

    • Age does not matter all that much, it is what you can do that is important in the long run. You start slowing down around age 50, so reaching an established level before that is good.
    • What counts in the long run is analytical skills; if you come from a career that develops them you're ahead, in some ways, from people who follow a normal career progression. It is axiomatic in hacker circles that the best programmers used to be musicians and chessplayers.



  • RyuO,

    I noticed in your profile you mention "Agile Methods". Hasn't this been referred to as "Cowboy Coding"?

    Should someone who is new to the programming world consider this methodology?


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.