Best Beginner Programming Books?


  • Discourse touched me in a no-no place

    @The_Quiet_One said:

    When I was her age, I think the toughest thing to wrap my head around was OOP in general.

    I suspect it is easier when you're using a system where objects are used for just some things, not everything. That stops you from having to wedge every last thing to a paradigm that doesn't always fit, leaving it for the places where it makes sense.


  • 🚽 Regular

    @dkf said:

    I suspect it is easier when you're using a system where objects are used for just some things, not everything. That stops you from having to wedge every last thing to a paradigm that doesn't always fit, leaving it for the places where it makes sense.

    Yes, but the two most prevalent languages that have that (PHP and JavaScript) will only replace one confusion with a whole bunch more.

    Plus, even in languages like that, you are still consuming a lot of objects in its native library representing intangible concepts.



  • @Kian said:

    Some limitations: she doesn't have admin rights on the machine, so whatever language it is it would need to have a portable environment she won't need to install.

    Yeah, with that limitation, C# and Java are right the f*&$# out. So portable scripting would be your best bet. I am 99.99% sure Python can do that.



  • @boomzilla said:

    Whelp...VBA it is, then! I know you can do all of that via normal COM, but if you're not dealing with a library that hides that stuff from you, that'd be a nightmare for a beginner. The nice thing about VBA (from a beginner's standpoint) is that you can definitely get that feeling that you're doing something useful / cool very quickly.

    Oh man, TRIGGER WARNING, PLEASE! o_O
    One of my first jobs involved C#, VB5, COM, and a CRAP TON of VBA scattered around like 1000 documents, all of them with the majority of the "business logic" that the rest of the application had to keep running. I am still recovering =_=



  • @Yamikuronue said:

    Not a book, but Human Resource Machine is a great game on Steam for practicing logic and low-level algorithms.

    I am afraid if I introduce her to Steam, she will fall down the rabbit hole and never come back up o_O
    But I will take a look at it anyway ^_-



  • I found out yesterday they are starting her on Python and Java, so the school is taking on the burden of OOP teaching, but I will shore up her knowledge. I have taught beginners from scratch before, and they are in college now and working on their Computer Science degrees, I can do it again 😃



  • @anonymous234 said:

    There's no more reason to "teach there is a real thing behind the clicks"

    Yes the fucking should be.

    A good conceptional model of how a computer works, how an interpreter works etc lets someone know that

    "Oh this strange error came up and made no sense, wait a sec, when I was programming in this other language I had strange errors coming up when I didn't deal with them properly. I suspect this program has a flaw ..."

    With technology now being in everyday lives and in everyone's lives we should educate people with a basic understanding of how these things work.


  • 🚽 Regular

    @Vaire said:

    I found out yesterday they are starting her on Python and Java, so the school is taking on the burden of OOP teaching

    That's impressive for middle school. Most of what I see before high school are those "connect the blocks" games. When I was in middle school in the 90s, they did do some BASIC and Logo.



  • I feel sorry that she had to learn Java.

    My old uni, did Java pretty badly ... so it is worth correcting for sure.



  • When I was in school, they didn't offer a single programming class, at all. And I was in an advanced district. We DID have access to a touch-typing class in middle school, as an elective, if we wanted. :rolleyes:



  • The Force is strong with her. She will persevere 😃



  • 😃

    Though it was easy to learn C# (as it is a better copy) and get a better job.

    So not all is lost.


  • Garbage Person

    I did logo in elementary school. And some dialect of BASIC or another (Apple II lego mindstorms integrated with it).

    In retrospect, the lego stuff wasn't even part of the curriculum, and was totally unguided. I just periodically got bounced out of the classroom, told to hang out at the computer and handed a book. I have no reason or concept of what I was missing, and I was definitely the only one.

    My mom was literally a full time volunteer at that school for 10 years (all through my time there, my brother's, and then my niece's), so maybe she pulled some strings.... I don't know. She's dead, and lost any reliable memory long before that, so I guess I'll never be able to find out why I got set on this road.........

    Now I has a sad.



  • @Captain said:

    y

    NO



  • @Polygeekery said:

    Don't ever give a noob that book. It will kill their hopes and dreams. You have to crawl before you walk, and you have to walk before you can understand the intricacies of pointers and memory allocation.

    It is also a load of shite if you aren't doing C or C++.

    In fact I would say they fuck your mind up for simpler languages.



  • @Maciejasjmj said:

    ...huh? How else do you step through/offset into a dynamic array if not by adding offsets to pointers?

    foreach(). AKA use a programming language that isn't shitty.



  • Excel kind of implies needing the Office Automation libraries. I'm not sure any .net stuff can be installed without Admin rights.

    The other possibility is just VBA scripting, but that stinks to high heaven.



  • @Yamikuronue said:

    Not a book, but Human Resource Machine is a great game on Steam for practicing logic and low-level algorithms.

    Take her in the time machine to her Apple ][ or Commodore 64 and grab a cartridge of Rocky's Boots.



  • @The_Quiet_One said:

    And I think things have since matured enough for us to try to start with some decent concepts like dependency injection and IoC (I'd analogize it to be something like "Okay, you have a car, and it knows it needs wheels, but it doesn't make the wheels itself, you need someone to screw them on.")

    Cripes, no. Terrible idea.



  • @blakeyrat said:

    foreach(). AKA use a programming language that isn't shitty.

    I love you, Blakey 😁



  • Of course you do.



  • You, @accalia, @raceproUK, @frostcat, and @cartman82, and a few others have gotten me to laugh out loud in the office. I am pretty sure people are starting to think I am a little nuts 0_0

    Worth it, though ;)



  • This was the first programming book I read



  • That orange thing is ... both terrifying, and cute ... [wibble] O_0


  • Grade A Premium Asshole

    I can't believe no one has posted it:

    http://i.imgur.com/SZPjHwz.jpg

    The only programming book you need.



  • Okay, I LOL'd 👍



  • This is the problem, honestly. If you can think of a thing, there is a noun involved. Even the connections between things are done by something. If you do a stupid car analogy and only talk about things you can see, you're set up for failure.

    You have to go full-on, 'objects are whatever has properties/attributes', and full-on composition. It actually makes it make more sense than setting people up for the circle-ellipse problem like everyone's school does.


Log in to reply