From: Tanner Burson Date: 2005-04-14T03:05:07+09:00 Subject: Re: On motivating a Ruby nubie On 4/13/05, Sy wrote: > On 4/13/05, Ara.T.Howard@noaa.gov wrote: > > > another peice of advice : share your work. it's suprising how motivating it > > is knowing others will/might be reading/using your code and it also encourages > > you to abstract your problem into a more general solution which, 98% of the > > time, leads to a more elegant solution as well. > > I'm thinking along the lines of keeping a learning journal / snippets database. > > -- > > On 4/13/05, James Edward Gray II wrote: > > > Yes, I read a lot of books and yes they really help. However, it's my > > opinion that there is simply no substitute for quality time spent > > talking to a compiler. For me, that's the key. > > Ok.. so a little bit of coding every day.. finding little snippets to > learn and log.. keeping a bit of a database of my efforts so I don't > have to revisit the wheel. Sounds good. > > > (When you get more experienced the rule changes to "Read code.", but > > that's another topic...) > > That's still very necessary.. since people who are new and > enthusiastic will commonly turn to code examples for sections to > steal. Just take a look at everyone's experimentation with > mod_rewrite.. I know the first thing I did was borrow someone's > solution to jurryrig it to my own setup. It worked too.. but of > course the real learning has to begin when I break my setup and the > rewrite doesn't work. > > So in the short run, ruby code is excellent to learn stuff from.. and > to borrow.. but as soon as my inventiveness kicks in and I shuffle a > design around it'll break all my borrowed code.. forcing me to learn > enough to rewrite those parts (and to learn proper coding practices, > troubleshooting skills.. and all that good stuff). > > -- > > On 4/13/05, Rob . wrote: > > > I agree: write code > > > Contributing to or starting your own open source / free software > > project makes things more exciting as there is the potential others > > might start using your code. This can be a great motivational aid - > > careful though, it can become addictive! > > Starting a project, especially an open project, is way away from my > current inspiration. I think maybe little embarrasing personal > projects which are coded in the open air would do pretty well. I > still have a kind of learning weblog thingy in mind. > > -- > > On 4/13/05, Dave Burt wrote: > > > For books, I recommend Why's (Poignant) Guide to Ruby, which is a hilarious > > romp through the Ruby language. > > I noted that. I read through some of it.. I understand some of it. > While it certainly cheers me up and gives a good introduction and > such.. It's not motivating in the least. It got very horrible very > fast and I've no intention to finish it until I can make better use of > the early chapters. > > What I think I'm going to do is step back and begin to write my own > tiny tutorial as my learning tool. I'll grab some code snippets and > make them do stuff.. and write notes to myself as to how things work > and why. With this, I should be able to dump in various learning > examples and such. It should work out ok. I figure I can get away > with this functionality on my existing wiki. > > Maybe (one day) my "big project" should be a simple ruby weblog? It's > a fairly straightforward concept.. but with lots of curious > intricacies that could keep me very occupied. > > > Instead of games and other people's quiz suggestions, you could also rewrite > > something you've already written (i.e. those batch files, or anything you've > > done in C) or, perhaps even better, build something you need. If you can > > identify a repetitive computer-based task you do a lot, if you can imagine > > that some of the repetition could be relieved, figure out how. Ask this list > > when you're stuck - we love to help with this kind of thing. > > I'm wondering if I can rewrite some of the crap I had tinkered with in > ruby. There isn't much point.. many of those tools are too specific > to DOS.. and I don't really use any of that anymore. > > Maybe the most productive thing to think is that I would like to see > Ruby as my problem-solver for my not comprehending bash and most shell > tools. > > Much of it would be reinventing the wheel. But in doing so I would be > learning ruby, solving my problems and .. well doing things in ruby > for others to maybe learn from too. > > Some simple ideas: > > * Search through directories, looking for file 'x' > > * search through files in directories, looking through their contents for 'x' > > * file split/merge > > * simple backup solution > > * disk / directory / file reporting -- which directories have the most > files.. which take the most space.. etc. > > * Appointment book / calender > > * clock / scheduler > > Strangely enough, I often find that re-inventing the wheel is exactly what helps me learn the most. I pick something I find at least useful to me, then attempt to implement it myself, "fixing" anything I disliked about the original. This method helps me have a clear "end case" in mind, otherwise my projects tend to ramble on and never really get finished.