Live data from Hacker News

I will now send this to beginner programmers

headlinedev.xyz

71–76 of 76 posts

Re: I will now send this to beginner programmers

#71

Earlier quoted context omitted.

Overscoping a beginner project is completely harmless. The worst thing that can happen is that you get stuck along the way and realize that a feature is much more difficult or out right impossible. You then cut that feature or give up on the project if you've sunk enough time into it. Fortunately, actual delivery of a beginner project is pointless. The only point is to learn by doing and you accomplish that regardles…

I disagree - a beginner who gets stuck for too long is very likely to give up trying to learn. Yes, the learning comes from failing and eventually understanding. But that doesn't _feel_ like progress, what feels like progress is completing stuff and moving on. And if it doesn't feel like one is progressing, the incentive to continue is reduced.

Overscoping doesn’t imply you’ll get stuck. It just implies you won’t finish it anytime soon, and probably will start something else at some point. When I started programming, I learned a ton from projects I never finished as originally intended.

The most important thing is choosing something to build that you are excited about. If that means overscoping, it’s still better than selecting a smaller project that however you find boring.

Re: I will now send this to beginner programmers

#73
post #67

Earlier quoted context omitted.

There are multiple things that come to mind, that you can look into, perhaps find a good explanatory text or video about: ERM - Entity Relationship Model 1., 2., and 3. normal form for relational databases (usefule to avoid redundancy and designing it, so that it can be extended later, and avoiding pitfalls like non atomic values). User stories and thinking about, whether they can be comfortably implemented using the…

Thanks! I’m trying to define a product model which can have multiple types, each of which has required attributes. For example a solar panel has to have a peak output, but no energy storage. But a battery type of product is required to have a storage capacity.

Probably the whole picture of how you want to use the data in your database needs to be considered to judge this properly. There are "escape hatches" like having a separate entity, which is called something like "ProductAttribute", with a foreign key being the actual "Product". The Product would still have attributes, which every product has, lets say a name, a product id, a creation date, etc., while ProductAttribute could contain any other attribute, not relevant for all products.

Why is this an "escape hatch"? Well, if you want to process that data later, it would most likely be very convenient, if you had all product attributes as columns, instead of having them as rows in another table. One would then have to translate back to the usual form of having them as columns. It is possible, but annoying. However, if you never need to analyze the data like that, then storing in this kind of extra table might solve all your use cases. It is ultimately a trade-off between safety or type strictness and flexibility (being able to add arbitrary attributes without having to change the schema).

Another, but in my opinion quite bad, solution is, to have loads of empty columns for future attributes. But it is really a terrible solution, running contrary to any good database design.

Re: I will now send this to beginner programmers

#74

Projects are great but there's a deceptively challenging step in "formulate a small and feasible project idea". It's really hard to come up with a small and feasible project when you're a beginner. First, beginners don't know what's feasible. To a beginner all of programming is computer magic. There's not a lot of difference to a beginner between training a machine learning system for classifying different apples and…

Overscoping a beginner project is completely harmless. The worst thing that can happen is that you get stuck along the way and realize that a feature is much more difficult or out right impossible. You then cut that feature or give up on the project if you've sunk enough time into it. Fortunately, actual delivery of a beginner project is pointless. The only point is to learn by doing and you accomplish that regardles…

It depends on whether the beginner has the mindset of "oh well I'm stuck, guess I'll do a different project/cut scope/ask for help" or has the mindset of "oh well I'm stuck, guess I'm not cut out to do projects"

Re: I will now send this to beginner programmers

#76
post #65

" Create Project Idea " seems a rather unnecessary step. We already have a canon of CS exercises ( sorts/searches, trees/graphs, parsers, ray-tracers, etc... )--all of which can be easily verified against their more battle-tested counterparts, and serve as superior preparation for the inevitable leetcode interview.

Learners need projects they care about, project they feel ownership about. Most students aren't motivated to do some standard project. In formal education, we make them care about these standard projects by giving credit. But that sort of extrinsic motivation isn't that helpful for deep learning, I've found. It'd be better if a student has a problem they truly care about, somehow. Unfortunately, turning their need in…

wax on, wax off
Post reply on HN