Saturday, July 13, 2013

Top 50 Resources for Programming Web Applications with Python

http://www.rackspace.com/knowledge_center/article/top-50-resources-for-programming-web-applications-with-python

PYLON


http://www.pylonsproject.org/

Dreamweaver CS6


http://www.scriptingvideos.info/python/view/8AqTyjm7brA.html

Web Framework


http://flask.pocoo.org/

Ways to learn Pyton


http://www.techinasia.com/python-learning-free/

How do I learn Python from zero to web development?



http://programmers.stackexchange.com/questions/12189/how-do-i-learn-python-from-zero-to-web-development

Is it necessary to learn Java before going on to Python?

http://in.answers.yahoo.com/question/index?qid=20091216011016AAvJWCL



Resources that teach you how to code and learn a language


Resources that teach you how to code and learn a language

Enough talking. Let us all get rolling now. Here are some of the best resources that you can use to learn programming:
  • W3Schools - This was my go-to website while I was in school. It has been an amazing experience learning programming from W3Schools. They start from the basics, stick to basics and even the complex explanations on the website are pretty easy to understand. In short, it’s a perfect place to start learning programming.
  • Try Ruby – Got 15 minutes? Go, give Ruby a chance in those 15 minutes. The on-the-fly editor helps you learn Ruby in no time. At least it will introduce you to Ruby very quickly.
  • Code School – This is another one stop website for those who want to learn programming. They are loaded with video based tutorials and on-the-fly coding tools that help you understand programming even when you know nothing about it.
  • Try Bloc - Another great member and teacher in the Ruby community.
  • Codecademy - Another site that is loaded with amazing and helpful information. It has been appreciated by its users and I know that it is worth it. One of the rare, interactive ways to pickup JavaScript.
  • jQuery Air - This tool helps you learn jQuery in the browser itself. This tool will help you learn jQuery in the most practical way. Don’t miss it.
  • Hackety - Well, they won’t actually teach you how to hack, but they will teach you how to program.
  • TeamTreeHouse - Team Tree House has received praise from around the planet and the Internet community for the amazing work they have been doing. Try them if you are beginning to learn any new programming language.
  • PHP Know How – You didn’t think I’d forget about PHP did you? PHP is the language that WordPress relies on to function.
  • Lifehacker’s Learn to Code - Lifehacker has compiled an amazing article that teaches you the basics of coding. This article is a great starting point for anyone that wants to learn more about programming.

words that challege ME


  • How long will it take me to become a ‘real’ programmer? - This isn’t a question I can answer. If you really want to be an expert then be rest assured that it’ll take at least a decade! If you think you’re going to be the next Mark Zuckerberg remember that Zuk started programming as a child. It even took him a decade to create something like Facebook.

Java -> Python?


Besides the dynamic nature of Python (and the syntax), what are some of the major features of the Python language that Java doesn't have, and vice versa?
share|edit

5 Answers

up vote36down voteaccepted
  1. List comprehensions. I often find myself filtering/mapping lists, and being able to say[line.replace("spam","eggs") for line in open("somefile.txt") if line.startswith("nee")] is really nice.
  2. Functions are first class objects. They can be passed as parameters to other functions, defined inside other function, and have lexical scope. This makes it really easy to say things likepeople.sort(key=lambda p: p.age) and thus sort a bunch of people on their age without having to define a custom comparator class or something equally verbose.
  3. Everything is an object. Java has basic types which aren't objects, which is why many classes in the standard library define 9 different versions of functions (for boolean, byte, char, double, float, int, long, Object, short). Array.sort is a good example. Autoboxing helps, although it makes things awkward when something turns out to be null.
  4. Properties. Python lets you create classes with read-only fields, lazily-generated fields, as well as fields which are checked upon assignment to make sure they're never 0 or null or whatever you want to guard against, etc.'
  5. Default and keyword arguments. In Java if you want a constructor that can take up to 5 optional arguments, you must define 6 different versions of that constructor. And there's no way at all to sayStudent(name="Eli", age=25)
  6. Functions can only return 1 thing. In Python you have tuple assignment, so you can say spam, eggs = nee() but in Java you'd need to either resort to mutable out parameters or have a custom class with 2 fields and then have two additional lines of code to extract those fields.
  7. Built-in syntax for lists and dictionaries.
  8. Operator Overloading.
  9. Generally better designed libraries. For example, to parse an XML document in Java, you say
    Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("test.xml");
    and in Python you say
    doc = parse("test.xml")
Anyway, I could go on and on with further examples, but Python is just overall a much more flexible and expressive language. It's also dynamically typed, which I really like, but which comes with some disadvantages.
Java has much better performance than Python and has way better tool support. Sometimes those things matter a lot and Java is the better language than Python for a task; I continue to use Java for some new projects despite liking Python a lot more. But as a language I think Python is superior for most things I find myself needing to accomplish.
share|edit
4 
Don't forget about generators/coroutines, which makes writing iterators (and simulations) a whole lot easier. – cdleary Sep 11 '08 at 7:48
You also forgot operator overloading and duck typing. – Antimony Oct 12 '12 at 2:49
1 
@Antimony: Operator overloading was #8 on my list, though I didn't write any examples for it. I love duck typing, but I consider it more of a tradeoff than an advantage; I find it makes writing code easier, but Java's superior tool support is partially due to its static typing. – Eli Courtwright Oct 12 '12 at 15:36
Oops, I can't believe I missed that. – Antimony Oct 12 '12 at 18:29
I think this pair of articles by Philip J. Eby does a great job discussing the differences between the two languages (mostly about philosophy/mentality rather than specific language features).
share|edit
One key difference in Python is significant whitespace. This puts a lot of people off - me too for a long time - but once you get going it seems natural and makes much more sense than ;s everywhere.
From a personal perspective, Python has the following benefits over Java:
  • No Checked Exceptions
  • Optional Arguments
  • Much less boilerplate and less verbose generally
Other than those, this page on the Python Wiki is a good place to look with lots of links to interesting articles.
share|edit
"No Checked Exceptions" is definitely not an improvement. I want to know what things can go wrong, rather than have to guess a few cases and hope that's all. – rjmunro Sep 9 '08 at 15:37
Yeah, I left checked exceptions out of my answer because of this argument. However, I'd say that Java has some bad decisions about what's checked and what's unchecked in the standard library. This doesn't discredit them as a language feature, but it can make Java programming a lot more annoying. – Eli Courtwright Sep 14 '08 at 1:02
2 
Well, C# came after Java and they left expections unchecked. There was an interview with A. Heisenberg (?) with the rationale behind it. But I think he basically said that checked exceptions looked good on paper, and were a pain in practice – Mario Fernandez Sep 16 '08 at 9:05
True, but James Gosling responded to the interview with Anders Hejlsberg and presented a decent counterargument. I still prefer unchecked exceptions, but I do think Gosling makes a pretty good case. – Eli Courtwright Sep 18 '08 at 0:56
With Jython you can have both. It's only at Python 2.2, but still very useful if you need an embedded interpreter that has access to the Java runtime.
share|edit
Apart from what Eli Courtwright said:
  • I find iterators in Python more concise. You can use for i in something, and it works with pretty much everything. Yeah, Java has gotten better since 1.5, but for example you can iterate through a string in python with this same construct.
  • Introspection: In python you can get at runtime information about an object or a module about its symbols, methods, or even its docstrings. You can also instantiate them dynamically. Java has some of this, but usually in Java it takes half a page of code to get an instance of a class, whereas in Python it is about 3 lines. And as far as I know the docstrings thing is not available in Java
share|edit
Java also has introspection, but it's extraordinarily verbose. However, you can take a Java class and discover what methods it has or what annotations exist for its functions, etc. Just be prepared to write 20-30 lines of code to do what Python could do in 1-5 lines of code. – Eli Courtwright Sep 14 '08 at 1:01

Your Answer

    • Links
    •  
    • Images
    •  
    • Styling/Headers
    •  
    • Lists
    •  
    • Blockquotes
    •  
    • Code
    •  
    • HTML
    • advanced help »
 

Not the answer you're looking for? Browse other questions tagged   or ask your own question.