4 ms·
It probably sounds like I'm just being a shit, but any kind of anything is better than every kind of nothing. If you're hanging around here, you've probably se
by abathur 11y ago
It probably sounds like I'm just being a shit, but any kind of anything is better than every kind of nothing.
If you're hanging around here, you've probably seen the advice again and again in terms of projects: get something (terrible) working, and start iterating. A working project in the wrong language is almost always better than not having a project. Programming languages/tools are similar. Thinking about the "right" language or framework before you start is putting the cart before the horse in a big way.
The reason for both of these is that most of the "hard" work is actually not the code itself. In the case of a project or product, the "hard" work is figuring out what to build and how it should work. In the case of becoming a better programmer, the language or the framework is only a slice of what you learn by building a project.
Almost inevitably, regardless of the technologies you use, you'll make some decisions you'll wish you hadn't in a few months/years. This is especially true when you're starting out. A project rewrite is usually faster than the initial creation, and you'll tend towards picking up additional languages/frameworks faster than the one(s) before.
- abathur 11y ago* This isn't to say I don't do the same thing; knowing when it's time to stop reading and start working is one of those things that lurks beyond the narrow slice of the language or tool. Over time you learn that all of the X vs. Y debates are largely a matter of taste or idiomatic requirements; those opinions are a byproduct of working with X or Y and seeing its shortcomings and failures. The primary value of public opinion when you don't have the experience to evaluate the pros and cons those decisions hinge on is just knowing that something is good enough to use.
- starshadowx2 11y ago"the "hard" work is figuring out what to build and how it should work" That's something I like to think I'm good at. For my major project I have a 6/7 page planning document that I've been working on, and I have design mockups made. I think I know pretty well what I want to build. I really would like to just start/try with something, but I'm worried that could end up being a "death sentence" in the future where I find out I just wasted a few months learning something that doesn't work or help me succeed.
- rahimnathwani 11y ago"I really would like to just start/try with something, but I'm worried that could end up being a "death sentence" in the future where I find out I just wasted a few months learning something that doesn't work or help me succeed." I'm assuming you're building a web app. Both Rails and Django work. There's plenty of evidence that they work, and that people can learn either of them as they build. Just toss a coin: heads->Rails, tails->Django. If you chose Rails, start with 'Learn Ruby the Hard Way', and then progress to Hartl's Rails Tutorial. If you chose Django, start with 'Learn Python the Hard Way', and then progress to the official Django Tutorial, and then to the book 'Two Scoops of Django'. You don't need to worry that you're wasting time. It's the worrying itself that is wasting time. Just toss a coin and get started. (Many of us have been where you are.)
- starshadowx2 11y agoI've eyed Rails a bit and it's something I'm going to look more into. I just wasn't sure if it was what I was looking for. If it's good for a web and mobile app then that's great, and I guess it can do both front and backend so that seems pretty good too. Would you say it's a better choice for my situation than going with some form of JavaScript?
- rahimnathwani 11y agoDon't overthink it. Just start. For your situation, I would pick Rails or Django. There's no reason not to start with one of those. If you decide you want to use JavaScript, then your next post on HN might be in one year: "I've been trying to learn JavaScript for the past year, but I'm struggling to get anything built. Every time I think I get it, I read about another new stack which is meant to be better than the last. I started with just JQuery, but then Backbone, and then Angular. Then I heard about React and decided to start again from scratch. But I can't get past the todo app examples..."
- abathur 11y agoI think you're still talking about a small slice of what you can learn by getting your hands dirty, even if it's all "wrong" and you learn a language that can't be re-used. The "slice" thing is especially true early on. Rather than a "death sentence", try imagining the 1-10 scale of outcomes a year from now is like: 10: knowing how to accomplish real work on a project with proven economic value in a language with infinite high-paying jobs available 7: knowing how to accomplish real work on a non-commercial codebase in an obscure language 3: having an elaborate plan but no work 1: having nothing