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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

The Hacker's Path

149 点作者 mklappstuhl将近 14 年前

23 条评论

strlen将近 14 年前
I'd suggest learning C as soon as a basic grasp of programming (variables, condition, iteration, basic data structures and abstract data types) is there. C is the lingua-franca of programming: advanced algorithms are often implemented in C (or in C like languages), other language concepts are often expressed in terms of C language concepts. "Gold standards" of systems programming are the C POSIX API and BSD sockets (best books on network programming use C for all of their examples). Learning UNIX and the GNU tool chain is also important.<p>Learning a non-imperative languages is also vital: most importantly Lisp such as Scheme and a strictly and statically typed functional language with type inference like Haskell or ML.<p>As for Ruby vs. Python, it's an implementation detail. The languages are close enough as if you know one, you can learn the other when you need to (at a new job, or when there's an open source project you'd like to contribute to). Make sure to be fluent in one, however, as "scripting" is a vital skill (especially if you have to deal with a production environment or build/release tooling).<p>Same principle as Ruby vs. Python also goes for Java vs. C#. I would, however, suggest learning C++ and/or (one of) Java/C#, as they're rather widely used in industry (and not just for legacy work).<p>Important thing is understanding the fundamentals and seeing the overall patterns.
评论 #2561694 未加载
评论 #2561476 未加载
postfuturist将近 14 年前
OK, _why is amazing, but the Poignant Guide is really not the best place to learn Ruby. It may be for some, but I have to be honest, it diverges so much into madness and a pointless, meandering storyline for so long that I couldn't bring myself to finish it. I've spoken to others with the same experience. Maybe the first few chapters are worth reading, if only to get references like "chunky bacon". I suggest the pick-axe book for some good Ruby learning.
评论 #2561205 未加载
评论 #2561673 未加载
评论 #2561102 未加载
评论 #2561107 未加载
onan_barbarian将近 14 年前
Once again, my reaction: "What is this I don't even"<p>Amateur hour gibberish.<p>This was just as stupid as the last time it was posted. Same shallow treatment. Same jokey stuff about becoming 'the master'. Same name-checking of a few books that this guy has vaguely heard about ("The Dragon Book is teh awesome") and not read.<p>This would be charming if it were rewritten without the pretentious gibberish and sexism as a 'what worked for me, a newbie myself' type post.
rednum将近 14 年前
There are some problems with rendering this text in Chromium - words around some of the punctuation overlap. Also, I think that ESR's guide is much more informative: <a href="http://www.catb.org/~esr/faqs/hacker-howto.html" rel="nofollow">http://www.catb.org/~esr/faqs/hacker-howto.html</a><p>The OP omits some of the points I consider important - problem-solving attitude, low level programming, learning unix. Also I think that starting with <i>both</i> Python and Ruby is a bit strange idea - they are really similar (in almost every way I can think of) and such course of learning may cause some confusion (e.g. which pieces of syntax belong to which language?).
评论 #2563880 未加载
评论 #2561732 未加载
naner将近 14 年前
Has anyone actually been successful following a similar path? Has the author actually read all these books? This is just a list of books on programming languages and tools. Why am I learning Ruby and Python? Why am I avoiding relational database servers and learning SQLite? Nothing is explained.
评论 #2561229 未加载
评论 #2561709 未加载
agentultra将近 14 年前
<i>Teh Womenz</i><p>I'm rolling my eyes right now, just so you know. I'm sure EVERY programmer should really be interested in "teh womenz."<p><i>OTHER HOBBIES FOR FUCK SAKE</i><p>Now my head is firmly planted in the palm of my hand. You seriously can't tell them apart they're so embedded. I don't know when that started happening, but it's really quite remarkable.<p>People program as a hobby. It's how a lot of free software gets written. It's how people learn.<p>Here's a simpler guide to "becoming a hacker":<p><pre><code> 1. Read a tutorial (note: not a big honking book or anything listed on in the article. not yet.) 2. Implement the most simple possible number guessing game 3. Think of ways to improve the game and implement them 4. Get stumped on something, refer to the language documentation, or google as a last resort 5. Repeat 3-4 until you've exhausted all your ideas 6. Find a slightly more ambitious program to write. An address book is a good start. Repeat 3-4 until you have a decent address book program 7. Repeat 6 until you have a handful of small programs under your belt 8. Now pick a book to read, pick the parts that interest you, do the exercises if there are any, and take notes 9. Apply what you've learned to improve your programs; if you notice some marked improvement (readability, performance, your own productivity), retain that theory. if there was nothing gained; repeat this step or abandon it and move on 10. Start building non-trivial programs, forking open source projects, and write more code. Do some coding puzzles once in a while </code></pre> For any new language, start at 1.<p>I am generally against starting with books. Especially for people who are interested in programming but haven't already figured out how to write and compile a few simple programs on their own. These sorts of people aren't even sure that they will like it, so throwing a thick meaty book filled with a whole bunch of nonsensical programmer-speak isn't going to really entice them. I say wait for the books until you've gotten a taste and are committed to learning more. The effect is much more impressive when you just run some code and see the computer "do stuff." That's when you realize it's not rocket-science and anyone can do it.<p>Heck, it's they're really, <i>really</i> not sure... give them Logo or <a href="http://docs.racket-lang.org/quick/index.html" rel="nofollow">http://docs.racket-lang.org/quick/index.html</a><p>Bad ass hackers just do it. Learning all the theory first is just a barrier and a big downer.
评论 #2562284 未加载
anc2020将近 14 年前
blech. this is an alright recipe to being a standard nerd/web developer and reads far too much like a list of things the author has done, especially the hobbies part which imo has bugger-all to do with being a hacker.<p>my personal idea of a hacker is someone who knows _everything_ and is not afraid to take advantage of that knowledge. of course it's impossible to know everything, but the best hackers I know do a very good job of approximating that :)
评论 #2561736 未加载
endlessvoid94将近 14 年前
I feel slightly betrayed that the link says heroku.com and it isn't actually a Heroku blog.
评论 #2562176 未加载
andrewheins将近 14 年前
Is this kind of thing really helpful? I mean if I think about what "Hacker" means to me, it's someone who's passionate enough about computers to explore the inner workings and make cool things.<p>It seems to me that if you need a guide for the journey, you're already kind of missing the point.<p>Disclaimer: not a hacker, by any definition
评论 #2561753 未加载
angusgr将近 14 年前
I went on an interesting journey with this article. I first clicked expecting to see what Paul Buccheit succinctly labelled "Limited Life Experience + Overgeneralization = Advice".<p>I found generalised advice, without a word on the author's actual experience. Which I generally dislike, because I like to know who's telling me things. I'd much rather read "Here are some things that worked for me and might work for you" than "this is what you should do".<p>I also nearly gave up because of poor opening sentence construction, bad jokes ("Drinking Heavily? Not Another Neckbeard?") and outright sexism ("Teh Womens").<p>Also offputting is the arrogance that comes through the article's tone of "the master" giving omniscient advice. Every great programmer I've personally met was humble about what they could do, and the Dunning–Kruger effect would seem to suggest that's not coincidence.<p>But then I started thinking about how it's hard to give advice to newbies when you have experience. I mean, my advice on "what worked for me" to start programming is "Have your parents buy you an Apple //e when you're a kid, learn AppleSoft Basic and then try to learn 6502 assember, keep making things and learning from mistakes for 20+ years and you might be on the right path to become me but then again this might be the wrong path to become you.". That clearly doesn't translate on several levels. And I'm relatively young blood who wouldn't dare give advice on this topic. If you're older and more experienced then your story is going to be even more complicated, and harder to translate.<p>That's when I decided to look at the author's bio. And from right here on HN: "I started learning how to program with Ruby about 10 months ago". Combined with their own bio[1], this suggests they are actually pretty new to this too.<p>Which would seem to be bad, but it's actually a tremendous advantage when giving advice to newbies. So my advice to the author, if they're reading this, is:<p>* Rework the advice you clearly want to give around your own experiences. For example, you say "read the Dragon book". Did you actually read the Dragon book? Which parts? What did you learn from it, and how did you apply the knowledge? What did you need to know before you could begin to understand it? Tell us what you did, that you think someone following in your footsteps should do.<p>* For a second example, you say upfront to learn both Ruby and Python (seemingly concurrently, which I think sounds like an awful idea) but your own experience seems to suggest you learned Ruby first. Why do you now recommend learning both?<p>* More importantly, please tell us which things you think you wasted your time learning or trying to do or practising that weren't worthwhile.<p>* Drop the attitude (even if it's intended tongue-in-cheek, it's offputting) and drop the sexism.<p>[1] <a href="http://krainboltgreene.heroku.com/log/1/" rel="nofollow">http://krainboltgreene.heroku.com/log/1/</a>
评论 #2562972 未加载
评论 #2562589 未加载
j_baker将近 14 年前
<i>Functional languages will blow your mind, and make you a better programmer in the end. Languages like Haskell, Erlang, Lisp, and Clojure are great for this sort of thing.</i><p>It's great that people think so highly of functional programming, but this always sounds like damning with faint praise. I mean, "It'll blow your mind and broaden your horizons" is a reason to drop acid, not learn a programming language. Learn these languages because they're useful. There are many more effective methods to reach some state of mind-altering enlightenment.
tritogeneia将近 14 年前
How about:<p>Python first (because it's intuitive and I want to build motivation by completing a project right away), and then C (to learn memory management and other subtleties.) That sound reasonable?
krainboltgreene将近 14 年前
My mother called me, waking me up, to let me know that there were a lot of tweets about me. I would have never known.<p>Figures I get on HN again while I'm asleep and when my analytics code isn't there.
评论 #2562817 未加载
alanning将近 14 年前
Thank you for this article. I recently started teaching my sister how to program and chose Python thanks to articles/discussions on HN similar to this one.<p>If you are taking pull requests here are a few suggestions:<p>* "Honing Those Skills"<p>+ <a href="http://hginit.com" rel="nofollow">http://hginit.com</a> (Free, Web) [Why? I found it a wonderful intro to distributed version control in general and Mercurial specifically]<p>+ <a href="http://yuiblog.com/crockford/" rel="nofollow">http://yuiblog.com/crockford/</a> (Free, Video+Transcripts) [Why? Provided great context and in-depth details in a very efficient manner]<p>* "Gettin’ Paid, Makin’ Money"<p>+ C# / .NET (Large job pool)<p>* "Things You’ll Need"<p>+ Ability to take constructive criticism [Why? Get better faster. Appreciate user feedback.]<p>* "Not Another Neckbeard"<p>- Teh Womenz [Why? It's obvious from your comments that you do not feel this is sexist nor did you mean it to be. I would have to log this under "taking constructive criticism" however. You point out that you know women who don't mind but there are some women who are bothered by this and taking it out would not impact the goal of the article. If you can make 1 person feel better about your writing by removing it to avoid any misunderstandings while not altering your meaning, it seems like a win for all.]
InfinityX0将近 14 年前
It is posts like these, where a majority of the audience will be super-educated and a small portion (me) not at all, that it would be great to have upvotes. I can only make an educated guess as to what the best advice is to learning code here.<p>A strong opinion could send me on my way for months doing the wrong thing.
spacemanaki将近 14 年前
Previous (and good) discussion: <a href="http://news.ycombinator.com/item?id=2002602" rel="nofollow">http://news.ycombinator.com/item?id=2002602</a>
Apocryphon将近 14 年前
For a newbie to the world of scripting, is Perl worth learning? Or would Python/PHP/Ruby/JavaScript be a better alternative?
评论 #2561975 未加载
tritogeneia将近 14 年前
Learning on your own != learning as a college CS student, it seems. I'd be curious to compare and contrast "Hacker's Paths" for students versus people trying to squeeze in a few hours a day. (My intuition is that the theory-first approach makes more sense for students than for the self-taught.)
jfm3将近 14 年前
Should be titled "Some Books I Think You Should Read, But Not To The Exclusion Of Your Social Life."
anon114将近 14 年前
This should be called The Coder's Path for the same reason this site should be called Coder News. A whole section on "Gettin’ Paid, Makin’ Money"? Fucking please.
评论 #2561744 未加载
gnufs将近 14 年前
Here's the author's response to HN commenters: <a href="http://krainboltgreene.heroku.com/log/11/" rel="nofollow">http://krainboltgreene.heroku.com/log/11/</a>
kahawe将近 14 年前
Honestly, Why does everyone and their brother STILL recommend Kernighan &#38; Ritchie in all those "Getting Started" articles in this day and age?<p>I am not trying to diminish the significance of their work in any way shape or form but first we should learn Ruby and Python and THEN "C Programming Language" to "get paid"...?<p>Why not recommend diving into modern C++ and some of the absolutely fantastic libraries out there (Boost etc..) or more modern books on C instead? I am sure this would get you much further and keep you up to speed with current advancements since a hell of a lot has changed, even newer standards in C, since 1988. (referring to 2nd edition)<p>And while good intentions were surely behind it, it really went downhill here: <i></i>"Drinking Heavily"<i></i> and <i></i>"Teh Womenz"<i></i><p>You do not NEED to become an alcoholic or fsck "teh womenz" to be or work as a successful "hacker". You do absolutely need soft skills, friends, some networking and you NEED to socialize and yes, a partner (or partners) can be a wonderful thing in your life and booze does work wonders as a social "lubricant" but these are far from being the only forms of social interaction or positive recreational activities you should invest your time in and, quite frankly, we tend to overrate getting hammer and getting laid.
mrzerga将近 14 年前
bunch of pointless garbage - both articles and comments, haven't learned a single useful thing... Next, please!