Python Coders: Non-Coder Needs Advice



  • So, here I go...

    How hard, roughly, is it to learn python? I've recently taken primary roles on keeping the IT services for an EVE Online alliance running (I know, I know) and one of the primary tools we use is a web solution that utilizes Django and does a lot of its syncing to other systems via python. Having very little coding knowledge (I've done some HTML/CSS, took half a semester of C++ in college, and stumbled my way through making one tiny VB project, but none of those were more recent than about 6 years ago), I'd like to start learning python so that I can better understand the underpinnings of this system (and how it could break) so that I don't have to go running to the devs every time something funny happens.

    Any recommendations of resources? I was thinking of starting my learning via Codecademy.


  • Winner of the 2016 Presidential Election

    @e4tmyl33t said:

    How hard, roughly, is it to learn python?

    It's the language I usually recommend to non-programmers: Easy to learn, easy to read, easy to get a lot of shit done in a few lines of code, and a lot of libraries.

    @e4tmyl33t said:

    Any recommendations of resources?

    Since you're a beginner, maybe https://www.udacity.com/course/intro-to-computer-science--cs101? (Skip the non-Python parts if they bore you.)



  • In general, learning a programming language is easy; it's learning programming that's hard. It sounds like you already know at least the basics of programming in general - converting "do something" into a series of small steps, control structures, functions, etc. You might try starting with Python's tutorial at https://docs.python.org/3/tutorial/index.html, and if you're having trouble with the general concepts of programming, then you can go back and look for resources that spend more time on programming in general.

    Of course, sometimes the best way to learn is to just experiment and then ask specific questions. At least a few of us around here aren't complete :doing_it_wrong:s.



  • Yeah, I generally get the concepts of programming, and strangely enough can USUALLY read code and figure out what it does pretty well, so I hope that can carry over into the right mindset for thinking of how to write it.

    I'll check out both sets of resources posted so far, but if anyone else has anything that'll help, I'd appreciate it!





  • Some people have told me CodeAcademy is good.
    They do Python now.



  • @asdf said:

    and a lot of libraries.

    (Which you need, because 90% of them are broken or incomplete in some way.)



  • Signed back in just to post this: Fuck that site hurts my brain
    Stuff doesn't scroll in until it's ~80% up the page (unless you scroll REALLY slowly) and it's really annoying to read anything at all.





  • @Talonj said:

    really annoying to read anything

    @Gaska said:

    /book/

    <words



  • > says it's annoying to read anything
    > read over 20,000 posts on this forum


  • Winner of the 2016 Presidential Election

    @blakeyrat said:

    (Which you need, because 90% of them are broken or incomplete in some way.)

    Python libraries? Which ones did you use? My personal experience with the Python ecosystem is pretty good so far.



  • Meh. I was going for the pedantic out-of-context quoting thing, but I guess it doesn't work if you try to be an asshole to yourself.

    20k posts... I need to procrastinate a bit less.

    Also my actual read counter is way more than that, I've been lurking since CS, only bothered to create an account after a very long time.

    And then got logged out and never bothered to log in again.



  • @Talonj said:

    Meh. I was going for the pedantic out-of-context quoting thing, but I guess it doesn't work if you try to be an asshole to yourselfme.

    FTFY

    @Talonj said:

    Also my actual read counter is way more than that

    Definition 9.



  • My experience was trying to find one that did the SOAP protocol, and worked in the latest 2.x release.


  • Winner of the 2016 Presidential Election

    In that case, I'm glad I was using PHP the last time I had to talk to a SOAP API.



  • @Gaska said:

    http://learnpythonthehardway.org

    Pro: Written for non-programmers. (That's a pro in this context, a con when I'm trying to learn from it.)
    Con: Seems geared toward producing code monkeys rather than programmers. Way too many instances of "Don't worry about why; just make your code look exactly like the example."


  • I survived the hour long Uno hand

    @HardwareGeek said:

    Con: Seems geared toward producing code monkeys rather than programmers. Way too many instances of "Don't worry about why; just make your code look exactly like the example."

    I passed it on to my husband; he's an engineer in his own right, he just noticed that some Python is counted as a plus on job openings around here in his industry, so he doesn't need software engineering so much as basic scripting skills.



  • Python is easier than Ruby!


  • Dupa

    @Nagesh said:

    Python is easier than Ruby!

    Ok, now I get it. You're the bright one, right?



  • @kt_ said:

    @Nagesh said:

    Python is easier than Ruby!

    Ok, now I get it. You're the bright one, right?

    Perhaps! More importantly, I am the positive cheers one 👍



  • @asdf what he means is that there is one library that didn't work the way he liked and thus all python libraries are broken.



  • This is right up on my alley. I teach Python to testers and HW designers at my company.
    The resources already mentioned are very good, specially Codeacademy.

    I recommend, after getting comfortable, getting this book: http://www.effectivepython.com/, and going back looking again at codeacademy and learnpythonthehardway.

    Learning the framework, Django, will take you more time than Python itself. (Not that is too difficult, but there's a lot of things going on).


  • Dupa

    @Nagesh said:

    @kt_ said:

    @Nagesh said:

    Python is easier than Ruby!

    Ok, now I get it. You're the bright one, right?

    Perhaps! More importantly, I am the positive cheers one 👍

    HIV positive?


  • Dupa

    @Gąska said:

    http://learnpythonthehardway.org/book

    Better?

    This one's funny. They claim there, that it was read by 1.5 million people. I highly doubt that. I mean, if I can't read their webpage and it's only like a few hundred words long, how awful the actual book must be?

    1_1458648548983_image.png 0_1458648548980_image.png



  • @HardwareGeek said:

    Way too many instances of "Don't worry about why; just make your code look exactly like the example."

    I wonder if the complete opposite approach wouldn't work better for some people: first explain what's an object, how it lives in memory, how variables point to them and how expressions are evaluated, with enough examples to make the concepts clear. And only then, you teach the different parts of standard library and how to use all that to implement common tasks.

    I think that if you're already a "logical" kind of person, for example a mathematician, it should be easy enough to understand the abstract concepts.



  • @lucas1 Do you really want Blakey to go on another rant about urllib, urllib2, urllib3, and urllib4?

    Granted, only 2 of those are shipped with Python 2.

    Oh, and just for fun, only 1 of those ships with Python 3, because you know, "damn the standard library" and all that.



  • @powerlord Use Requests instead, much easier :smile:



  • @kt_ said:

    @Nagesh said:

    @kt_ said:

    @Nagesh said:

    Python is easier than Ruby!

    Ok, now I get it. You're the bright one, right?

    Perhaps! More importantly, I am the positive cheers one 👍

    HIV positive?
    No. Positive energy!
    :lifter_tone3: :lifter_tone3: :lifter_tone3:



  • Dive into PYTHON is also a good book.



  • @anonymous234 said:

    @HardwareGeek said:

    Way too many instances of "Don't worry about why; just make your code look exactly like the example."

    I wonder if the complete opposite approach wouldn't work better for some people: first explain what's an object, how it lives in memory, how variables point to them and how expressions are evaluated, with enough examples to make the concepts clear. And only then, you teach the different parts of standard library and how to use all that to implement common tasks.

    I think that if you're already a "logical" kind of person, for example a mathematician, it should be easy enough to understand the abstract concepts.

    The complete opposite approach works great, but that kind of person has no difficulty learning programming languages. And python is a terrible first language to learn about what objects are and how they live in memory anyway. It's garbage-collected and has pass-by-sharing, which is weird as hell and full of traps if you don't know about it. The Church of Guido is pretty good about supplying 'explosions' of stranger syntax features to longer snippets of code they're trying to replace. List comprehensions are weird but they're just a loop+accumulating list made small. Pie syntax for decorators is odd-looking but they're not magic, they just expand into a bit of code that wraps a function in another function like a blanket.

    Generators are different. Those are just weird. Powerful, but weird.

    Anyway, learn C or C++ or something if you want nitty gritty.



  • @AyGeePlus
    Honestly, C should only be learned by people who want to program for living. If you want to make money from programming, then python or java or C# is way to go.

    Make apps and games and make money.



  • @e4tmyl33t Please dear god don't tell me it's this alliance. Considering ~things~ are happening right now.

    Actually, you know what? That would fit right in with this alliance.


  • BINNED

    @JazzyJosh Fuck you both, now I want to go back and play but I don't have nearly enough time for another life.



  • @JazzyJosh said:

    @e4tmyl33t Please dear god don't tell me it's this alliance. Considering ~things~ are happening right now.

    Actually, you know what? That would fit right in with this alliance.

    If you're referring to the alliance your avatar would reference, then no. I'm in a corp that just left that alliance (I was one of the GIRFAbros) and I'm lead IT for White Legion...somehow :D



  • @Onyx I want to resub so I can go on a Predditors run with Vily, but that would require me to resub.


  • BINNED

    @e4tmyl33t said:

    White Legion

    What, it's not stuff like xXx White Legion xXx these days any more?

    Bah, sounds boring, maybe it's best I don't come back then... :trolleybus:



  • @e4tmyl33t said:

    GIRFA

    Never heard of them. Must have joined after I stopped playing Eve



  • @Onyx Legion of xXDEATHXx is still a thing



  • @JazzyJosh Yeah, we were relatively newish (Created about a year ago, if memory serves) but by the end we were doing a majority of the infrastructure builds and freighting for TEST.

    @Onyx said:

    What, it's not stuff like xXx White Legion xXx these days any more?

    No, but you'll be happy to know our alliance ticker is CAUC. :)

    Basically, it's Elo and a bunch of us trying to make an alliance that hearkens back to the days of ridiculous Black Legion gudfites.



  • @anonymous234 said:

    I wonder if the complete opposite approach wouldn't work better for some people:

    I'm sure it would. People learn differently; no particular approach is going to be the best for everyone.

    One of my coworkers at my last job lent me an introductory Python book that I like better than Learn Python the Hard Way — I'm pretty sure it was an O'Riley book, but I don't remember the exact title. It was also written for the reader with little or no programming experience, but I think the material is presented in a more logical order, and it was definitely less condescending and code-monkeyish. Unfortunately, he asked me to return it when I left. ;)



  • @Nagesh said:

    Dive into PYTHON is also a good book.

    The first sentence in the description:

    Dive Into Python is a free Python book for experienced programmers.

    Thanks. That might be better for me than the other ones I've looked at. At least it appears to skip the "What is a loop?" and "What is an if?" level of material that the ones for non-programmers spend so much boring time on.

    Edit:
    Except

    @CatPlusPlus said in Python Coders: Non-Coder Needs Advice:

    Awfully outdated

    Installation instructions for Win95? Um....



  • @Nagesh said:

    Dive into PYTHON is also a good book.

    Awfully outdated, terrible coding practices and seems to think using ODBC and SOAP in examples is a good idea. So no, not really.



  • @CatPlusPlus said:

    @Nagesh said:

    Dive into PYTHON is also a good book.

    Awfully outdated, terrible coding practices and seems to think using ODBC and SOAP in examples is a good idea. So no, not really.

    This is the chapter I am loving the most.



  • @anonymous234 said:

    I think that if you're already a "logical" kind of person, for example a mathematician, it should be easy enough to understand the abstract concepts.

    Not sure about that. I found that often, I didn't get the abstract concepts in math right away. But I could learn the "rules" from my teacher / professor, and follow them. After following them for some amount of time, the abstract concepts became clear, and stuff was awesome! So I think going through the motions like that can be incredibly valuable, and the stuff behind the stuff gradually sinks into the learner's brain.



  • @HardwareGeek said:

    One of my coworkers at my last job lent me an introductory Python book that I like better than Learn Python the Hard Way — I'm pretty sure it was an O'Riley book, but I don't remember the exact title.

    Probably Think Python, which is an update of the Python version of How To Think Like a Computer Scientist that Green Tea Press sold the dead-tree rights to ORA for on the condition that they can host it online as well. It's actually pub'ed as CC(3)-ANC, so you can copy the files freely.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.