TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

I will now send this to beginner programmers

95 pointsby headlinealmost 3 years ago
A look at a common issue I see beginner devs go through. Probably the thing that weeds the most people out of development.

17 comments

dangalmost 3 years ago
This is not a valid Show HN. Please read the rules: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;showhn.html" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;showhn.html</a>.<p>We&#x27;ve taken &quot;Show HN&quot; out of the title now.
评论 #32453135 未加载
hardwaregeekalmost 3 years ago
Projects are great but there&#x27;s a deceptively challenging step in &quot;formulate a small and feasible project idea&quot;. It&#x27;s really hard to come up with a small and feasible project when you&#x27;re a beginner.<p>First, beginners don&#x27;t know what&#x27;s feasible. To a beginner all of programming is computer magic. There&#x27;s not a lot of difference to a beginner between training a machine learning system for classifying different apples and a proper auth flow with OAuth[1]. Second, beginners don&#x27;t have experience with product skills like scope cutting, setting milestones, etc. Some may say &quot;that&#x27;s all business nonsense!&quot; but the lack of these skills has an effect.<p>When I&#x27;d mentor underclassmen in college, they&#x27;d always say something like &quot;let&#x27;s build a mobile app that lets people create accounts for their pets and then uses machine learning to pair them with the best possible dog walker&quot; as their &quot;small and feasible&quot; project. And I&#x27;d have to be like woah there buddy let&#x27;s get us to &quot;a mobile app that lets you create an account and sign in&quot; first.<p>What I always tell people is that they should make an outrageously simple project. One of my first projects was a blog in Rails. That&#x27;s literally the first tutorial for Rails! But it turns out if you add stuff like comments and responsive design and deploy the blog, you end up learning a lot. Start stupidly simple and you&#x27;ll be surprised how much you learn.<p>[1]: <a href="https:&#x2F;&#x2F;xkcd.com&#x2F;1425&#x2F;" rel="nofollow">https:&#x2F;&#x2F;xkcd.com&#x2F;1425&#x2F;</a>
评论 #32447294 未加载
评论 #32447323 未加载
评论 #32447300 未加载
评论 #32448442 未加载
评论 #32447753 未加载
评论 #32447260 未加载
评论 #32447265 未加载
WoodenChairalmost 3 years ago
This misses a big part of why books and lectures are much more effective than the author presents. In books and lectures a practitioner is offering you shortcuts and advice to avoid pitfalls and accelerate your learning in a polished well thought out way (if the author&#x2F;instructor is good - big if). Sure, not everyone retains them. But for those who do they can practice by doing without banging their head against the wall as much.<p>My experience is that those who can pay attention to a book&#x2F;lecture <i>and</i> do plenty of practice by doing are the fastest learners.
评论 #32447430 未加载
unsafecastalmost 3 years ago
I mostly agree with this, but there&#x27;s one thing missing: beginners find it very difficult to come up with good projects. Just yesterday someone asked me for resources to learn how to write an operating system. It turned out he barely knew what a pointer is.<p>Doing stuff is the best way to learn, 100%. But recommending interesting and simple stuff to do is a huge help. Since they don&#x27;t quite understand computers, they also don&#x27;t quite understand the complexity of different things. I remember what kinds of things I wanted to do as a beginner, I thought I could do it all.<p>Also, a quick note: it would be great if you&#x27;d support prefers-color-scheme, my browser is set to light but I&#x27;m reading this in dark mode, which is harder for me.
avnigoalmost 3 years ago
I agree that working on a project is the best way to learn programming, but I have to emphasize: it&#x27;s the structured learning that ties it all together and allows you to get a better understanding on how to tackle such projects, whether self-learning or guided. You need to be methodically exposed to available tools, solutions, and common practices you may not have come across when working on a project.
klodolphalmost 3 years ago
&gt; Now, to be clear, nothing about this model is scientific, [...]<p>This one always gets me. I&#x27;ve been trying hard these days to give better, clearer, more actionable advice to beginners who want to learn how to program.<p>I think, at the most basic level, we understand that our estimation of how much we learn from some particular teacher&#x2F;course&#x2F;method is <i>wildly</i> inaccurate, and it&#x27;s a poor way to assess how effective that teacher&#x2F;course&#x2F;method is. Someone constructing a cute pyramid diagram is not much better.<p>It&#x27;s also not about maximizing retention. That&#x27;s a very one-dimensional way of looking at effectiveness. All of these ways of learning have their own place.<p>We DO have decades of qualitative and quantitative research into computer science pedagogy. We CAN do better than draw up a pyramid like this. It&#x27;s nice to acknowledge that the pyramid is not scientific, but why would we not then dig through the journals a little bit to find some papers on computer science pedagogy?
评论 #32448000 未加载
评论 #32447907 未加载
irrationalalmost 3 years ago
&gt; I don’t think anyone would disagree that actually doing a task is the best way to learn more about it.<p>Eh, for me, reading would be my 90%. I have almost a photographic memory for anything I read.<p>Audio-visual, demonstration, and group discussion are absolutely my worst ways to learn anything.<p>Practice by doing would be second to reading for me. Teaching others is helpful once I have read up on the subject, but is abysmal if I’m not already almost an expert on the subject.
elcometalmost 3 years ago
How is there a text <i>and</i> a link in this HN post ? I thought it was only possible to have one of them.
评论 #32447185 未加载
评论 #32447184 未加载
em-beealmost 3 years ago
<i>If you’re spending your time reading programming resources and following tutorials directly, regularly checking against a guide to ensure your program matches the example, you’re almost surely doing yourself a disservice. Your success in following a guide lies in your ability to grasp the concepts, not to type a working program.</i><p>i like tutorials to give me a starting point. when i want to build something that i don&#x27;t know how to do from scratch i look for a tutorial that builds something similar, and then start making changes until i get the result i want. that&#x27;s where the learning happens.
braingeniousalmost 3 years ago
I like how the percentages add up to 280%
评论 #32447167 未加载
评论 #32447234 未加载
alexashkaalmost 3 years ago
Who are these beginner devs? Do people actually get a bachelors degree and proceed to not work in the field?<p>Who are these people who take up a <i>craft</i> of creating software and need to be told to, create software, to get better at it?<p>Presumably, people who get into this, already <i>want</i> to create stuff. If they have some other motivation, I don&#x27;t want anyone telling them the &#x27;secret&#x27; :)
评论 #32447473 未加载
评论 #32447328 未加载
评论 #32448536 未加载
评论 #32448420 未加载
georgia_peachalmost 3 years ago
&quot;<i>Create Project Idea</i>&quot; seems a rather unnecessary step. We already have a canon of CS exercises (<i>sorts&#x2F;searches, trees&#x2F;graphs, parsers, ray-tracers, etc...</i>)--all of which can be easily verified against their more battle-tested counterparts, and serve as superior preparation for the inevitable leetcode interview.
评论 #32449239 未加载
35mmalmost 3 years ago
As a beginner programmer currently learning Django, the biggest challenge I have is working out how to structure data models (E.g what should be a separate model that is referenced with a foreign key, vs just a field, or a sub class etc)<p>Does anyone have any recommendations for learning good practices when designing these models?<p>But also not super academic data structures etc
评论 #32448190 未加载
评论 #32447904 未加载
throwoutwayalmost 3 years ago
For me it was learning by practice. I had to build something, get stuck, and then search till I found the answer and repeat until the thing was built. And the thing was never important but just something to practice on. Like “make a countdown clock”
jbverschooralmost 3 years ago
Most “programming” or at least where most of the value lies is actually data modeling.<p>It’s easy to explain data modeling (excel, sheet of paper). From there things start to make sense.
Traubenfuchsalmost 3 years ago
Congratulations, you reinvented Bloom‘s taxonomy.
na85almost 3 years ago
&gt;Chat room helpers often will try and lead you to discover the right answer yourself. It may feel frustrating, but play their game and you will learn. This is the discussion level of the pyramid.<p>I fucking hate this so much. You spend hours trawling through Google search results and finally decide the answer isn&#x27;t out there. Stack overflow is caustic so you don&#x27;t want to ask there. Hop on IRC and ask &quot;how do I do X?&quot; and now you have to deal with a bunch of &quot;well what happens if you do &lt;tangentially-related-thing&gt;?&quot;<p>Fucking answer the question or don&#x27;t offer yourself as a helper.
评论 #32447122 未加载
评论 #32448144 未加载
评论 #32447148 未加载
评论 #32447177 未加载
评论 #32448764 未加载
评论 #32447231 未加载
评论 #32447142 未加载
评论 #32447563 未加载
评论 #32447132 未加载
评论 #32447155 未加载