bd_monkey Posted May 21, 2012 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
Forbin Posted May 21, 2012 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
Moosferatu Posted May 21, 2012 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
Nappi Posted May 21, 2012 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
bd_monkey Posted May 22, 2012 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
Sean Posted May 22, 2012 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
bd_monkey Posted May 23, 2012 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
toblix Posted May 23, 2012 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
Erkki Posted May 23, 2012 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
toblix Posted May 23, 2012 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
Moosferatu Posted May 23, 2012 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
Erkki Posted May 23, 2012 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
toblix Posted May 23, 2012 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
Sean Posted May 23, 2012 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
Forbin Posted May 25, 2012 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
toblix Posted May 25, 2012 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
Thompson Posted May 25, 2012 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
Chris Posted May 28, 2012 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