The future of US programmers

TurgonTurgon Banned Posts: 6,308 ■■■■■■■■■□
Im neither from the US nor a programmer, but I would be interested in the views on US programmers on this subject. There has clearly been a lot of outsourcing and there are some very capable programmers around the world. Russia for example, where they continue to excel having won the world maths championship this year beating China who won hands down the last few years. At the same time Russia has good chess players and scientists. They also have very capable hackers.

Ironically, we have Kasparsky AntiVirus.

Is there a correlation between mathematical ability and programming? I will let the programmers debate that one. It's not my choosen genre although I have programmed in BASIC, machine code, C, C++, Pascal and Modula 2 in the past.

But let's not focus on one country, it's one example and there are many others. I might add the US continues to produce excellent programmers.

What is the landscape for US programmers in the future? I noticed CS degree numbers falling when the dot.com bubble burst.

Any driver you install was pseudo coded, complied, debugged and recompiled by a programmer but you already knew that.

Comments

  • blargoeblargoe Member Posts: 4,174 ■■■■■■■■■□
    It seems like there is a lot of work for people who are willing to work on a contract and probably will continue to be, at least in my neck of the woods.
    IT guy since 12/00

    Recent: 11/2019 - RHCSA (RHEL 7); 2/2019 - Updated VCP to 6.5 (just a few days before VMware discontinued the re-cert policy...)
    Working on: RHCE/Ansible
    Future: Probably continued Red Hat Immersion, Possibly VCAP Design, or maybe a completely different path. Depends on job demands...
  • nelnel Member Posts: 2,859 ■□□□□□□□□□
    me too, seems like about 60-70% of the jobs i see where i live are development type roles!! Damn those developers icon_lol.gif whereas network roles seem to be quite rare at the mo
    Xbox Live: Bring It On

    Bsc (hons) Network Computing - 1st Class
    WIP: Msc advanced networking
  • TurgonTurgon Banned Posts: 6,308 ■■■■■■■■■□
    nel wrote:
    me too, seems like about 60-70% of the jobs i see where i live are development type roles!! Damn those developers icon_lol.gif whereas network roles seem to be quite rare at the mo

    Well that's good to hear. I think it's important that US programming thrives.
  • sir_creamy_sir_creamy_ Inactive Imported Users Posts: 298
    Turgon wrote:
    there are some very capable programmers around the world. Russia for example, where they continue to excel having won the world maths championship this year beating China who won hands down the last few years.

    Specifically, what contest are you referring to?
    Turgon wrote:
    Is there a correlation between mathematical ability and programming?

    Ones ability to understand, reproduce, and develop efficient algorithms is what makes one a strong developer. Algorithmic analysis involves formally proving the complexity and correctness of an algorithm. So mathematics and development go hand-in-hand.
    Turgon wrote:
    What is the landscape for US programmers in the future? I noticed CS degree numbers falling when the dot.com bubble burst.

    There has since been a resurgence in CS enrollment.
    Bachelor of Computer Science

    [Forum moderators are my friends]
  • TurgonTurgon Banned Posts: 6,308 ■■■■■■■■■□
    Turgon wrote:
    there are some very capable programmers around the world. Russia for example, where they continue to excel having won the world maths championship this year beating China who won hands down the last few years.

    Specifically, what contest are you referring to?
    Turgon wrote:
    Is there a correlation between mathematical ability and programming?

    Ones ability to understand, reproduce, and develop efficient algorithms is what makes one a strong developer. Algorithmic analysis involves formally proving the complexity and correctness of an algorithm. So mathematics and development go hand-in-hand.
    Turgon wrote:
    What is the landscape for US programmers in the future? I noticed CS degree numbers falling when the dot.com bubble burst.

    There has since been a resurgence in CS enrollment.

    This is the contest.

    http://www.maa.org/news/073007usamoresults.html

    Im glad to hear CS enrollments are on the rise in the US. I have studied algorthims for my Masters Degree and still do so in my genre as a networking professional.
  • nelnel Member Posts: 2,859 ■□□□□□□□□□
    Turgon wrote:
    nel wrote:
    me too, seems like about 60-70% of the jobs i see where i live are development type roles!! Damn those developers icon_lol.gif whereas network roles seem to be quite rare at the mo

    Well that's good to hear. I think it's important that US programming thrives.

    me 2...but i live in the UK not the US :D
    Xbox Live: Bring It On

    Bsc (hons) Network Computing - 1st Class
    WIP: Msc advanced networking
  • TurgonTurgon Banned Posts: 6,308 ■■■■■■■■■□
    nel wrote:
    Turgon wrote:
    nel wrote:
    me too, seems like about 60-70% of the jobs i see where i live are development type roles!! Damn those developers icon_lol.gif whereas network roles seem to be quite rare at the mo

    Well that's good to hear. I think it's important that US programming thrives.

    me 2...but i live in the UK not the US :D

    Well of course that is important too, Im from the UK myself and we continue to provide world class programmers. Even though many of the Vendors are US based they do draw on talent around the world. That said, I still think it's important US based programming remains robust!
  • JDMurrayJDMurray Admin Posts: 13,089 Admin
    Turgon wrote:
    Is there a correlation between mathematical ability and programming? I will let the programmers debate that one.
    Nope and I'm living proof. Solving mathematical problems are only one possible application of computer programming. All you need is a fundamental grasp of first-order logic (Boolean algebra and predicate calculus) and you can program for years and never use any math higher than basic arithmetic. Programming does attract many talented mathematicians who want to implement their mathematical ideas, but they are by no means the only--or the best--programmers.
  • TurgonTurgon Banned Posts: 6,308 ■■■■■■■■■□
    JDMurray wrote:
    Turgon wrote:
    Is there a correlation between mathematical ability and programming? I will let the programmers debate that one.
    Nope and I'm living proof. Solving mathematical problems are only one possible application of computer programming. All you need is a fundamental grasp of first-order logic (Boolean algebra and predicate calculus) and you can program for years and never use any math higher than basic arithmetic. Programming does attract many talented mathematicians who want to implement their mathematical ideas, but they are by no means the only--or the best--programmers.

    The voice of reason and I have to say a fair point, at least based on my experience. In terms of the field, the *best* programmer I worked with had the worst possible degree in CS but made a fortune.
  • TurgonTurgon Banned Posts: 6,308 ■■■■■■■■■□
    JDMurray wrote:
    Turgon wrote:
    Is there a correlation between mathematical ability and programming? I will let the programmers debate that one.
    Nope and I'm living proof. Solving mathematical problems are only one possible application of computer programming. All you need is a fundamental grasp of first-order logic (Boolean algebra and predicate calculus) and you can program for years and never use any math higher than basic arithmetic. Programming does attract many talented mathematicians who want to implement their mathematical ideas, but they are by no means the only--or the best--programmers.

    Addendum to this..has Object Oriented Programming made this situation possible?
  • undomielundomiel Member Posts: 2,818
    Programming before OOP still employed the basic mathematic ideas. OOP just introduces a different organizational method. I don't see it making a major impact on the necessity of grasping higher math. The math more effects the algorithm that you are generating than the actual implementation of it.
    Jumping on the IT blogging band wagon -- http://www.jefferyland.com/
  • TurgonTurgon Banned Posts: 6,308 ■■■■■■■■■□
    undomiel wrote:
    Programming before OOP still employed the basic mathematic ideas. OOP just introduces a different organizational method. I don't see it making a major impact on the necessity of grasping higher math. The math more effects the algorithm that you are generating than the actual implementation of it.

    I have no doubt, prior to OOP one needed mathematical ability, but has the requirement relaxed since OOP came in?

    So the question is, does one need a higher grasp of mathematics to be a proficient programmer? It seems that OOP or any other development aside, one only needs an understanding of the fundamentals..at least as mathematics is concerned these days.
  • JDMurrayJDMurray Admin Posts: 13,089 Admin
    Turgon wrote:
    I have no doubt, prior to OOP one needed mathematical ability, but has the requirement relaxed since OOP came in?
    One didn't need math before OOP/OOA/OOD, and OO technology doesn't alleviate the need for math skills to write programs that require it.
    Turgon wrote:
    So the question is, does one need a higher grasp of mathematics to be a proficient programmer? It seems that OOP or any other development aside, one only needs an understanding of the fundamentals..at least as mathematics is concerned these days.
    Once again, OO has nothing to do with math. It is used to design the structure of a computer program, not control what the program fundamentally does. For example, a 3D game that requires complex vector math can be designed either purely procedurally or object-oriented, but the math stays the same.
  • eltoroeltoro Member Posts: 168
    Well I think algorithmic design and programming differ in the sense that You definitely need strong math background to design complex algorithms. The actual coding is a breeze.
    Masters in Computer Science / Software Engineering (Dec. 2010)
    Illinois Institute of Technology
  • TurgonTurgon Banned Posts: 6,308 ■■■■■■■■■□
    I see, I think Im confusing algorithm creating and programming.
  • undomielundomiel Member Posts: 2,818
    Had to run yesterday so my post was a bit rushed, I'm sorry I didn't make things a bit more clear. OOP is on the structuring side of things. It can be viewed completely separate from the algorithm. The algorithm can be viewed completely separate from the code. The algorithm is the logic and math that plots the function for how a part of a program operates. That is where all of the math goes into, the algorithm. You don't even need to be a programmer to design a good algorithm, though having programming knowledge will certainly help, especially when you hand it over to the programmer to implement. The code is the implementation of the algorithm. You don't really need to know anything but the basics of algebra for implementation of the algorithm. You can be terrible at math and still implement an algorithm. Albeit being good at math will help you in optimization, but that is completely separate from implementation. How does OOP fit into this? OOP is the structure. It is a taking of the language of the implementation and making it easier to manage, like applying an MLA format to a paper. The paper is still written in English, but now a standard has been applied to make it more organized and manageable for the reader. But it isn't necessary for this implementation. You can still write good clean code without using OOP just like you can still write a good clean article without applying some standardized format to it. But formatting makes it easier.

    I know MLA isn't the best analogy by a long shot, but it is all that is popping into my head at the moment. Feel free to hang me for it though. :)

    And I should probably add the disclaimer that I am not a professional programmer by a long shot, I'm just a self-taught hobbyist with very sloppy code.
    Jumping on the IT blogging band wagon -- http://www.jefferyland.com/
  • sir_creamy_sir_creamy_ Inactive Imported Users Posts: 298
    eltoro wrote:
    Well I think algorithmic design and programming differ in the sense that You definitely need strong math background to design complex algorithms. The actual coding is a breeze.

    Yes, absolutely.
    Bachelor of Computer Science

    [Forum moderators are my friends]
  • livenliven Member Posts: 918
    I am for the most part a procedural coder. I do some OO stuff, but not much. I have studied my fare share of high level math, but I don't really think that it made that big of a difference on my ability to code. I am not saying studying logic helped me code, but I think some for of logic is what makes coding for me possible.

    Being able to look at the goal the code will accomplish on a high level, then breaking that down into smaller and smaller parts. These parts need to be as simple as possible until I can easily code them in as a most efficient was as possible. Then put the parts together and iron out the bugs....

    I guess that is kind of like solving a complex calc2 problem, but not really from the stand point of applying complex mathematical principles. More from being able to break things down...

    This is just my take on it, I am sure it is much different for a high level OO coder.
    encrypt the encryption, never mind my brain hurts.
  • JDMurrayJDMurray Admin Posts: 13,089 Admin
    eltoro wrote:
    Well I think algorithmic design and programming differ in the sense that You definitely need strong math background to design complex algorithms. The actual coding is a breeze.
    It depends on the algorithms. Many complex algorithms are based on simple math. And the actual coding can sometimes be a breeze (this is the Holy Grail of OOP), but the debugging of non-trivial programs rarely is.
  • sir_creamy_sir_creamy_ Inactive Imported Users Posts: 298
    If you can't design and write a code fragment and prove it's complexity you'll be a code monkey your entire life simply implementing a spec for small modules. Try designing a distributed application from the ground up without considering the efficiency of your code and you'll quickly realize how doomed you are.
    Bachelor of Computer Science

    [Forum moderators are my friends]
  • livenliven Member Posts: 918
    If you can't design and write a code fragment and prove it's complexity you'll be a code monkey your entire life simply implementing a spec for small modules. Try designing a distributed application from the ground up without considering the efficiency of your code and you'll quickly realize how doomed you are.


    Forgive my ignorance, but I don't follow you.

    I don't really code large distributed apps, however I often write rather complex scripts or applications that approach several thousand lines. But my goal is to make the code as simple, and efficient as possible. I try also to make it as straight forward as possible in case I or someone else has to make changes to it down the road. I don't really thing that makes me a code monkey, does it?

    I mean I learned this style from a co-worker that used to be a professor at a very respectable university. He would actually grade my code! And I always got better marks if it was easy to follow...

    Once again I am not trying to put words in your mouth, rather just understand what you meant by your last post.
    encrypt the encryption, never mind my brain hurts.
  • TurgonTurgon Banned Posts: 6,308 ■■■■■■■■■□
    Just to add to this..does this complexity still not equate to being good about maths? Perhaps not.

    What about software used by traders and financial models? Does this not involve the ability of programmers to understand complex mathematical models and be able to translate them into effective code for online trading of currencies in the sphere of FX-trading or derivitives or other things?

    If so, who works between the financial analysts and the programmers to enable the transition from complex financial modelling to effective coding?
  • JDMurrayJDMurray Admin Posts: 13,089 Admin
    Turgon wrote:
    If so, who works between the financial analysts and the programmers to enable the transition from complex financial modelling to effective coding?
    Mathematicians are the people in between. When an organization needs mathematical work performed it hires mathematicians. You might find people in other fields who are also very good mathematicians (e.g., economists, physicists, programmers), but they'll hardly have the time to devote to algorithm development that a full-time mathematician does.
  • sir_creamy_sir_creamy_ Inactive Imported Users Posts: 298
    This debate is getting drawn out.

    What I'm saying is that developing algorithms to solve problems efficiently requires the knowledge to formally prove an algorithm's efficientcy. I.E., mathematically proving the result can be generated in a specific time.

    If this isn't part of your job description then you're not wearing the big boy pants. You're most likely implementing small-scale functions of a larger system that have no effect on the overall efficiency of the system as a whole.
    Bachelor of Computer Science

    [Forum moderators are my friends]
  • JDMurrayJDMurray Admin Posts: 13,089 Admin
    What I'm saying is that developing algorithms to solve problems efficiently requires the knowledge to formally prove an algorithm's efficientcy. I.E., mathematically proving the result can be generated in a specific time.
    In software engineering, true efficiency can only be proven by testing a specific implementation and not just an algorithm alone. A strong understanding of math is not needed in most phases of software development. Determining the efficiency of an algorithm alone is more in the theoretical world of computer science. Perhaps this thread needed to discern much earlier the difference between "computer science" and "software engineering."
Sign In or Register to comment.