5 ms·
Hah, just today I started to read "Haskell programming from first principles"[1] which also targets non-programmers but builds on lambda calculus instead of ass
by koloron 10y ago
Hah, just today I started to read "Haskell programming from first principles"[1] which also targets non-programmers but builds on lambda calculus instead of assembly.
Would anyone actually recommend to a beginner to start learn assembly first?
[1]http://haskellbook.com/ http://haskellbook.com/
- ktRolster 10y ago>Would anyone actually recommend to a beginner to start learn assembly first? Yes, if you can find a good book about it. Assembler isn't particularly difficult, but the information teaching it is rather hard. Right now, the lowest-level language I know of with a really good beginner book is C, and it's this book: http://smile.amazon.com/Absolute-Beginners-Guide-C-2nd/dp/0672305100/ref=sr_1_2?s=books&ie=UTF8&qid=1463344131&sr=1-2&keywords=absolute+beginners+guide+to+c http://smile.amazon.com/Absolute-Beginners-Guide-C-2nd/dp/06...
- deleted 10y ago[deleted]
- matthewwiese 10y agoThe C book you recommended is the exact same one my mum bought for me years ago in late elementary school; I've never seen it mentioned on HN or elsewhere before so I thought I'd also vouch to its effectiveness. Now that I think of it, I should give my mum a call :)
- ktRolster 10y agoYeah, I used to recommend it to students who were struggling. So far everyone I know who's tried it has succeeded. It teaches in a very clear way. I hope my books do too :)
- voltagex_ 10y agoIf you have a Safari subscription: https://www.safaribooksonline.com/library/view/c-programming-absolute/9780133149869/ https://www.safaribooksonline.com/library/view/c-programming...
- e12e 10y agoOut of curiosity, have you looked at the 3rd edition? http://www.amazon.com/Programming-Absolute-Beginners-Guide-3rd/dp/0789751984/ref=sr_1_1?s=books&ie=UTF8&qid=1463368165&sr=1-1 http://www.amazon.com/Programming-Absolute-Beginners-Guide-3...
- ktRolster 10y agoNo, sorry; but I suspect it's just as good.
- _kst_ 10y agoI just took a look at the "LOOK INSIDE!" sample available on amazon.com. A few observations: The front cover says it's been "Updated for C11", but all the sample programs use "main()" rather than "int main(void)". The form without an explicit return type has been invalid since C99. Page 11: "In 1983, ANSI created the X3J11 committee to set a standard version of C. This became known as ANSI C. The most recent version of ANSI C, C11, was formally adopted in 2011." That's loosely correct, but in fact the 1990, 1999, and 2011 editions of the C standard were published by ISO, not by ANSI (and later adopted by ANSI). Furthermore, it ignores the fact that the phrase "ANSI C" is commonly but incorrectly used to refer to the 1989/1990 version of the language (see gcc's "-ansi" option, for example). Page 16: "These are functions: main() calcIt() printf() strlen() and these are commands: return while int if float" No, those aren't "commands", they're keywords. I can't think of any reasonable meaning of the word "command" that would include "int". Page 26: The sample program listing is not properly indented. Page 36: "\b moves the cursor back a line". No, it moves the cursor back a column. A book for beginning C programmers should not have these kinds of errors after three editions.
- chetanahuja 10y agoI've used Little Man Computer successfully to teach even very young kids (elementary school age) basics of computer architecture and a very basic assembly language. Some reading materials and a java based LMC simulator here: http://www.yorku.ca/sychen/research/LMC/ http://www.yorku.ca/sychen/research/LMC/
- zoren 10y agoIf you start with assembly I would suggest not picking x86. I would suggest a RISC or virtual assembly like LLVM. x86 just has too much historic weirdness.
- roskilli 10y agoMIPS is a great RISC instruction set to learn and has a ton of good emulators out there too, highly recommended.
- jbtow 10y agodefinitely this. MIPS is a great start for anyone interested in taking the assembly route at any point. as for simulators i enjoyed using MARS: http://courses.missouristate.edu/KenVollmar/MARS/ http://courses.missouristate.edu/KenVollmar/MARS/
- djmips 10y agoOn the other hand, the x86-64 is a lot nicer and you certainly don't have to go very far to find one to practice with.
- _0ffh 10y agoLike scores of other generation C64 kids by second language (after BASIC) was 6502 assembly. I think it's suitably straightforward. Although the special addressing mode for the zero page might count as a weirdness.
- jesstaa 10y agoI wouldn't. It's like teaching someone to cook by starting with teaching them chemistry.
- djmips 10y agoRight that would be ridiculous! <thinks about it> no wait maybe you have something there... Some more Kitchen science might be a good thing.
- kapilkaisare 10y agoI consider it possible, and found a game that tries to teach one the concepts: Human Resource Machine[0] [0] http://tomorrowcorporation.com/humanresourcemachine http://tomorrowcorporation.com/humanresourcemachine