[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/sci/ - Science & Math


View post   

File: 19 KB, 460x276, 1388134895045.jpg [View same] [iqdb] [saucenao] [google]
6250709 No.6250709 [Reply] [Original]

I've recently started looking into computer science for a backup to my intended career and I've found that I've really become interested in the subject. What books would give me a understanding in compsci comparable to someone who got a degree in it. I just want a very solid base of knowledge. I heard snowden was making like 200,000 a year and never went to college, how do I do that?

As of right now I have the Dragon book, Intro to algorithms by Cormen, the yellow book by rob miles, and algorithms by sedgewick. I only ask because the guide doesn't elaborate very well on the books it recommends and I imagine some of you have some books you swear by. Thanks /sci/.

>> No.6250721
File: 62 KB, 434x479, 1388136314624.jpg [View same] [iqdb] [saucenao] [google]
6250721

Why haven't you read me yet anon?

>> No.6250732
File: 292 KB, 704x396, 1388136686786.png [View same] [iqdb] [saucenao] [google]
6250732

>> No.6250731

>>6250721
Yours for free (legit)
http://mitpress.mit.edu/sicp/full-text/book/book.html

>> No.6250738
File: 324 KB, 2362x2362, 1388136759632.jpg [View same] [iqdb] [saucenao] [google]
6250738

>> No.6250734

>>6250709
Seriously no book will do this alone. You need to write code.

Learn C or python and try to contribute to an open source project.

>> No.6250740

>>6250738
I got it now, thanks.I'll have to take a gander at it when I finish baby rudin.

>> No.6250745

>>6250734

I've heard this. I've started doing project euler and I saw a website called rosalind the other day here on /sci/. I thought I'd get my feet wet trying to solve problems. I'm starting with python and I'm gonna try to become proficient in that before checking out C. Also I've heard Ruby is a good language to learn. Do you have any recommendations for a beginning project? I saw a ted talk for nand2tetris and I thought that was maybe a good introduction that would help me learn some decent skills.

>> No.6250746

>>6250745
>nand2tetris
Just read CODE from microsoft press, it's far more interesting and goes from morse code to telegraph relays(transistors) to assembly.

Easy read that will take a few days at the maximum and you will learn a lot.

>> No.6250748

>>6250746
Thank you, I appreciate your response. I'll check it out.

>> No.6250753

>>6250748
Note: It has nothing to do with CS, CS is mostly about algorithms and data structures.

It's closer to computer engineering but kind of in between both. That being said, it such an easy read that it isn't worth not reading.

>> No.6250758

>>6250721
I wouldn't mind Rin reading it to me while my head lies on her lap.

>> No.6250760

>>6250721
This, read the first page and if you aren't hooked you will never be a computer wizard.

>> No.6251159

>>6250709
>I've recently started looking into computer science for a backup to my intended career

So, basically, you'll fail at both careers by diving your time between the two.

What a fucking retard.

>> No.6251347

>>6251159
no need to be so mean

>> No.6251595

>>6250709
>the yellow book by rob miles
*Looks him up on amazon*
>Microsoft® XNA® Game Studio 4.0: Learn Programming Now!: How to program for Windows Phone 7, Xbox 360, Zune devices

Fucking kill yourself

>> No.6251699

>>6250709

The bases you want to touch on to have a solid CS foundation would be:

>Learn programing & data structures (If you don't know it already)
Hard to recommend books for this. Don't start learning too many languages at once before you have a solid grasp of one, say C++. Whatever you do avoid Java like the plague and don't listen to retards that say C++ is too hard.

>Learn your way around an Unix shell, Make, and C (If you don't know it already)
Advanced Programming in the UNIX Environment

>Learn Computer Architecture and Digital Logic
Fundamentals of Logic Design by Roth & Kinney
Digital Design: Principles and Practices by Wakerly

Computer Organization and Design: The Hardware/Software Interface by Patterson & Hennessy
Computer Systems: A Programmer's Perspective by Bryant & O'Hallaron
Computer Architecture: A Quantitative Approach by Hennessy & Patterson

>Learn Operating Systems
Operating System Concepts by Silberschatz (The Dinosaur book)
Modern Operating Systems by Tanenbaum

>Learn various Programing Languages and Compilers
Study a few different feeling programing languages than what you're comfortable with. Along the lines of: Lisp/Scheme/Racket, Prolog, Haskell, Forth, J, Matlab, Python, Lua, C#, C++

Programming Language Pragmatics by Scot
Engineering a Compiler by Cooper
Compilers: Principles, Techniques, and Tools by Aho (The Dragon book)

>Learn Algorithms
Introduction to Algorithms by Cormen, Leiserson, Rivest, Stein (CLRS)
Algorithms in C++ by Sedgewick
Algorithm Design by Kleinberg and Tardos
The Design and Analysis of Algorithms by Kozen

>Learn Automata, Computability Theory, and Complexity Theory
Introduction to the Theory of Computation by Sipser
Theory of Computation by Kozen

>> No.6251717

>>6251595
>Microsoft® XNA® Game Studio 4.0: Learn Programming Now!: How to program for Windows Phone 7, Xbox 360, Zune devices
why the fuck would anyone want to do this?
>hay i know! ill learn an outdated language even the developers dont support anymore for devices no one uses anymore!
I actually tried XNA, and holy shit i dont think microsoft want games to be made for the WP8, (venting follows):
to make a image appear on the screen, and make it register my touches i had to:
>install windows 8 pro, change setting in the bios and in win8 to let it run the programs needed
>install visual studios 2012 + win8 SDK
>install monogame, because XNA isnt supported anymore and you need to use monogame now
>monogaim cant compile rcontent, so you need windows 7 SDK to compile it, copy it and import it to the windows 8 project (do this for all images, fonts, sounds)
>any touch on the screen is a at infinity, to fix it you need to recompile the source code of monogame
>wait, you cant compile yet, because installing it instals an installation file you still need top find in program files and then run to install the rest
>ok, now to test it on my phone, but wait! to test it you need a developer account with Microsoft, then you need to register your phone as a developer phone then you get to run 1 app you wrote on it at a time. (can also only have 1 developer phone)
>decide fuck this and get some other program to write games with.

tl;dr- fuck you microsoft and xna.

>> No.6251734

>>6251699

Some optional additional topic:

>Parallel Computing
Learn how and when to program with OpenMP, MPI, pthreads/std:thread, OpenCl as well as parallel algorithms. Good books are hard to find but most recommend "An Introduction to Parallel Computing" by Grama as a general introduction

>Networks
Computer Networks: A Systems Approach by Peterson and Davie
Computer Networking: A Top-Down Approach by Kurose and Ross
Unix Network Programming, Volume 1: The Sockets Networking API

>AI, Machine Learning, Computer Vision (Warning: most everything people say about it are wild pipe dreams)
Artificial Intelligence: A Modern Approach by Russell
Computer Vision by Shapiro and Stockman
Multiple View Geometry in Computer Vision by Richard Hartley
Computer Vision: Algorithms and Applications by Richard Szeliski
Pattern Recognition and Machine Learning by Bishop
Information Theory, Inference & Learning Algorithms by MacKay

>Graphics and Image Processing
Digital Image Processing: Principles and Applications by Baxes
Digital Image Processing by Gonzalez
Computer Graphics: Principles and Practice in C by Foley

>Combinatorial Optimization, Network Flows, Linear Programing/Optimization, and Approximation Algorithms
Introduction to Linear Optimization by Bertsimas & Tsitsiklis
Theory of Linear and Integer Programming by Schrijver
Network Flows by Ahuja, Magnanti & Orlin
Combinatorial Optimization, Polyhedra and Efficiency by Schrijver
Combinatorial Optimization by Cook
Combinatorial Optimization - Theory and Algorithms by Korte & Vygen
Approximation Algorithms by Vazirani

>Math
Avoid books targeting CS majors and/or with titles like "Discrete Math" as they tend to teach next to nothing.

Linear Algebra and Its Applications by Strang
A Transition to Advanced Mathematics
Numerical Analysis by Burden
First Course in Probability by Sheldon Ross
A Mathematical Introduction to Logic by Enderton
Generatingfunctionology by Wilf
Geometry by Brannan
Modern Graph Theory by Bollobás

>> No.6251784

>>6251347
it's the truth though. people who divide their time on double majors end up sucking at both and are unemployable.

people who think they can pick up CS on their days off are the biggest shitheads ever. you have a better chance winning a lottery.

>> No.6251797

>>6251784
>it's the truth though. people who divide their time on double majors end up sucking at both and are unemployable.

Bullshit

>people who think they can pick up CS on their days off are the biggest shitheads ever. you have a better chance winning a lottery.

CS is easy as fuck to learn by yourself if your motivated enough. I believe you're confusing self proclaimed programers who have only read a single book on a language's syntax.

>> No.6251800

Snowden's co-workers called him a "genius among geniuses". It would help to be very smart. Not everyone in CS will make $200,000.

>> No.6251801

i'll take the next few days and research/compile some stuff for the sci math and science guide. op check back there in a few days and you'll have some good guides on where to start and how to continue

>> No.6251821

>>6251797

yeah right. show me one. and are you a see-taught programming god? lol

>>6251800
he's not a programmer. he's a sysadmin. he was installing programs, transferring files, making user accounts etc. that's now CS. that's information management.

>> No.6251875

>>6251821
We don't know what he really was. That's the job description given by his employer, but Snowden rejected that.

>> No.6251912

>>6250721
Is diz buk gud ?

>> No.6251923
File: 2.42 MB, 320x240, 1388187216031.gif [View same] [iqdb] [saucenao] [google]
6251923

>>6251912
Sure, you should really check out if it interests you though. It's available for free online >>6250731.

You can also view the MIT SICP video lectures from Abelson/Sussman online too.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/

>> No.6251936

>>6251923
I suck at math (I don't even know that strange E symbol ...), and I suck at programming (I simply can't program, never tried either), do you still advise it ?

>> No.6251943

>>6251936
You mean summation(sigma)?

>I suck at programming
not really required.

>do you still advise it
I guess not.

>> No.6251950

>>6251943
Err ... I guess so.
I suck at everything tbh.

>> No.6251951
File: 19 KB, 200x276, 1388187912601.jpg [View same] [iqdb] [saucenao] [google]
6251951

>>6251950
Here, try this book.

>> No.6251952

>>6251951
I'm not very good at English either.

>> No.6251986

>>6251936
>I simply can't program, never tried either
>never tried
>i can't
what?

>do you still advise it?
No, i do not.

>>6251952
Can you clean toilets?

>> No.6252127

>>6251734
>>6251699
I'd like to thank you for the quality of your posts, anon. It's been a while since I've seen something this nice.

>> No.6252144

>>6250709

Snowden was not getting paid 200k per year because he was good at CS. He was getting paid 200k per year to keep secrets, and he couldn't even do that, fucking pathetic.

>> No.6252641

>>6251717
I laughed so hard I think I ruptured an intestine.Holy fuck XNA is horrible. And i thought it was hard to just get it going on Win7 a few years ago.

>> No.6254753

>>6251800
>genius among geniuses
>logging into peoples account with the passwords they give you to access what they can access.

>> No.6257000

Weeabos please leave.

>> No.6260169

>>6257000
you do know where you are right?

>> No.6260172

Start with 6.00 on MIT OCW. Spend 90 minutes per day with two lectures per week. You should be done through the course within 3 and half months.

Monday
- Watch lecture - 50 mins
- Reading - 40 mins

Tuesday
- Tutorial videos - 30 mins
- Problems - 60 mins

Wednesday
- Project - 60 mins
- Reading - 30 mins

Thursday
- 2 hours of external tutorials

Friday
- Watch lecture - 50 mins
- Reading - 40 mins

Saturday
- Tutorial videos - 30 mins
- Problems - 60 mins

Sunday
- Project - 60 mins
- Reading - 30 mins


Once you done that, go on to 6.01 and repeat again.

>> No.6260183

You need to do tons and tons of programming, for one. Project Euler is pretty good from the few problems that I've tried, and as you get better, maybe try to contribute to some open-source software (small programs to start, not Linux or GNOME or something). If you're interested in math, then experimenting with implementing different cryptographic protocols could be fun.

Speaking of math, any good compsci program will be just a few courses away from a math minor, so don't neglect that. My early undergrad "math for computer science" classes used the book Mathematics for Computer Science by Lehman, and it was pretty good. I'm not a comp sci major so I can't be of much help with upper-year resources but by the time you get there you can probably seek them out for yourself.