Slashdot Mirror


NYC Mayor Bloomberg Vows To Learn To Code In 2012

theodp writes "New York City Mayor Michael Bloomberg has announced his intention to take a coding class in 2012 via Twitter ('My New Year's resolution is to learn to code with Codecademy in 2012! Join me.'). So, is this just a PR coup for Codeacademy, or could EE grad (Johns Hopkins, '64) Bloomberg — who parlayed the $10 million severance he received after being fired as head of systems development at Solomon Brothers into his $19.5 billion Bloomberg L.P. fortune — actually not know how to program? Seems unlikely, but if so, perhaps Bloomberg should just apply to be a Bloomberg Summer 2012 Software Development intern — smart money says he'd get the gig!"

31 of 120 comments (clear)

  1. Cobol by Anonymous Coward · · Score: 5, Funny

    Maybe he wants to know how to code in something besides cobol and fortran.

    1. Re:Cobol by Anonymous Coward · · Score: 2, Funny

      Maybe he wants to know how to code in something besides cobol and fortran.

      Or morse...

    2. Re:Cobol by Kristian+T. · · Score: 4, Interesting

      Fortran isn't that bad, considering it's from 1957. Anyone who can do Fortran, could learn C++ very quickly, [begin rant] Cobol on the other hand was a step backwards the day it appeared in 1959, and it's creators should be bludgeoned with a frozen fish for even writing the design document. And yes - I've written tons of Cobol - it doesn't grow on you. It's probably the first example of the fundamental misconception, that it's desirable (if even possible) to make formal descriptions using informal language. The MBA's still think you can describe a piece of software in Word, and then it's a trivial process to make the software that customers want. Informal language is desirable to humans because it supports leaving out details - which is exactly what makes it useless for programming a computer. Using the word "plus" in stead of the symbol "+" is completely missing that fundamental point.[end rant]

      --
      Run with the lemmings, and you'll get your feet wet.
    3. Re:Cobol by Grishnakh · · Score: 3, Informative

      Funny, but even this is ignoring reality. Accord to TFA summary, he was a EE grad in 1964. While those languages do indeed date back that far, EE students were probably not taught them at the time, and in fact probably weren't taught any programming at all, as that was a different discipline (CS). Even when I went to undergrad EE school in the early 1990s, we were only taught a little QBASIC, FORTRAN, C++, MATLAB (1/2 semester each), and x86 assembly language (full semester). There was some more in the junior/senior classes, but only if you elected to take those, and it was all concentrated on microcontroller and embedded programming. Back in the mid-60s, I imagine programming simply wasn't considered important for EEs, and that any EEs who ended up working on computers (which were room-size and mega-expensive at the time) would learn any necessary programming on the job. The fundamentals of EE simply don't include programming; they include network theory (Ohm's and Kirchoff's Laws), electromagnetics (Maxwell's equations), 3-phase power, etc. It's only been in very recent years (early/mid-90s and later) where they came up with the "computer engineering" degrees, or put the two together ("electrical and computer engineering" or ECE like at one university I went to).

    4. Re:Cobol by c++0xFF · · Score: 3, Funny

      He'll have to learn APL, or at least Perl. After all, he's going "to take a coding class in 2012 via Twitter." Anything else and the program won't fit in a single tweet!

      [rimshot]

    5. Re:Cobol by zarlino · · Score: 5, Insightful

      The MBA's still think you can describe a piece of software in Word, and then it's a trivial process to make the software that customers want. Informal language is desirable to humans because it supports leaving out details - which is exactly what makes it useless for programming a computer.

      That's because software *is* the description of what the computer should do. Check this great article: http://www.osnews.com/story/22135/The_Problem_with_Design_and_Implementation

      --
      Check out my cross-platform apps
  2. retweet by alphatel · · Score: 2

    His account was hacked. Bloomie would never make a New Year's resolution.

    --
    When the foot seeks the place of the head, the line is crossed. Know your place. Keep your place. Be a shoe.
  3. He was never a programmer by tomalpha · · Score: 5, Informative

    Mike Bloomberg was always the business/sales guy at the company. Tom Secunda was (one of the) original programmer of the first terminals. That was all in Fortran back then. A fair chunk of it probably still is. You can read this and oh so much more in his not-very-gripping autobiography, which was required reading for all team leads and managers at Bloomberg. [Ex Bloomberger].

  4. Head of systems development? by nurb432 · · Score: 4, Insightful

    So? Just beacuse you manage a department doesn't mean you can do the work they are doing. He was there to manage people, not code.. a vastly different skill set.

    Sure, its nice if you can do the job of your people, so you can have a deeper understanding of what is going on, but its not a requirement.

    --
    ---- Booth was a patriot ----
    1. Re:Head of systems development? by formfeed · · Score: 2, Interesting

      Sure, its nice if you can do the job of your people, so you can have a deeper understanding of what is going on, ..

      That's why I in principle like the announcement. Even if it turns out just to be a publicity stunt, it at least shows that Bloomberg thinks that learning something different would be good - or at least thinks, that his voters think that..

      According to BBC, the reaction of the London mayor was that he's too busy for things like that. - Now, that shows a politican that needs to get rebooted. If politicians would do a couple things below their pay scale or volunteer for longer than a photo opportunity they might actually get a clue. I'd rather have a mayor "wasting" a few hours a week on his/her education (in a broader sense) and pay for another aide than being stuck with a clueless person who wastes millions.

    2. Re:Head of systems development? by nurb432 · · Score: 2

      You're an IT manager aren't you?

      I have been in the past, but i am not currently. In my case i do have expirence in the IT/Engineering field as a 'worker bee', for 20+ years, but i still don't feel that is a prerequisite for managing IT people. General knowledge of the field sure, but i would not expect a manager to know low level stuff like how to sit down and code an application, or recite the resistor color codes ( for 2 examples ) to be an effective manager of people.

      --
      ---- Booth was a patriot ----
    3. Re:Head of systems development? by Asic+Eng · · Score: 4, Informative

      According to BBC, the reaction of the London mayor was that he's too busy for things like that.

      That's completely wrong. The BBC actually reports [...] the mayor is in awe of his good friend Michael Bloomberg, and if re-elected will explore whether he can join him on that course. I believe you got Boris Johnson (current mayor) confused with Ken Livingstone (former mayor and current candidate for the opposing party). Ken Livingstone stated If I'm elected, I'll be a bit too busy to take any education courses.

      Anyway, it's certainly nice if politicians broaden their minds, but it's reasonable that they have to allocate their time and set priorities.

  5. They don't make programming tools like they use to by LostCluster · · Score: 4, Insightful

    Common in the 60s: Punch cards, text only dumb terminals, mainframes...
    Common Now: Online storage, visual designers, client/server setups....

    If your knowledge of computers ends in the 60s. there's a lot of updating to be done. Mayor Bloomberg has the right idea... every 10 years or so it's time to retrain to the current tools.

  6. Re:Bloomberg on the Internet in 2001 by betterunixthanunix · · Score: 3, Informative

    Frankly, given the line of business he was in -- rapid news delivery to investors -- I am inclined to agree with him about the Internet. Delays on the network could translate into millions of dollars in losses for Bloomberg's customers, which could translate to millions in losses for Bloomberg. From a business perspective it made sense.

    --
    Palm trees and 8
  7. Why was this mod'ed "Funny"? by Anonymous Coward · · Score: 5, Insightful

    If you look at just about all tech companies, the person who got it going was the sales guy. In some cases the tech guy is also a great salesman - Larry Ellison of Oracle or Zuckerberg of Facebook - actually, FB is just a marketing data collection company.

    In my years in software development, I've seen some really great ideas and implementations just get burried because the geek didn't know how to sell it's value.

    All the tech bigshots knew how or knew someone who knew how to sell the value of their stuff.

    Wozniak had the luck of having God's gift of salesmenship, Steve Jobs, as his friend. All the gazillionaire techies had someone with them that had the contacts and sales ability to take their idea and make it into something.

    "Build a better mousetrap and the World will beat a path to your door" is a lie. The countless examples of inferior technology ruling the marketplace is proof.

  8. My first program by jacobsm · · Score: 5, Funny

    10 Print "I've got lots of money"
    20 goto 10
    30 end

  9. Even today by mbkennel · · Score: 2

    Even today, critical communications don't travel over the public internet:

    a) Mastercard & VISA card processing networks
    b) ACH & Fedwire money transfers
    c) US DoD communications.

    Using IP protocol isn't really the problem (why invent hardware now), but control & management of network is a big deal. Besides, his servers & his clients can be concentrated in Manhattan. Bloomberg made the right choice then, and it's still the right choice.

    1. Re:Even today by superwiz · · Score: 3, Informative

      Bloomberg terminals now operate over the internet if I'm not mistaken.

      They can encapsulate their feed over the Internet, but that limits functionality and requires extra login steps. The standard setup is over their own network. It's has extra security (including protection against Van Eck phreaking of the terminal itself). What you get in the browser is a very, very, very limited subset of functionality of what the terminal itself provides. Although the terminal itself, as an interface, has all the usability level of a cash register.

      --
      Any guest worker system is indistinguishable from indentured servitude.
  10. Re:Fortran & COBOL are ok... apk by Grishnakh · · Score: 5, Informative

    Should I use COBOL or ForTran (Formula Translator)?

    No, it's "FORTRAN". While it does indeed stand for "formula translator", back in those days they didn't use CamelCase, and making portmanteaus and then writing them in all caps was normal. You can still see it in US military acronyms, such as "USCENTCOM" (US Central Command).

    According to Wikipedia, they didn't start using camelcase for programming language names until the 1970s, and it only became fashionable for company names in the 80s.

  11. Why by lightknight · · Score: 2

    Just curious -> why? Personal interest, or business venture?

    And someone make sure he starts with C++. If he survives that, he won't have any trouble picking up other languages.

    --
    I am John Hurt.
  12. Perl! by RobertRCleveland · · Score: 3, Funny

    Bloomberg should learn Perl. That'll make him ready for the Presidency! :)

  13. C/C++ is pretty bad place to start learning by F69631 · · Score: 2

    And someone make sure he starts with C++. If he survives that, he won't have any trouble picking up other languages.

    I've always been baffled by people who think that C/C++ is a good starting point when you want to learn/teach programming. I think that the most important thing to understand - whether you end up working as a programmer or not - is the basic structure/flow of the program (conditionals, loops, modularity/functions). Then the basic programming concepts (recursion, abstract data types, etc.) and then the libraries/APIs for your platform so that you can actually create something interesting/useful. I don't think that C/C++ offers any advantages over more modern languages in any of these things.

    Perhaps advocates of C/C++ for first language think that if you start with a higher level language, the inner workings will forever be a mystery and you just end up using modules you don't understand. I could argue that if you aren't a professional programmer, that doesn't really matter at all but instead I'll argue that you do learn all the important concepts anyways. You can code in Java, PHP or Python and very quickly learn that there is a difference in whether you return a value or a reference to the value. The concept matters, not remembering where to put asterisks and where to put ampersands. ;)

    You might say "OK, perhaps C/C++ doesn't offer much advantages but they're still the languages... Why go with something else?" and the answer is pretty simple. If you study C for a week and then get bored / are too busy for a while, etc. you can't really do anything useful with it. There are pretty slim chances that you could, for example, create an application that saves you X amount of work by spending less than X in creating the application. If you spend a week learning PHP, JavaScript, AutoIt or whatever other language is best suitable for the domain of stuff that you're most interested in, you probably can actually use it for something. Also, if you choose a higher level language, the chances are that whether you spend a week or a month, you'll get to delve deeper into database access, networking, algorithms, etc. than you would by choosing C/C++. It's great to possess some basic understanding in those areas, even if you don't end up as a software engineer.

    I guess that C/C++ is a good place to start for college kids who're just getting into CS: It's something that professionals probably should understand anyways (even if they don't end up coding in it) so they need to study it at one point or the another and it's easy way to get rid of the "I just like playing XBOX" crowd. For anyone else, I'd probably ask "What kind of stuff do you like to do on computer?" and then try determine what language helps them most in doing that thing.

    1. Re:C/C++ is pretty bad place to start learning by lightknight · · Score: 3, Insightful

      I think C++ is a good starting point simply because it teaches memory management and class design.

      Understanding the concept of a class is one of the most difficult programming concepts a novice will encounter. And they are used everywhere.

      Just try explaining the concept of a class to a non-programmer. I will bet money that they will nod their heads, and still have no idea what you're talking about.

      And memory management -> something you need to understand, even if you use a garbage collector.

      If he's just taking a programming class to get a taste (dilettante) for programming, then by all means teach him Visual Basic or JavaScript or whatever. However, if he's taking a programming class to learn programming (he wants the programmer skillset a.k.a. a real programmer), then C++ is where he wants to be. Once you understand the concepts in C++ (which can be brutal / metal when it comes to learning), the hardest part of learning how to program is past.

      Why, do you ask? Because otherwise you end up in sad scenarios, like when the PhDs in your Computer Science department do not know how to install an operating system, when the undergrads in your class have difficulty understanding the difference between an AMD processor and an Intel processor, or why one should never write a program in JavaScript that consumes 8 GB of the client computer's memory.

      TLDR; C++ will expose him to the greatest number of programming concepts in the shortest period of time, and give him the minimal amount of understanding necessary to eventually grow into a respected programmer.

      --
      I am John Hurt.
    2. Re:C/C++ is pretty bad place to start learning by cerberusti · · Score: 2

      When teaching people to program I start with an introduction to binary and hexadecimal, making them do a few things like note the patterns various various numbers contain, and add up a couple of things (which illustrates why powers of two are important and convenient, etc.)

      From there it is a brief introduction to logic gates. I demonstrate simple addition, and make them construct a circuit that will do add with carry.

      Then I do a brief introduction to assembly (x86 these days, I used to choose Alpha.) I do not really expect them to become proficient, but I do think an intro and vague understanding is important. I also go over character sets and how to directly manipulate pixels on the screen to produce an image.

      Then I teach C (not C++.) They need to demonstrate some knowledge of how to use basic constructs such as loops, structures, and functions, as well as an understanding of memory management and pointers (including function pointers.) C gives an understanding as to why most modern APIs behave the way they do, and allows one to infer the consequences of various choices in the higher level languages. I will usually throw in a large data set to process at some point (few hundred GB, with file access through a wrapper I provide to allow them to just specify a 64-bit offset directly), to demonstrate how various choices in program structure can have a large impact on speed and memory usage (and show the point of things like qsort and bsearch.) If they get it quickly I will go into the reasons why qsort tends to beat other sorting algorithms in run time even though it frequently performs more operations, and how to make a quick assessment as to if you are going to blow the L2 cache.

      I usually stick with the standard C library, not going into something like win32. I honestly think C is one of the finest languages ever created, it offers quite a bit of control, can be easy to read if written well, and contains most of what you need to create a program quickly. It does not contain all the fluff that has been added to many modern languages, which just tends to get in the way of understanding the basics.

      Once they have a fair handle on C I teach JavaScript / HTML, which makes it easy to produce a program which creates a decent UI and can handle whatever logic they need with little work (I used to give a brief introduction to classes and load up a copy of borland C++ for their decent visual UI design, but I think javascript and HTML is just a better way to do it these days.)

      From there it is up to them, if they want to learn Java, C#, or C++ I will go over how classes work (and show how to quickly implement a basic class system in C), if they want to use windows as a platform I will cover win32 and directx (although honestly opengl is much better, and I will at least touch on that as an intro to 3D before hitting direct3D.)

      This seems to work fairly well, although I am a programmer by profession and not a teacher (CTO really, and I mostly use C for what I do.) The important point is to show how a computer works, how to program it is a natural consequence of that. I have also found that programmers who just know something like Java or C# tend to be rather poor, and get confused when asked to do something that may not be trivial (which also leads to me generally refusing to hire anyone without C or C++ somewhere on their resume.)

      --
      I'm a signature virus. Please copy me to your signature so I can replicate.
    3. Re:C/C++ is pretty bad place to start learning by Andrevan · · Score: 3, Informative

      Why do CS PhDs, who spend 98% doing theory (math), need to know anything about installing an OS? Why do undergrads, who probably use preassembled OEM boxes, need to understand the differences between hardware brands? More to the point, how does learning memory management or class design through C++ help one learn these things? To address a less ridiculous point, if I'm spending all my time in Java, Ruby or Python, why do I need to understand anything about pointers and memory management in C? For the sake of argument, let's say we need to understand how the stack, heap, and reference variables work in a garbage collected language. Why do we need to learn C to do that? In undergrad I was required to take a class which involved writing one's own implementation of malloc. Like so many other classes required for a CS degree, I use nothing from it in my day-to-day work as a Ruby developer.

      --
      "All it takes to fly is to hurl yourself at the ground... and miss." - Douglas Adams
    4. Re:C/C++ is pretty bad place to start learning by KingAlanI · · Score: 2

      The advisor for my intro to programming project promptly nixed C++ and went with Python
      A teacher who had worked with Fortran in the 70's said this: "Automatic memory management? You lucky bastard."
      Moreover, Python has a fairly straightforward syntax without being _just_ a teaching language

      --
      I listen to both RIAA and non-RIAA stuff if I like the music, tangential business/politics nonwithstanding.
  14. Re:Much rather by PPH · · Score: 4, Funny

    I'd much rather he learn empathy, humility, and how to not be a giant fucking jackass.

    Well then, learning to code is definitely NOT the way to go.

    --
    Have gnu, will travel.
  15. good example of lifelong learning by peter303 · · Score: 3, Insightful

    Always learn new things in life since technology evolves so fast. I feel sorry for my co-workers to refuse to learn on their own because it would cost them some time or money.

  16. Re:Fortran & COBOL are ok... apk by Anonymous Coward · · Score: 2, Informative

    No, it's "FORTRAN". While it does indeed stand for "formula translator", back in those days they didn't use CamelCase, and making portmanteaus and then writing them in all caps was normal.

    Bzzzt. Nowadays it's "Fortran". The Wikipedia article is an interesting read, for instance "Free-form source input, also with lowercase Fortran keywords" was first introduced in FORTRAN 90.

  17. Re:Fortran by buchner.johannes · · Score: 2

    Fortran makes it really really easy to do complex matrix arithmetic. It also makes text manipulation a serious PITA.
    So, like so many other things, it's a trade-off between what a language makes easy to code and what you actually want to code.

    You are right. However, with the arrival of numpy, I don't see the benefit of Fortran any more.

    --
    NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
  18. Re:Fortran by cstacy · · Score: 2

    <quote><p>I love COBOL statements like</p><p>MULTIPLY SEVEN BY SIXTEEN</p><p>rather than</p><p>7 * 16</p><p>How that made things more reasonable is beyond me.  Yes, some variants of COBOL do allow more ordinary mathematical expressions like you would see in C++ or even FORTRAN, but this is a "feature" of COBOL that has always seemed a little off.</p></quote>

    COBOL always had FORTRAN-like arithmetic statements since the first
    adopted version of the language standard in 1968.  It also had error
    handling, and many other features.

    COMPUTE ANSWER = 7*16

    DIVIDE ARROGANCE INTO IGNORANCE GIVING MISINFORMATION REMAINDER STUPIDITY.

    DIVIDE INFORMATION BY EXAMPLE
       GIVING POINTY-HEAD ROUNDED
         ON SIZE ERROR PERFORM BETTER-THAN-C