Hacker News new | ask | show | jobs
by jitl 2094 days ago
If you actually want generalist web dev skills applicable to almost any web startup, learn Rails. There are tons of resources, and the Rails 1st party docs are a good starting point. Rails will set you up to learn SQL modeling, MVC pattern, CRUD basics, api design, etc without putting you into library selection paralysis which happens quite a bit in the JavaScript ecosystem, and you can replicate the architecture easily in Express/Node if you need to later. So, it’s a “paved road” towards familiarity / mastery of web development where there’s always a clear next step and obvious choices to accomplish your goals. Ruby isn’t too “hot” any more these days but it will massively simplify your decision tree. The JS ecosystem still has nothing to match the productivity of Rails.

AWS/GCP are tools to achieve some goal. It’s hard to suggest learning those until you have some kind of app that has needs served by a cloud provider.

Blockchain is something of a meme. No startup has succeeded in the “blockchain” space other than in “selling shovels in the goldrush” sense.

(Native) mobile app development is somewhat involved, plus there’s 2x as much to learn because there’s two different mobile platforms. I wouldn’t suggest investing time there as your first area. I found it quite impenetrable until I had a chance to learn it in a work context.

2 comments

I agree with this - I did udacity's original cs101 (http://www.cs.virginia.edu/~evans/cs101/), then cs253 on web apps, taught by Steve huffman, the co-founder of reddit. Then when my co-founder and I decided to work on our first startup, we decided Rails was the best option for noobs like us, and it probably took us just a few weeks to learn the basics of rails because we'd already completed cs253, I think it might have been harder if we had tried to learn it straight away. But rails was enough for us to build a telemedicine web app, and it wasn't until around 6 months later when our view was starting to turn into a mass of jQuery spaghetti that we started to learn and apply react. jQuery is great for doing simple user interactions in the browser, but as you try and build more complicated functionality, react is a much better tool for the job.

I agree about staying away from mobile to start with if at all possible at the beginning.

No rush, but sometime after or while learning rails, definitely take a look at the book "beginning database design" by Claire Churcher. It's the best book I've ever seen to learn how to design your database schema for a sql database. But you don't need it until you've at least made a few web applications, and like my experience with react, the best time is when you are trying to figure out what format to store all your data, and finding it too complex - that book gives you a great way of thinking about the problem that simplifies things greatly.

As a dilettante Rails amateur, I can also vouch for Rails in general compared to JS-based stacks. Having tried React ('cause it's trendy), I still feel like it's nowhere near Rails to create simple CRUD apps.

Thanks for the SQL recommendation — that's something I've personally struggled with in trying to move up from noob to intermediate.

Modelling things properly seems to be one step on the ladder that the Rails doc won't cover in sufficient depth, even though the tool provides simple ways of doing the task once you understand what you're doing.

I'd agree with this idea, but Rails isn't the only game in town. Laravel has huge market share, and livewire + alpinejs is an awesome stack.

But there's also django if python is more your style. I like rails, just saying for quick projects I'd advise people to look into each of the 3 big frameworks (laravel, django, rails), maybe try out a demo of each and code a little to see which you like better.

Laravel's new jetstream starter is amazing as it creates an entire SaaS app in a few commands. Compared with Rails where devise/authentication is a diy solution, sure it's pretty straight forward, but having auth at it's core gives laravel a leg up over rails. Also caching, queues, mail, there's a lot of niceties built into laravel that rails needs 3rd party packages for, albeit there's also tons of laravel packages.

I recommend packalyst.org or larablocks.com to discover the best packages to use and that are currently being supported.