This maybe a silly question and the fact that I need a sanity check might even be weirder, but I''m trying to set realistic expectations for myself. I''ve been reading reading reading AWDWR, Ruby on Rails, some of the PickAxe, and even done a few recipes from Rails Recipes. This is all of two weeks. I feel that I''ve learned a considerable amount but going through the Depot tutorial for the 3rd time I feel that there''s a whole lot to remember (that I don''t). Having had very little experience with OOP and never an MVC framework, is there an average time frame that things should start to crystallize, for an average person ? TIA Stuart
On Wed, 2006-06-21 at 16:28 -0600, Dark Ambient wrote:> This maybe a silly question and the fact that I need a sanity check > might even be weirder, but I''m trying to set realistic expectations > for myself. > > I''ve been reading reading reading AWDWR, Ruby on Rails, some of the > PickAxe, and even done a few recipes from Rails Recipes. This is all > of two weeks. I feel that I''ve learned a considerable amount but > going through the Depot tutorial for the 3rd time I feel that there''s > a whole lot to remember (that I don''t). Having had very little > experience with OOP and never an MVC framework, is there an average > time frame that things should start to crystallize, for an average > person ?---- After 3 weeks, I was starting to seriously code a solution with great difficulty but I am nothing if not persistent. After 6 weeks, I had a very workable application and put client into production mode. After 12 weeks...I don''t need to ask very many questions any more and some of the things are actually starting to make sense. I was able to recognize the things that I did early on, why they worked, how to make them better and consistent. Craig
On 6/21/06, Craig White <craigwhite@azapple.com> wrote:> After 12 weeks...I don''t need to ask very many questions any more and > some of the things are actually starting to make sense. > > CraigSo any day now ? Stuart
I think you will start to understand better when you try to do a sample application by yourself. AWDWR is a very good starting point, but you will learn a lot by doing it yourself. _Hari> On 6/21/06, Craig White <craigwhite@azapple.com> wrote: > >> After 12 weeks...I don''t need to ask very many questions any more and >> some of the things are actually starting to make sense. >> >> Craig > > So any day now ? > > Stuart-- Posted via http://www.ruby-forum.com/.
On Wed, 2006-06-21 at 16:44 -0600, Dark Ambient wrote:> On 6/21/06, Craig White <craigwhite@azapple.com> wrote: > > > After 12 weeks...I don''t need to ask very many questions any more and > > some of the things are actually starting to make sense. > > > > Craig > > So any day now ?---- that''s really hard to say since it encompasses so many different areas of learning...html/css/javascript/database/web server and that doesn''t have anything to do with the language itself. Coming in, I understood html, had basic understanding of mysql and web server, little to no experience with javascript and css and of course, had never done anything in object oriented language. Webrick allows you to put off web server integration while you learn. CSS is a biggie...I started with the css in ADWDR and worked from there I knew I wanted to use postgresql instead of mysql but the beauty of rails is that the db is abstracted enough to blur the differences to some extent. Javascript...well, I just worked through Cody Fauser''s RJS booklet and got enough understanding to start thinking about backtracking a bit to move to AJAX/javascript Wherever you are deficient, you will have to spend time getting up to speed in those areas which will bog down your learning of ruby/rails. More than anything...I find just slogging away at new code tends to start the crystallization process...in the beginning, luck sometimes helps and things work and you''re not entirely sure why. Eventually, you start to figure out why and then of course, why you should go back and clean up the code that was lucky. Craig
> So any day now ? > > StuartI''ve been working at rails for almost 6 months now and i''m really just getting to the point where things make sense and i don''t ask questions every single day. To say that in 12 weeks not having to ask questions at all would be an over statment i would presume, but hey everybody''s different. The point is, it''s not how fast you can put an app together, it''s the quality of your work. Getting an app to "work" is one thing, but not having to go back and fix it a month later cause you didn''t really know what you were doing is really the key. Right? I think that''s pretty much global knowledge though. So don''t expect anything more from yourself and whatever you do, don''t think that you''re only one who has questions cause i can assure you that most people do. Jon -- Posted via http://www.ruby-forum.com/.
On Wed, 2006-06-21 at 15:59 -0700, Craig White wrote:> On Wed, 2006-06-21 at 16:44 -0600, Dark Ambient wrote: > > On 6/21/06, Craig White <craigwhite@azapple.com> wrote: > > > > > After 12 weeks...I don''t need to ask very many questions any more and > > > some of the things are actually starting to make sense. > > > > > > Craig > > > > So any day now ? > ---- > that''s really hard to say since it encompasses so many different areas > of learning...html/css/javascript/database/web server and that doesn''t > have anything to do with the language itself. > > Coming in, I understood html, had basic understanding of mysql and web > server, little to no experience with javascript and css and of course, > had never done anything in object oriented language. > > Webrick allows you to put off web server integration while you learn. > CSS is a biggie...I started with the css in ADWDR and worked from there > I knew I wanted to use postgresql instead of mysql but the beauty of > rails is that the db is abstracted enough to blur the differences to > some extent. > Javascript...well, I just worked through Cody Fauser''s RJS booklet and > got enough understanding to start thinking about backtracking a bit to > move to AJAX/javascript > > Wherever you are deficient, you will have to spend time getting up to > speed in those areas which will bog down your learning of ruby/rails. > > More than anything...I find just slogging away at new code tends to > start the crystallization process...in the beginning, luck sometimes > helps and things work and you''re not entirely sure why. Eventually, you > start to figure out why and then of course, why you should go back and > clean up the code that was lucky.---- I forgot svn which I had to learn ;-) and this list has been a great resource ! Craig
Yes, I think your right. Some here may not agree especially when it''s here I might come to ask questions . Stuart On 6/21/06, Nara Hari <nhariraj@yahoo.com> wrote:> I think you will start to understand better when you try to do a sample > application by yourself. AWDWR is a very good starting point, but you > will learn a lot by doing it yourself. > > _Hari > > > On 6/21/06, Craig White <craigwhite@azapple.com> wrote: > > > >> After 12 weeks...I don''t need to ask very many questions any more and > >> some of the things are actually starting to make sense. > >> > >> Craig > > > > So any day now ? > > > > Stuart > > > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
On Jun 21, 2006, at 3:28 PM, Dark Ambient wrote:> Having had very little > experience with OOP and never an MVC framework, is there an average > time frame that things should start to crystallize, for an average > person ?Dark, I''ve been writing code for about 15 years. I started using OOP 10 years ago. I started using MVC-style frameworks 6 years ago. I''ve progressed through at least five OOP languages -- Perl, C++, Java, Objective-C, and Ruby (in that order.) Things really started making sense for me 3 or 4 years ago, when I read Design Patterns <http://www.amazon.com/exec/obidos/tg/detail/-/0201633612 >. If I had read that book when I started OOP, it wouldn''t have made sense. But at the time I was doing Objective-C and had already learned C++ and Java, and the AppKit framework in Objective-C (on Mac OS X) is heavily designed around the MVC pattern, so I was able to understand the examples of how to do things RIGHT, because I had so much experience doing things WRONG. There absolutely is a lot to keep track of in RoR. I think you''ll find that things make a lot more sense in a few years. :) I''m not saying you can''t get useful work done after 3 weeks -- just keep in mind that an average person couldn''t build a house after taking woodshop for 3 weeks, even if they were instructed on how to use every single tool required to build a house. The same is true of software development, in my opinion. Fortunately RoR is much more forgiving than building a house, so a beginner stumbling around for a few months in RoR may be enough to create a production application -- on the other hand, I wouldn''t want to live in a house built in 6 months by someone who just started woodshop. So, keep at it. Try learning more languages and frameworks that use the MVC pattern. Check out <http://www.amazon.com/exec/obidos/tg/detail/-/0596007124?v=glance >, I hear it is more accesible, although I haven''t read it. Good luck, David -------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060621/64140f1b/attachment-0001.html
Any day depends on whether you are set on your original question. If I read that correctly, it involved understanding OOP. Most people start using o-o programming languages just as they would use languages that don''t provide good object support: Procedurally. Rails helps you a bit here by giving you a class for models and controllers, and blah, blah, but it doesn''t illuminate why. After a bit of reading up on inheritance (usually the first o-o concept that makes sense), people often get an aha! moment because they see they might be able to save code by refactoring through a class hierarchy. From there, the going gets a bit trickier when you deal with polymorphism, encapsulation and coupling. Coming from object-oriented, kitchen-sink environments like C++ that tries to do everything and fails at most (multiple inheritance, templated methods, etc.), you might find Ruby a bit odd because it punts on some things like MI, but instead uses mix-ins. Ruby is a very idiomatic language and it all works well once you have the language down. Until then, there will be a lot of <scratch head> I wonder why :foo won''t work here when ''foo'' will? It''s likely that persistence and a couple of months will give you a functioning Rails app. If you use TDD, it might even be a *good* Rails app (and then you can refactor with confidence as you learn). I''m convinced the computer science side of this (object oriented programming, design patterns, etc.) are a longer reading assignment. FWIW -- View this message in context: http://www.nabble.com/Question%7Bmaybe-silly--Sanity-check-t1827030.html#a4984506 Sent from the RubyOnRails Users forum at Nabble.com.
http://www.norvig.com/21-days.html -----Original Message----- From: rails-bounces@lists.rubyonrails.org [mailto:rails-bounces@lists.rubyonrails.org] On Behalf Of Dark Ambient Sent: Wednesday, June 21, 2006 6:28 PM To: rails Subject: [Rails] Question{maybe silly] Sanity check This maybe a silly question and the fact that I need a sanity check might even be weirder, but I''m trying to set realistic expectations for myself. I''ve been reading reading reading AWDWR, Ruby on Rails, some of the PickAxe, and even done a few recipes from Rails Recipes. This is all of two weeks. I feel that I''ve learned a considerable amount but going through the Depot tutorial for the 3rd time I feel that there''s a whole lot to remember (that I don''t). Having had very little experience with OOP and never an MVC framework, is there an average time frame that things should start to crystallize, for an average person ? TIA Stuart _______________________________________________ Rails mailing list Rails@lists.rubyonrails.org http://lists.rubyonrails.org/mailman/listinfo/rails Visit our website at http://www.ubs.com This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message which arise as a result of e-mail transmission. If verification is required please request a hard-copy version. This message is provided for informational purposes and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments.
David, that''s a very insightful and well worded response. I like the carpentry analogy. Stuart/Dark Ambient, I have pretty much a similar background as David (does that make us average?), and it took me about two months from installing Rails for the first time to getting a small app into production. But at least a week or so of that time was spent dealing with things not directly related to the Rails framework like getting my web host configured properly and getting an SSL cert installed correctly, and some more time was spent working with the customer to gather requirements. I think the people who love Rails the most, the people who are always raving about how great it is, are folks with a lot of experience working with similar types of frameworks in other OO languages like Java and C#. Those are the people who have been doing the same thing but doing it the hard way, and using Rails is like a breath of fresh air. To these folks, a lot of the magic in Rails (like automatic loading of attributes into model classes, for instance) is a big relief because before they were having to manage a lot of this stuff themselves, or relying on complex tools to do it for them. They understand what Rails is doing at a conceptual level. I think these folks can get to the point where t hey can write "good" apps in Rails very quickly ("good" meaning bug-free, easily maintainable, cleanly designed code). Then there are the folks who are coming from the other direction, who are taking a step up from procedural programming (like PHP 4) or just getting into web development for the first time, and Rails is attractive because they can create a lot of things very quickly. But a lot of the magic may initially be a stumbling block because there are so many things that just happen automatically and there are a lot of conventions, and it''s not so easy just to look at the source code and understand what''s going on. I am guessing this is where you are right now. I think you will just have to keep plugging away until you get all that stuff into your head, but it may take a while. Something that I think many people are not prepared for when jumping into Rails (and Ruby) is that is that it does some rather sophisticated things that are new even to many experienced OO developers. Learning how to put together an app in Rails is relatively simple, but I think there''s a steep learning curve to really understanding what is going on behind the scenes. (When things go wrong, knowing what goes on behind the scenes will make all the difference). A good analogy is understanding how sessions work (whether in PHP or Rails or whatever). You can tell a new web developer that they can just stuff something into a session and it will be there in the next request, but they won''t REALLY get it until they understand that HTTP is stateless, and that there are things called cookies stored in the browser, that sometimes you can use URL rewriting or hidden fields, and that sessions are an abstraction on top of all that stuff. To get to the point where you can grok all the magic behind Rails, you really have to first spend a lot of time doing homework and really understanding OOP at a deep conceptual level. I don''t think it will happen from just writing apps using Rails. If you want to dig in and really make the most of Rails, I''d say first pick up a good book on OOP and learn the mechanics of OO (objects, inheritance, polymorphism, abstract classes and interfaces), then learn how to "think in objects". _Applying UML and Patterns_ by Craig Larman is supposedly one of the best books for this. Then pick up _Agile Software Development: Principles, Patterns, and Practices_ by Robert C. Martin and _Refactoring_ by Martin Fowler. If you really understand the contents of these two books inside and out, then you can try out for your first degree black belt in OOP. :) Sorry about the long-winded response. I hope it is helpful. Ken David Kramer wrote:> > On Jun 21, 2006, at 3:28 PM, Dark Ambient wrote: > >> Having had very little >> >> experience with OOP and never an MVC framework, is there an average >> >> time frame that things should start to crystallize, for an average >> >> person ? >> > > Dark, > > I''ve been writing code for about 15 years. I started using OOP 10 > years ago. I started using MVC-style frameworks 6 years ago. I''ve > progressed through at least five OOP languages -- Perl, C++, Java, > Objective-C, and Ruby (in that order.) > > Things really started making sense for me 3 or 4 years ago, when I > read Design Patterns > <http://www.amazon.com/exec/obidos/tg/detail/-/0201633612>. If I had > read that book when I started OOP, it wouldn''t have made sense. But > at the time I was doing Objective-C and had already learned C++ and > Java, and the AppKit framework in Objective-C (on Mac OS X) is heavily > designed around the MVC pattern, so I was able to understand the > examples of how to do things RIGHT, because I had so much experience > doing things WRONG. > > There absolutely is a lot to keep track of in RoR. I think you''ll > find that things make a lot more sense in a few years. :) > > I''m not saying you can''t get useful work done after 3 weeks -- just > keep in mind that an average person couldn''t build a house after > taking woodshop for 3 weeks, even if they were instructed on how to > use every single tool required to build a house. The same is true of > software development, in my opinion. Fortunately RoR is much more > forgiving than building a house, so a beginner stumbling around for a > few months in RoR may be enough to create a production application -- > on the other hand, I wouldn''t want to live in a house built in 6 > months by someone who just started woodshop. > > So, keep at it. Try learning more languages and frameworks that use > the MVC pattern. Check out > <http://www.amazon.com/exec/obidos/tg/detail/-/0596007124?v=glance>, I > hear it is more accesible, although I haven''t read it. >
All - First, thank you for you insightful responses! Just to clarify, my statement "so any day now" was in response to Craig''s "After 12 weeks......................... and some of the things are actually starting to make sense" I meant it in a lighthearted way since he was already in the thick of it and yet the understanding didn''t come to some time later. I''m keeping the email stashed so I can refer to all the books mentioned. Right now, I''ve taken a step back and working with "Learning to Program" from Pragmatic Programmers. While I now have a few of their books, I think other authors and particularly those who maybe planning on writing books, to take away one lesson from Learning to Program - include assignments in the book! Step by step tutorials are fine, but way to common. Often they seem more proprietary to a specifc application then explaining by example and then challenging the reader to write their own. In the past I''ve tinkered around (but not for long) with C++ and Java, so some of the concepts triggered familiarity. The deeper ones require my patience. Regarding "Procedural languages" vs "OOP / MVC", yes they are different but and in particular to web design there are some commonalities, even if they are structered differently. I say all this because because even though I know very little I am still impressed by and see at least some of the uniqueness (and cool stuff) of both Ruby and Rails. Good for me :). All in all, I think the thread has cleared up much confusion for me as well as given me a better view of the steps I need to take to improve my skills and grow in this hobby. Thank you, Stuart On 6/22/06, Kenneth Liu <ken.liu.pub@gmail.com> wrote:> David, that''s a very insightful and well worded response. I like the > carpentry analogy. > > Stuart/Dark Ambient, > > I have pretty much a similar background as David (does that make us > average?), and it took me about two months from installing Rails for the > first time to getting a small app into production. But at least a week > or so of that time was spent dealing with things not directly related to > the Rails framework like getting my web host configured properly and > getting an SSL cert installed correctly, and some more time was spent > working with the customer to gather requirements. > > I think the people who love Rails the most, the people who are always > raving about how great it is, are folks with a lot of experience working > with similar types of frameworks in other OO languages like Java and > C#. Those are the people who have been doing the same thing but doing > it the hard way, and using Rails is like a breath of fresh air. To > these folks, a lot of the magic in Rails (like automatic loading of > attributes into model classes, for instance) is a big relief because > before they were having to manage a lot of this stuff themselves, or > relying on complex tools to do it for them. They understand what Rails > is doing at a conceptual level. I think these folks can get to the > point where t hey can write "good" apps in Rails very quickly ("good" > meaning bug-free, easily maintainable, cleanly designed code). > > Then there are the folks who are coming from the other direction, who > are taking a step up from procedural programming (like PHP 4) or just > getting into web development for the first time, and Rails is attractive > because they can create a lot of things very quickly. But a lot of the > magic may initially be a stumbling block because there are so many > things that just happen automatically and there are a lot of > conventions, and it''s not so easy just to look at the source code and > understand what''s going on. I am guessing this is where you are right > now. I think you will just have to keep plugging away until you get all > that stuff into your head, but it may take a while. > > Something that I think many people are not prepared for when jumping > into Rails (and Ruby) is that is that it does some rather sophisticated > things that are new even to many experienced OO developers. Learning > how to put together an app in Rails is relatively simple, but I think > there''s a steep learning curve to really understanding what is going on > behind the scenes. (When things go wrong, knowing what goes on behind > the scenes will make all the difference). > > A good analogy is understanding how sessions work (whether in PHP or > Rails or whatever). You can tell a new web developer that they can just > stuff something into a session and it will be there in the next request, > but they won''t REALLY get it until they understand that HTTP is > stateless, and that there are things called cookies stored in the > browser, that sometimes you can use URL rewriting or hidden fields, and > that sessions are an abstraction on top of all that stuff. > > To get to the point where you can grok all the magic behind Rails, you > really have to first spend a lot of time doing homework and really > understanding OOP at a deep conceptual level. I don''t think it will > happen from just writing apps using Rails. If you want to dig in and > really make the most of Rails, I''d say first pick up a good book on OOP > and learn the mechanics of OO (objects, inheritance, polymorphism, > abstract classes and interfaces), then learn how to "think in objects". > _Applying UML and Patterns_ by Craig Larman is supposedly one of the > best books for this. Then pick up _Agile Software Development: > Principles, Patterns, and Practices_ by Robert C. Martin and > _Refactoring_ by Martin Fowler. If you really understand the contents > of these two books inside and out, then you can try out for your first > degree black belt in OOP. :) > > Sorry about the long-winded response. I hope it is helpful. > > Ken > > David Kramer wrote: > > > > On Jun 21, 2006, at 3:28 PM, Dark Ambient wrote: > > > >> Having had very little > >> > >> experience with OOP and never an MVC framework, is there an average > >> > >> time frame that things should start to crystallize, for an average > >> > >> person ? > >> > > > > Dark, > > > > I''ve been writing code for about 15 years. I started using OOP 10 > > years ago. I started using MVC-style frameworks 6 years ago. I''ve > > progressed through at least five OOP languages -- Perl, C++, Java, > > Objective-C, and Ruby (in that order.) > > > > Things really started making sense for me 3 or 4 years ago, when I > > read Design Patterns > > <http://www.amazon.com/exec/obidos/tg/detail/-/0201633612>. If I had > > read that book when I started OOP, it wouldn''t have made sense. But > > at the time I was doing Objective-C and had already learned C++ and > > Java, and the AppKit framework in Objective-C (on Mac OS X) is heavily > > designed around the MVC pattern, so I was able to understand the > > examples of how to do things RIGHT, because I had so much experience > > doing things WRONG. > > > > There absolutely is a lot to keep track of in RoR. I think you''ll > > find that things make a lot more sense in a few years. :) > > > > I''m not saying you can''t get useful work done after 3 weeks -- just > > keep in mind that an average person couldn''t build a house after > > taking woodshop for 3 weeks, even if they were instructed on how to > > use every single tool required to build a house. The same is true of > > software development, in my opinion. Fortunately RoR is much more > > forgiving than building a house, so a beginner stumbling around for a > > few months in RoR may be enough to create a production application -- > > on the other hand, I wouldn''t want to live in a house built in 6 > > months by someone who just started woodshop. > > > > So, keep at it. Try learning more languages and frameworks that use > > the MVC pattern. Check out > > <http://www.amazon.com/exec/obidos/tg/detail/-/0596007124?v=glance>, I > > hear it is more accesible, although I haven''t read it. > > > > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >