Jump to content
Sign in to follow this  
bd_monkey

Python or ruby

Recommended Posts

So i am interested in learning code. I have narrowed my choices to either python or ruby. I have a small amount of knowledge of java, but i really want to learn something else. Dose anyone have experience with these, or advice on where i can learn. Some practical advice would be appreciated.

Share this post


Link to post
Share on other sites

Ruby Koans are a good way to learn Ruby. And Ruby on Rails' convention over configuration paradigm means that you can build sites fairly easily. But as a learning language... I personally think that serious developers should learn in static languages. There are a lot less bad habits you'll pick up. If it's a pure hobby, then it's great.

What kind of things are you interested in doing? Are you in school?

Share this post


Link to post
Share on other sites

What kinds of things are you primarily going to be programming? Why not try both, and focus on the one you enjoy more? Personally, I think Python is a much more enjoyable language, with some annoying limitations, while I dislike Ruby's syntax, but it is very powerful and there are lots of cool projects that use it.

Share this post


Link to post
Share on other sites

I enjoy Python very much, mainly because of how fast and hassle-free it is to write. When I discovered the secret of fast calculations (Cython+Numpy), I immediately desided to make the program for my Master's thesis with it.

I have not used Ruby but I imagine it has similar advantages as Python.

I agree with Frobin, though. They may not be ideal tools for learning programming in general. Interestingly though, Python recently replaced Java in the introductory programming course of our universiy. I can imagine the shock when they take the C course afterwards.

Share this post


Link to post
Share on other sites

I just have quit a bit of time after work, so insted of Skyrim, I thought learning code might me a healthy alernative. I guess I'm going to give python a try

Share this post


Link to post
Share on other sites

I just have quit a bit of time after work, so insted of Skyrim, I thought learning code might me a healthy alernative. I guess I'm going to give python a try

A good way to go, I think, is to think of something achievable you want to make. I have a hard time doing tutorials and reading how to books but if I say "my goal is build x and have it do y," I find I learn better. Learning is hard -- having a goal outside of just "my goal is to learn," will help you persevere when the hill gets steep.

Share this post


Link to post
Share on other sites

Hmmm. Well in that case what would you say is a good goal for a novice. I think one of the biggest problems I have is setting my own goals.

Share this post


Link to post
Share on other sites

Sean is super correct, at least in my experience. It probably varies Learning something out of necessity is much easier, even if that necessity is a virtual reality.

Share this post


Link to post
Share on other sites

I'm somewhat biased but would recommend Scala instead. It has a somewhat similar (but better IMHO) syntax to Ruby or Python, and is as powerful but is statically typed and not 50 times slower than the fastest languages (maybe still 2 times slower). It might be problematic to learn, though, because a lot of Scala programmers are into some really advanced type theory and category theory stuff and you'll likely find many google results going way over your head.

Share this post


Link to post
Share on other sites

Isn't it a bit early to recommend Scala as a beginner's language? Isn't core parts of the language still in flux and IDE support still pretty bad?

Share this post


Link to post
Share on other sites

Scala has a pretty steep learning curve. Out of the JVM languages, I'd recommend Fantom. I haven't done much with it personally, but the docs read pretty much exactly how I wish Java was.

bd_monkey, just think of something fun that you'd like to make (a desktop utility, a web app, etc), and then start figuring out how to make it in the language of your choice. For example, back when I was first learning Java my first project was a small desktop application for randomly picking episodes of Futurama to watch so that my roommate and I didn't have to waste time figuring out which episode we felt like watching that evening.

Share this post


Link to post
Share on other sites

Isn't it a bit early to recommend Scala as a beginner's language? Isn't core parts of the language still in flux and IDE support still pretty bad?

Wouldn't say the core parts are in flux more than most languages that are still evolving (e.g. Java). Not sure how much Ruby/Python get new features, maybe things are changing less there.

Perhaps it isn't really a beginners language, I think that mostly depends on what learning materials are available. So perhaps in that sense Python or Ruby is better.

Share this post


Link to post
Share on other sites

Ah, okay. I thought I heard something about every new version breaking your existing code because they redid something, but I'm probably wrong, or I'm right, and what I heard was wrong.

Share this post


Link to post
Share on other sites

For example, back when I was first learning Java my first project was a small desktop application for randomly picking episodes of Futurama to watch so that my roommate and I didn't have to waste time figuring out which episode we felt like watching that evening.

That is a FANTASTIC example of a good first project.

Share this post


Link to post
Share on other sites

Regarding projects. I suggest either make a game or make a website. If it's a game, then just pick something super simple and re-make it. If you're learning Python, you could use PyGame and follow a tutorial.

Share this post


Link to post
Share on other sites

I would carry on my normal life, but with one difference: a subconscious mind-embedded psycho-trigger that activated the next time you said to yourself "God damn it, I wish there was a program that ..." and then I would make that program.

Share this post


Link to post
Share on other sites

I would carry on my normal life, but with one difference: a subconscious mind-embedded psycho-trigger that activated the next time you said to yourself "God damn it, I wish there was a program that ..." and then I would make that program.

I think that all the damn time, I really need to learn a useful language.

Share this post


Link to post
Share on other sites

A good way to go, I think, is to think of something achievable you want to make. I have a hard time doing tutorials and reading how to books but if I say "my goal is build x and have it do y," I find I learn better. Learning is hard -- having a goal outside of just "my goal is to learn," will help you persevere when the hill gets steep.

Definitely. It's slightly different for me in that I actually enjoy doing things like burning through a tutorial book or what have you, because that in itself feels like a discrete goal, but I find that once I've got the really basic-level stuff down I find it difficult to know where to go from there. When I have something concrete to achieve I always learn much better. Learning on the job is always my favorite way to learn a skill, but that is often difficult to kick off because you need to be given a task that you may not already excel at but that you are trusted to figure out anyway.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×