4 ms·
I think there are solid cases where frameworks make a lot of sense. They provide very helpful layers of abstraction on often used patterns, like Rails CRUD apps
by elliotec 11y ago
I think there are solid cases where frameworks make a lot of sense. They provide very helpful layers of abstraction on often used patterns, like Rails CRUD apps, in which you can just use the command line to generate fantastically useful patterns that would take forever to implement.
On the other hand, learning the basics of a language, or more importantly learning how programming works and how software is written, is going to be far more powerful than learning a framework first, even though that is often the step most newcomers take.
Learning the ins and outs of JavaScript for example is going to help you immensely in navigating the mess of JS churn and you'll be able to learn the framework du jour much faster than approaching it framework-first.
- routerl 11y agoHear, hear. I'm learning exactly those (hard) lessons right now, as a (very) junior developer. I'd written a couple of CRUD-with-embellishments apps, using Django and Meteor. Now I'm staring down the length of my first non-framework JS app and learning huge amounts about software architecture, design, workflow, etc. It's intimidating, frustrating, and occasionally paralysing, but I can track my growth as a developer, rather then just tracking my app's growth.
- jon-wood 11y agoMy feeling on the matter is that the developer you want to hire is one who can write a decent framework from scratch, but who also knows its probably not the best use of their time. Extra points if they can identify the one time in a thousand they should be doing everything from scratch.
- matt4077 11y agoTrue – but: I think I never learnt so much so much in such a short time as when I started with rails. MVC, project layout, API design – a good framework can be an incredible role model for these higher-level concepts.
- mercer 11y agoI can highly recommend you go even 'lower' than that and use something like Express, or go framework-less. I did that once, and I learned to appreciate so much more why Rails/Django/whatever is built the way it is. I really think I became a better Rails developer, and a better developer in general, by dropping down to a lower level.
- elliotec 11y agoSinatra would be the Express equivalent for Ruby, and is very powerful and useful and illustrates these points. There is a lot more configuration with these types of things, but the tradeoff is the overhead that isn't bloating your stuff.
- mercer 11y agoThat, and I really think in hindsight the value of understanding things better and building 'from scratch' is immense. Once I built my own 'CMS' using express and RethinkDB, I had to also set up on a templating system (so I chose React server-side). I ended up using a bunch of other tools or technologies as well. All of these were on my list, but I never really found a good excuse to look into them. But now I had to pick something (as opposed to settling for HAML in Rails, or any of the other 'popular' approaches, and actually figure out what the advantages and drawbacks were, as well as how to tie all these things together. Not only was it fun in a way that building Rails sites often isn't anymore, it was incredibly educational.
- elliotec 11y agoI absolutely agree with this actually. Rails is a bit of a unicorn I think in that respect. You can create wildly amazing things without knowing much actual ruby at all, which is beautiful.