1. Hey, Guest,

    Do you think you're halfway handy at making logo? If so, we want to hear from you. Please take a look at this thread to consider taking part in a design contest for our affiliated businesses.

    -The Directors

    Dismiss Notice

Directory of Programming Resources

Discussion in 'Computers & Video Gaming' started by Conjured Blade, Jul 20, 2015.

  1. Conjured Blade

    Conjured Blade Baron of Move-Like-This

    For all the programming inclined people here, let's establish a directory for materials and tutorials on the subject.

    ocw.mit.edu has lectures on computer science from their various classes and reading recommendations
    codeacademy.com and codeschool.com are like fix this to go on type tutorials meant to be completed in a browser from what I've seen, though they can help depending on what you're looking for

    Here are some github directories with more links.

    https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md
    https://github.com/vhf/free-programming-books/blob/master/free-courses-en.md
    https://github.com/vhf/free-programming-books/blob/master/javascript-frameworks-resources.md
    https://github.com/vhf/free-programming-books/blob/master/problem-sets-competitive-programming.md

    Books:

    "Working Effectively with Legacy Code" - Michael Feathers
    Recommeded by: Confusopoly


    "Clean Code: A Handbook of Agile Software Craftsmanship" - Robert C. Martin
    Recommended by: Confusopoly, TronPaul

    Headfirst Design Patterns - Eric Freeman, Elizabeth Robson, Bert Bates, Kathy Sierra
    Recommended by: Conjured Blade
     
    Last edited: Jul 26, 2015
    • Like Like x 3
    • Hugs Hugs x 1
    • Informative Informative x 1
  2. confusopoly

    confusopoly Metaphor Overextended. Ow.

    Some useful books when it comes to code quality (a bit more advanced):

    "Working Effectively with Legacy Code" - Michael Feathers
    Pretty good explanation of how you deal with the usual problems of old code that wasn't written with automated testing in mind. Explains how to approach horrible code and make it better. And no, a full rewrite is almost always the wrong approach if you have something that is large enough to be interesting.

    "Clean Code: A Handbook of Agile Software Craftsmanship" - Robert C. Martin
    Think of this as a style guide. Sometimes I think Martin goes a bit far, but in general I often agree with him.
     
    Last edited: Jul 20, 2015
  3. TronPaul

    TronPaul

    Location:
    Chicago
    Clean Code is an amazing book and probably one of the more enjoyable books I read to get my CS degree. Definitely don't follow it dogmatically (it's focused primarily on Java), but most of it is applicable to every language.
     
  4. Conjured Blade

    Conjured Blade Baron of Move-Like-This

    Headfirst Design Patterns is great, and if you're foggy on the purpose of interfaces, provides an effective explanation of just what they're for.
     
  5. confusopoly

    confusopoly Metaphor Overextended. Ow.

    I tend to be careful about recommending design pattern books. It's an easy way to fall into an overdesign trap, happened to me at my mandatory internship during my Bachelor's. I ended up with about 5 layers for a little data import and filtering tool and way too much soft-coding for what it was supposed to accomplish. So, my recommendation is to pick that one up after Clean Code, possibly even after the legacy code book.

    Then again, that project was a bit doomed from the start. Bulk import via a web service passing on data via RMI just can't really work all that well (not my architecture). Someone should really have realized that something was going wrong when I ended up having to measure which array sizes have the best performance for a bulk transfer over RMI. But the requirement was "only communicate via RMI, there is no other way to transfer data here". I was kind of annoyed when I later found out that all of this would then run on a single server, making the whole distributed stuff completely pointless.
     
    • Insightful Insightful x 1
  6. TronPaul

    TronPaul

    Location:
    Chicago
  7. stormbringer951

    stormbringer951 Slap Drone Moderator On Leave

    Looks useful. Stickied. I'll try and dig up some useful things to add later.
     
  8. Got another recommendation if one uses C++:
    Effective C++, Effective Modern C++, Effective STL
    All three from Scott Meyers.
    As a background, I got my mayor in physics (did most of my programming there in Python and Julia, and some introduction to C) and then spent my 6 month of unemployment learning C++11, then got a job in programming medical devices with it.
    These books helped me realizing more of the nuances and designgoals of the language (while I was working in my job, having to deal with real Code/a large Code-base of support libraries) and one can print the ~50 bullet points of each book on a sheet of paper and stick them next to the monitor, as a reminder against common traps.
     
    Last edited: Sep 8, 2016
    • Informative Informative x 3
I just write Internal Ad System Story