[CoLoCo] Noob programing, Python and me (and you too)

Kevin Fries kfries at cctus.com
Mon Dec 28 18:20:00 GMT 2009


I tried to reply from my phone, but I forgot that the message appears to come from a different location because of the Jacked up mail system at work (Exchange 2008).  So, if the original gets approved, and the info is here twice, I'm sorry.

I agree with Collins.  I have programmed in most modern programming languages, and Ruby is definitely the best OOP (object oriented programming) language you can find.  Python is definitely more popular, but I do not believe that has any basis in the language.  Python can quickly turn into an unwieldy beast, not something a noob should deal with.  Python's popularity comes from mob mentality... everyone else is learning it, so I must, and bash any attempts to make me learn something else.  That being said, if you ever wanted to work professionally as a programmer, you will eventually want to learn Python.

Ruby is pure OOP.  So pure it will irritate you.  But I mean that in a good way.  If you learn to program in Java, too often non-OOP techniques come into play because OOP can sometimes be more overhead than you want.  Python and Mono are even more so.  And if you want to use Perl in OOP mode, its even more so.  Ruby keeps its purity, for better or worse.  And for a noob, that wants to learn any OOP, that purity is sent from the heavens above.  That purity forces you to learn good proper programming techniques.  Once you learn them right, then, and only then can Python's ability to let you cheat be used in a responsible way.

Ruby also has some fantastic frameworks with it.  The most popular is Rails.  Ruby on Rails (or RoR for sort) is the most popular framework of its kind, despite using a language that is far less popular than its competitors, and there is a very good reason for that.  Grails in the Java environment, and Django in the Python environment are extremely poor imitations of RoR.  RoR is the type of technology that you can earn real solid money with.  So, once you learn to write Ruby command line programs, then graphical programs with FXRuby (a cross platform graphical toolkit so you programs can run on Windows, Mac, and Linux from one code base), I would then learn RoR, then hand out a shingle, you will be glad you did.

You also asked about and IDE (Integrated Development Environment).  My choice in this area is NetBeans.  If you want something to work consistently on both your Ubuntu box and your Windows box, you basically have two choices, Netbeans and Eclipse.  I give the nod to NB for two reasons.  First of all, Eclipse can get easily overloaded when you have too many plugins.  Its ability to load and manage multiple plugins at once can be a very powerful feature, if it worked the way they want it to.  Far too often you need to unload one plugin to make room for another, definitely something a pro can screw up, let along a noob.  Netbeans has a much smarter plugin system, and this does not become a problem.  Second, Sun does a much better job of keeping Netbeans current with the current Ubuntu and Fedora distros than Eclipse does.  Last time I installed Netbeans, the most current, non-beta version, was in apt-get, the version of Eclipse was old.  Now I believe the Eclipse problem is better than it was, but last I heard the communications issues over at that project still left plenty of room for this to happen again.  As a noob, it is better to stick with what will work with the least number of problems.  Both platforms work on all three major OSs.  Both also support Java, Python, PHP, Perl, Ruby, etc.  Eclipse is drop dead easy for using Java, but some of the other languages require plugins, and some of those plugins require additional plugins to make them work.  So for Python and Ruby, you first need to install the Aptana plugin, then install the language plugins into Aptanna. For rails, you need to install the Rails plugin into the Ruby plugin that installs into the Aptana plugin... whew, allot to take in for a noob.  And these plugins are all over the net.  Netbeans, you go into the plugin manager and it will treat you like Synaptic.  You-> Install X, NB -> OK, You-> Install Y, NB -> OK, but I will also need to install Z, is this OK?  Much cleaner.

So, as a programmer of many, many years, who is familiar with Java, C, C++, Perl, Python, Ruby, and a bunch you have never heard of, here is my recommendation.

  - Install Netbeans on both your Windows and Linux machines

  - Install the Ruby/Ruby on Rails plugin into Netbeans

  - Get a good book on Ruby only, keep Rails for another time

  - Learn good solid OOP programming techniques

  - Learn to apply that in something like Puppet, or one of the other Ruby based projects

  - Learn FX, and learn how to write graphical based programs, especially cross platform

  - Learn Rails and how to put together kick butt business based websites

But, most of all, enjoy.  I hope my ramblings made some sense, and I wish you luck.

Kevin Fries
Senior Linux Engineer
Computer and Communications Technology, Inc
A division of Japan Communications Inc
(303) 708-9228 x326
________________________________________
From: ubuntu-us-co-bounces at lists.ubuntu.com [ubuntu-us-co-bounces at lists.ubuntu.com] On Behalf Of Sean Dial [tesseractheart at hotmail.com]
Sent: Monday, December 28, 2009 7:02 AM
To: ubuntu-us-co at lists.ubuntu.com
Subject: [CoLoCo] Noob programing, Python and me (and you too)

Hey guys
   I'm interested in learning to program. I'm a fan of open source. I've never programed in my life. And I'm just doing this for fun and experience. Knowing all this, a friend of mine suggested I start with Python. Does anyone have any advice on where to begin? Any advice on an easy to learn programing suite (preferably open source)? Also cross platform suites would be nice too, since I have Windows, Mac and Ubuntu. But the cross platform thing isn't a big deal.


Sean Dial

MSN Messanger - Tesseractheart at hotmail.com
Yahoo Messanger - Tesseractheart
AIM - Tesseractheart
Myspace - Tesseractheart
Facebook - Sean Dial
Livejournal - Tesseractheart
________________________________
Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. Sign up now.<http://clk.atdmt.com/GBL/go/171222985/direct/01/>



More information about the Ubuntu-us-co mailing list