Live data from Hacker News

Ask YC: Learning to hack...

news.ycombinator.com

31–40 of 54 posts

Re: Ask YC: Learning to hack...

#34
you should find some small thing you need to do for yourself : for example searching through all the images on your computer, and seeing which one is of a particular format (jpg, bmp for example) or which one was created/modified in the last couple of days. only then should you approach learning a programming language (i recommend python for starters, because it's sweet and has a lot of libraries, letting you concentrate on what you want to do instead on arcane problems) and then learning the techniques necessary to solve your problem (you'll see that most tasks you can solve programaticaly have a certain template).

It's important to start with a real task, and not only do the simple training programs you'll find in every manual/tutorial. I can't stress enough the difference between grasping a concept and actually being able to apply it in the field.

Second, after you learn your first language, don't ever think of sticking only to it. Learn your second, learn your third and your Nth language and never stop learning them. Sure, most of them are similar (python is like ruby, perl, lisp, c is like c++,c#,java) but there are some oddballs like prolog and haskell which will make you a better programmer just by knowing that they exist and what they're about). Thus you'll have a tool for every job.

Also, after a while, learn assembler (x86) and some hardware theory (how a computer works, what's in a CPU or a GPU etc.).

Finnaly, have fun! Don't feel pressured to know anything you don't need or don't think will make you a better programmer. Don't learn Java and it's assorted libraries because every job wants you to know it. Don't learn LISP because the cool kids are doing it, and don't write programs you won't use.

Re: Ask YC: Learning to hack...

#35
You are trying to learn how to program, but many people are suggesting that you should pick a language based on what you plan on doing with the language. I don't think that should be your primary consideration. The primary consideration should be the quality of introductory material in that language. I think you'll find most material to be in Java, followed by C++ and Python.

Assuming you want to do web programming, I would suggest you start with Python as your first language. It has quality introductory material[1] and is widely used for web programming, as well as many other tasks. There is less complicated syntax that you have to ignore while learning how to program compared to Java and C++, and is generally regarded as a Better Language. Even if you weren't planning on doing web programming, Python would still be my suggestion for a first language. I'd only suggest anything different if your main concern was getting a generic programming job, in which case Java would be a better idea.

I feel like JavaScript would be a particularly poor choice as a first language since most introductory JavaScript material isn't trying to teach how to program; it typically teaches how to manipulate web pages. As a new programmer yourself, it will be harder to judge what texts you should pick from those that are available.

If you start out trying to learn how to program web applications instead of learning how to program in general, you'll be selling yourself short. Your code will be worse and it will be more difficult to figure out how to solve atypical problems that a web framework hasn't solved for you. Don't do it.

[1] Or so I hear. I haven't read introductory material in years, and then it was C++. Try How to Think Like a (Python) Programmer: http://www.greenteapress.com/thinkpython/

Re: Ask YC: Learning to hack...

#36
Like schtog said, I think python is a great choice. You can easily write programs that actually _do_ things without having to get too deep into the ugly details.

Most of all, write programs that are fun. For my third year software engineering class we wrote a 3D implementation of bomberman. It was a blast to write and I still hack on it now and then to add crazy over the top powerups.

Also, it looks like you've found a good place to get your news from. Being aware of cool new projects / languages / ideas is always a good thing.

Re: Ask YC: Learning to hack...

#37
post #30
post #4

learning html and javascript could be a good place to start since you can make things right away with those. i think that is very important when you start, to get instant feedback, making stuff is fun :) for this reason i would recommend python as your first language. it is very highlanguage and have extensive libraries. it has clear sparse syntax and is very easy to write and read. but that doesnt mean it is a weak…

Also, Lisp lacks a standard? Huh? Care to elaborate on that? I mean sure, CL's standard is older than some dinosaurs, and Scheme's standard is currently rather controversial, but both have standards. Especially in the case of CL, there's little to complain about.

And which CL would you recommend the Padawan Hacker use? Oh, that's right there isn't a majority view on this... hence no standard CL to point people towards.

Re: Ask YC: Learning to hack...

#38
post #4

learning html and javascript could be a good place to start since you can make things right away with those. i think that is very important when you start, to get instant feedback, making stuff is fun :) for this reason i would recommend python as your first language. it is very highlanguage and have extensive libraries. it has clear sparse syntax and is very easy to write and read. but that doesnt mean it is a weak…

Good place to learn Python: http://www.diveintopython.org/

Imp is right, that's a terrible book for someone just getting started. I'd recommend "How to Think Like a (Python) Programmer" available on the web here: http://www.greenteapress.com/thinkpython/

O'Reilly's Learning Python is also an excellent learning tool for the language.

Re: Ask YC: Learning to hack...

#39
post #19

Earlier quoted context omitted.

You might want to add that the "View Source" option is only in Firefox once the Web Developer add-on is installed. Now that you mention it, I would suggest installing this add-on for many reasons, but I found personally that the way a majority of code is presented in books and the way it is actually implemented in the real world are two different things. This hurdle has been the greatest for me with regards to CSS. B…

> You might want to add that the "View Source" option is only in Firefox once the Web Developer add-on is installed. No, it's a standard part of Firefox. "View Selection Source" is too, which can be useful. I agree that Web Developer (or similar plugins) can be a great way to learn.

Web Developer and FireBug for FireFox are the best way I know of to discover the inner workings of a web page.

FireBug even has a javascript REPL built in!

Re: Ask YC: Learning to hack...

#40
post #37
post #30

Earlier quoted context omitted.

Also, Lisp lacks a standard? Huh? Care to elaborate on that? I mean sure, CL's standard is older than some dinosaurs, and Scheme's standard is currently rather controversial, but both have standards. Especially in the case of CL, there's little to complain about.

And which CL would you recommend the Padawan Hacker use? Oh, that's right there isn't a majority view on this... hence no standard CL to point people towards.

You guys are talking past each other.

One of you is talking about a standard in the true sense (such as an ANSI Standard, which Lisp has in spades) and one of you is talking about a canonical/standardIZED IMPLEMENTATION (which Lisp doesn't technically have.) So, everyone can follow the actual ANSI Standard for CL. And if you're looking for a standardized open-source implementation, you should just choose SBCL ;-) Either way, you should be Lisping instead of arguing.

Post reply on HN