Live data from Hacker News

Ask HN: Okay okay, I'll learn to program...now what?

news.ycombinator.com

41–50 of 56 posts

Re: Ask HN: Okay okay, I'll learn to program...now what?

#41
I can't help but think that if you don't know where to start (different from having too many places to start), you don't need to. If you need it, there should be something obvious - some programme that really needs to be written, and simply must run on such-and-such a system, and that will inform you on what to learn.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#42

You need to decide what you want to build, or at least what you want to build first. From CSS, an obvious way to go is Javascript or PHP, or better yet both. If you think that you don't want to build a specific thing, but instead want a birds-eye armchair view of the essence of what programming is about, don't waste time; try SICP: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma... But odds are that you'…

Someone told me to try SICP when I was first trying to learn how to program and it was an incredibly frustrating and deflating experience. The process goes something like this: Okay, SICP sounds good. They're using LISP. How do I make a LISP program? The internet says SLIME is THE way to go and I'd be an idiot to try any other development environment. Ok, I guess I'll just install that... (3 weeks later)... okay that…

"Everyone" was wrong when it comes to SICP. The standard environment for that is the MIT Scheme distribution (http://www.gnu.org/software/mit-scheme/) which includes a version of EMACS named Edwin which runs in the same process as your Scheme. It's trivial to install (at least on Windows, haven't tried Linux) the whole package and get up and running for the purposes of SICP, which have almost nothing to do with LISP/Scheme (at least in the first few chapters).

SLIME is supposed to be the way to go for a complicated LISP like Common Lisp or perhaps a richer Scheme or Clojure, but SICP is trying to teach you programming, CS and the like, and what you learn from about Scheme is incidental (well, until you get the the metacircular interpreter magic).

Re: Ask HN: Okay okay, I'll learn to program...now what?

#43
post #38

If you're looking to do a web startup, ditch your Windows computer. Get a Mac or a Linux machine.

I recently went back to Windows 7 as my main workstation. So far the only negative has been that access to Steam and great games has had a slight negative effect on my productivity. What, objectively, is so much better and easier under Linux? Note, we're talking dev machine here, and not deployment server.

"What, objectively, is so much better and easier under Linux? Note, we're talking dev machine here, and not deployment serv"

Tool chaining. For me, the ease with which I can bang out scripts and makefiles and have the tools easily check out versioned code from rcs/svn and that I can pipe and redirect and have a host of efficient tools like grep and nm and objdump and more, and they all work together piping and redirecting to make exactly what I want in so many easily altered configurations. Release and debug and partial debug and static-checking build and more, with all the makefiles just text - so easy to alter and tweak and copy and share (and even have them configure on the fly, reading the output from the compilation and rerunning with extra warnings or debug symbols) and have them run commands themselves like sending eMails to everyone who is listed as an interested party on the source controlled spec list, and so much more. Valgrind is so useful that if I have to develop on a Win32 machine I get a version of it going under MinGw, and sometimes I run a Win32 debug under Wine on Linux so I can use Valgrind on it.

I sound like the biggest *nix dev env fanboy ever.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#44

Earlier quoted context omitted.

Dr. Scheme might have made things easier. Especially because SICP uses Scheme and not Lisp. That said, the first term of my freshman year of college used SICP as the textbook. I banged my head against a wall for the first six weeks and had an epiphany in week 7. It's the best feeling in the world when functional programming finally makes sense.

Everything is hard in Scheme/LISP world. As a first programming project for an isolated person without collaborators or teachers, SICP is death. It will be months before the autodidact can accomplish something that he can feel proud of. Nothing will kill interest faster than beating your head against the wall in isolation for months in your spare time without any tangible progress. I believe people that say it's awes…

I think it's worth trying for a couple of weeks. If it doesn't start to click, then come back after a few years of imperative programming, at which time it won't be as easy as you'd expect (or so it is reported) since you have to learn the very different functional paradigm, but you'll appreciate it all the more having accumulated plenty of scars from side effect caused bugs.

That said, if you have something you want to build starting with a project and an appropriate language and ecosystem (including instructional material) is very good. I myself started out in a high school punched card IBN 1130 FORTRAN "IV" course, but soon started a project that really got me going.

I didn't try SICP until half a decade later; by then I was an experienced imperative language programmer (mostly C by that point) and fairly experienced in Maclisp and Lisp Machine Lisp. At which point it really made sense, both in terms of being able to understand the material and why it was really important.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#45
post #38

Earlier quoted context omitted.

I recently went back to Windows 7 as my main workstation. So far the only negative has been that access to Steam and great games has had a slight negative effect on my productivity. What, objectively, is so much better and easier under Linux? Note, we're talking dev machine here, and not deployment server.

"What, objectively, is so much better and easier under Linux? Note, we're talking dev machine here, and not deployment serv" Tool chaining. For me, the ease with which I can bang out scripts and makefiles and have the tools easily check out versioned code from rcs/svn and that I can pipe and redirect and have a host of efficient tools like grep and nm and objdump and more, and they all work together piping and redire…

Do I mean under MinGW? I forget. Maybe I never got that to work and that's why I use Wine under Lin.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#46
post #31

You know CSS, so it seems logical to learn Javascript. That opens up both server and front end web programming [jQuery/DOM and Node.js on the backend] For books, try Crockfords 'Javascript the Good Parts' and mimic some of the nicer idioms as you see more jQuery code.

Also, http://www.amazon.com/JavaScript-Definitive-Guide-Activate-P...

6th edition of Flanagan's Definitive Guide coming out.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#48

Python. Do not do the official guide. Do not read the documentation. Do something that forces you to program examples of increasing difficulty. In short, do this course: http://cs.northwestern.edu/~akuzma/classes/EECS110-s10/index... All the labs and assignments are online. You get to make maze solvers, generate fractals, implement Conway's Game of Life, lots of genuinely fun stuff. Just work through it and tell your…

The MIT course for Intro to Comp. Sci is pretty good too. There's a bunch of people working through it on my website, Curious Reef, if anyone is interested: http://curiousreef.com/class/mit-opencourseware-600-introduc...

Re: Ask HN: Okay okay, I'll learn to program...now what?

#49
post #37

If you're looking to do a web startup, ditch your Windows computer. Get a Mac or a Linux machine.

Terrible advice and tribalist. Your platform doesn't matter, work what you are comfortable with rather than spending months being awkward because some random guy on HN told you windows sucks. You didn't even give a reason why OS X or Linux are better, which tells everybody you are just a zealot (and the people who upvoted you are as well).

Here's the reason: your web server is likely to be running using Linux, so you should have some familiarity with that. If you've always used Windows, Linux will be yet another thing to learn when you get to the point of hosting your web app. If you've been using Mac OS X or Linux as your primary computer all along you'll be comfortable with it since you use it on a daily basis. With Mac OS X, you can ease yourself into Linux.

"You didn't even give a reason why OS X or Linux are better, which tells everybody you are just a zealot"

Actually, I didn't give a reason hoping that it would spark an intelligent discussion with other people sharing information about pros and cons. I was opening the topic. I can understand how it looked like zealotry and tribalism to you.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#50
post #6

Seriously, it doesn't really matter where you start. I don't want to be pessimist, but you've got so many things to learn that the important here is not where you start but the determination that you will put in to continue working days after days. That said, I suggest you start with something fun because it will motivate you. Example of that might be a simple dynamic website (using php, python, ruby, or whatever els…

Ha! I started out building dragon ball websites too. geocities FTW
Post reply on HN