Hacker News new | past | comments | ask | show | jobs | submit login

Michael Hartl's Rails tutorial (https://www.railstutorial.org/) is a great example of this.

It'll run you through building a twitter clone and introduce you to git, heroku, a bit of CSS/HTML, and even goes into AJAX a bit.

I can't recommend it enough to people looking to get into rails.

Not only that, but for me what was super helpful was the "this is how real developers would approach this" in terms of covering lots of workflow things, design patterns, Git, unit tests, setting up your dev environment, sprucing it up with some gems, etc.

Can't recommend it enough.

This is the inspiration behind the book I am working on - Web Development with Go (see https://www.usegolang.com).

Michael's book is fantastic and I really wanted something similar for people getting into go. My book doesn't cover git or testing but that is because rails is a framework with tons done for you, and in my book you basically build all of that from scratch. You learn a ton, but it is long and adding git or testing would have made the book like 600 pages (instead of ~400ish).

If you are interested in Go I'd love to get your feedback :)

I subscribed to your blog and your newsletter some months ago, and I must say I like what you do. Although I'm focused on C++ now for some courses I'm taking, I still hope to catch up on Go later, and I think your book will be helpful. Personally, I wouldn't mind a hands-on exploration of a programming language having some pages, and links to good resources, on version control. Learning 'git' in such practical way (as part of a project) seems better to me (Harvard's CS50 now takes that approach too: https://github.com/blog/2322-how-cs50-at-harvard-uses-github...).

Feel free to email me if you want to discuss this in more detail. I'm not opposed to something like this but I suspect a video format may work better. jon@calhoun.io

I've been planning to get into Go so the book looks interesting. One question though: How far into the book do you introduce tools for automated testing?

This book doesn't cover testing at all. I wanted to, but there just wasn't room for it and it would have lead to information overload.

What I am thinking about doing is writing a companion book that covers git, testing, etc. Eg after every chapter the companion book then walks you through writing tests, committing to git, merging it into master, etc. That way someone could optionally choose to do those things along the way. I might also experiment with other formats, but time will tell.

I love that book and recommend it to anyone. The only thing I don't really like is its focus on MiniTest when practically everyone in the Ruby ecosystem has moved to RSpec. If I had to find a reason for this choice I'd say, one less gem to install and configure, and again convention over configuration.

I think MiniTest is a good starting point even if you end up going with Rspec, as MiniTest/jUnit style testing feels a little bit lower level. In the same sense, the book implements authentication from scratch, whereas many apps will end up using a library like Devise.

> I don't really like is its focus on MiniTest when practically everyone in the Ruby ecosystem has moved to RSpec

Is this true? I know RSpec is the popular one in open source, but last I checked the two were still pretty even as far as big name recommendations. I used to believe RSpec was the default when I first started Rails development, but as a professional dev I had seen plenty of Minitest implementation.

It's been a while since I went through it, but did the tutorial not originally use RSpec, then switch it out at about version 4 (along with a few other tools) so that everything in the book made use of the most basic, out-of-the-box tools (as much as possible)?

I am interested in the heroku part, but I would like that for different services. Like Amazon, Digital Ocean (I used it for single VPS but I'd like to see how to set up different vps, connect with each other, do vertical and horizontal scaling, etc).

Any recommendations in this area?

Packer + Docker + custom cloud elastic stuff.

You can use docker compose and swarm but at some point you need to interface with how the cloud offering does elastic scaling (for example google has instance groups and deploy templates).

I haven't seen a good resource on this last part other than PaaS/IaaS doc itself. So I am curious as well.

There sort of needs to be a packer of deployment + composition but I suppose that is what chef and puppet are sort of for (I despise those tools).

is there something similar to this but for python based frameworks, or javascript based? Seems like every great tutorial / books that I find are using ruby

Django has good tutorials, I don't know about building "one app" though. I'm sure you can find some of lesser quality; Hartl's tutorial is one of the very best.

If you don't mind drawing out your learning process, you could walk through Hartl's tutorial and do the equivalent in Python (probably with much help from google). So you couldn't use his code examples, but you could set up the same DB structure, the same types of tests, etc, and hit all the important parts of the web dev process.

Edit: found this in another comment below. Just thought I'd include it in case you gloss over it! https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial...

Django Unleashed is written as a step-by-step guide to building a single Django project. The link below has links to Amazon or to Pearson's own site (DRM-Free!).


Full Disclosure: I'm the author.

If you're looking to go nuts, I recommend reading the first twelve chapters of Django Unleashed, following it up with Harry Percival's Test Driven Development with Python book (also written as a step-by-step guide), and then finishing Unleashed.


Two Scoops of Django (not a guide) is great to have after that.


Hope that helps!

The closest thing I know of is Test-Driven Development in Python. http://chimera.labs.oreilly.com/books/1234000000754

It goes through making an app in Django, but is heavier on TDD than Hartl's book.

For what it's worth, it's fairly agnostic when it comes to languages or frameworks. Yes, you'll learn Rails, and some Ruby on the way, but the intent is to learn web development from the ground up. You'll learn concepts that will apply to anything else you might be using. It's invaluable, and a great place to start with web development.

This is also the first thing that came to mind for me. One of the finest web dev tutorials ever written.

I loved it so much that I bought the movies just to make sure he earned something from me for such an extraordinary piece of work.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact