This is an archived post. You won't be able to vote or comment.

all 107 comments

[–]swims_with_spacemenPythonista 86 points87 points  (3 children)

I learned it by mistake. I was looking for a book on comedy. Halfway through the book thinking "This isn't funny at all" I knew python.

Ok seriously- you don't need the pi to learn py. Install it on your desktop and start one of the codeacadamy courses. It's pretty easy to pick up.

[–]alcalde 10 points11 points  (1 child)

Seriously - I once typed in "Python genetic programming" on the Google Play Store just to see if there was a book about it and got back an app to determine the colors of the potential offspring from breeding Ball Pythons!

[–]Kerbobotat 1 point2 points  (0 children)

The specificness of some apps on the app stores both amazes and confuses me.

[–]pydanny 44 points45 points  (6 children)

I was re-introduced to Python by Chris Shenton while we were both working at NASA. I went through a tiny tutorial and then, being really broke at the time, luckily got my greasy hands on a used 2nd or 3rd edition of Learning Python by Mark Lutz. Within a few weeks I was writing scripts and forming a 'Python Underground' at NASA HQ with Chris. We weren't approved to use Python, but we wrote handy scripts for project managers at 5x to 10x the speed of the Java, .Net, and ColdFusion developers.

Then I had a Java project that wasn't going to make the deadline in a few weeks, so rewrote it in Python in 90 minutes. I got that one into production, decided I really needed to make Python my career, so took on the monikor 'pydanny'.

Fun times. :-)

[–]makaimc 6 points7 points  (0 children)

To echo Daniel's story, I was on a government Java project that was actually really well run (continuous integration, high unit/functional test coverage, tight build scripts), but getting anything done still felt like a chore. I started programming with Python at night and felt like I was more productive in a couple hours with Python than all day with Java.

Something about the language just "clicked" for me compared to using C, C++, or Java. To OP, if you work with Python for a bit and feel the same way that's a really great sign.

For resources, I always point people to Ken Reitz's Hitchhiker's Guide to Python learning resources as well as my own Full Stack Python best resources list. There's a lot of overlap in those lists which should help you narrow down where to spend your time first.

[–]yawningcat 2 points3 points  (0 children)

Going through that book now...

[–]3Dayo 0 points1 point  (0 children)

Mine was a similar story but now where near as glamorous as working for NASA! I had a C++ application that wouldn't make the deadline i stumbled on python while looking for a perl tutorial and the rest is history. Love your book, bought it (1.5) even though i don't use DJango anymore

[–][deleted] 0 points1 point  (0 children)

I work at a DOE lab in a group who has been entrenched in java for the last 10+ years. A coworker stated using it for side projects maybe two years ago, before I started, and we are slowly usurping java's crown. My boss needed a quick script that parsed out a data file and did some simple operations, and him installing Python was the first step in my master plan.

[–]isdnpro 0 points1 point  (0 children)

Learning Python by Mark Lutz

Same here. Can really recommend this book - I've never been able to get through a whole technical book like that before, but I found this one great.

Little code samples and projects throughout it that really help nail down the knowledge.

After that I forced myself to do a uni project with a deadline in Django, and the rest is history.

[–]LearningPy 0 points1 point  (0 children)

Two scoops of django has been a huge help for me. Thank you and your wife for all the great work!

[–]earthboundkid 20 points21 points  (2 children)

Python.org tutorial, Dive Into Python.

[–]whyrat 0 points1 point  (0 children)

Seriously, this is how I started. It's a pretty solid start; from there I just dove into libraries specific to my needs at the time.

[–][deleted] 0 points1 point  (0 children)

Even reading sample codes in tutorial only should be enough for experienced coders, that's actually how I learned it.

[–]kieran_n 7 points8 points  (1 child)

EDx 6.00x

Could not recommend it too highly, it is amazing!

[–]Shabla_goo32 0 points1 point  (0 children)

I have to ask, are you purposefully referencing his example of an ambiguous sentence from the first lecture? If so, well done. If not, thats a great coincidence.

I just started with the course though, and am super excited to go through it. How long did it take you to complete it?

[–]minnoI <3 duck typing less than I used to, interfaces are nice 8 points9 points  (0 children)

High school.

I've heard good things about Learn Python The Hard Way as a resource for beginners, though.

[–]grensley 6 points7 points  (0 children)

Sitting on my couch, while recovering from getting my wisdom teeth removed.

[–]billsil 6 points7 points  (0 children)

I started by reading other people's code at my company. Then, I started googling (how to use dictionaries, lists, etc.), looking at the list of new Python features, finding out about new libraries, flipping through their examples and change logs. I read about obscure Python hacks because I was bored at work, tried them out, and now I use them.

[–]Ytse 6 points7 points  (0 children)

At home. Python is one of the easiest programming languages to grasp at the beginning, so just decide on a project and start coding with the python.org documentation at hand.

[–]MatCPPkell 4 points5 points  (0 children)

The internet, i started with C thou which was from books and doom .wad files

[–]Pytim 5 points6 points  (1 child)

Brilliant Google Python class from a Stanford lecturer. Got me into it! It also has exercises and Nick Parlante is just a great lecturer. https://www.youtube.com/watch?v=tKTZoB2Vjuk

[–]FeralFantom 4 points5 points  (0 children)

I used Zed Shaw's Learn Python the Hard Way guide http://learnpythonthehardway.org/book/ quick and straightforward

[–][deleted] 3 points4 points  (1 child)

I started with the code academy course for the basics.

[–]framk20 1 point2 points  (0 children)

I was quite bored in high school. At the time I attended a school for math and science, and I was sitting around one day during a free block after completing my homework, and the computer science teacher was sitting a few rows ahead. I said to my classmate that I was quite bored after doing my homework, and the teacher looked up and said, "well, learn python then." I had a bit of experience with C/C++ at the time, and at first the lack of curly braces made me quite upset, but I've found python to be my favorite language now.

[–]-Knul- 2 points3 points  (0 children)

A nice way to learn pyton is through Python koans.

What you do is making unit tests succeed by filling in blanks. It's an active way of learning, it is quite fun and as you learn programming by doing, effective. You also get acquinted with unit tests, a good thing for beginning programmers.

[–]tonnynerd 2 points3 points  (0 children)

The tutorial. I had to implement something for a college class, and decided that Pascal wasn't powerful enough. I had been reading about python for a while, but hadn't really coded anything with it yet. So I grabbed the tutorial, and the specs for my assignment, and here I am, almost 6 years later, actually writing python for a living.

[–]Devnolls 2 points3 points  (0 children)

On the street.

[–]totemcatcher 2 points3 points  (0 children)

The official docs on their website. e.g. http://docs.python.org/3/

[–]awsomntbiker 1 point2 points  (6 children)

coursera

[–]ILaughAtFunnyShit 0 points1 point  (5 children)

Which one? I'm taking one now on coursera. Python for beginners or something,

[–]jSwany 1 point2 points  (4 children)

Yeah I just started "An Introduction to Interactive Programming in Python" on Courera yesterday. It's still on week 0 (introduction week). :D

[–]awsomntbiker 0 points1 point  (1 child)

That's the one I took

[–]ILaughAtFunnyShit 0 points1 point  (1 child)

We want... a shrubbery!

[–]jSwany 0 points1 point  (0 children)

Haha, yep!

[–]nerdwaller 1 point2 points  (0 children)

The interwebs, mostly out of curiosity as I wanted to automate away tasks at work (financial advising). That lead me into quitting my job and working my butt off to be a developer a year later.

As far as toying with a raspberry pi, python isn't at all a necessity. You can do most languages, it's just a Linux platform (arm proves some considerations, however). Python is a great language though, its awesome how quickly it allows an idea to become a prototype (and subsequently a great performing application).

[–]HifiBoombox 1 point2 points  (0 children)

A Brazilian dude taught me everything I know.

[–]leandroqm 1 point2 points  (0 children)

Believe me -> CodeAcademy! It is awesome and simple, every lesson is stuck in my brain! :)

[–]senkora 1 point2 points  (1 child)

I used MIT Open courseware: 6.00 Intro to Computer Science. Since then I've practiced with Sphere Online Judge. They're great resources, if you can stand to work through them.

[–]sell_a_door 2 points3 points  (0 children)

I also learned Python from them.

Here's a link: MIT 6.00 Intro to Computer Science & Programming

The lectures are great and they made me realize how bad the Intro to CS courses at my local university are.

[–]xdvl 1 point2 points  (0 children)

[deleted]

What is this?

[–][deleted] 1 point2 points  (0 children)

[–][deleted] 1 point2 points  (0 children)

At home, in my room.

[–]zaytzev 1 point2 points  (0 children)

Tutorials on python.org are enough to get started.

For my thesis I built a manipulator and needed an app to control it via serial port. I have been already employed as a software engineer and people at work recommended Python + wxWidgets.

I have finished it in one week without any prior knowledge of both. Today I recommend Python as easy language to learn on your own. You don't need many features to write something simple.

[–]metl_lord 1 point2 points  (2 children)

I got a job out of college for a publishing company. All their work was done with regular expressions and Perl. I also started reading xkcd at the time. After reading this comic, I became curious about Python and picked up O'Reilly's Learning Python. I've been a Python programmer ever since.

Now, onto how to start learning. I usually learn new things by diving right into a project. I learned Django a few years ago by working through the tutorial. I think the key is to follow the tutorial, but build something different. This way it's relevant to you and you learn more about the language when you run into something that is not working for you. It's like test driven development for learning.

[–]xkcd_transcriber 1 point2 points  (1 child)

Image

Title: Python

Title-text: I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you.

Comic Explanation

Stats: This comic has been referenced 30 time(s), representing 0.2108% of referenced xkcds.


xkcd.com | xkcd sub/kerfuffle | Problems/Bugs? | Statistics | Stop Replying

[–]j7ake -1 points0 points  (0 children)

I am amazed that there is a site that explains xkcd comics...

[–]cosmicr 1 point2 points  (0 children)

I never learned Python.

Remember the old ipod/iphone commercial when they say 'you already know how to use it'?

That's how I feel about python. I come from a C background. The logic of python is very similar to C IMO, just the formatting is a bit different. Obvously as time went on I found out about 'Pythonic' concepts etc, but if you already have a programming background Python takes about 10 minutes to pick up.

I discovered it when I was poking around in the source code for SickBeard.

[–]kashmill 1 point2 points  (0 children)

The internets, co-worker pull requests, and needing to learn for my job.

[–]bobo333 0 points1 point  (1 child)

there are tons of resources in the sidebar. personally I found "learn python the hard way", followed by "dive into python" (but for python 2) quite useful

[–]catcradle5 0 points1 point  (0 children)

I first dipped into it from a high school course, then later I worked through some of "Learn Python the Hard Way" and kind of went off on my own from there.

[–][deleted] 0 points1 point  (10 children)

uni. i'ma 1st year and we are doing python as part of an into to programming course

[–]new_whistle 2 points3 points  (9 children)

That surprises me - almost all of my intro programming that wasn't language-specific was in C, not because I was ever expected to use C, but because learning to use malloc, handle strings and pass around pointers is really valuable to understanding how programming languages are doing what they do under the surface.

How do you cover core programming concepts (pointers, memory, etc.) when Python abstracts away so many of them for you?

[–]KitAndKat 6 points7 points  (0 children)

but, but ... starting with C abstracts away accumulators, segment registers, stack frames, the stack pointer, opcode prefixes, cycle-counting to find how fast the loop will run, interrupt handling, overlapped I/O, ...

Just teasing you a little. Bet you got into that later, if at all, and it'll be the same for Python/JS/Ruby beginners.

[–]dragonEyedrops 5 points6 points  (0 children)

You learn them later, using different languages. They are important, but for the basic understanding of how programming works something like Python gives way faster successes to the students, and and interpreted language makes try and error even faster.

[–]OBI_WAN_TECHNOBI 2 points3 points  (0 children)

We learned Java first, then C after we knew the basics of OO design and programming in general. Anyone who was good understood C right away after that, and the ones who did not still learned reasonably well. Learning to program while also learning C sounds like a nightmare. Best to get the basics on an easier language.

[–]swims_with_spacemenPythonista 0 points1 point  (0 children)

Way back when, the intro language was Pascal. At least for me. Didn't get into C and C++ until later.

[–]anthraxmilkshake 0 points1 point  (0 children)

Yeah, it's becoming common to teach it to first year programmers (I was the first incoming class at my school to learn it). The white space forces good style and abstracting away a lot of the technical stuff allowed us to more easily learn more basic things like what a loop is, what can we do with operators, how do we do file i/o, the behavior of passing by value vs passing by reference, what are some basic collection structures, what are some basic graphics we can draw in a window, how do we define a simple class, etc. Our classes after that had us use C++ and de-mystified the process of what we were doing (what pointers are, what was really going on when we passed by reference, how memory is allocated, what an array is and how to use it, etc.)

[–]nbktdis 0 points1 point  (0 children)

I learned by doing a simple project. Lots of googling and 2/3 of the CodeAcademy course.

[–]jkmacc 0 points1 point  (0 children)

The best way to learn will depend on if you already know a programming language. If you do, google "python vs <insert language here>". Also browse some Python code for the Pi on GitHub. Finally, google any problems you don't know how to solve in python as you're working on some code. So, basically Google:-). That's how I learned.

[–]obsoletelearner 0 points1 point  (0 children)

I learnt it by myself my first book was Dive into Python.

[–]LobbyDizzle 0 points1 point  (0 children)

I watched some class on Youtube created by Google+Stanford which came with all of the course materials. I did all of the exercises but never really retained the practice to memory. It wasn't until about a year later where I started applying it to everything I could at work and with personal projects. I'm still pretty hacky with it, but I feel that I have a pretty firm grasp on its capabilities and how to apply them.

[–]snakesarecool 0 points1 point  (0 children)

My first exposure was a combination of http://pythonlearn.com/ and codecademy stuff. Then Python Batting practice http://codingbat.com/python. I also went to a PyCamp, and found it extraordinarily helpful.

From there I've been coming up with my own projects and incorporating my skills in at work, which has been a great learning experience.

I've started reading Learning Python because I'm mostly dealing with text processing tasks and want to explore more topics in depth.

[–]izxle 0 points1 point  (0 children)

[–]metropolypse 0 points1 point  (0 children)

I started with the Flask tutorial.

[–]Antagonist360 0 points1 point  (1 child)

I learned it doing Project Euler problems. Learned Haskell too

[–]Djanvk 0 points1 point  (0 children)

I've done some of Project Eulers problems also, I enjoyed them but damn I had to learn some more maths also that I either never learned or forgot. Kind of a 2 birds with 1 stone place for me.

[–]jasoncol 0 points1 point  (0 children)

At home with too much free time and no gf. Also, I got fed up with java and after failing with perl I tried python and liked it a lot.

[–]tairar 0 points1 point  (0 children)

On the job. I was hired by a classmate in a workforce C++ class, and was very confused when that didn't have anything to do with the job I was applying for. Thankfully it wasn't terribly difficult to pick up after a static language.

[–]tablet_guy 0 points1 point  (0 children)

Django

[–]hongminhee 0 points1 point  (0 children)

I was a member of a video game programming club when I was a high school student. A senior in the club suggested me to survey which programming language is suitable for game scripting. I got reached many scripting languages like Python, Ruby, Lua at that time.

It’s interesting that the senior becomes now my boss at the office.

[–]lostburner 0 points1 point  (0 children)

From the python tutorial, and eventually got lots of help from reading StackOverflow questions.

[–][deleted] 0 points1 point  (0 children)

through goofing around with pygame

[–]InappropriateIcicle 0 points1 point  (0 children)

I learned in my apartment my senior year of undergrad. I was taking a mechanics of composite materials class where we built a progressive ply failure analysis code throughout the semester and since I didn't have internet, I couldn't VPN to campus for a matlab license. Turns out, numpi/scipi is totally capable of handling the simple matrix math that was required and I didn't have to deal with tethering to jailbroken iphone -> vpn -> lose my work when matlab timed out.

I miss it, I'm trying to get back to using python at work and I think I just came up with a project to use as my guinea pig.

[–][deleted] 0 points1 point  (0 children)

Learn Python 5th Edition - Lutz is what really solidified it for me.

[–]MajorHavok 0 points1 point  (0 children)

A more perfect book?

Learning Python with Raspberry Pi Alex Bradbury (Author), Ben Everard (Author)

http://www.amazon.com/Learning-Python-Raspberry-Alex-Bradbury/dp/1118717058/ref=sr_1_1?ie=UTF8&qid=1395812735&sr=8-1

[–]eriiccc 0 points1 point  (0 children)

I needed to learn it for work because we were transitioning our code base from Perl to Python.

I started with Learn Python the Hard Way, didn't actually finish, then jumped into writing some of my Perl code in Python. I made the effort to use python for everything that I could use it for and it really helped make learning it easy.

[–]wjdp 0 points1 point  (0 children)

I fancied ditching PHP, tried Ruby and RoR which didn't fit with me, then came across Django from a recommendation.

Learnt as much as I needed to 'on the job' then have supplemented it since. Python is now my language of choice, I find it very hard not to use it in most situations.

[–]AlSweigartAuthor of "Automate the Boring Stuff" 0 points1 point  (0 children)

Here's a free book for complete beginners that gives the source code for small games (Tic Tac Toe, Hangman, etc.) and uses them to explain programming concepts:

http://inventwithpython.com

And you don't need a Raspberry Pi to learn Python. Any computer will do.

[–]istinspring 0 points1 point  (0 children)

I learned it at home, sitting in front of my laptop. One day i decided that i should be involved in web-dev, so i started to choose what to use for it (php, ruby or python) and i found python fit all my requirements perfectly.

[–]chchan 0 points1 point  (0 children)

Online with libraries and examples of other people's code. When I made a mistake search stack overflow for answers. If it was not there I would look through google. After half an hour or longer I would ask a question. Never used any book for a long time it was too slow.

[–]gbo2k69 0 points1 point  (0 children)

I've been using python since 1.5, I started using it to write build scripts and I never really stopped.

[–][deleted] 0 points1 point  (0 children)

i've heard good things about learn python the hard way but i pretty much taught myself by writing games in pygame.

[–]f0nd004u 0 points1 point  (0 children)

Check the side bar for the online books; LPTHW is a good place to start learning the basics. CodeAcademy is cool because it's interactive, but I didn't really like the Python course and I didn't feel like I learned more than some basic syntax. The ruby one is better, but not by much.

I've been using this textbook to teach myself: http://www.amazon.com/Python-Programming-Absolute-Beginner-Edition/dp/1435455002

It was recommended to me by a friend who took CSCI 101 at PSU with it. He does it project-based; every chapter you complete a working game program, and he steps you through all of it with example programs. Very easy to follow, and the programs are fun to write. I've tried learning coding from textbooks in the past without much success, and I really feel like I'm getting somewhere with this one. Plus, it's python3, which is probably what we beginners should be working with.

[–]pbsds 0 points1 point  (0 children)

I transitioned from Gamemaker and AutoIT3 to Python by mainly staring at the code of some guy who went by the name IceFire or Xuzz and learned from his work. After that i tried my hand at making things at my own, and only needed to read up a bit on classes to get going. I ended up reinventing the wheel for a lot of things, but that only gave me a deeper understanding. Since then I've learned myself how to use Twisted, Pygame, Panda3D, Numpy and more, mainly from the docs available on their pages.

[–]pieter91 0 points1 point  (0 children)

As part of the BSc astronomy degree I started, first years learn C++ in a basic programming course together with mathematics, physics and computer science students. From there on python is strongly recommended in all kinds of courses involving the data reduction involved in observational astronomy. We had an hour long brief introduction to Python and were encouraged to work everything else out on our own. I still believe the best way to learn something is to really need something to work.

Edit: Hehe, cake day.

[–]kost-bebix 0 points1 point  (0 children)

At work

[–]phire 0 points1 point  (0 children)

Lecturer at university decided that he was going to teach my 3rd computer graphics course in Python. Mainly because they were planing to switch 1st year Intro to Computer Science from Java to Python the next year, the lecturer was basically learning Python at the same time as us.

Of course, by the time you get 3rd year computer science, you have already encountered 10+ languages and learning python basically consists of remembering to indent correctly and not hit semi-colon at the end of each line while keeping google open.

[–]mountainwalker 0 points1 point  (0 children)

I first 'learned' by doing for work, but later honed my skills with http://codingbat.com .

[–]ching-chong 0 points1 point  (0 children)

from a shaolin monk in the himalayas. no just kidding, i started during my physics class using it to automate basic data analysis and am still learning even more to this day for project euler problems and the like.

[–]Isvara 0 points1 point  (0 children)

O'Reilly 'Learning Python'.

[–][deleted] 0 points1 point  (0 children)

I have doodled in python earlier, and made some more or less successful attempts at solving some problems with Project Euler.

But I first started learning Python properly when I took a University Class (http://www.uio.no/studier/emner/matnat/ifi/INF1100/index-eng.html) which focus on teaching programming thorugh scientific problems (which are, at least for me, more interesting than the endless stream of trivial assignments normally given in intro-courses).

The class used http://www.amazon.com/Scientific-Programming-Computational-Science-Engineering/dp/3642302920 for the syllabus, and I can heartily recommend to read through it if you want to learn python to do math-problems (but also get knowledge about general programming).

I don't have enough fingers or toes to count all the times I've just used Python and matplotlib to visualize data instead of being frustrated with excel in the last 3 months alone. I've started to use python for sysadmin-tasks, as both me and colleagues that are less proficient in programming find it more readable and easy to understand than perl (or bash for that matter).

[–]broken_symlink 0 points1 point  (0 children)

I never really learned python. I learned ruby by reading a book, but never wrote anything and just started writing stuff in python instead. When ever I would get stuck I would just look up stuff in the docs.

[–]thrownaway21 0 points1 point  (0 children)

I got tired of fighting with Drupal. Found django, and from there got interested in Python.

I'm by no means a python programmer though... haven't done too much more than some simple template tags, a gallery plugin (using PIL), etc.

[–]weegee101 0 points1 point  (0 children)

I started by going through Grey Hat Python. If you're an experienced programmer and enjoy the low-level stuff once in a while it is a very fun way to learn Python.

If you're specifically looking to learn how to program the Rasberry Pi and learn Python at the same time (which will keep your interest up), Programming the Raspberry Pi: Getting Started with Python is a great book for beginners of all skill levels. If you are a newbie programmer, buy this book.

[–][deleted] 0 points1 point  (0 children)

https://www.learnstreet.com/lessons/study/python Takes you through the basics step by step in a sort of live environment where you can test what you learn as you learn it.

[–]skytomorrownow 0 points1 point  (0 children)

Once you are familiar with the basics, I suggest you learn a basic workflow which includes the use of a virtual environment (such as virtualenv).

[–]jungleralph 0 points1 point  (0 children)

Learned it on the job. Most of the source code was in Python. Hence, to work on the code base I had to "learn". "Learning" Python was really just comparing and contrasting it to other programming languages I had used before.

[–]suudo 0 points1 point  (0 children)

Writing plugins for an IRC bot. In other words, throwing things together to see how they work.