??'s for Computer Programmers

by DanTheMan 20 Replies latest jw friends

  • DanTheMan
    DanTheMan

    Well at 34 years of age I'm still wondering what I'm going to do with my life, career-wise.

    I have done well in college courses I've taken in math, computer programming, and logic. Also I have a fair amount of experience working as an end-user of various database programs used by my previous and current employers, and I have found that I have a good intuitive knack for understanding the underlying logic that makes them do what they do. So, I think that I have the mental goods necessary to be a good computer programmer, in fact I feel that I could be a pretty damn good one.

    But, with all the out-sourcing, I'm wondering if American computer programmers are a dying breed that will eventually be completely supplanted by Indian, Chinese, and Russian programmers.

    So to those of you Americans who currently work in the field, do you think that it is foolish to pursue a degree in computer science, given current trends? Or do you think that there will always be a need for computer programmers in America? Are there any particular avenues in the computer programming world that are less vulnerable to foreign competition?

  • AlmostAtheist
    AlmostAtheist

    My advice would be to talk to a career counselor. They aren't going to care so much what you take, as long as it's something their college teaches, so they're likely to give you less-biased advice. I'm coming at it from the standpoint of pretty much being locked into programming as my career, so my view of outsourcing is surely biased against it. I have to believe my job will never disappear, so the following is my "reasoning" (rationalizing?) on it. Time will tell.

    Personally, I don't think outsourcing is going to last just because the cost savings aren't real. You spend half or less on the development effort in terms of $/hr for a developer, but you lose it in the mangerial layer necessary to keep it on track. I've seen teams working on two different floors of the same buildnig that couldn't keep their design straight between them. Long term, there's no way you can expect a team in another country speaking a different language with a different culture to create the stuff you need.

    But that wasn't your question.

    I've been a professional programmer for 13 years, I've never wanted for work. On the other hand, my company is experiencing "rate pressure" from our clients, saying, 'Why should we pay $100/hr for your people when we can pay $30/hr for Indian developers with the same or better education?'" My company sells itself on its experience, we know the IT challenges in insurance/financial/pharmaceutical and we sell that more than our ability to code in ASP.NET. It works for us, but we still have had to lower our rates to remain in the game. I've seen offshore ventures fail miserably, though, as described above, so I think experience will win out in the end.

    Outsourcing scares me. No doubt about it. But I wouldn't want to get up Monday morning and plan on doing anything else. I think the best protection you have against it is to become experienced with some business sector and become familiar with solving their problems. When you sit down at a meeting with a client and can intelligently discuss their business, outside of the technology, when you can help them actually frame their problems in a way that can be discussed and addressed with technology, that's when I think you have a leg up on outsourcing. It seems that about 30% of any project is the actual coding, and only maybe 70% of that could potentially be outsourced. So there's a major chunk of the project definition (requirements gathering, validation, looking for holes, etc) that has to occur in-house before coding even begins, then a fair amount of coding that has to occur in-house since that's where the tweaking has to happen.

    Cross your fingers...

  • Jim_TX
    Jim_TX

    Programming is an avenue to pursue... don't worry about _all_ programming being 'out-sourced'... but you should worry about being a really good programmer.

    It's one thing to be a 'user' and quite another to be a 'good programmer'.

    If you want to learn to be a programmer - I would suggest Visual Basic (VB)... or even Visual C++. I learned VB - and can do fairly well at it - with not much education other than a 'beginners' course at a local 2-year college. I still consider myself a 'hacker' when it comes to writing code, however.

    If you _do_ get into programming - I recommend specializing. Don't do what everyone else is doing. That way - you will have a 'niche' market that you are programming for, and won't have to worry about it going overseas.

    Develop proprietary routines - Perhaps a unique way of sorting data. - and do NOT share them.

    Regards,

    Jim TX

  • Simon
    Simon

    I would suggest learning one of the newer languages / platforms such as C# & .NET as they are actually easier to understand (they were designed with a clean slate) and will have a longer lifespan. Experienced programmers have to re-learn everything anyway so you are not at as much as a disadvantage,

    As for being a programmer and outsourcing ... don't be a programmer !

    You should aim to be a software developer - that is, someone who develops software and not just someone who writes code (which is easier to outsource).

    So, look to learn about application design and architecture, unit testing, automated builds, installation packages and all the 'extra bits' that surround programming. This will make you far more valuable IMO.

    An excellent developer at $100 an hour is much cheaper than a poor programmer even if they are only charging $10 an hour. Pity not all managers understand this ...

    Oh, and good luck !!

  • Simon
    Simon
    Develop proprietary routines - Perhaps a unique way of sorting data. - and do NOT share them.

    Actually, I disagree with this - there is no need to re-invent the wheel and trying to do it can be counter productive.

    The aim is to be creative and with modern tools and languages that often involves assembling existing components and functions to build the final solution, not coming up with new ways to do something that can be had 'off the shelf'. Will your manager really care or be impressed if you have come up with a different way to sort data? He will be pissed off if you spent 2 weeks doing it and remember that most algorithms to do with basics will have been looked at by better minds than ours and have likely already been optimized.

    That isn't to say that you cannot be innovative and creative ... just be sure you are creative in the solution and not the code.

    People don't buy or use code, they but and use applications and solutions - that is what you aim to develop.

  • one
    one

    As the chief said "software developer" is the name of the game AND will be for a long time to come... ask Department of Labor. Let chinese and indians do the coding.

  • Swan
    Swan

    If you do decide to do this, be disciplined. Software developers I am seeing today are very impatient, don't like to wait for the design to be finished before they start coding, don't want to be tied down in a team environment, hate maintenance programming and think they should be assigned to just new development, and refuse to document their work afterward.

    We have two in our office right now, had another who just left, and had some in my previous job too. They may have picked up coding as a hobby, or have gone to college like we others did, but either way they didn't learn the discipline of software development. Of course they are seen as golden boys and lauded by management, but none of the other developers want to touch their code when it inevitably breaks. Yes, they are bright and talented, but management eventually catches on to the short cuts they have been taking, and they have spent many hours in crisis meetings and fixing their code on weekends. So in the long run it doesn't pay to be a hot shot.

    Tammy

  • DanTheMan
    DanTheMan

    Thanks for your input!

    I must say that you're over my head with a lot of the terminology you're using, which probably isn't a good sign for me!

    With regards to the advice to become a software developer, isn't that the next step that one takes after being a coder for a while?

    I think I need to have a long talk with a career counselor and my software engineer brother-in-law to see what my best options might be.

  • seattleniceguy
    seattleniceguy

    Hey Dan,

    Just wanted to weigh in on the question of outsourcing. Microsoft is sending a lot of work to India, but at the same time, they are also hiring thousands more in the Seattle area over the next few years. So it doesn't look like anyone is going to get the short end of the stick really soon.

    I think that the software industry is only just hitting its stride. Traditionally, the main need for software was to control mainframes and PCs. But we are entering an era in which software will control myriad more devices: handhelds, phones, refrigerators, you name it. I think the demand is only going to increase. And as more people have platforms that they are comfortable using for entertainment / education, there will be a larger and larger market for software to supply those things.

    I guess that's kind of a rosy view, but the world runs on information now. I don't see that ending any time soon.

    SNG

  • Simon
    Simon
    If you do decide to do this, be disciplined. Software developers I am seeing today are very impatient, don't like to wait for the design to be finished before they start coding, don't want to be tied down in a team environment, hate maintenance programming and think they should be assigned to just new development, and refuse to document their work afterward.

    I don't think they are really Software Developers ... just prima-dona's faking it.

    There are some excellent books about programming available, not the coding of it but the actual 'business' of developing software, that are a good read - they cover the personailities involved, the common mistakes and so on. I'll try and dif the titles out (they are on the shelf upstairs I think).

    Also, some bloggs are good reads, the guy who wrote (or runs the company who does) SourceGear talks a lot about the difference between programming and development.

    SeattleNiceGuy is correct - there is a lot of work going abroad but there is also a lot of demand. The trick has always been making sure you develop the skills that will be in demand.

    MS hiring eh? I know they have an office in Calgary but most of the jobs I see there are sales related ... think they'd have need of an MCP, MCAD, MCSD, MCSA, MCSE, MCDBA ?

Share this

Google+
Pinterest
Reddit