Learning Python and Django and should I?? (I have a year of 10 or so hours a week)

81 views
Skip to first unread message

Rotimi Ajayi-Dopemu

unread,
Aug 14, 2015, 5:22:07 PM8/14/15
to Django users
Hi all,
I am sure this question has been beaten into the ground but hopefully I can get some specific insight so I don't waste time in the future. Thanks in advance.

The question:
I have a year to learn a new programming language for web application development. I will be learning concurrently with going to school so I have about 10 hrs a week give or take. So the question is this should I learn Ruby on Rails or Python/Django???

Background Info about why:
I am a student studying Cognitive Science and want to work as either a UX designer or a Full Stack Engineer, I am leaning towards Full Stack Engineering and designing more for the front end in my after hours. I don't have a serious girlfriend (lol) and my life is pretty simple so I know this is what I want to do. I am committed. I know PHP fairly well and can use Wordpress and Joomla for whatever. I am familiar with MVC through use of a popular PHP framework called Codeigniter. Oh yeah, I used C++ pretty heavily about 10 years ago building Windows Applications...and loved it.

What I will be using it for:
After I graduate in a year and after learning the language I decide on I plan to develop a full blown web application. I don't know if this is too ambitious but all I'm willing to say now is it is like Pintrest but not a clone. I have fully developed the concept for a long time now and will have the features down pat by then. My goal is to invest my time on a prototype and release it, then hopefully get with a team or even investors if it works and develop it more. If it doesn't work out then Plan B is to use my skill-set in a full time position with a company in a tech hub somewhere in the US. Plan B might turn into Plan A in a year depending on my money situation.

So there are three aspects to this question: Should I learn Django/Python or Ruby on Rails? is Plan A(the web app) feasible with just me and Django/Python? How does Python fair in the work market?

I know all this may seem like a lot to ask but this is really just a test of this forums activity. I have been pretty avid on staying with PHP or maybe going back to C++ because this HTML/CSS situation I usually work with these days tends to get on my nerves. 

Last thing to add for this thread (I swear) is: one thing that really irks me about web development is the lack of real debugging tools that work flawlessly. Maybe it is just I haven't learned them yet but I know in PHP you are stuck with using Xdebug through your browser (although I just found a new debugger that only works in recent versions of PHP) so if anyone could just give a 1+ to integrated debugging with Python Django that would be great.

Thanks again if you read this far.
Feel free to contact me if you have a similar web application in the works, I have no doubt there probably is.

Jonathan Baker

unread,
Aug 14, 2015, 5:54:16 PM8/14/15
to django...@googlegroups.com
Have you written any Python or Ruby? If so, do you have a preference?
Both are high-level languages, and the dominant web framework for each
(Django and Rails) are mature and stable. I'd at least read and write
some code for each and see if the syntax of the language and the
semantics of the framework strike your fancy. Ruby didn't click with
me like Python did, so three and a half years after ditching PHP here
I am. I love how easy Python is to read, and I've thoroughly enjoyed
working with Django (esp. after Drupal, WordPress and a bit of
CodeIgniter).

Concerning jobs, I'm based in Denver, CO and there are many more RoR
opportunities here than Django. I can't speak for other markets, but
I'm moving to Oregon next year so I'll find out soon enough;)

As for debugging, the Django Debug Toolbar
(https://github.com/django-debug-toolbar/django-debug-toolbar) is
quite popular. That combined with vim-flake8
(https://github.com/nvie/vim-flake8) and PDB
(https://docs.python.aorg/2/library/pdb.html) get me out of most hairy
situations I find for myself.

Hope this helps a bit,
JDB
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users...@googlegroups.com.
> To post to this group, send email to django...@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/4c01a2c3-50f1-4123-b0b2-4197222d6595%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



--
Jonathan D. Baker
https://voltaic.io

James Schneider

unread,
Aug 14, 2015, 6:34:39 PM8/14/15
to django...@googlegroups.com
I came upon similar crossroads several years ago. Granted, I'm not a programmer by trade, but I do have several personal projects that I work on. I had done some large module development for Drupal in PHP over several years, and once I reached the point where I was fighting to override Drupal more than I was spending time adding new functionality, I started looking at web frameworks rather than modifying CMS platforms. I was also growing tired of the PHP inconsistencies and the inability to properly debug. 

After some research, I came down to Perl/Mason, Ruby/Rails and Python/Django. I was already familiar with Perl, less so with Python from work, and had no experience with Ruby. After reading the flame wars between the languages on forums with posters asking the same question, I decided the best way was just to dive in and try it myself. I didn't particularly want to go down the Perl route, as I had spent countless hours fighting with CPAN getting modules installed for work scripts. I decided to start with Ruby and Rails. This was around the time that 1.8 was dubbed a horrible mess and 1.9 was still fresh and slightly buggy. After fighting with that issue, I spent several days trying to figure out what was required for RoR, installing gems, and learning Ruby in general. I still to this day have no idea what a symbol is, nor the proper time to use it. After a few weeks of trying and working around all of the system-specific issues I was having, I think I managed to get a working version of a basic site up. Having 'conquered' RoR, I moved on to Python/Django. Python and Ruby are somewhat similar in terms of layout and even syntax at a very basic level, so the transition wasn't difficult. What attracted me to Python/Django, though, is the lack of 'magic' behind the scenes. I felt like RoR was making decisions for me behind the scenes, and I had little control. Not that I necessarily needed control at that point, but given my previous experience with Drupal/PHP, it gave me reason for pause. Python/Django is clean, without magic, easy to read, and almost forces you to be a good programmer with indentations, simple syntax, etc. After running through the Django tutorial in a couple of hours (1.3 had just come out at the time with CBV's as the prominent new feature), I was extremely hooked, considering the same process in RoR was a few days of effort. I also felt the philosophy and intent of Python better aligned with my personal inclinations. Simple, clean, big focus on backwards compatibility both in the language and Django (a large problem that I had with Drupal). Ruby felt much more bleeding edge, fast-paced, and 'magical'. Call me a control freak, I like to know what my code is actually doing. Makes for easier troubleshooting later. Python also had excellent cross-platform support, and native support within Ubuntu/Debian/Gentoo linux, since a fair portion of their tools are written in Python. Pip makes installing (and version control) ridiculously easy, much easier to navigate than gem repos or CPAN. 

All that aside, the best advice I can give you is just to try each out and figure out which one 'feels right' for you. Both have more than enough market share as a viable career path. Given your field of study, Python may be a better choice for you considering the immense amount of scientific work done with Python. I've never heard of Ruby having such a reputation (but that doesn't mean it isn't being done). 

As far as Python debugging tools go, I would definitely look into PyCharm, which has a free community edition with a built-in debugger. It handles Django with ease, and the licensed version has extra special goodies for Django specifically, probably worth the cost if you are serious about developing the application you are talking about.  

-James


--

Andrew Farrell

unread,
Aug 14, 2015, 11:47:56 PM8/14/15
to django...@googlegroups.com
One tool for debugging that I would actually use isn't actually a debugger although ipdb is great
If you decide to go with python/django, I would strongly consider using the book Test Driven Web Development with Python. It not only provides a good django introduction, but the approach it advocates of writing tests first makes it a lot easier to find bugs quickly and when you find a bug, to nail down exactly what causes it and when it is fixed.

Derek

unread,
Aug 15, 2015, 1:29:23 PM8/15/15
to Django users
I was only ever briefly a PHP user (came to Python from 8 years of using Java/Cocoon) so I cannot speak to that.  I did also have to use Ruby for a short project, but found the syntax non-intuitive.

Obviously on this list we are biased toward  Python/Django - but I would say its worth the time and effort to learn Python properly before diving into Django.  A resource like http://learnpythonthehardway.org/book/ can really help with this, and (hopefully) teach you good Python-orientated programming habits (as demonstrated even more explicitly in resources like  http://docs.python-guide.org/en/latest/writing/style/ or https://www.jeffknupp.com/writing-idiomatic-python-ebook/ ).

Bear in mind that for your actual website, you may need a fully-fledged, front-end framework like AngularJS or Backbone.js; with Django serving up data through an API (tastypie or Django Rest Framework). 

Good luck with the learning - its a small mountain you need to climb, but the view is great!

graeme

unread,
Aug 16, 2015, 9:45:49 AM8/16/15
to Django users
A lot of it is a matter of personal preference, and a lot comes down to whether you prefer Python or Ruby.

Python is more general purpose than Ruby, and a lot more general purpose than PHP, so it is much more likely to be useful outside web apps, or if you need unusual functionality within a web app - python has a huge range of libraries available.

François Schiettecatte

unread,
Aug 16, 2015, 9:53:07 AM8/16/15
to django...@googlegroups.com
Why not learn both, seriously, spend 6 months learning one and then 6 learning the other. Bigger range of skills means you are more marketable.

François
> --
> You received this message because you are subscribed to the Google Groups "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
> To post to this group, send email to django...@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/ec08c90a-e9ce-4c71-9f12-02b4484aefb9%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages