4 ms·
These comments ring with explanations of where the OP went wrong, but I want to add my thoughts. Doesn't it strike you that every "brick wall" the author ran in
by pavpanchekha 13y ago
These comments ring with explanations of where the OP went wrong, but I want to add my thoughts. Doesn't it strike you that every "brick wall" the author ran into was a move from learning a language to using a massive framework? PDO, Backbone, and Rails were mentioned in the article.
I've seen this tendency from new programmers: to be a programmer, I must do what programmers do. And that means using "real" languages, "real" frameworks, work on "real" projects. I think that's wrong, and I think we experienced programmers encourage that line of thought.
The author describes enjoying Ruby. He or she had fun going through a book on it, fun solving Project Euler problems with it, he or she ran home from work to play more with Ruby. I can't imagine a better student. But after getting a basic familiarity with Ruby, the author tried learning Rails and was immediately overwhelmed: "In the tutorial, Hartl introduces Ruby, Rails, Git, Heroku, Test Driven Development and just about everything else you can think of, right from the start."
If I had a moment to talk to the author before he or she began this programming journey, I would say something like,
"To many people, programming is first and foremost fun. Yes, it's a tool to solve problems, yes it can be a job and a career, but you already have a job. You don't need programming to make you rich, or to have a stable career. So why don't you instead focus on having fun?
"As part of that, don't think you need to learn all the tools of 'real' programmers: you don't need to make a beeline to Rails, or PDO, or Backbone. These are tools other programmers invented to solve their problems. You might not have their problems, and you might not like their solutions. After all, your goal isn't to solve a problem for your boss by noon; your goal is to enjoy yourself and to learn something new. With time, you may find that you don't need those frameworks and libraries. Or you'll run into those same problems, and then you will truly appreciate those kind souls who made their solutions available to you, at no cost and with copious documentation. But don't worry about that now. Focus on learning, on having fun, on challenging yourself bit by bit and then overcoming those challenges."
I've met programmers whose attitude was, "If you're not using [framework], your code is worthless, and no progress can be made until you fix yourself." That might be helpful at a company where the goal often has a deadline, but to a beginner, especially one looking to learn for personal gratification, that's not really a good option. Maybe your student is confused by all the magic happening in the framework. Maybe your student is a bit afraid of the tightrope of abstraction that they're walking. Maybe you should slow down and figure out why your pet framework solves their problem.