TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Tips for Self-Learning Programming

216 点作者 hiphipjorge超过 8 年前

18 条评论

ChicagoBoy11超过 8 年前
I&#x27;ve studied digital media design for learning, and I have to admit and I think that the thing that most people overlook is constructing proper scaffolding so they can bootstrap themselves as they learn.<p>The fact is that there is such a wealth of resources out there that beginners often-times quickly get derailed. The most important thing to start is actually to try to find a way to dull out the noise and actually learn solid principles. Someone trying to get into web development today can quickly spend a week trying to set up Babel and PostCSS and get tremendously discouraged before they realize they are actually going about it the wrong way.<p>My suggestion to people who are new to coding is to actually go into a domain where that ISNT going to happen. If you have the motivation&#x2F;time, don&#x27;t try to learn to program by learning web dev. Instead, pick something like &quot;Think Python&quot; or some other resource that you can use as the CANONICAL resource for truth, and that will give you a linear path to progress to. Your advice about doing it yourself and pushing and the 80&#x2F;20 rule is all gold, but I think it will be met with limited success if a person doesn&#x27;t have a clearly established guiding path like that from the getgo.<p>And once that friend gets comfortable enough with programming principles and wants to then explore specific application domains, I would again make the same recommendation as before. Find that ONE canonical resource that can move you to the next step, and proceed with it as your bible until you have enough under your belt that you can then go out and explore concepts -- which you now can hang onto the solid foundation you built. For web, for instance, Steve Huffman&#x27;s course at Udacity is pretty excellent at giving you the barebones of how a web application works. Do that. Forget styling, forget responsiveness, forget everything... but use that as your one-stop-shop to understand how a website works. Ok, now do your own. Ok, now explore that a little. Confident enough? Great, find another canonical source for SPAs. ng-book is great if you want to do angular (and I&#x27;m sure their react book is just as solid). Done all the examples in the book and feel confident? Ok great, now go read blogs about these things. Lather, rinse, repeat.
评论 #13149166 未加载
评论 #13184426 未加载
评论 #13156553 未加载
marclave超过 8 年前
Best tip is to find a problem you want to solve, and use programming as the solution! Pick a language you&#x27;re interested in and just go at it! Best advice I have.<p>I started off writing an instagram bot <a href="https:&#x2F;&#x2F;github.com&#x2F;marclave&#x2F;InstaBot" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;marclave&#x2F;InstaBot</a><p>Recently I interned at tesla writing firmware for the Model S<p>Doesnt matter how you start, its just that you start :)
demoonkevin超过 8 年前
Great article! I started by learning Python instead of the typical HTML-CSS-JS way. So I can build nice scripts to do nice stuff (like scraping, analyzing social media data, conecting multiple APIs to do whatever, etc.) but I can&#x27;t build a simple good looking website lol. Btw, I don&#x27;t know if I regret, because now I&#x27;m learning front-end and I think it&#x27;s easier for me now that I know some good stuff on a backend language, and even better, because I write my front-end code while I&#x27;m thinking about my back-end (and how to connect each other), and vice versa. So I think there isn&#x27;t one way to learn to code, there are lot of ways, and the good thing is that each way can bring you to very different scenarios.
enturn超过 8 年前
The best tip I&#x27;ve seen for learning programming is to code along with videos, while also trying to predict what the presenter will code. Doing that allows you to get going quickly without too much frustration. I like that I can experiment and ask myself questions but still have a working program at the end.<p>The article I read about this is at <a href="https:&#x2F;&#x2F;medium.com&#x2F;learning-new-stuff&#x2F;a-simple-technique-to-learn-hard-stuff-ffaa7879bf7c" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;learning-new-stuff&#x2F;a-simple-technique-to-...</a>
评论 #13151111 未加载
3minus1超过 8 年前
IMO there&#x27;s not that much you have to learn to cover the fundamentals of programming: variables, arrays, control statements, and functions. When I&#x27;ve worked with deficient programmers in the past, they seem to struggle on this level. I think if you can master the fairly limited fundamentals, you&#x27;re basically set. True no one will want to hire you without experience, but you will already be a better than average programmer.
评论 #13151104 未加载
gernest超过 8 年前
I have been thinking that maybe I was wrong on what I thought I did to become a Programmer.<p>Probably, It wasn&#x27;t the right answers I found on google, or the help I got from friends that made me to learn.<p>Perhaps it is the wrong solutions, wrong implementations, bad design choices that made me learn. The main focus is making it right, but there are thousand ways of making it wrong.<p>What I&#x27;m trying to say is, maybe this story about Thomas Edison( I picked it up from the internet a while ago so I don&#x27;t have the link for it, I&#x27;m not so sure if he even actually said this ).<p>&quot;I have not failed 1,000 times. I have successfully discovered 1,000 ways to NOT make a light bulb.&quot;<p>So, fail fast, fail often until you realize your next implementation won&#x27;t be subject to your previous failures then you will learn( and probably be enlightened)
ajarmst超过 8 年前
I&#x27;m often baffled by why it is that Programming is one of the very few (perhaps only) academic disciplines or technical proficiencies where learning without the assistance of another, more expert, human being is not only accepted, but encouraged. I expect it&#x27;s because we&#x27;re a young discipline and there are enough people around who did teach themselves and aren&#x27;t critical about whether they might have done better with a teacher. While it&#x27;s certainly possible to learn programming on one&#x27;s own, that approach is fraught with the same problems that learning advanced maths, physics or martial arts on one&#x27;s own would be: you&#x27;re apt to miss (or never even encounter) foundational ideas and techniques, develop idiosyncratic or even inappropriate approaches, be unfamiliar with key theory, etc. My experience with several generations of programmers is that the self-taught can be excellent programmers, but they also tend to not play well with others, have difficulty integrating their code into larger projects, and sometimes wander off into territory (and algorithms) a more formally trained person would know to avoid. They also have a lamentable tendency to reinvent the wheel, and to be unable to effectively argue for or against a particular approach on the basis of objective criteria. So, while it&#x27;s possible you&#x27;re the Computer Science equivalent of Ramanujan, it&#x27;s much more likely you&#x27;re not.
评论 #13149650 未加载
评论 #13149443 未加载
评论 #13149499 未加载
评论 #13149430 未加载
评论 #13152022 未加载
评论 #13149616 未加载
评论 #13151409 未加载
评论 #13149893 未加载
评论 #13149632 未加载
评论 #13151347 未加载
评论 #13151119 未加载
grecy超过 8 年前
I&#x27;m a Software Engineer, and the more things I learn to do in life, the more I think the follow is the most important.<p>&quot;Don&#x27;t focus on the doing, that&#x27;s easy. Focus on the planning and bigger picture&quot;.<p>In programming, the actual syntax and doing is simple to learn, and SO and Google make it easy to figure out problems. The hard part is the design - how do components work together, how does your system interface with other systems, etc. etc. Focus on that.<p>Before you start coding, think about the design.<p>Now I&#x27;m doing other things in my life, I see the same applies to writing (don&#x27;t just start writing - think about what you want to say and HOW), photography (pushing shutter is easy - what are you trying to say?), videography (same), house building (need a good plan before hitting in nails) etc etc
emodendroket超过 8 年前
This isn&#x27;t helpful, really.<p>The hardest point of learning programming, especially doing it yourself, is going from &quot;OK, I understand the basic concepts and I can easily do exercises in the textbooks&quot; to &quot;I can take some sort of novel problem and decide how to solve it and then implement a solution.&quot; Unfortunately it&#x27;d take someone more clever than me to figure out how to actually teach that skill to beginners reliably. I think that&#x27;s where many quit.
评论 #13151901 未加载
kahrkunne超过 8 年前
He basically hit the nail on the head. The short version I always tell people is &quot;Read a book, do the exercises, then code something with the docs, google and SO on the side. Repeat until you don&#x27;t need SO and the docs that much anymore, but never be ashamed to use them&quot;. As far as I can tell, this, or some variation on this, is the only real way to code.
viksit超过 8 年前
I took this to mean &quot;teaching machines how to program themselves&quot;. Ah well :)
crashbunny超过 8 年前
&quot;There are two types of programmers: perfectionists and hackers [who] just want the thing to fucking work, even at the detriment of the codebase.&quot;<p>are you using the term hacker right? unless hacker has changed meaning, I think not.<p>linus and other kernel programmer who strive to write as correct and maintainable code as possible (at least used to) proudly call themselves hackers, and refer to what they do as hacking.
评论 #13150418 未加载
评论 #13151137 未加载
partycoder超过 8 年前
I taught myself programming at age 9 with no Internet access. Today there are many more resources available...<p>You can find tutorials for almost any language in YouTube. Then, you have large communities in IRC servers such as Freenode that are very helpful.<p>Then, get Zeal (or Dash, etc) and some documentation for whatever technology you are working on.<p>Koans can be a good way of getting used to a language as well.
amingilani超过 8 年前
Couldn&#x27;t have appeared at a better time. I&#x27;ve been stuck at a codewars challenge for hours. I guess i&#x27;ll just bite the bullet and unlock the answer.
roflchoppa超过 8 年前
i always found that IRC&#x27;s have individuals that should be able to get you sorted into the correct direction... or when you just need humans to talk to.
PleaseHelpMe超过 8 年前
@hiphipjorge can you help invite me to lobster?
erikbye超过 8 年前
If you want to learn how to create bloated and slow applications and just how to use frameworks and crappy APIs, then please do start with web dev. The world really needs another social &quot;service&quot; or task list manager.<p>If you want to learn programming and how the machine works you start with C. The best part is that C is a small language and you only need a single book to get started. Once you&#x27;ve got the hang of basic principles, you write little toy programs, web server, proxy server, parsers, etc. When you learn C you also focus on what&#x27;s important, which is solving the problem, and creating instructions that align with how the CPU works, and you avoid all these traps of wasting time learning how to scaffold abstraction (like OOP) instead of writing code that actually does something.<p>During this early period in your learning you should be focused on this, and not read arbitrary blog posts or watch arbitrary talks on what&#x27;s the &quot;best&quot; programming practices... You should not be frequenting Stack Overflow to pick up bad habits from seemingly correct answers to the wrong questions. Remember, you don&#x27;t know shit, who are you to judge what&#x27;s right or not in an accepted answer? You will be brainwashed by all this crap out there.<p>Now, depending on why you want to learn programming, you can start heading in that direction. The way to really learn, is bite off more than you can chew, but it has to be a project you really care about. You will learn as you go. I advice you not waste too much time, especially on &quot;tutorial videos&quot;, just copying code someone else wrote will teach you a lot less than figuring out the correct code to write on your own. It&#x27;s incredible how helpless people learning today have become compared to how things were figured out in the old days. When people actually learned how to write an interpreter or something like that just out of reverse engineering another. So, don&#x27;t sell yourself short.<p>You have to think about this kind of like how most people get confused when it comes to all these contradicting articles and research on health issues and what you should or shouldn&#x27;t eat, the best exercises for this or that. All the shit people say and write about programming, it&#x27;s kind of like that, only worse.<p>Pragmatic programming is actually very simple and straightforward, I have been programming since I was 12, and at this point, I would call the actual act of programming mundane, because it&#x27;s just typing in these simple instructions following the rules of this dumb thing (CPU). It&#x27;s all these shitty abstractions and layers of complexity people introduce that makes it... tiresome, not difficult. For beginners it must seem very convoluted.
hiphipjorge超过 8 年前
I posted + wrote this article. I&#x27;m disappointed I&#x27;m in the front page of HN and there&#x27;s not a single comment here. Not even a &quot;Nice article!&quot;, or a &quot;Stopped reading after the 5th grammar mistake&quot;, or a even &quot;This guys doesn&#x27;t know what he&#x27;s talking about because X&quot;!<p>People hate on the comments section on HN, but the silence is much worse.
评论 #13149062 未加载
评论 #13149104 未加载
评论 #13149086 未加载
评论 #13149742 未加载