3

When working with R, I feel like a have decent repertoire of tools and tricks to tackle many everyday problems. Yet often, I realize I could have solved problems more elegantly. For example I read about classes and methods, but haven't crossed the river to use them finally. Most likely because my everday work does not require that. Still I feel my creativity is limited by the tools I can handle.

What is the starting point, respectively what would be a good strategy to get beyond somewhat-advanced / intermediate beginnger / data juggling level?

blahdiblah
  • 33,069
  • 21
  • 98
  • 152
Matt Bannert
  • 27,631
  • 38
  • 141
  • 207
  • 2
    Read @Hadley's `devtools` wiki: https://github.com/hadley/devtools/wiki and take it from there. – Andrie Jan 17 '12 at 20:14
  • eh, I got another one: http://www.youtube.com/watch?v=eGDBR2L5kzI (not R) – Matt Bannert Jan 17 '12 at 20:30
  • change job for one that requires you to stretch your abilities beyond what you need now. Of course, you may also just play in your free time, say, making [a package](http://stackoverflow.com/q/1708934/471093) that doesn't currently exist and would require applying new skills. – baptiste Jan 17 '12 at 20:52
  • 4
    There is no hump ;) Even if you are using R daily for a decade, you will be still learning new things. Whether you solve a problem elegantly or not doesn't matter in life, but data sizes can force you to solve them more efficiency since you have no other choice. How you do that is more of a personal taste, really. That ties in to what Baptiste said, if you don't feel stretched, your job/data is boring ;). IMHO the more you learn about the internals of R, the more efficiently you can leverage it and add to it (but my view is likely biased ;)) – Simon Urbanek Jan 17 '12 at 21:06
  • So, we're talkin about practice here. @Simon very nice comment. Probably I felt that there was a hump because I stumbled over problems that I considered somewhat similar and felt that with more knowledge they would be as similar as I thought. That being said, you are probably right about the job... – Matt Bannert Jan 18 '12 at 08:44

4 Answers4

5
  1. Open up https://stackoverflow.com/questions/tagged/r

  2. Find a question that will stretch your skills.

  3. Solve it.

  4. Goto 1.

Community
  • 1
  • 1
Richie Cotton
  • 118,240
  • 47
  • 247
  • 360
2

-- "How do I get to Carnegie Hall?" -- "Practice, practice, practice."

How to be an expert (stolen from surgeons): see one, do one, teach one.

Plus, what Simon said.

Carl Witthoft
  • 20,573
  • 9
  • 43
  • 73
1

Following a wel given course with lots of hands on practice can help. A good course also provides context, which is harder to learn by learning as you solve problems. Reading a good book can also have this effect. Alternatively, find a mentor who can help you while you work on problems. This might be the most effective way of growing as a programmer.

These suggestions are only in addition to what carl suggested. Like Bryan Adams said in the Summer of 69:

played it till my fingers bled

Paul Hiemstra
  • 59,984
  • 12
  • 142
  • 149
1

Download the source code versions of the top N packages you find yourself using the most and dig through them until you really grok how they work.

Steve Lianoglou
  • 7,183
  • 2
  • 25
  • 21