amuck-landowner

[Python] Any interest in group learning?

MannDude

Just a dude
vpsBoard Founder
Moderator
I'm wanting to dust off my old Python skills and start re-learning from scratch. I am very impressed with what @Novacha was able to accomplish for vpsBoard in such a short period of time when he created the ad-server and DailyServerdeals backend and love the rapid development using things like Django framework.

It's been years since I have touched Python. I was using the "Learn Python the Hard Way" course work and completed most of it, only to stop when my free time vanished. At the peak of my coding ability I made a simple Python based calculator that would allow you to input the amount of cigarettes you smoke per day and the cost per pack. It'd then calculate how much time and money you'd save if you quit smoking based on 20-cigarette packs (Which is what is sold in the US) and average of 5 minutes spent smoking per cigarette. It helped me cut down, and later quit.

I've never done any web-facing Python work before, everything I have done was just shell programs. Would be interested in learning some web-facing stuff and seeing if you can teach an old dog new tricks or not. :)

Anyone interested in doing the same?
 

KuJoe

Well-Known Member
Verified Provider
My only python experience is hacking up an old python daemon I use for my status pages and @Nikki's LowEndPing daemon. I wouldn't mind learning Python but honestly, I think it's a waste of time at this point. After speaking with @joepie91, Node.js is a much better alternative and having been looking at IT related job openings around the US for the past 2 years, I can say Node.js is in much higher demand than Python. All of my friends who have web development jobs (actual salaried jobs at corporations) use Node.js and keep telling me I should learn it also.

That being said, when I was in college I was required to take 2 programming courses for my degree. The first being mostly about planning (using Visio to map out your program) and the second was a VB.NET course I took and I loved. I was the last class to learn VB.NET though and they switched to Python the following semester and the instructors explained Python is a really good first language to learn to ease people into other programming languages so maybe it's worth learning Python just to get your feet wet before jumping into a language you want to learn.

I'd like to hear what the developers on here have to say about it before I completely dismiss it (I already tagged the only 2 I know of off hand).
 
Last edited by a moderator:

joepie91

New Member
the instructors explained Python is a really good first language to learn to ease people into other programming languages so maybe it's worth learning Python just to get your feet wet before jumping into a language you want to learn.
It depends, I think. The issues with the documentation aside, Python is still fundamentally a classical language. If you want to work with other classical languages (eg. Java, C++, etc) then it might be useful to start out with Python.

Though if you're going for a prototypical language (like JS), a procedural language (eg. Bash) or another type of language, then Python is unlikely to teach you many useful things as a start language - in fact, in some cases it might work against you because you now have to 'unlearn' particular language features.

The above is a common issue with people moving from PHP/Python/Java to Node.js, for example. They'll often end up trying to replicate the classical inheritance from those other languages, shoving all kinds of functionality into 'utility classes', and so on, despite that being completely inappropriate (and unnecessary!) in Javascript.

EDIT: The above applies specifically to getting started with programming. Once you can find your way around, it's still a good idea to learn and experiment with multiple paradigms - often you can 'import' tricks from other paradigms into the current language you're using, like eg. using map/filter/reduce in JS (whereas it originates from functional programming).
 
Last edited by a moderator:

willie

Active Member
I haven't used Django per se but am a pretty good Python backend dev.  If you open a thread I can share some things and probably learn some things.  I do think Python is a good beginning language and JS isn't really that much different except it runs in browsers and is more error prone in various ways.  I'm somewhat anti-Node as it's a very primitive (though fast) approach to concurrency. 

My Python webdev buddy recommends Flask over Django, but Django is certainly popular and does similar stuff.

The Freenode #python channel is also a good place to hang out and get help.
 

gxbfxvar

Member
I think Python is one of those programming languages you should know (at least partially) even if you don't need to use actively. It is good for prototyping and there is a lot of stuff written in it already.

I am not a real webdev, but for my small web apps, I use Flask (instead of Django), because I have found it easier to use for quick and dirty web apps.

At work, we use Javascript and Node.js for web and embedded (if the processor is fast enough), but if you aren't careful, you will end up in callback hell.
 

joepie91

New Member
At work, we use Javascript and Node.js for web and embedded (if the processor is fast enough), but if you aren't careful, you will end up in callback hell.
That problem was definitively solved a while ago - you need to use promises :)

EDIT: And ES6 promises (with es6-promise as a shim) for client-side promises.
 
Last edited by a moderator:

PureVoltage

Member
Verified Provider
This would be interesting, I got into Python a few years back and started getting rather good then stopped using it for a few years I really should pick it back up again.
 

graeme

Active Member
Python web development is most of what I do.

Though if you're going for a prototypical language (like JS), a procedural language (eg. Bash) or another type of language, then Python is unlikely to teach you many useful things as a start language
I disagree. Whatever language you start with you will have to adjust to other languages. Python object oriented, but it is also a multi-paradigm language. I have written short scripts that are purely procedural, and you can write functional code as well - things like zip and reduce and built into the language, as are list comprehensions. Add functools and itertools from the standard library and you have quite good support for functional programming.

The other advantage of Python is that it is applicable to a very wide range of tasks. It is used for web development, other types of servers and clients (all sorts of things built on Twisted, the Coherence streaming media server and clients), scientific computing (Numpy/Scipy/pandas), spidering (Scrapy), natural language processing (with NLTK), GUI applications (Quodlibet, Deluge, Meld...) , version control (Mercurial).....

My Python webdev buddy recommends Flask over Django, but Django is certainly popular and does similar stuff.
You can build websites and webapps in both, but there is a difference in approach between people who like Django and people who like Flask. Django is full stack and integrates everything, which makes for faster development, but you need to do things the Django way and follow Django conventions and stick to its components to get the benefits. Flask provides you with less out of the box and you can choose which ORM, form library etc. to use. I use Django for most things, but I do occasionally use lighter frameworks when I am sure I do not need what Django provides.
 
Top
amuck-landowner