Live data from Hacker News

The Hacker's Path

krainboltgreene.heroku.com

41–50 of 78 posts

Re: The Hacker's Path

#41
post #15

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.

Eventually every artist has to learn how to sell their work. Is it because they're selling out, just doing it for the cash? No. Some of us have families to feed.

You are confusing the difference between approaching the process of becoming a hacker for-profit and approaching the path to hackerdom because you seek enlightenment. When you are primarily seeking promised riches at the end of the path, you aren't following the path.

Re: The Hacker's Path

#42
post #32

Earlier quoted context omitted.

I was going to respond to a few things, but you linked to ESR's guide, the most condescending guide to hacking I know. Anyone who links to this guide seriously is usually not going to be swayed by even the best arguments.

I'd be more than happy to hear your arguments. Perhaps I am missing some points you could show me clearly? Your original post lacked some explanation behind what you mean by word hacking itself and while at first kind of dismissed your post with ESR, I would like to know what do you think hacking is about? (As esr's text guided me somehow, your comment made me think i may actually be missing something)

    I think that starting with both Python and Ruby is 
    a bit strange idea - they are really similar (in almost
    every way I can think of)
Exactly the point. They are so similar that the transition from one to the next is easier than most other languages. Once you have an easy transition students will notice similar patterns. "Oh, looping. Hey, this is something that happens in both languages."

Re: The Hacker's Path

#43

Earlier quoted context omitted.

I've got to say, if you're struggling with C's syntax, you should worry less about becoming "a hacker" and more with "just becoming a programmer".

And you're allowed to say that. In the mean time, I'd rather not have my students struggle with verbose syntax.

At what academic level are these students? Every university^ I know of teaches incoming students in a language with C style syntax and they handle it just fine.

^Except those which use scheme...

Re: The Hacker's Path

#44

Earlier quoted context omitted.

Eventually every artist has to learn how to sell their work. Is it because they're selling out, just doing it for the cash? No. Some of us have families to feed.

I know plenty of hackers who decided to dayjob in other fields, so that's B.S. Hacking does not imply being paid.

I never implied that hacking implies being paid. You're reading far too much into it.

Re: The Hacker's Path

#45

Earlier quoted context omitted.

I know plenty of hackers who decided to dayjob in other fields, so that's B.S. Hacking does not imply being paid.

I never implied that hacking implies being paid. You're reading far too much into it.

I am taking exception to "Eventually every artist...". There are many who do not. Possibly even more than those who do.

Re: The Hacker's Path

#46

Teh Womenz I'm rolling my eyes right now, just so you know. I'm sure EVERY programmer should really be interested in "teh womenz." OTHER HOBBIES FOR FUCK SAKE 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. People program as a hobby. It's how a lot of free software gets written. I…

As most, if not all, learning books have you do exactly as you listed I'm not exactly sure why you're against starting with books. I'm sure EVERY programmer should really be interested in "teh womenz." It's humour. Relax. People program as a hobby. It's how a lot of free software gets written. It's how people learn. That's why it says "other hobbies". "Other", as in "in addition to" or "besides this one".

The problem with "teh womenz" is that up until that point I was thinking of adding that list to a set of programming resources I'm sending to a friend of mine who's been learning programming recently. And sure, she'll have to deal with that kind of attitude eventually, but I'm not going to throw it in with the basic training resources.

Talking about "teh womenz" is a good way to end up with a dearth of women in your general vacinity.

Re: The Hacker's Path

#47

Teh Womenz I'm rolling my eyes right now, just so you know. I'm sure EVERY programmer should really be interested in "teh womenz." OTHER HOBBIES FOR FUCK SAKE 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. People program as a hobby. It's how a lot of free software gets written. I…

As most, if not all, learning books have you do exactly as you listed I'm not exactly sure why you're against starting with books. I'm sure EVERY programmer should really be interested in "teh womenz." It's humour. Relax. People program as a hobby. It's how a lot of free software gets written. It's how people learn. That's why it says "other hobbies". "Other", as in "in addition to" or "besides this one".

As most, if not all, learning books have you do exactly as you listed I'm not exactly sure why you're against starting with books.

It's just a rule of thumb.

Most books are just crap. I own a lot of them and have read most of them. They're great for programmers. From experience handing them to complete newbies, they're awful. Once you get past the tutorial they turn into a few hundred pages of greek. As well, being even over a hundred pages makes the book an investment for a newbie and most people are lazy. If the book is too thick it'll get lost under papers and forgotten promptly.

That being said, not all books are like this. I am considering handing out copies of The Little Schemer to any friend who is interested in programming. It's succinct, well-written, and teaches just one thing -- concepts. It doesn't teach a language, theory, libraries, and list a few example programs. Just one thing. That's enough for a newbie.

So that's why I say, just do a tutorial first before you delve into a book. Learn only enough that you can muck around and make a few basic things to impress yourself with and decide whether you're having a good time.

It's humour. Relax.

It's not really funny. Not because I'm humorless and uptight. It's just not funny.

That's why it says "other hobbies". "Other", as in "in addition to" or "besides this one".

Misunderstood. Fair enough.

Re: The Hacker's Path

#48
post #11

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 (…

I think your last sentence is the most poignant. Important thing is understanding the fundamentals and seeing the overall patterns. And the most damning for C and Java in my opinion. C and Java's syntax (which does matter to those who are learning), is so verbose as to hide a lot of what the fundamentals and patterns are. This is why I chose Ruby and Python. The languages syntaxes are clean and are never in the way,…

C's syntax is different from Python's for a reason: what each operator does is very much transparent from the syntax. The point of learning C is to understand what the computer does (as you program it in a higher level language).

In Python, I can say:

  ...
  if "foo" in bar:
    do_something()
That's excellent, that's what I expect from a high level language. However, I am not forced to think about whether bar is a hash table (dictionary) an array, or something else. That, again, is excellent for the kind programming you do with Python: you're programming to an interface and not an implementation. Java's standard library also encourages that.

   Collection bar = getBar();
   ...
   if(bar.contains("foo")) { 
However, you also need to understand how the various containers implement "__contains__" or ".contains()". That is, you need to understand algorithms, pointers (in Python and Java, every value is a pointer and memory leaks are still possible!), memory management. C is a better language for learning these fundamentals than Python or Java.

Of course, Python and Java (and also, Smalltalk and Lisp/CLOS) are much better languages for learning object oriented design and "design patterns" in the classical sense. However, I've found that I never quite "got" OO until I had already had a job as a software engineer. I would have never gotten a job as a software engineer without knowing the fundamentals. I also feel that having grown up on C has been an advantage in terms of being able to reason about systems aspects of my work, even though professionally I mostly worked in C++ (with STL), Perl/Python and Java.

C's syntax as being applied to high level languages is a different matter. I agree it doesn't make much sense for Java: for example, lack of any type inference is really annoying. Perhaps that's why I find programming in Scala to be more pleasant, even when I am writing imperative code. I agree, it can be annoying to use a syntax meant for a low-level language to write in a strongly typed, memory-safe high level language. However, the syntax is not the most important part of a language, especially for pedagogic purposes.

Re: The Hacker's Path

#49
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".

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".

I also nearly gave up because of poor opening sentence construction, bad jokes ("Drinking Heavily? Not Another Neckbeard?") and outright sexism ("Teh Womens").

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.

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.

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.

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:

* 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.

* 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?

* More importantly, please tell us which things you think you wasted your time learning or trying to do or practising that weren't worthwhile.

* Drop the attitude (even if it's intended tongue-in-cheek, it's offputting) and drop the sexism.

[1] http://krainboltgreene.heroku.com/log/1/

Re: The Hacker's Path

#50
How about:

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?

Post reply on HN