Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

I'm new to programming: which language?

Name: Anonymous 2010-01-11 23:28

As the title says, I'm new to programming, I've only ever done basic and slightly advanced  Windows DOS language, and I know that is pretty limited in what it can/can't do. I hear that CL/Scheme are the main languages on this board, but I've also heard that they're old and obsolete, someone even told me that Lisp can't call external programs, is that true?

A couple people told me Python was a good language to learn, and I know a lot of programs are written in C/C++, and I've heard of some olders ones like COBOL, FORTRAN, Haskell, and a few others.

I've heard of these dynamic and static typing things, and I believe strong and weak typing, can anyone explain the difference? I've been involved in computers for most of my life, and I think it's time to advance my computer skills, and I could think of no better place than 4chan's /prog/, namely because I don't know of any other places, so....

Can /prog/ help me?

Name: Anonymous 2010-01-12 18:57

>>34
OP here. I know that SICP is structured with Scheme, but could one use CL? I don't think I want to use Scheme. I'm going to look up the differences, but I hear Scheme is more for math and shit, though I'm probably wrong.

SICP teaches programming in general, and the language it uses is Scheme. Some of the things it teaches are not always as well supported in more simple imperative languages, but the lessons are applicable in general. If you want to learn CL, there are quite a few good books teaching it (PG's ANSI CL, Practical Common Lisp, Common Lisp: A Gentle Introduction to Symbolic Computation, PAIP. The third book I mentioned is only intended for total beginners who don't have programming experience.), but they're not exactly replacements for SICP(however HtDP does aim to be one, but that uses Scheme as well). CL is a very nice language, but it might be hard if you want it to be your first language - it might be a bit too much information to digest in one go. Scheme is a minimalistic Lisp, which is why it's used more for teaching and in the academia(it can be used for practical things as well, but its initial (standardized) library is much less smaller than CL's). If you want to that route, you'll be able to read SICP and then learn CL from a book like PCL or ACL, however you might want to let go of a few arguably bad habits you learned from SICP, however I don't think it would be hard to do if you keep an open mind (that's the route I took).

Is The Forced Indentation of Code a real book? A googling of it brings me back here...
FIOC is just /prog/'s nickname for Python. It's not a real book. You can just pick any decent Python book to learn it.

Before I forget, is K&R structured like SICP, where you learn by doing things with C itself, or is it wildly different?

K&R is just C's book, it teaches how to program in C. It's also a good introduction to imperative programming.

To summarize:
You read SICP to learn the concepts and ways of designing programs. It teaches fundamentals and (pure and not so pure) functional programming. You might also learn some Lisp from it, but it's not a Lisp book by itself.
You read K&R to learn C and the imperative paradigm. Knowing C is useful for low-level tasks, but you might also want to learn some assembler to truly understand how things work under the hood.

If you want to learn other languages, just pick a good book for that languge/platform and learn it. It may be a problem for more popular languages if you don't know which are good - the higher the demand, the more saturated the market is with bad books.

Learning programming can be thought as learning programming paradigms and how to structure your code in general. If you understand a pradigm, you'll be easily be able to pick up new languages which use it.

While most books might not talk about doing shiny 'real-world' stuff that you might want to do, almost all languages support it in one way or another (portable or unportable ways). You can learn how to do interop stuff once you know your implementation and platform, and thus you'll be able to do any real world stuff in almost any real general purpose language, but that's just the dirty details that everyone gets to know.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List