Ruby on Rails Developer Competency Matrix

    How can a novice Rails developer understand which direction to dig in order to become an experienced programmer as quickly as possible? It is clear that you need to work, work and work again. But besides this, the horizon is important, which will make it clear which way you need to go along the road to the title of professional.

    Two months ago, we launched offline & online courses in Kharkov on Ruby on Rails for beginners RubyBursa . Of the features - half of the classes were in the classroom, half in the webinar format. We set stringent conditions for completing homework and for the first non-fulfillment, participants received a yellow card, for the second - red and dropped out of courses. Such "dragon methods" allowed 35 out of 40 participants to reach the end with 100% completion of all homework.

    Some students in the process of studying were interested in: “what next?”. Our teacher Oksana specifically in the form of an answer to this question prepared a trial version of the Ruby developer competency matrix. We do not pretend to be academic and understand the possible controversy of the proposed scheme.

    Determine how many points you have in total in all directions and summarize at the end of the article:

    2 points 4 points 6 points
    Frontend
    Html css
    I know the basic things, I can correct the layout I can lay out individual parts of the pages I can make up the whole project (it will correctly display in
    all browsers)
    Haml, slim, coffee, sass, less (any of) ...
    I know what it is and why it is used. I personally do not useknow what that is. I use in the project. sometimes you have to use converters (even for small code)I use in the project, using various buns (for example, mixins)
    JS, jquery and various frameworks
    I know basic things, I can correct what is I can write code for individual parts of the functional.  I can completely write all js for the project (if necessary)
    Testing
    Understanding the difference between TDD and BDD, I can write a simple test. But in the project, it somehow did not work out.I write tests (unit), I try to test to the maximum know what to test, how and why
    DB
    SQL
    I know a bit of SQL (select * from users) I am able to make requests of varying complexity Procedures, functions, triggers, indexes - I know!
    NoSQL
    I know the difference with SQL, the main types I can use in a real project I can advise on this topic
    Deploy
    I can configure the server with the help of experienced developers and Google, by typing and dancing with a tambourine I can configure the server, but not at the level: guys, but right there everything is simple I can configure the server myself, I know the difference in settings and configurations
    Rvm, rubygems, bundler ...
    With the help of someone else or the same tambourine, I put the necessary for work (rvm, ruby, rails .....) I know how to set everything, but periodically errors come out that are not clear what to do What’s there - a couple of teams ...
    Patterns
    Well ... uh ... heard. Good thingI know the basic patterns, I know how to apply them in practice, but it’s difficult to understand from a real task where which one is needed I actively use and use, I can tell you why what pattern is intended
    What do you know about RoR?
    I use it I know the order in which files are run, I can use rails components separately from each other I know how it works, so to speak the insides of rails
    Caching
    I know what it is and why. personally did not useI know what it is and why and use (used) in the project I understand the principle of work, advantages, I know what and how best to use
    Queue
    I know what it is and why. personally did not useI know what it is and why and use it in the project I understand the principle of work, advantages, I know what and how
    best to use
    Metaprogramming
    I know what it is. I do not apply in practiceI know the basic things I know at an advanced level
    Git
    I know the basics I work well with git, but sometimes there are problems that have to google I know at an advanced level (think like git). I understand perfectly the principle of work, merging, changing history, as relatives, in general
    Writing the code
    I am writing how it will turn out, the logic in the controller. If the code is not needed - I will comment it out - it will come in handy. sometimes thinking about refactoring ...I try to keep the logic in the model, to scrub my code. the methods are not great, the code is understandable when reading by other programmersthe code is clean. I use various patterns (I know when and what is better), well, not a code, but a sight for sore eyes :)
    Planning, estimating
    I am planning my tasks and estimates. preliminary estimates often do not agree with the real runtimeI can plan and evaluate a system of medium complexity. in reality, everything comes together according to plan (with a small margin of error)I can plan and evaluate a complex project (for myself and the team), distribute tasks. everything converges according to plan (with a small margin of error)
    Ror news
    I read some posts ... in Russian ... if anyone throws a link ... Periodically breaks into reading / viewing news in the world of RoR
    I listen to podcasts / read the latest news, in general, whatever is in the know

    To summarize:
    up to 25 weakly ... very weakly ... but how much interesting is ahead!
    25-52 you already know something and you can. There is a starting base,
    but much remains to be learned
    52-78 you have good knowledge. not everything is perfect, but there is already
    something to show and something to boast about. don't stop and you will be mega-cool!
    78-102 you are awesome. without a doubt. it is a success.


    We hope that our matrix will give you an understanding of which areas you need to tighten. The best way would be to ask your employers to give you tasks that, in practice, will allow you to pull the right direction. If this is not yet possible, train on a home project. A lesser result will be given by a theoretical study of blogs and books. Good luck!

    PS Now we are conducting a set of two-month online courses Ruby on Rails RubyBursa , which will begin in mid-May. Courses are designed for beginner Ruby developers, as well as "IT Polyglot"

    Also popular now: