4 ms·
Well, I don't know for sure, but they're the five things that seem most important to me when it comes to landing a quality gig. Please correct me if I'm wrong :
by franl 13y ago
Well, I don't know for sure, but they're the five things that seem most important to me when it comes to landing a quality gig. Please correct me if I'm wrong :)
They are TDD, OO-design, increase Rails mastery, refresh myself on algorithm basics (sorts, processing data efficiently, etc), and learn the basics of a JS MVC framework (leaning toward Angular). I'm not starting from zero in any of them.
Also, I did a poor job of providing context/perspective, so I'll quickly add some: My dev skills are at a point where I could get a junior Rails gig somewhere. I want to get them to the point where I can get a junior/mid Rails gig (almost) anywhere.
The 90 days was just an arbitrary time constraint that I felt was short enough to give me some urgency, but long enough to make significant progress.
Totally agreed on the "having a project" points you make, and on learning by necessity. Both are a part of my plan. I love learning about programming in general, but yesterday I found myself reading a Ruby book that was talking about making external DSLs and I had to stop myself: "This is really cool, but WTF does this matter to me right now?? Go read about TDD instead."
EDIT/ADD: Thanks for the reminder about spaced repetition btw.
- ACow_Adonis 13y agoI'd love to be able to give you some more specific pointers, but alas I'm more on the scientific/numeric/stats/data side of computing. I wouldn't know where to begin with the web stuff :( You should probably look to others for specifics in your case. But what little advice i can give is try to turn it all into a project. Do a quick read up on all the topics, then combine them into something tangible and of worth to you. Since I'm not a web guy, i'm probably talking half out of my arse here, so feel free to dismiss. Think up a rails project, and try implementing the whole thing via a TDD pattern. Test, produce a really basic first shot, re-factor, repeat, etc. And what better place to learn about or implement some algorithm basics than while profiling/refactoring code to make the whole thing as fast as possible?! I learnt almost nothing from algorithm books or lectures, what really made it all sink in was when I had problems that ran slowly, and I had to make them better. Then suddenly the topic was relevant and I understood. And of course, once you optimize everything, you tend to quickly run into the hard lessons of good design, because nothing makes things fall apart and get complex quickly more than optimizing everything, except maybe trying to optimize everything with bad design. Will you screw up? Sure! You'll be bitter and twisted, but the scars will be of experience. That's what makes you learn. The screw ups are what you remember, and when you hit a problem of your own making, suddenly you respect the solutions presented in the text-book a lot more, even if you don't agree with them or feel they're complex or constraining. /editorial.
- franl 13y agoAhhh, man, awesome stuff. I totally relate to what you said about not learning from books, but learning from when you actually experienced some of the problems that were outlined in the books. I went through similar learnings with running my own business. I had read a bunch of stuff about entrepreneurship, etc., but it wasn't until I screwed up for myself that the lessons really crystallized (and really internalized for me). Web programmer or not, your advice was very helpful, so thanks again :)
- sehr 13y agoAngular is a pretty big beast in an of itself, have you considered something a bit slimmer? Ala backbone, knockout.js? And learning about DSL's will come in handy, considering Rspec and the like use them!
- franl 13y agoAbsolutely on the same page with you on this after researching Angular some more over the past couple of weeks. I mentioned Angular because a couple of companies I'd like to work at use it. I was thinking about trying React for views + Backbone for models/routing instead, but a poster here reminded me about Ember, so maybe I'll just go that route initially. Or Backbone on its own. Thanks!
- sehr 13y agoEmber would be a good choice, seems like it's the 'rails' of the js world. Good luck!
- archagon 13y agoA good way to learn all five is to write a full-stack web app. Your MVC framework will teach you OO-design and you can use Rails on the backend. I'd recommend Ember.js over Angular.js for its more traditional approach to MVC (read: Cocoa-esque), but I'm admittedly not an expert in either.
- franl 13y agoAgreed on all counts, thanks! I've heard a lot of good things about Ember. Have you tried Angular?