But wait, you don't have to be smart to be a programmer



  • Maybe I'm the type that always takes home the wrong thing from an advertisement.

    Hi robert,

    If you are thinking of attending Udi Dahan's upcoming Advanced Distributed System Design course September 7th- 11th in Austin, Texas, you may first want to first consider all the reasons NOT to attend.

    Luckily, Tom Cabanski (@tcabanski ), a course alumni, has done all the work for you in that area.

    Read on to see his Top 10 reasons to avoid the Advanced Distributed Systems Design course:

    .10. It’s too expensive.

    $3,500 is way too much to pay for a one-week training course with 20 or so other people. Besides, you don’t even get a t-shirt.

    .9. You want detailed implementation advice.

    If you want to see lots of code samples and hands-on coding, this is not
    the place for you. If you have a laptop, leave it at home or at least
    in the trunk of your car. You’re not going to need it. Instead, bring an
    open mind.

    .8. You like to surf the Internet during the “boring parts”.

    Parts of the lecture can seem a little dry, especially if you figure Udi
    is just setting the stage for the good CQRS implementation stuff coming
    later. Unfortunately, if you tune out for more than a few seconds, the
    odds are you’re going to miss something pretty important.

    .7. You are a DBA.

    If you break your distributed system into small, autonomous components,
    you really don’t need a centralized database. Udi utters this heresy
    more than once. To make matters worse, he says the database is a black
    hole of undesirable coupling. Do I need to say more?

    .6. You are a senior programmer, distinguished engineer, application architect or any other kind of lofty programmer who prides himself on writing clever code.

    If you break a distributed system into small, autonomous components,
    code gets simpler. We’re talking methods with two lines of code. We’re
    talking projects with a single class. You could write this stuff in
    straight Basic without much worry. No tests, no big problem. Poor
    implementations can be corrected in a few minutes. Even maintenance
    programmers can understand the code! There are a couple of juicy bits that require an expert, but fewer than you think. Did I mention that code gets much simpler?

    .5. You are the go-to guy for distributed caching

    Have you ever saved the day with an in-process cache or even a
    distributed cache? Well, Udi shows you where you went wrong and how you
    could have done it much better by letting the Internet do the work for
    you.

    .4. You believe in implementing “best practices”.

    Udi shows you why there is no such thing as a best practice. He gives
    you plenty of examples that will help you understand that it really-always-depends; You should use the simplest possible approach that meets the real requirements.

    .3. You dig monster trucks and like to go mudding on the weekend.

    If you love code reuse, centralized OO domain models, ORMs like
    NHibernate and centralized databases with perfect relational integrity,
    you probably don’t want to go to this class. Udi will show you how these
    seemingly desirable things can help you turn your system into a big ball of mud.

    .2. You want to “do CQRS” in your next system.

    Udi spends a long time telling you all the reasons you don’t need CQRS.
    He even says it is neither a “best practice” nor a top-level
    architectural pattern.

    .1. You want Udi to bless the architecture of your latest project.

    Unless you’ve gone to the course before, I doubt you’ll come out of it
    feeling good about everything in your latest system. You will feel dumb
    at times. Whatever you do, don’t bring your boss!

    If you are still convinced the course is right for you, early bird pricing is still available.

    But hurry, it won't last long.

    Regards,

    -Yifat


    My reply

    Sounds a lot like he's going to save me from being smart.

    Good job showing me how unprofessional this will be.



  • Let's see

    Ignore the "it's too expensive" thing. I'm willing to understand that valuable things cost money.

    Leave the laptop, bring an open mind.

    Ok, so it's going to be mostly theory-crafting.

    seem a little dry

    And boring theory-crafting.
    This is starting to remind me of the grad students in my electives. There seems to be this pattern of liking to talk a lot without giving anything of substance.

    DBA

    Great way to insult a whole career path. I mean, I get that there's some pushback on DBA as a profession, because it should be so simple that any team can set up software. But specialization is a good thing. You want a broad shallow knowledge, and a sharp niche. Next he'll be telling us that heart transplant surgeons are bad, because heart surgery shouldn't be so hard.

    senior programmer, distinguished engineer, application architect or any other kind of lofty programmer

    :wtf: So being knowledgeable now guarantees you can't try new things?
    Next he's going to tell me that he somehow came upon his knowledge without having actual experience.

    This is starting to sound like a witch-doctor insisting that blood-letting is still a thing.

    Even maintenance programmers can understand the code!

    Which should really include every programmer.

    "Even grandma can do this! With just three easy installments of $99.99, you too will be on your way to coding video games!"

    "best practices"... no such thing

    sigh

    code reuse, OO, ORMs

    Look, I get the open mind thing. But hand-waiving "everything you know is wrong"... I'm just not buying it.

    Internet do the work for you.

    Wow, the cloud can now program everything for me.

    shows you where you went wrong

    Oh great Udi, we were all so wrong.

    You want Udi to bless

    Oh that opportunity is long gone. Say I can get past the fact that you just insulted everyone, told everyone they're all doing it wrong (instead of say, look at this great alternative), admitted that you won't actually provide proof that your ideas work.

    I get the idea that you wouldn't approve of anything anyway.


    I'm seriously really glad they sent this email.

    Their first advert was actually interesting.

    Now I know that I can save my money and not watch a guy jerk himself off on stage.


  • ♿ (Parody)

    Sounds like a cult. I especially like this:

    @xaade said:

    he says the database is a black hole of undesirable coupling.

    I also :rolleyes: at this sort of thing:

    @xaade said:

    If you break a distributed system into small, autonomous components, code gets simpler.

    OK, but you still have to integrate all those small components. It's not a super duper silver bullet, especially when you're talking about...

    @xaade said:

    methods with two lines of code.

    @xaade said:

    centralized databases with perfect relational integrity,

    Yeah, heaven forfend that I don't have shitty data.



  • I'll be the first to say, I don't have an idea of what he's talking about actually doing.
    I also don't know a lot about warehouse databases or any situation that would be more unique than data with a handful of relationships.

    So, I'm no expert here.

    But I don't have to be.

    He could have some really smart ideas.

    And I'll never know, because he basically said that everyone's wrong, the cloud is magic, and programming could just be very simple if you just did X.

    Everyone who's ever said "______ could be simple, but everyone's doing it wrong", has been a kook or a conman.

    Unless you have a framework sitting behind the scenes, programming will never be "methods with two lines of code".

    I mean, is he going to tell me how his spaghetti bowl is going to solve the real problems in programming, like concurrency.

    No, he's already said it's only going to be theory-crafting.


  • ♿ (Parody)

    @xaade said:

    I also don't know a lot about warehouse databases or any situation that would be more unique than data with a handful of relationships.

    It sounds like he's on the NoSQL bandwagon.

    @xaade said:

    He could have some really smart ideas.

    Probably does, but you'll have to separate them from the WTF ideas. Though part of it is that email comes across as categorical, which is obviously retarded, while the actual content may have some qualifiers about when / where to apply this stuff.



  • Here's the original advert


    Do you want to learn how architects at industry-leading companies build and run large-scale distributed systems?

    In just four months, Udi Dahan will show you how during his 5-day advanced course in Austin, Texas, September 7-11.

    Will you be there?

    Developers have been raving about Udi's course for years.

    Here are the top 5 reasons to attend:

    .1. Learn from the best.

    "Backed by many years of building mission critical real-world
    distributed systems it is no wonder that Udi is the best at what he
    does. When customers have deep issues with their system design, I point
    them Udi's way.” - Glenn Block, Senior Product Manager - Developer
    Experience at Splunk

    .2. Change how you think about designing software systems.

    "The course profoundly changed our understanding and approach to SOA and
    distributed systems." - Bryan Wheeler, Director of Platform Development
    at MSNBC

    .3. Discover the many fallacies of distributed systems.

    “My biggest takeaway was that you really had to break all precocious
    notions of what good software development is when you develop
    distributed system – Dave Beckman, Development Team Lead at DHI Group.

    .4. Practice with interactive hands-on exercises that will not leave you indifferent.

    “I attended the ADSD course and it shook me to my foundations. It was a
    grueling five days of consuming from a fire hose”- Dave Rael, Software
    Solutions Provider at Raelyard Solutions

    .5. Apply what you learn to your work.

    “Udi gave a lot of good examples of how we could start implementing the
    ideas slowly to get the business and stack holders on board with using
    service-oriented architecture. Which we did!” Brian Lai, Software
    Engineer at BankRate Insurance.


    So maybe he has good stuff. And the original definitely qualifies the content as applicable to distributed systems. But there's red-flags that this is really going to be a white-paper on the idea, and not the specifics of how to accomplish it. So, I have no problem with this advert.

    It's the second advert that I got that was insulting. It basically went from, here's how you have to think to make a distributed system if you want one, to you're doing it wrong if you don't choose to make a distributed system.


  • FoxDev

    Did they use Dischorse to write the e-mail?



  • No, but Discohorse was happy to muck it up anyway.


  • FoxDev

    And now you've ninja-edited it, my joke no longer works 😢



  • @xaade said:

    Glenn Block

    Hmmm... Isn't he the PRISM and MEF guy? He got the second one right, because he'd already built the first monstrosity. Speaking of which, Infragistics' main programmer is now running PRISM, and he says he's always surprised when people call it 'massive' because you only need to use the parts you want. Not surprising from someone who is the world's greatest overengineer.


  • FoxDev

    @RaceProUK said:

    And now you've ninja-edited it, my joke no longer works

    and this my little hedgehog, is why we always quote the relevant passage when we make workplay jokes. particulalry if the joke revolves around an @accalia


  • FoxDev

    Or in this case, screenshot it



  • @RaceProUK said:

    Or in this case, screenshot it

    Better print it and photograph it on a wooden table, though.



  • I was amazed at how reasonably written and stylistically fine that post was by your standards, then I saw you were quoting for most of it. Oh well.

    They still sound like used snake-oil salesmen, though.



  • @xaade said:

    I'll be the first to say, I don't have an idea of what he's talking about actually doing.

    It sounds like he's promoting the idea of "microservices" without actually using the term "microservices".

    It's pretty much exactly what it sounds like. You divide your application into hundreds of tiny services that all do one tiny thing, then tie them all together.

    So instead of one "fat" controller that takes an image, converts it to PNG, resizes it, adds it to S3, then puts its URL in the database, you end up with that being 5 different microservices, ideally ones that are stand-alone enough to potentially all be on different servers.

    It's an interesting idea and probably less-bad that it sounds at the first knee-jerk, but remember No Silver Bullet-- the code to tie all those services together is where the complexity is going to migrate.



  • @blakeyrat said:

    the code to tie all those services together is where the complexity is going to migrate

    @xaade said:

    Unless you have a framework sitting behind the scenes, programming will never be "methods with two lines of code".

    Complexity always migrates to some framework.

    Hell, even shiny code syntax is simply migrating the complexity to a framework (the compiler).



  • @xaade said:

    .3. You dig monster trucks and like to go mudding on the weekend.

    I guess I'm not going, 'cause monster trucks are fucking awesome.



  • Calling it mudding is just bikeshedding. :P



  • @blakeyrat said:

    It sounds like he's promoting the idea of "microservices" without actually using the term "microservices".

    UNIX philosophy in new clothes?

    Inb4:opensource socks. Waaaah


  • Discourse touched me in a no-no place

    @blakeyrat said:

    It's an interesting idea and probably less-bad that it sounds at the first knee-jerk, but remember No Silver Bullet-- the code to tie all those services together is where the complexity is going to migrate.

    Not just that. Having all those service calls in there will add plenty of overhead and opportunity for strange failure modes.


  • ♿ (Parody)

    @dkf said:

    @blakeyrat said:
    It's an interesting idea and probably less-bad that it sounds at the first knee-jerk, but remember No Silver Bullet-- the code to tie all those services together is where the complexity is going to migrate.

    Not just that. Having all those service calls in there will add plenty of overhead and opportunity for strange failure modes.

    You sound suspiciously like someone who might..

    believe in implementing “best practices”.

    Better steer clear.


  • Discourse touched me in a no-no place

    I think it's best to practice before rolling out everything into prod. Is that the same thing?


  • ♿ (Parody)

    You said it again!



  • @dkf said:

    I think it's best to practice before rolling out everything into prod. Is that the same thing?

    @boomzilla said:

    You said it again!

    Probably a member of the oppressive quali-triarchy



  • So programmers don't need to be smart. You mean like this?

    http://dilbert.com/strip/1995-03-07


  • Discourse touched me in a no-no place

    @CoyneTheDup said:

    So programmers don't need to be smart.

    But it helps!!!



  • @dkf said:

    But it helps!!!

    You're right about that. Certainly nothing is going to help that guy PHB hired to work with DIlbert.


Log in to reply