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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Programming FAQ

54 点作者 rayvega大约 15 年前

11 条评论

binarymax大约 15 年前
If someone never programmed before, and had little concept of programming fundamentals, then I would highly recommend starting with my favourite simple language: Logo.<p>The thing about logo is that it was specifically designed as an educational language. It teaches the basics of syntax, commands, variables, and functions, and it offers instant gratification. It is very easy to see how a computer can follow very simple programs, and if you do something wrong you see it immediately. Once they've mastered the fundamentals of logo (which should only take a couple hours) then I would have them move on to a full blown language.
评论 #1201275 未加载
评论 #1202217 未加载
评论 #1202008 未加载
revorad大约 15 年前
I find the RAQ more interesting - <a href="http://www.paulgraham.com/raq.html" rel="nofollow">http://www.paulgraham.com/raq.html</a>
评论 #1201102 未加载
danparsonson大约 15 年前
&#62;But if I were trying to solve the problem one reader sent to me as a canonical example of an OO problem, I wouldn't. Suppose you have n serial ports, each of which may speak one of k protocols, and this must be configurable at run-time. I'd just use an n-by-k array of closures to represent this.<p>Can anyone enlighten me about this? My first thought is that n+k units of code is less than n*k, but I expect it's more subtle than that :-)<p>What about code reuse? In OO land, it's fairly obvious to me that I could take any number of my protocols and use them across a TCP/IP connection, or carrier pigeon, or a file, but I can't see how the closure example would allow this sort of sharing. Is that the point? Only code what's necessary?
评论 #1201053 未加载
评论 #1200868 未加载
arethuza大约 15 年前
Using vi to edit lisp is an interesting choice - I've got the vi commands hardwired in my brain now after using them for 20+ years and I've written a lot of Lisp but I don't think I've ever written any Lisp in vi.
评论 #1201008 未加载
评论 #1201893 未加载
Kilimanjaro大约 15 年前
If you have never programmed before, I'd recommend you to start with html, then css, then javascript, then javascript on the server, then sql, then stop. Go back to the beginning and master every one of them.<p>Then in your spare time learn lisp.<p>The formers will give you money; the latter, enlightenment.
评论 #1201801 未加载
sesqu大约 15 年前
<i>As you learn the mechanics of writing and running a program, start thinking about specific programs you want to write.</i><p>This is what I never managed. I picked up programming very fast at school, but could never come up with anything I'd want to use it for. Now that I finally have a few concepts I want to see done (good UIs to promising algorithms), I no longer have the time to pursue them.<p>That's part of why I believe kids now should start with html+js+css and be introduced to greasemonkey, stylish, and browser extensions. Maybe Node.js, too. Everyone uses some site a lot, and they will find problems in those sites to attack with their new knowledge.
Autre大约 15 年前
It keeps hitting me as a contradiction these two suggestions, namely: a) that you have to understand design to be a good hacker; and b) that planning is overrated.<p>How can you get to a good design without some plan? Could someone shed some light?
评论 #1200953 未加载
评论 #1200858 未加载
ntoshev大约 15 年前
&#62; <i>you have to understand design to be a good hacker</i><p>If PG means graphical design, I don't think this is true. Looking at the list of hackers in Coders At Work (as a random sample of respected programmers), it is not clear if any of them understands graphical design and they typically have ugly homepages.<p>(Jamie Zawinski, Brad Fitzpatrick, Douglas Crockford, Brendan Eich, Joshua Bloch, Joe Armstrong, Simon Peyton Jones, Peter Norvig, Guy Steele, Dan Ingalls, L Peter Deutsch, Ken Thompson, Fran Allen, Bernie Cosell, Donald Knuth)
评论 #1201225 未加载
评论 #1200838 未加载
评论 #1201836 未加载
edw519大约 15 年前
Sorry, but I couldn't resist, I'm pretending that someone asked me those questions...<p>Programming FAQ by edw519<p>What editor do you use?<p>Textpad.<p>How can I learn to program?<p>Find a customer with unreasonable deadlines. Hit them. Repeat. It won't be pretty, but you'll be the kind of programmer I'd go into battle with: great at the things that really matter and mediocre at the things that don't.<p>Why do you advise plunging right into a programming project instead of carefully planning it first?<p>It's incredibly difficult for anyone to define what they want when they start with nothing. It's human nature (incredibly easy) to criticize what you have and how to make it better. Plunging right in and producing anything raises you from LevelIncrediblyDifficlut to LevelHumanNature.<p>Why do you keep going on about PICK?<p>I have a very small back pocket that holds everything you need to program in PICK. Whatever you can do in technology &#60;x&#62;, I can probably do in PICK, often quicker and easier.<p>Isn't object-oriented programming naturally suited to some problems?<p>Sure, but that doesn't necessarily mean you have to use formal object-oriented technology. You can mimic the concepts with almost any technology.
评论 #1201880 未加载
评论 #1201698 未加载
hristov大约 15 年前
I wonder what pg thinks about Haskell vis-a-vis Lisp and his own Arc.
评论 #1200861 未加载
maigret大约 15 年前
I stopped at the first answer. Half ironic :)