arches.io How To Be A Developer

One of the hardest things about web development is focusing your learning. There are so many things to know! I've prepared a few different frameworks and resources to guide you. Hopefully these can help novice/intermediate developers get the right mix of breadth and depth, and maybe help advanced devs clarify their perspectives.

Technical

I've broken out 130 technical concepts in this google doc. It includes a rubric to rate yourself - copy the sheet, make a column for today's date, and see what you know! Do it again every few months and watch yourself improve.

The point is just to have one place that tracks both your technical breadth and depth as a developer. Going forward, as you have time for side projects or some leeway to choose what you take on at work, this list can help you make those decisions and progress as you desire. This is a good starting point but absolutely feel free to add/delete/update the list to fit your goals!

Project Management

Building software is about so much more than writing code! Being able to move the whole project forward to successful completion requires an entirely different skill set. The best developers are strong communicators and excel in all these areas in addition to being technically competent.

Steps in the Project Pipeline

Context is always important. Writing code happens mostly in the "implementation" step, but that's only one piece of the puzzle. The more you know about what comes before and after the code, the better your code will be. Here are some important contexts for your work, from broadest to narrowest:

Developer Competencies

Knowing syntax isn't enough, you have to know how to apply it. Any problem has half a dozen acceptable tech solutions. Picking the right one comes from experience and process.

Given a problem statement/business goal

Given a spec (formally written or from verbal group consensus)

Given a tech plan

Throughout

Given a bug report or error report

Given an existing codebase

Resources

In no particular order...

My ruby gems :)

tableprintgem.com

github.com/arches/marco-polo

Newsletters

rubyweekly.com

softwareleadweekly.com

For exploration

confreaks.tv/tags/5

naildrivin5.com/blog

devblog.avdi.org

rubyrogues.com

railscasts.com

robots.thoughtbot.com

ruby5.codeschool.com

think-like-a-git.net/epic.html

Specific Pages

Every Line of Code is Documented - Effective Spelunking of Git History via mislav

ghendry.net/refactor.html

radar.oreilly.com/2014/03/javascript-without-the-this.html

signalvnoise.com/posts/3531

brandonhilkert.com/blog/7-reasons-why-im-sticking-with-minitest-and-fixtures-in-rails

speakerdeck.com/skmetz/all-the-little-things-rubyonales

Jim Weirich on Decoupling from Rails

Rules, by Sandi Metz

Shortcuts for Creating String and Array Literals

rails-sqli.org

blog.codeclimate.com/blog/2013/03/27/rails-insecure-defaults

mudge.name/2011/01/26/passing-blocks-in-ruby-without-block.html

confreaks.tv/videos/rubyconf2012-refactoring-from-good-to-great

confreaks.tv/videos/rubyconf2012-building-data-driven-products-with-ruby

confreaks.tv/videos/rubyconf2012-failure-for-fun-and-profit

blog.codeclimate.com/blog/2012/11/28/your-objects-the-unix-way

blog.glebm.com/2013/08/23/screenshots-in-git.html

jdanger.com/skinny-models-the-dao-pattern-for-ruby-persistence.html

hashrocket.com/blog/posts/s3-asset-hosting-walkthrough

ilikestuffblog.com/2012/07/01/you-should-update-one-gem-at-a-time-with-bundler-heres-how

The Magic Tricks of Testing by Sandi Metz

confreaks.tv/videos/rubymidwest2011-keynote-architecture-the-lost-years

Not free, but excellent

destroyallsoftware.com/screencasts

rubytapas.com

Questions?

I love helping people with ruby and with their careers. Get in touch! I'm @archslide on twitter and @arches on github.