Also, the taxonomy needs work...I don't think this is what I have in mind when I see the "basics" category of a beginners reference to Python:
Basics for beginners should include such things as "what is programming?", "how do I install python?", "how do I run a script?" And so forth.
Another thing to keep in mind: this kind of beginner will also have trouble finding these "standard" tutorials that have up-to-date info. No, it's not that they can't use Google, but they don't have enough technical sense to tell what's a good source of this installation info from what's a bad source. Hence, it's good to have this super-basic info packaged into any kind of tutorial that purports to be for "beginners".
Lists are very easy to create, these are some of the ways to make lists:
emptyList = [ ]
strlist = ['one, two, three, four, five']
I find the "strlist" example very misleading, as a beginner might think we are creating a list of five strings, when it is actually just one string with some commas in it.
strlist = 'one, two, three, four, five'.split(", ")
That habit probably just kicked in a little when putting in that example.
strlist = 'one two three four five'.split()
As some examples, the first two pages that I looked at:
- variable shadowing (e.g. naming a list instance `list` and a dict instance `dict`)
- Syntax errors (e.g. ``dict.items.()``)
- Teaching bad methods of iteration (e.g. ``for key in dict: print dict[key]`` rather than ``for value in dict.iteritems(): print value``)
- Also disappointing: no mention of the typically-more-efficient iter* or view* methods.
- The written word fails me utterly. Just consider the last example, which is the worst. Just look at it. (Quite apart from some of the code being missing!) Ugh!
1. The formatting of the posts need some work. The text is often intimidating because its in big chunks and where there are code blocks there isn't any clear way to distiguish them from body copy. The way http://codular.com/ does it is real nice, maybe some of those ideas would work for this.
2. Some of concepts need to be explained more. In some of the articles you tend to gloss over some big things that a beginner wouldn't know.
I may be a beginner to Python but I'm not a beginner to programming so that's where I'm coming from. I think its good but it could be a lot better though.
If you have any more suggestions or feedback to give, I'd be grateful to hear them.
Seems like the only choices for now are Java and PHP, at least here in Austria - and I'll probably stop programming myself if we switch to any of these.
I tried Learn Python the Hard Way, but when I finished the book I didn't feel like I had the skills to start a project, so I read the Django Book. I am more of a designer than a developer, I really want to get over the hump and start writing code that can do the things I envision.
I've tried codecademy, which is helpful, but I still don't feel I'm there yet. I have started a "web app", but I got stuck on a few features I want to add, so I'm stalling on those.
I'd really appreciate any guidance! No formal education, all self taught. I have grown immensely as a web designer over the past year, but my programming skills aren't growing nearly as fast...or at all anymore.
If you're talking of django/web-frameworks, well it'll be a little more effort since it involves some stuff (concepts of MVC, etc) other than python per se. So you could start by understanding of web development in general. But django docs tutorials are also pretty good.
In your case, I guess the thing to do would be to google an open-source django app. Find something you like from the templates director. Copy what you like and build out from there.
This makes me think that a program that connects mentors and students would be very useful. I'm not necessarily thinking of it as a money-making endeavour, but some resources need to be found to make the project self-sustainable.
The Python exercises on codeacademy are there to strengthen your grasp of python syntax and practice for loops.
I recommend Udacity CS101 and/or edx 6.00x. Both are Intro to CS courses which use Python.
It is strange to me as well, that I see so many people passionate about Python and, at the same time, I hear so many companies having difficulties finding Python devs.
One reason could be that the interest in Python varies by country. For example, in Romania there are very few Python programmers. Secondly, maybe the companies have too high expectations, asking for front and back-end experience and maybe even some low-level skills (C, C++).
``'number of coders in java' > 'number of coders in python'
Well, that is a no-brainer, since its the most popular language taught in colleges with C++ a close second. That said, there are a _lot_ of smarties coming out of colleges and its just a matter of polishing the diamonds in the rough before they get 'lured in' by low paying IT companies. I don't see why Joel Spolsky's tactic of 'snatching' promising young talents before even hitting their final year in college won't work; albeit a little work from your part.
Just realized that the text is in a pre tag with the font set to a proportional font. That needs to be changed.
Another idea, which takes some more work, is that whenever I mention a variable-name in a paragraph I have a <span class="code"></span> around it, and I style it to look like a little piece of monospaced text.
Here's an example: http://peterconerly.com/blog/django-loves-locals