Live data from Hacker News

How I Learned to Program

rdegges.com

51–60 of 78 posts

Re: How I Learned to Program

#51
post #45

Earlier quoted context omitted.

To my taste, Linux puts a lot less roadblocks in my way than MacOS does. Maybe my complaints that follow are simply due to my ignorance, in which case I hope you will take the time to correct me, but as far as I know they're real roadblocks. I want to see the source to the ls command? dpkg -S /bin/ls; apt-get source coreutils. I have no idea how to do that on MacOS. I want to be able to compile it? apt-get build-dep…

http://opensource.apple.com/

I'm not sure what you mean by that. Maybe you're trying to say that, yes, there are a hell of a lot of serious roadblocks?

Re: How I Learned to Program

#52
post #27

The one point I really disagree on is Linux. Sure learning Linux will most likely teach you something about the platform on which anything you write will probably be deployed but that's really marginal (IMHO). You get things done (programming included) by getting all the roadblocks out of your way. Linux is (IMHO) a roadblock. The OP claims it teaches you researching skills by giving you problems everyday you need to…

I didn't start to really understand how things all work and go together until I installed Linux on my desktop, and started exploring that world. I don't disagree with using OSX, in fact I use a Mac to do all my work now. But I never got started or interested or developed an understanding until I started using linux. Linux almost forces you to learn the underworkings of your system, computing in general, and loves to…

"I think in this case you could consider Linux to be the acoustic guitar, and Mac to be an electric."

Does this make Windows the double-necked bass?

Re: How I Learned to Program

#53
post #45
post #27

The one point I really disagree on is Linux. Sure learning Linux will most likely teach you something about the platform on which anything you write will probably be deployed but that's really marginal (IMHO). You get things done (programming included) by getting all the roadblocks out of your way. Linux is (IMHO) a roadblock. The OP claims it teaches you researching skills by giving you problems everyday you need to…

To my taste, Linux puts a lot less roadblocks in my way than MacOS does. Maybe my complaints that follow are simply due to my ignorance, in which case I hope you will take the time to correct me, but as far as I know they're real roadblocks. I want to see the source to the ls command? dpkg -S /bin/ls; apt-get source coreutils. I have no idea how to do that on MacOS. I want to be able to compile it? apt-get build-dep…

If I had to choose between a pretty and easy to use OS (that lets me write programs in peace and not have to manually fix everything from Terminal), and the ability to manipulate my OS's "ls" command, I'd choose the pretty OS every day. I wish we could have both, but now that we have to choose, that's my decision.

But that aside, I'm not sure about the rest of your complaints. I just created couple new folders and 5-6 files named gooba and gooba2 and typed 'chmod +x $(find . -name gooba)' and everything worked (gooba's are executable and gooba2's are not). I don't think that extra dot is that bad and I actually like it better (it's more logical).

Also, you can install package managers such as: MacPorts[1] or Homebrew[2] or Fink[3] (I prefer Homebrew). Then you can install htop, iotop, ftop, and a million other unix apps.

in 'top', if you press 'o' (order), and then 'cpu', it sorts them by CPU usage. You can even set a secondary key by pressing 'O'. And you can always "alias top='top -o cpu'" in your .aliases.

[1] http://www.macports.org/ports.php

[2] https://github.com/mxcl/homebrew

[3] http://www.finkproject.org/

Re: How I Learned to Program

#54

No offense to the author, but I was expecting more of an in-depth process article rather than an overview. Every "How I Learned to Program" article is fluff filled and really only inspiring rather than action orientated. I've never read a truly step-by-step guide on how someone has learned to program. Maybe I'll write it.

Step by step guide?

Get something you want to program. Get a reference. Program.

I am actually happy that someone told me pretty much this. It took a while until I realized how true this was. Just get something you want to do and keep that in mind when reading the reference. I know most people will start making tons of mistakes and writing really crappy code, but that's exactly what learning is about. Starting out with nothing and getting better. One learns from mistakes. Somehow people tend to forget this. Lots of people seem to be embarrassed making a mistake, causing them to don't do anything at all or not giving in that they are making mistakes. One can't learn that way.

I think the article sums it up pretty well and every programmer I know did it that way, well other than learning programming in school, which I myself don't really consider "learning to program", because I never met any person that actually learned programming ins school, meaning if they did they didn't ever program again.

Re: How I Learned to Program

#55
post #31

Earlier quoted context omitted.

I'd say that the main advantage of Linux here is that it helps get you started; it's really easy to make a quick CLI tool, usually in the form of a shell, perl or python script, that is useful -- scratching an itch. This applies quite well to Mac OS, of course, but to run Mac OS you'll need a Mac...

You can also write python and powershell scripts in windows.

Of course, but from my experience opening a CLI is completely unnatural to Windows users, much more than even Mac users.

Re: How I Learned to Program

#56
post #54

No offense to the author, but I was expecting more of an in-depth process article rather than an overview. Every "How I Learned to Program" article is fluff filled and really only inspiring rather than action orientated. I've never read a truly step-by-step guide on how someone has learned to program. Maybe I'll write it.

Step by step guide? Get something you want to program. Get a reference. Program. I am actually happy that someone told me pretty much this. It took a while until I realized how true this was. Just get something you want to do and keep that in mind when reading the reference. I know most people will start making tons of mistakes and writing really crappy code, but that's exactly what learning is about. Starting out wi…

Yes. A step-by-step guide. It can be done. I'll prove it.

Re: How I Learned to Program

#57
post #55

Earlier quoted context omitted.

You can also write python and powershell scripts in windows.

Of course, but from my experience opening a CLI is completely unnatural to Windows users, much more than even Mac users.

And most Windows aren't developers. The fact that linux has a CLI isn't a particularly compelling reason not to use Windows though, since Windows also does.

Re: How I Learned to Program

#58
post #45
post #27

The one point I really disagree on is Linux. Sure learning Linux will most likely teach you something about the platform on which anything you write will probably be deployed but that's really marginal (IMHO). You get things done (programming included) by getting all the roadblocks out of your way. Linux is (IMHO) a roadblock. The OP claims it teaches you researching skills by giving you problems everyday you need to…

To my taste, Linux puts a lot less roadblocks in my way than MacOS does. Maybe my complaints that follow are simply due to my ignorance, in which case I hope you will take the time to correct me, but as far as I know they're real roadblocks. I want to see the source to the ls command? dpkg -S /bin/ls; apt-get source coreutils. I have no idea how to do that on MacOS. I want to be able to compile it? apt-get build-dep…

I use htop on my macbook, that said it dual boots to #! linux. I honestly work in OSX more often than my linux environment, but installing Gentoo on an old PC when I was 15 really gave me the foundational understanding of computers I have today. Doing it again and again on various machines has improved that. I would like to work in my linux environment more (besides on my server that is), but I use OSX because there are a lot of convenience applications that make web development a cinch. Plus with homebrew I can get most cli stuff I need with out any problem.

Re: How I Learned to Program

#59
post #37

What about http://www.codecademy.com ? Modern day way to learn to program or waste of time?

Looking at this for about 10 minutes, it seems pretty intuitive. I don't know much about javascript though, so someone with more knowledge would be better answering your question.

Re: How I Learned to Program

#60
post #50

Earlier quoted context omitted.

For someone who already has a Windows machine (still the majority, I believe) you just replaced one roadblock with another. One is technical and the other is financial (buying a Mac). Really, Norvig sums this up best: "When asked "what operating system should I use, Windows, Unix, or Mac?", my answer is usually: "use whatever your friends use." " (I use a Mac and think it's swell, but I definitely couldn't have shell…

> you just replaced one roadblock with another. One is technical and the other is financial (buying a Mac) I think you hit on an important point. Most people seem to be approaching this from an adult / professional perspective. I'm thinking of the bright 14-year-old kid who wants to learn about computers. He (or his parents) may not be able to afford a $2000 Macbook, but he could build his own box relatively cheaply…

I fully agree, since I am one such programmer.

You cannot imagine how beneficial Linux has been in making it possible for students from countries like India to learn deeply and experiment with their systems.

Post reply on HN