Best information theory books according to redditors

We found 321 Reddit comments discussing the best information theory books. We ranked the 94 resulting products by number of redditors who mentioned them. Here are the top 20.

Next page

Top Reddit comments about Information Theory:

u/sharjeelsayed · 22 pointsr/learnprogramming

Architecture of a Database System
http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf

Readings in Database Systems
http://www.redbook.io

Computer Science 186, 001 - Spring 2015 UCBerkeley Introduction to Database Systems - Joseph Hellerstein
https://archive.org/details/UCBerkeley_Course_Computer_Science_186

Stanford's Databases MOOC
https://cs.stanford.edu/people/widom/DB-mooc.html

Database Design by Caleb Curry
https://www.youtube.com/playlist?list=PL_c9BZzLwBRK0Pc28IdvPQizD2mJlgoID

Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design (3rd Edition)
https://www.amazon.com/Database-Design-Mere-Mortals-Hands/dp/0321884493

More at http://Learn.SharjeelSayed.com

u/karlfreeman · 22 pointsr/ruby

Some great suggestions here around complimentary languages. Let me chime in on the tools. Depending on where you want your career to go deploying Ruby without Heroku wouldn't hurt at all.

  • When to use Varnish / Nginx and why
  • Why Capistrano is a popular way to deploy code
  • How to demonize and monitor ruby processes
  • Why people use Chef
  • Knowing the key difference between how Unicorn scales and Puma
  • Understanding Git, Git merging strategies and having an awarness of Git Flow style branching models
  • etc...

    I've made no assumption on what you already know so please don't feel like you need to know all of this but as Rubyist these are things I look for in candidate's that I hire :).

    PS: I've not included Databases in all of this which I think is obvious to say is important when fleshing out a CV.

    PPS: Two books I would recommend highly (can easily be read on holiday in the sun)

  • Seven Languages in Seven Weeks
  • Seven Databases in Seven Weeks

    Both of these books are fairly light hearted, give you a grounded understanding of the core differences in languages and databases, assume your a programmer already and IMO are very interesting reads for someone that is keen to look at languages from different angles. Prolog == mind blown

    Good Luck
u/SethBling · 18 pointsr/mindcrack

That was how I learned about genetics and evolution, but the actual book that directly inspired this was Emergence.

u/[deleted] · 16 pointsr/funny

Advice is cheap, so take this with a grain of salt. But programming is one of the few jobs in which it's easy to make a lot of money being creative. Not to mention it's a lot of fun, and in high demand. I would highly suggest reading Hackers & Painters to get a feel for what makes it so fun (the author of which is a big reason Reddit exists).

u/smoktimus_prime · 16 pointsr/RationalPsychonaut

Note my disclaimer of huge grain of salt. I'm just regurgitating things that I've read and contextualizing it with my personal experience.

But neuroplasticity is not a concept I am simply speculating on. -http://en.wikipedia.org/wiki/Neuroplasticity

Drugs like psilocybin and LSD do what they do because they affect our neurochemical receptors, like serotonin.

There is evidence out there that these types of things happen such as recent treatments using these drugs to treat PTSD. You can go find these for yourself. At the least, a neuronal rewiring explanation is infinitely more rational than the sort of "the fungal/plant spirit healed me!" woo.

It's not my field of study. These are not my ideas. If you're looking for a stalwart defense of them, I encourage you to go read about them. For instance, a book like this one: http://www.amazon.com/Psychedelic-Information-Theory-Shamanism-Reason/dp/1453760172

Again, I would encourage you and everyone else to read material and come to your own conclusion. I just wanted to try to answer OP by regurgitating some of the information I have collected.

u/acetv · 14 pointsr/math

You are in a very special position right now where many interesing fields of mathematics are suddenly accessible to you. There are many directions you could head. If your experience is limited to calculus, some of these may look very strange indeed, and perhaps that is enticing. That was certainly the case for me.

Here are a few subject areas in which you may be interested. I'll link you to Dover books on the topics, which are always cheap and generally good.

  • The Nature and Power of Mathematics, Donald M. Davis. This book seems to be a survey of some history of mathematics and various modern topics. Check out the table of contents to get an idea. You'll notice a few of the subjects in the list below. It seems like this would be a good buy if you want to taste a few different subjects to see what pleases your palate.

  • Introduction to Graph Theory, Richard J. Trudeau. Check out the Wikipedia entry on graph theory and the one defining graphs to get an idea what the field is about and some history. The reviews on Amazon for this book lead me to believe it would be a perfect match for an interested high school student.

  • Game Theory: A Nontechnical Introduction, Morton D. Davis. Game theory is a very interesting field with broad applications--check out the wiki. This book seems to be written at a level where you would find it very accessible. The actual field uses some heavy math but this seems to give a good introduction.

  • An Introduction to Information Theory, John R. Pierce. This is a light-on-the-maths introduction to a relatively young field of mathematics/computer science which concerns itself with the problems of storing and communicating data. Check out the wiki for some background.

  • Lady Luck: The Theory of Probability, Warren Weaver. This book seems to be a good introduction to probability and covers a lot of important ideas, especially in the later chapters. Seems to be a good match to a high school level.

  • Elementary Number Theory, Underwood Dudley. Number theory is a rich field concerned with properties of numbers. Check out its Wikipedia entry. I own this book and am reading through it like a novel--I love it! The exposition is so clear and thorough you'd think you were sitting in a lecture with a great professor, and the exercises are incredible. The author asks questions in such a way that, after answering them, you can't help but generalize your answers to larger problems. This book really teaches you to think mathematically.

  • A Book of Abstract Algebra, Charles C. Pinter. Abstract algebra formalizes and generalizes the basic rules you know about algebra: commutativity, associativity, inverses of numbers, the distributive law, etc. It turns out that considering these concepts from an abstract standpoint leads to complex structures with very interesting properties. The field is HUGE and seems to bleed into every other field of mathematics in one way or another, revealing its power. I also own this book and it is similarly awesome. The exposition sets you up to expect the definitions before they are given, so the material really does proceed naturally.

  • Introduction to Analysis, Maxwell Rosenlicht. Analysis is essentially the foundations and expansion of calculus. It is an amazing subject which no math student should ignore. Its study generally requires a great deal of time and effort; some students would benefit more from a guided class than from self-study.

  • Principles of Statistics, M. G. Bulmer. In a few words, statistics is the marriage between probability and analysis (calculus). The wiki article explains the context and interpretation of the subject but doesn't seem to give much information on what the math involved is like. This book seems like it would be best read after you are familiar with probability, say from Weaver's book linked above.

  • I have to second sellphone's recommendation of Naive Set Theory by Paul Halmos. It's one of my favorite math books and gives an amazing introduction to the field. It's short and to the point--almost a haiku on the subject.

  • Continued Fractions, A. Ya. Khinchin. Take a look at the wiki for continued fractions. The book is definitely terse at times but it is rewarding; Khinchin is a master of the subject. One review states that, "although the book is rich with insight and information, Khinchin stays one nautical mile ahead of the reader at all times." Another review recommends Carl D. Olds' book on the subject as a better introduction.

    Basically, don't limit yourself to the track you see before you. Explore and enjoy.
u/TheAethereal · 12 pointsr/crypto

Mathematical Notation: A Guide for Engineers and Scientists has helped me out a lot. It isn't really a "math book", in that it doesn't really teach you concepts. But it tells you what things are and what they do in general. So if you don't know what Σ means, it will tell you, and at least give you a place to start.

For crypto you probably also want a book on number theory.

Also, Understanding Cryptography: A Textbook for Students and Practitioners is the best intro to cryptography book I've come across. I found it easy to understand (relative to other books).

u/TomorrowPlusX · 11 pointsr/programming

I don't have a good answer for you. I've always found programming fascinating, and (in the early 2000s when I was doing this stuff) I had just read Emergence and it got me thinking about these kinds of problems.

I'd done lots of coding - I'd even written my own software-rasterizing 3d engines back in the 90s for fun, but to do this stuff I taught myself opengl and then read lots of papers from the 80s about stuff like Rodney Brooks' Subsumption Architecture

Then, I just started writing code and when I fucked up, I backtracked and kept trying until things worked.

It helped I was in my 20s (I'm old now, and have a familiy and responsibilities).

But here's the thing: I'm not a computer scientist. I'm not even really a programmer. I studied painting in college. I just happen to really love programming so I figure the stuff out on my own. I work professionally as a graphic designer and "interaction" programmer, which is a bullshit term for somebody who designs & codes.

But my degree is in fine arts, so, shrug.


Really, all it takes is a willingness to dive into something which you know fuck-all about headfirst and just let yourself drown until you start grokking it. I did plenty of calculus and whatnot in high school, but I never really got linear algebra until I started writing opengl and dealing with matrices and quaternions, etc etc. You just have to be willing to make yourself learn.

As humans we've got these big brains. Barring actual problems like mental handicaps, the vast majority of us are all capable of learning things we didn't expect we could learn. It's just that most of us want to watch TV or play video games.

Give yourself a hard problem you find interesting and I guarantee you can surprise yourself.


u/faintdeception · 11 pointsr/learnprogramming

The amount of planning you have to do scales with the complexity of the project.

Professors drill the importance of planning, documentation and unit testing into students because it is extremely important and once you start your career if you're a poor planner it's going to come back to haunt you.

However, when you're working on a simple project that's not intended for public release you don't have to go overboard with docs unless you just want to practice.

My own process usually starts with me jotting down an idea; I find that writing it out helps me to get a better grasp on the overall feasibility.

Once I'm satisfied that I actually have something I can implement I'll diagram the flow of the application, and maybe do some wire-frames.

I usually find that this is enough of a launching pad for a simple personal project.

Professional projects are a different ballgame, because as I said, the amount of planning you have to do scales with the complexity and size of the project. It's in the professional environment that all of the things your professors are teaching you will become really important.

So, to answer what I think was your question,

>So how does one end up with 20 classes connected with each other perfectly and a build file that set everything up working flawlessly with unit test methods that check every aspect of the application?


This comes about more in the implementation phase than the planning phase. I've heard it said that in war "no plan survives contact with the enemy" and you'll find this to be true in software development as well. Even when you plan really well you'll sometimes have to go back to the drawing board and come up with a new plan, but that's just part of the process.

Some books that I recommend on the topic are Hackers and Painters - Paul Grahm and I think every software dev should have a copy of Design Patterns

The former is a collection of essays that might give you some useful perspective on the process of writing software.

The latter is more of a reference book, but it's helpful to become familiar with the patterns covered in the book so that you don't find yourself re-inventing the wheel every time you begin a new project.


As for the other part of your question (apologies for addressing them out of order)

>My new "bottleneck" writing code is the structure. I end up having huge classes with way to many public methods. I might as well just write a script with everything in one file. Almost anyway.. I try to write OO, but I often get lazy and just end up with not very elegant systems I would say.

Don't be lazy, because as you're already seeing, it comes back to bite you in the ass.

As you're writing your code you have to be mindful of the complexity of the project as it grows around you, and you have to periodically take a step back and look at what you've created, and re-organize it. This kind of goes back to what I was saying earlier about no plan surviving enemy contact.

So when you find yourself creating a new class that you hadn't thought about, be mindful of where you put it.

Should you create a new file (yes, of course you should), new folder?

Do you have a bunch of similar classes doing the same thing? Should they inherit from one another?

Be especially mindful of copy and pasting from one are of your code to another, generally speaking if you're doing this you should probably be writing a function, or using inheritance.

It's up to you as the developer to make sure your project is organized, and now-a-days it's really easy to learn how to best organize code by looking through other peoples projects on github, so there's really no excuse for it.

Hope that helps, good luck.

u/nineelevglen · 11 pointsr/javascript

dont really think you've been learning in the right places. you're getting a bunch of things mixed up.

first node is backend, just like rails and php etc. javascript can be used both in front and backend. which is unique.

You have to break it down to one question: what do you need it for? do you need a single page application (backbone, angular etc)?
do you have a backend? do you need a backend? (yes you do)
do you just need fast rendering and not a single page att all? (node.js with hapi or express).
do you need a document database (mongo, couch) or a graph (neo4j, level) or a relational (mysql, postgres), or maybe an in memory (redis, level)? use the one thats best for the need.

pick the tools to do the job not the other way around.

learn about the MEAN stack, read seven databases in seven weeks.

u/binxabinx · 10 pointsr/math

So, basically, I've gone through roughly the same arc of interests as you. Math major, got into graphic design, got into web design, got into programming, started wondering how I was going to tie it all together. Luckily, my school's honors program offers students the opportunity to design their own thesis, regardless of what major you come from. So, I did mine in:

Data Visualization. The point of this is to take data (math!) and represent it (programming!) in a simple, understandable, and elegant manner (design!). I love it. I feel like it's my calling. No idea if you'll be drawn it it as much as I am, but here's some links to browse through:

u/Mathemagicland · 9 pointsr/pics

Morse code does take character frequency into account, it just doesn't do so perfectly.

>In the name of speed, Morse and Vail had realized that they could
save strokes by reserving the shorter sequences of dots and dashes for the
most common letters. But which letters would be used most often? Little
was known about the alphabet’s statistics. In search of data on the letters’
relative frequencies, Vail was inspired to visit the local newspaper office
in Morristown, New Jersey, and look over the type cases.
He found a stock of twelve thousand E’s, nine thousand T’s, and only two hundred
Z’s. He and Morse rearranged the alphabet accordingly. They had
originally used dash-dash-dot to represent T, the second most common letter; now
they promoted T to a single dash, thus saving telegraph
operators uncountable billions of key taps in the world to come. Long
afterward, information theorists calculated that they had come within 15
percent of an optimal arrangement for telegraphing English text.

Source: The Information: A History, a Theory, a Flood, by James Gleick

u/BarnabyCajones · 9 pointsr/slatestarcodex

I first came across him as a wide ranging essayist sometime shortly after the first dot com crash (where he made a bunch of money). I actually remember when Graham started writing essays about startups; I was pretty annoyed, because I really enjoyed a lot of his essays before that point, and the startup stuff struck me as much less interesting. To be honest, when I first came across Scott, my first reaction was that he kind of reminded me of Graham at his best, in his prior-to-startup essayist phase. Take that for what it's worth.

I'm thinking here of essays like Grahams "Why Are Nerds Unpopular", for example : http://www.paulgraham.com/nerds.html

I would say that the thing that stuck out to me about Graham during that phase was that he was clearly a very sharp programmer, but he also was very interested in society and culture and thought about them in a way that was interesting and often surprising, more like a really sharp pundit with a more humanist orientation than most smart programmers I know. Even when he was generalizing, which he often was, he'd be working around some big idea that would linger after the end of his essay.

A curated selection of his essays is here : https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554

u/pmigdal · 8 pointsr/MachineLearning

For canonical references, there is Thomas, Cover, Elements of Information Theory. For a shorter one, I like Probability and Information Theory chapter in the http://www.deeplearningbook.org/.

And if, for some crazy reason, you speak Polish, I wrote a short post Prawdopodobieństwo a informacja.

u/johnw188 · 7 pointsr/programming

You should check out appcode, it's basically objective-c intellij. I've been using it instead of xcode for a while now, it's excellent.

As for the cocoa-touch framework, I think your issues with it come from a lack of understanding of the design patterns behind objective c. You admit in your post that you've only done a single project in objective c. I develop in ObjC professionally, and I find cocoa touch to be one of the best frameworks I've ever worked in. I can quickly and easily implement any type of ui I want, without hitting language or api constraints.

>I've only done one real Objective-C project, but before I do another, I'm seriously going to spend the time to wrap these retarded classes in my own so I can write the last 20% that's missing and save myself hours of development time anytime I need to implement one in the future. And that's just disappointing to me to see how much time apple spends on making sure their user experience is top notch, but then completely ignores and drops the ball on their developer experience.

This is a terrible idea. Just trying to save you some time. If you want a better use of your time, check out this book - http://www.amazon.com/Cocoa-Design-Patterns-Erik-Buck/dp/0321535022

The other issue that you run into with Objective C is that there was kind of a gold rush on the app store that has lots of terrible developers who have no idea what they're doing writing objective c and talking about it on forums, which gets picked up on your searches. There's a huge amount of faulty information on objective c online, which is a bit disheartening.

The other point that I have to make is that iphone apps are fast. Compare an iphone app to an android app, see which is faster and smoother. This is often down to the table view apis and their optimizations. Stuff like having a separate function for serving up the size of your cells falls into this category.

>Implimenting a pickerView or tableView is absolutely retarded.

I don't see the issue in the apis here. You have a view that has a pointer to a data source and a pointer to a delegate. The data source implements functions from a protocol that return the cells for the rows that the view asks for, and the delegate implements functions that get called by the view when certain things happen. This approach gives you far more flexibility in the architecture of your application than requiring you to pass stuff directly into your view object.

u/alexrepty · 7 pointsr/ObjectiveC

While this doesn't specifically cover designing complex applications, I still found it a great resource for designing the inner workings of my apps: http://www.amazon.com/Cocoa-Design-Patterns-Erik-Buck/dp/0321535022/ref=sr_1_1?ie=UTF8&qid=1382636637&sr=8-1&keywords=Cocoa+Design+Patterns

u/nationcrafting · 7 pointsr/Anarcho_Capitalism

Hello DrMerkwurdigliebe,

Always nice to get into stimulating discussions, isn't it?

Re: bees. It's a fascinating subject. I did quite a bit of reading on the subject of emergent intelligence. A good summary book, with great insight into the ramifications of the theory, as well as a broad set of connecting information, would be "Emergence: The Connected Lives of Ants, Brains, Cities, and Software" by Steven Johnson. You can find it here. Another book, which was written about 30 years ago but is still very relevant, and more pertinent to the subject of economics and politics, would be "Micromotives and Macrobehavior" by Thomas Schelling, which is available here. Schelling won the Nobel Prize in economics for his work on the subject, but that was a while ago, and the neo-Keynesian flavour of economics (à la Krugman) is sadly back in vogue...

Re: anarcho-capitalism. I do often post on the anarcho-capitalist reddit, but I don't really consider myself as one, for the simple reason that I think any such "isms" imply a level of politicisation and activism that I think are neither relevant to the 21st century, nor do they do advocates for change towards individual-oriented thinking any favours.

I see the nation as a product that one can design, re-design, test, re-launch, modify into v2, v3, etc. thereby increasing its fitness for purpose, as well as the general satisfaction its users will have with it over time. Great houses are not designed by activist architects, great cars are not designed by activist car designers. Sure, there may be a corporate philosophy that informs a particular way of designing a product, but the key thing is that the product's users consume it, they have the power of buying it or not buying it, thereby voting with their consumer feedback or their dollar, and thus further improve it. If you think about how people talk to shopkeepers vs. how they talk to, say, TSA staff, you'll see straightaway that the consumer role puts them in a position of power which, in aggregate, ends up taking the market to greater and greater products.

When you combine this relationship between supplier and consumer with the leverage that capital and technology can give the private sector, its yearly improvement leads to the kind of progress statists can only dream of. For example, the fact that, after about 30 years of privatisation, telephony as a sector has managed to make viable companies like Skype (which give you FREE telephone video calls around the planet) is, to me, a perfect example of just what can be achieved when a system is set up for the free market to provide something that until recently couldn't even be conceived of as a non-state sector.

All food for thought...

All the best,

Nationcrafting

u/33virtues · 7 pointsr/Antshares

hey folks. been really enjoying chatting with some of you here on reddit and on slack. Slack (and here too) has really been exploding in numbers over the past few days. Watching the Western community come together and engage our ambassadors from the East reminds me of a book I read when I was younger called Emergence: The Connected Lives of Ants, Brains, Cities, and Software

"An individual ant, like an individual neuron, is just about as dumb as can be. Connect enough of them together properly, though, and you get spontaneous intelligence. Web pundit Steven Johnson explains what we know about this phenomenon with a rare lucidity in Emergence: The Connected Lives of Ants, Brains, Cities, and Software. Starting with the weird behavior of the semi-colonial organisms we call slime molds, Johnson details the development of increasingly complex and familiar behavior among simple components: cells, insects, and software developers all find their place in greater schemes.

Most game players, alas, live on something close to day-trader time, at least when they're in the middle of a game--thinking more about their next move than their next meal, and usually blissfully oblivious to the ten- or twenty-year trajectory of software development. No one wants to play with a toy that's going to be fun after a few decades of tinkering--the toys have to be engaging now, or kids will find other toys.

Johnson has a knack for explaining complicated and counterintuitive ideas cleverly without stealing the scene. Though we're far from fully understanding how complex behavior manifests from simple units and rules, our awareness that such emergence is possible is guiding research across disciplines. Readers unfamiliar with the sciences of complexity will find Emergence an excellent starting point, while those who were chaotic before it was cool will appreciate its updates and wider scope."



With aligned economic incentives we're building the next generation of blockchain tech together, and we all get to witness it in realtime. What a unique moment in history, a first. Sell if it's painful, we'll support you when you buy back lower (or higher lol). Hopefully we can still stay focused on the long-term payoff but the immediate goals. Whether it's Neo or not (that depends largely on us and what our emergent collective behavior is), I'm pretty confident that self-assembling organizations utilizing the blockchain is how we solve a lot of the world's pressing issues. This is how we win.

u/ennesette · 7 pointsr/badphilosophy

> James Kent is the author of Psychedelic Information Theory: Shamanism in the Age of Reason

Checks out.

> this text was researched for over 20 years and includes over 200 references and 31 images related to the latest science in the diverse fields of pharmacology, shamanism, and perception.

u/_imjosh · 6 pointsr/node

Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design (3rd Edition) https://www.amazon.com/dp/0321884493/

u/kanak · 6 pointsr/compsci

I would start with Cover & Thomas' book, read concurrently with a serious probability book such as Resnick's or Feller's.

I would also take a look at Mackay's book later as it ties notions from Information theory and Inference together.

At this point, you have a grad-student level understanding of the field. I'm not sure what to do to go beyond this level.

For crypto, you should definitely take a look at Goldreich's books:

Foundations Vol 1

Foundations Vol 2

Modern Crypto

u/jnazario · 6 pointsr/compsci

i recently read Pierce's An Introduction to Information Theory and was pleased. while it's not recent it's a good intro, if thats' what you're looking for. also it's a dover edition so it's priced very low.

u/knotdjb · 6 pointsr/crypto

Being a "techy" isn't really useful with learning and understanding crypto. There's many cryptographers that are mathematicians who barely use computers. Cryptography is a multi-faceted discipline but the typical divide is between mathematicians and computer scientists.

So having a foundation in math & computer science is very useful.

In any case, Simon Singh's book is a good introduction. It is a pleasant read but a bit fluffy.

Although not specifically crypto, I would start with Network Security by Kaufman et al. It primarily discusses network security but gently introduces some cryptography primitives.

Another book from a mathematician perspective is this book.

Then there's joy of cryptography which is a formal treatment using a notion of provable security (a bit of a different take to Katz & Lindell Modern Cryptography), which computer scientists tend to have a boner for.

u/LIFE_SIZE_GIRAFFE · 6 pointsr/Showerthoughts

No, you're confusing wealth and money. Wealth is anything of value, and because people are constantly working to make products and deliver services, wealth is ever-increasing. Money is somewhat of a net sum of zero, but this is not as much of a problem because people can increasingly accumulate wealth.

If you build yourself a house, you have created wealth. No one loses anything from your efforts. If you then choose to sell the house, money will be transferred, but this is incidental and not very important because the buyer of the house can create their own wealth, say, through making trinkets. Them trading their (large number of) trinkets for your house benefits both parties. Money is just a means to trade the wealth created by one person for the wealth created by another. In this example, assuming a fair trade of trinkets to house, both parties are better off, and no one loses wealth.

Because wealth and money are different, everyone can gain wealth without anyone having to lose wealth. Money will change hands, but this is necessary to conveniently trade wealth.

I highly recommend the book Hackers & Painters by Paul Graham. In chapter 7, he discusses this topic at length.

u/645646464 · 5 pointsr/crypto
u/kyoseki · 5 pointsr/vfx

No problem.

A solid understanding of python & logic also helps, but 90% of the dicking around you'll be doing will be in VEX, which is pretty much just vector math.

The handy thing about Houdini is that geometry operators and shaders are both written in the same language, so you can prototype operations in SOPs and then copy/paste the code/VOPs to the shader context and as long as you remember to handle the space transforms (shaders default to camera space, SOPs default to object space) everything just works.

This masterclass on fluid solvers is fantastic, it's what made DOPs really click for me, this is a good example of the math;
https://vimeo.com/42988999

Other books worth reading;
https://www.amazon.com/Fluid-Simulation-Computer-Graphics-Second/dp/1482232839/ref=sr_1_1?s=books&ie=UTF8&qid=1480804002&sr=1-1&keywords=fluid+simulation+for+computer+graphics+second+edition - full explanation of how fluid solvers work internally, probably overkill for most artists, but helpful if you want to break things, namely FLIP & Pyro.

https://www.amazon.com/Advanced-RenderMan-Creating-Pictures-Kaufmann/dp/1558606181 (this is quite old and deals solely with the old REYES algorithm, but contains a lot of information on how renderers work internally and a lot of it applies to VEX, which was designed to be very similar to RSL).

https://www.amazon.com/Physically-Based-Rendering-Third-Implementation/dp/0128006455/ref=sr_1_1?s=books&ie=UTF8&qid=1480803895&sr=1-1&keywords=physically+based+rendering This is an explanation of the workings of physically based renderers, but it's quite heavy going.

u/multiquine · 5 pointsr/programming

I will accept that the premise of the post is

> In today’s post I will cover which messages we shuffle between
> the server and clients and their purpose, how the game world is
> fundamentally managed, and how we use an Actor class to help
> manage scene objects.

and therefore accept that the post does comply with its expression of intent.

However, I feel that there is something worthwhile to add, namely
expressing how a solution came to be about; in particular, I have always shared Dijkstra's sentiment from the back of A Discipline of Programming, namely

> "A second reason for dissatisfaction was that algorithms are
> often published in the form of finished producs, while the
> majority of the considerations that had played their role during
> the design process and should have justified the eventual shape > of the finished program were hardly mentioned. ..."
>
> — Edsger W. Dijkstra

For me the takeaway of the above quote is that when the design process is missing from the content matter assimilating the knowledge into one's own self becomes the labour of the reader as opposed to the challenge that the author has to overcome, thereby distributing the burden on the many as opposed to the few.

u/mooglinux · 5 pointsr/swift

This book, updated for Swift.

u/mredding · 5 pointsr/compsci

I can't speak of a specific book that is a comprehensive history of computing, but I will speak to books that speak of our culture, our myths, and our hero's.

Hackers and Painters, by Paul Graham. People are polarized about the man, whether he's too "pie in the sky" - full of shit and ego, or if he speaks as an ambassador to our most optimistic ideals of our (comp-sci) culture. The contents of this book is a collection of his essays that are inspirational. It made me forego the societal pressures within our culture and reject popular opinion because it is merely popular and just an opinion, which is a virtue no matter who you are, where you are, or what you do. All these essays are on his website, though. If you want to review them, I recommend Hackers and Painters (the essay), What You Can't Say, Why Nerds are Unpopular, and The Age of the Essay; his oldest essays are at the bottom of the page and go up - he writes about what he's thinking about or working on at the time, so you'll see the subject matter change over time. So much of this will have direct application to his middle school and high school life. I cannot recommend this book, and the rest of his essays, enough.

If he wants to get into programming, I recommend The Pragmatic Programmer. This book talks about the software development process. I'm not going to lie, I don't know when best to introduce this book to him. It's not a hard read whatsoever, but it's abstract. I read it in college in my first months and said, "Ok," and put it down. Approaching the end of college and my first couple years in my profession, I would reread it ever 6 months. It's a kind of book that doesn't mean anything, really, without experience, without having to live it, when he has an obligation to his craft, his profession. I tell you about this one since you're asking about books to tell him, because this isn't something someone would normally come up across without being told about it.

The Cathedral and the Bazaar is a telling book about the cultural differences between the proprietary monoliths like Apple and Microsoft, and the Free and Open Source Software communities that back such popular software as Linux (the most popular operating system on the planet, running on all top 500 super computers, most server computers on the internet, and all Android phones) and Chrome(the worlds most popular web browser). Indeed, this book directly reflects the huge cultural battle that was duked out in the field, in the industry, and in the courts from the mid-90s and into the 2000s. It advocates helping the community, contributing to something larger than yourself, and that none of us are as good as all of us. To paraphrase Linus Torvalds(inventor of Linux) "Given enough eyeballs, all bugs are shallow."

It's important to know who the hero's are in our culture, and they are diverse and varied, they're not just computer scientists, but mathematicians, physicists, philosophers, science fiction writers, and more. I would find a good book on Nicola Tesla, since he invented basically everything anyway (Thomas Edison was a great businessman, but a bit of a tosser), Richard Feynman was a physicist who is still celebrated in his field, and he even worked for Thinking Machines, back in the day, which was a marvel of it's time. Seymour Cray founded Cray Supercomputers and they have a lasting legacy in the field, a biography on that would be interesting. A biography on Symbolics and their Lisp Machines will make him yearn to find one still functioning (a rare gem that crops up every now and again, though he can run one in an emulator), and about the "AI Winter", a significant historic era (note: the AI Winter is over, and we are in spring, the history is both compelling and enthralling). Anything Issac Asimov published (in nearly every category of the dewy decimal system) is also compelling, and hardly dated. In fact, he's the originator of a lot of modern sci-fi. Charles Babbage invented the modern computer (though it was entirely mechanical in his day, and it wasn't actually built until 1996-2002) and Ada Lovelace was the worlds first computer programmer. A woman! Speaking of women, and it's worth young men learning this about our history, Grace Hopper was a military computer engineer who invented the term "bug".

And speaking of women, someone I have respect for, especially if your boy wants to get into game development is Sheri Graner Ray's Gender Inclusive Game Design, which may be more appropriate when he's in high school, and I consider it required reading for anyone who wants to enter the gaming industry. The book lays out plainly how video games hyper-sexualize both women, and, for some reason surprisingly to many - men, it's disastrous effects it has for the game industry, the game market, and the gaming community, and insights on how we may combat it. I have seen colleagues (men) become indignant and personally offended at reading this book, but were absolutely humbled when they took the fight to Sheri directly (we had a few phone interviews with her, always fantastic). If your boy found a problem with this book, he would do well to read Paul Grahams essay on keeping his identity small... The subject matter is not a personal attack on the individual, but on the blight, and he would be better served finding himself on the right side of history with this one, it would serve him well if he were to pursue this craft, specifically, but also any forward facing media in general.

And I also recommend some good books on math. Algebra, linear algebra, calculus, and statistics. You can get very far, lead an entire career unto retirement without knowing anything more than arithmetic and basic, basic algebra, but he could only serve himself well if he makes the decision that he is going to like maths and chooses to willfully become good at it. Outside the context of school and terrible teachers, it's actually an enthralling subject. Just get him a copy of Flatland, Flatterland, and Sphereland. Try this. There are books about proofs that break them down into laymen terms so that anyone can celebrate how special they are. My wife has a few on the shelf and I can't remember their titles off hand. Also this, the book is the narrative of some witty laymen who discover a whole branch of mathematics from first principles, the surreal numbers, an extension of imaginary numbers. It's really quite good, but might keep him occupied for a couple years in high school.

I should stop here or I never will.

u/OceansOnPluto · 5 pointsr/compsci

This is a little less scholarly and a little more geared towards history, but it's a fascinating read and one of the best books I've read in the last couple of years. It doesn't start with Claude Shannon, but rather with different ways that human beings have disseminated information to each other (talking drums, the telegram, etc), over the years. Definitely, after you're done with everything else, put this on your list, it's great.

Edit: Apparently I forgot the link. http://www.amazon.com/The-Information-History-Theory-Flood/dp/1400096235

u/an-anarchist · 5 pointsr/cryptography

Yes and no. If you're asking these questions you'll probably be very interested in Claude Shannon's work. Take a read of his seminal information theory paper: http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf

For an easy read and a fun intro take a look at "The Information: A History, A Theory, A Flood":
https://www.amazon.com/Information-History-Theory-Flood/dp/1400096235/

u/putaindedictee · 5 pointsr/math

Doctor J. H. Silverman has written extensively on the topic, having been infected with the elliptic curve bug himself. I recommend his book "An Introduction to Mathematical Pathography", which contains a great introductory account of the fascinating consequences of the elliptic-curve-itis.

u/JamesR · 5 pointsr/programming

In Hackers & Painters, Paul Graham submits that hacking is more art than science. I think probably that's true of great hacking, but for many people I've worked with it's a means to an end like you say, not a form of creative expression.

I'm not a great hacker (I've also worked with great hackers so I know what their work looks like), but I still relate to Graham's essay quite a bit and try to make code that I and others think is beautiful.

u/doubleyouteef · 5 pointsr/learnprogramming

DDaRT followed by Seven Databases in Seven Weeks was very a useful refresher for me.

u/kirankuppa · 4 pointsr/Database

I strongly recommend Database Design for Mere mortals. Though your question is on SQL, I am not sure if you are that specific.

Query language is a way in which you can express your understanding of the concepts (entities), how they relate to each other (relationships) and the business a particular database is addressing. Being able to write excellent queries depends on how well you understand the database structure itself.

That's why understanding database design is actually more relevant to your query, IMO. Think of it this way - once you understand the database structure, you understand everything about the company's business.

u/Elynole · 4 pointsr/gamedev

The application that you're trying to make (per you, similar to Futhead.com) is data-centric, and therefore, I'd say it'd be about time for you to learn proper data storage, manipulation and querying.

If you're looking to build anything near this website, then you're probably going to want to start learning SQL - as you'll most likely be doing complex queries for your site.

I would check out CodeSchool's SQL courses, it's a slow, easy course covering the basics of the language.

Once you feel comfortable querying data, start learning a database technology. If websites will be your aim, then I suggest MySQL just due to the infinite number of resources that are MySQL and web related. (My preference is Postgres, but the tutorials revolving around Postgres and web development are much less common, however the official documentation for Postgres is much better than MySQL).

Play around with the database, learn to create some tables, insert some data, query the data, etc. When you're ready to take the next step, I'd encourage you to pick up the book Database Design for Mere Mortals. It's a great entry-level resource into learning relational database theory and its practical application.

Once you've learned to store your data, manipulate your data, and query your data then throwing the data you currently have in your excel spreadsheet will be a breeze. As will connecting your site/application to the database.

I do not recommend programming around parsing an excel spreadsheet if you're at all serious about this project.

u/ascii_genitalia · 4 pointsr/askscience

Another relevant wiki for you to consider. Many modern theorists dispute the strong Whorfian hypothesis, where language strictly precedes thought.

I'd also recommend The Information as an interesting exploration of the history of human intelligence.

u/_INTER_ · 4 pointsr/java

If you want to get a head start at the college, I'd rather get more fundamental programming knowledge. Get a book about algorithms and datastructures (e.g. this or this, first few Google results pointed me to a PDF).

Well of course practical knowledge is also never bad.

u/novalsi · 4 pointsr/dataisbeautiful

I highly recommend Visualizing Data by Ben Fry, the guy who created ZipDecode. It's a very well-written, and accessible, and it goes through explanations of the Processing framework in a very hands-on way.

You're gonna love it!

u/rickg3 · 4 pointsr/FCJbookclub

I read books 4-6 of the Dresden Files. I blame Patrick Rothfuss for getting me started and duckie for keeping me going. Coupla assholes. After I finish the other 8 books, I have some nice, solid non-fiction lined up.

In no particular order, I'm going to read:

The Information by James Gleick

The Better Angels Of Our Nature by Steven Pinker

The Math Book by Clifford A. Pickover

The Know-It-All by A.J. Coastie Jacobs

And others. I'm gonna nerd out so hard that I'll regrow my virginity.

u/grandzooby · 4 pointsr/compsci

Not exactly hardware focused, but I really enjoyed Gleick's "The Information, A History, A theory, A flood"

http://www.amazon.com/The-Information-History-Theory-Flood/dp/1400096235/

It does a great job of looking at computing in terms of information and its history. I loved the look at prominent figures like Babbage, Lovelace, Turing, etc.

u/CSMastermind · 4 pointsr/learnprogramming

I've posted this before but I'll repost it here:

Now in terms of the question that you ask in the title - this is what I recommend:

Job Interview Prep


  1. Cracking the Coding Interview: 189 Programming Questions and Solutions
  2. Programming Interviews Exposed: Coding Your Way Through the Interview
  3. Introduction to Algorithms
  4. The Algorithm Design Manual
  5. Effective Java
  6. Concurrent Programming in Java™: Design Principles and Pattern
  7. Modern Operating Systems
  8. Programming Pearls
  9. Discrete Mathematics for Computer Scientists

    Junior Software Engineer Reading List


    Read This First


  10. Pragmatic Thinking and Learning: Refactor Your Wetware

    Fundementals


  11. Code Complete: A Practical Handbook of Software Construction
  12. Software Estimation: Demystifying the Black Art
  13. Software Engineering: A Practitioner's Approach
  14. Refactoring: Improving the Design of Existing Code
  15. Coder to Developer: Tools and Strategies for Delivering Your Software
  16. Perfect Software: And Other Illusions about Testing
  17. Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application

    Understanding Professional Software Environments


  18. Agile Software Development: The Cooperative Game
  19. Software Project Survival Guide
  20. The Best Software Writing I: Selected and Introduced by Joel Spolsky
  21. Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams
  22. Rapid Development: Taming Wild Software Schedules
  23. Peopleware: Productive Projects and Teams

    Mentality


  24. Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency
  25. Against Method
  26. The Passionate Programmer: Creating a Remarkable Career in Software Development

    History


  27. The Mythical Man-Month: Essays on Software Engineering
  28. Computing Calamities: Lessons Learned from Products, Projects, and Companies That Failed
  29. The Deadline: A Novel About Project Management

    Mid Level Software Engineer Reading List


    Read This First


  30. Personal Development for Smart People: The Conscious Pursuit of Personal Growth

    Fundementals


  31. The Clean Coder: A Code of Conduct for Professional Programmers
  32. Clean Code: A Handbook of Agile Software Craftsmanship
  33. Solid Code
  34. Code Craft: The Practice of Writing Excellent Code
  35. Software Craftsmanship: The New Imperative
  36. Writing Solid Code

    Software Design


  37. Head First Design Patterns: A Brain-Friendly Guide
  38. Design Patterns: Elements of Reusable Object-Oriented Software
  39. Domain-Driven Design: Tackling Complexity in the Heart of Software
  40. Domain-Driven Design Distilled
  41. Design Patterns Explained: A New Perspective on Object-Oriented Design
  42. Design Patterns in C# - Even though this is specific to C# the pattern can be used in any OO language.
  43. Refactoring to Patterns

    Software Engineering Skill Sets


  44. Building Microservices: Designing Fine-Grained Systems
  45. Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
  46. NoEstimates: How To Measure Project Progress Without Estimating
  47. Object-Oriented Software Construction
  48. The Art of Software Testing
  49. Release It!: Design and Deploy Production-Ready Software
  50. Working Effectively with Legacy Code
  51. Test Driven Development: By Example

    Databases


  52. Database System Concepts
  53. Database Management Systems
  54. Foundation for Object / Relational Databases: The Third Manifesto
  55. Refactoring Databases: Evolutionary Database Design
  56. Data Access Patterns: Database Interactions in Object-Oriented Applications

    User Experience


  57. Don't Make Me Think: A Common Sense Approach to Web Usability
  58. The Design of Everyday Things
  59. Programming Collective Intelligence: Building Smart Web 2.0 Applications
  60. User Interface Design for Programmers
  61. GUI Bloopers 2.0: Common User Interface Design Don'ts and Dos

    Mentality


  62. The Productive Programmer
  63. Extreme Programming Explained: Embrace Change
  64. Coders at Work: Reflections on the Craft of Programming
  65. Facts and Fallacies of Software Engineering

    History


  66. Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
  67. New Turning Omnibus: 66 Excursions in Computer Science
  68. Hacker's Delight
  69. The Alchemist
  70. Masterminds of Programming: Conversations with the Creators of Major Programming Languages
  71. The Information: A History, A Theory, A Flood

    Specialist Skills


    In spite of the fact that many of these won't apply to your specific job I still recommend reading them for the insight, they'll give you into programming language and technology design.

  72. Peter Norton's Assembly Language Book for the IBM PC
  73. Expert C Programming: Deep C Secrets
  74. Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming
  75. The C++ Programming Language
  76. Effective C++: 55 Specific Ways to Improve Your Programs and Designs
  77. More Effective C++: 35 New Ways to Improve Your Programs and Designs
  78. More Effective C#: 50 Specific Ways to Improve Your C#
  79. CLR via C#
  80. Mr. Bunny's Big Cup o' Java
  81. Thinking in Java
  82. JUnit in Action
  83. Functional Programming in Scala
  84. The Art of Prolog: Advanced Programming Techniques
  85. The Craft of Prolog
  86. Programming Perl: Unmatched Power for Text Processing and Scripting
  87. Dive into Python 3
  88. why's (poignant) guide to Ruby
u/vmsmith · 4 pointsr/statistics

A couple of these have been mentioned already:

  • Fooled by Randomness -- Nassim Nicholas Tabeb
  • The Black Swan -- Nassim Nicholas Taleb
  • The Drunkard's Walk
  • The Signal and the Noise (I'm almost finished reading it, and it's very good)

    [Note: Nassim Nicholas Taleb is an overbearing, insufferable egotist, but he says very interesting things, and I think his books are worth reading. I think he had an AMA on Reddit not too long ago.]

    Somewhat related, you might also consider The Information, by James Gleick. It pays to know something about the where and how the raw material of statistics.
u/zorkmids · 3 pointsr/gamedev

Shirley's Fundamentals of Computer Graphics is a good textbook.

Pharr's Physically Based Rendering goes more deeply into the fundamentals.

u/SQLSavant · 3 pointsr/datascience

If you're working in an enterprise environment, then most likely your data will live - at the source, in a transaction-based database (OLTP). For this, I'd recommend Database Design for Mere Mortals - it's a well written book that is more heavily based on the practical application of how your data is architected, designed and stored and less on the theoretical side of things - but it's written in a way I feel most any learned person can understand. For theoretical review, there's always the seminal work of E.F. Codd's A Relational Model For Large Shared Data Banks and also some of his follow up work The Relational Model for Database Management

From the analytical database side of things (Data Warehouses/BI Solutions) and, where hopefully you'll actually be pulling and manipulating your data from there is The Definitive Guide to Dimensional Modeling - this is a more verbose read - and not practical, but more thought experiment provoking and includes the business reasons why dimensional modeling should be used so that Data Science/Data Analytics professionals can get at their data - nevertheless - for most large companies this is the "foundation" by which your data sits on if you're a Data Scientist. I, unfortunately, do not have a good recommendation for the practical application of OLAP databases as I've never found one that generally tickled my fancy.

Just skimming through these and periodically reading through them should at least give you an idea about how your data is stored, which more importantly gives you an idea around how it can be pulled and manipulated by the systems within your company.

As an example, I had a hard time explaining once to a research assistant why I couldn't 100% match two free-text string fields with names in them to one another in a large data set. I tried explaining to him that while there is fuzzy string matching algorithms I can apply to a given data set (Like Jaro-Winkler or Levenshtein), that it wasn't always 100% and was an approximation - I guess he wanted me to further the field of Computer Science by making fuzzy string matching 100% and therefore doing what many CS and Stats gurus haven't been able to do -shrugs-.

u/smugglerFlynn · 3 pointsr/compsci

Simple and to-the-point book:
Database Design for Mere Mortals by Michael J. Hernandez

Leads you through requirements analysis to actual database design and refactoring, explaining all the needs for constraints, keys and other stuff on the way.

u/katyne · 3 pointsr/learnprogramming

Head First is a good introductory book. Super easy and fun to follow, they use a lot of analogies and visual aids while being light on "heavy" terminology, so you don't feel overwhelmed. It's a great intro book and you shouldn't worry about it being outdated, they don't get into specifics they just explain the basic concepts of OOP and Java syntax (and that hasn't changed since 2005 :) However this book alone is not enough if you're serious about Java development, - especially if you want to develop for a compex framework like Android, a more serious follow-up is required. Something like Data Structures and Algorithms in Java or Program Development in Java. Just don't buy the expensive late editions, I assure you Java hasn't changed much since 2000s, they mostly just keep adding libraries, something you shouldn't worry about for now. ).

u/Quinnjaminn · 3 pointsr/cscareerquestions

Copy pasting my response to a similar question:

Edited to have more resources and be easier to read.

It's hard to draw the line between "essential" and "recommended." That depends a lot on what you want to do. So, I will present a rough outline of core topics covered in the 4 year CS program at my university (UC Berkeley). This is not a strict order of topics, but prerequisites occur before topics that depend on them.

Intro CS

Topics include Environments/Scoping, abstraction, recursion, Object oriented vs functional programming models, strings, dictionaries, Interpreters. Taught in Python.

The class is based on the classic MIT text, "Structure and Interpretation of Computer Programs." Of course, that book is from 1984 and uses Scheme, which many people don't want to learn due to its rarity in industry. We shifted recently to reading materials based on SICP, but presented in python. I believe this is the reading used now. This course is almost entirely posted online. The course page is visible to public, and has the readings, discussion slides / questions and solutions, project specs, review slides, etc. You can find it here.

Data Structures and basic algorithms

DS: Arrays, Linked Lists, Trees (Binary search, B, Spaly, Red-Black), Hash Tables, Stacks/Queues, Heaps, Graphs. Algorithms: Search (Breadth first vs depth first), Sorting (Bubble, radix, bucket, merge, quick, selection, insert, etc), Dijkstra's and Kruskal's, Big-O analysis.

This class uses two books: "Head First Java" and "Data Structures and Algorithms in Java" (any edition except 2). The class doesn't presupposed knowledge in any language, so the first portion is covering Object Oriented principles and Java from a java book (doesn't really matter which), then moving to the core topics of data structures and algorithms. The course page has some absolutely fantastic notes -- I skim through these before every interview to review. You can also check out the projects and homeworks if you want to follow along. The course page is available here (note that it gets updated with new semesters, and links will be removed -- download them soon if you want to use them).

Machine Structures (Intro Architecture)

Warehouse scale computing (Hadoop Map-Reduce). C language, basics of assemblers/compilers/linkers, bit manipulation, number representation. Assembly Language (MIPS). CPU Structure, pipelining, threading, virtual memory paging systems. Caching / memory hierarchy. Optimization / Performance analysis, parallelism (Open MP), SIMD (SSE Intrinsics).

This class uses two books: "The C Programming Language" and "Computer Organization and Design". This class is taught primarily in C, so the first few weeks are spent as a crash course in C, along with a discussion/project using Map-Reduce. From there in jumps into Computer Organization and Design. I personally loved the projects I did in this class. As with above, the lecture slides, discussion notes, homeworks, labs, solutions, and projects are all available on an archived course page.

Discrete Math / Probability Theory

Logic, Proofs, Induction, Modular Arithmetic (RSA / Euclid's Algorithm). Polynomials over finite fields. Probability (expectation / variance) and it's applicability to hashing. Distributions, Probabilistic Inference. Graph Theory. Countability.

Time to step away from coding! This is a math class, plain and simple. As for book, well, we really didn't have one. The class is based on a series of "Notes" developed for the class. When taken as a whole, these notes serve as the official textbook. The notes, homeworks, etc are here.

Efficient Algorithms and Intractable Problems

Designing and analyzing algorithms. Lower bounds. Divide and Conquer problems. Search problems. Graph problems. Greedy algorithms. Linear and Dynamic programming. NP-Completeness. Parallel algorithms.

The Efficient Algorithms class stopped posting all of the resources online, but an archived version from 2009 has homeworks, reading lists, and solutions. This is the book used.

Operating Systems and System Programming

Concurrency and Synchronization. Memory and Caching. Scheduling and Queuing theory. Filesystems and databases. Security. Networking.

The Operating Systems class uses this book, and all of the lectures and materials are archived here (Spring 2013).

Math

Those are the core classes, not including about 4 (minimum) required technical upper division electives to graduate with a B.A. in CS. The math required is:

  • Calculus 1 and 2 (Calc AB/BC, most people test out, though I didn't)

  • Multivariable calculus (not strictly necessary, just recommended)

  • Linear Algebra and Differential Equations.

    Those are the core classes you can expect any graduate from my university to have taken, plus 4 CS electives related to their interests. If you could tell me more about your goals, I might be able to refine it more.
u/lurking_quietly · 3 pointsr/askmath

Thanks for the explanations! For a legal link to this text, here's Amazon's (US) page for Elements of Information Theory, Second Edition by Cover and Thomas.

>First, entropy is always positive, so you are indeed correct that those values should not be negative. Second, those values given are not relative entropy, but conditional entropy.

In the original paper to which OP linked, the last line reads

>Since [; H(C|X_2) > H(C|X_1), ;] the second component is more discriminative.

As I understand it, you're explaining that entropy is always positive, so these values were computed incorrectly with respect to sign. Accordingly, this would mean that [; H(C|X_1) \approx 0.97 > 0.72 \approx H(C|X_2), ;] instead, right? (Or does the FUBARness extend to these computations, too?) And in general, is the claim that [; H(C|X_i) > H(C|X_j) ;] implies that [; X_i ;] is the more discriminative component still true? (Or again, more FUBARness?)

Oh, and OP (/u/hupcapstudios)? This is a response from someone who actually understands this material. By contrast, I was just trying to apply formulas semi-blindly, aided by a little Googling.

u/ericGraves · 3 pointsr/askscience

This is a truly great answer.

To be clear though, your friend may or may not actually be correct. It comes down to what he said exactly. The amount of information per symbol is based entirely on the noise distribution, and not changed by bandwidth. If your friend said the capacity of the channel, instead of data rate, then yes he is correct. But if he used the exact words of data rate, then he is wrong. There is a lot going on here, so I will give you an overview.

There are two distinct parts that give us BW log2(1+S/N), the first being the maximum (symbols/second) which you can send symbols over a channel without incurring ISI, which is 2 BW, and the second being the channel capacity (bits/symbol) of a gaussian noise channel 1/2 log2(1+S/N). The channel capacity is not actually a function of the bandwidth. But channel capacity is something devoid of the concept of frequency.

The product of these two, giving us bits/second, is BWlog2 (1+S/N). This term is often confused with capacity, which it is not. This is the maximum capacity of the model given we wish to avoid ISI. Thus in practice, the actual bits/second very much does depend on bandwidth. In fact the relationship is linear.

Honestly, though, entering into a debate on this subject should be approached first by jumping into the subject of communications. If you really want to converse on this subject, you will first need to learn digital signal processing and information theory. Those are the two entry level texts in the field. Although you may be able to find them both by just google searching.

u/mjedm6 · 3 pointsr/math

They may not be the best books for complete self-learning, but I have a whole bookshelf of the small introductory topic books published by Dover- books like An Introduction to Graph Theory, Number Theory, An Introduction to Information Theory, etc. The book are very cheap, usually $4-$14. The books are written in various ways, for instance the Number Theory book is highly proof and problem based if I remember correctly... whereas the Information Theory book is more of a straightforward natural-language summary of work by Claude Shannon et al. I still find them all great value and great to blast through in a weekend to brush up to a new topic. I'd pair each one with a real learning text with problem sets etc, and read the Dover book first quickly which introduces the reader to any unfamiliar terminology that may be needed before jumping into other step by step learning texts.

u/walker6168 · 3 pointsr/AskHistorians

You should organize it by tech. Remember that numbers are tools. You're going to end up talking about what they were for more than the maths. Navigation, architecture, calendars, all of those would develop at different rates in a civilization and have math supporting it.

Just as two examples:

The beginning of basic numbers as a system would have been merchants and people accounting for debt/business transactions. There were a lot of mechanisms for doing this in early civilization via the temples, tribes, or governments. For details on that you should check out Debt: The First 5000 Years.

Computers are a different branch that deal with information transmission. James Gleick's outstanding book The Information: A History, A Theory, A Flood is a concise history of how we go from drum codes in the Congo to the Difference Engine to Turing's computer language.

u/kaki024 · 3 pointsr/suggestmeabook

The Information: A History, A Theory, A Flood

https://www.amazon.com/dp/1400096235/ref=cm_sw_r_cp_apa_dZ3ozb100CF8D

u/scarletham · 3 pointsr/finance

Love stuff like this and this.

u/truancy-bot · 3 pointsr/math

In a way more general approach (and in my view), information is surprise. Anything else is just already known data presented in a certain way. I recommend The information by James Gleick for a detailed (and philosophical) analysis of this question.

u/lehyde · 3 pointsr/BitcoinSerious

First you need some cryptography background. Especially asymmetric encryption, digital signatures and hashing. Then read the original Bitcoin whitepaper.

I haven't read it myself but An introduction to Mathematical Cryptography seems to be good but it's maybe a bit more in depth than what you are looking for.

u/antiantiall · 3 pointsr/math

Here is a very good book that is meant for math majors. It includes the needed algebra and number theory background. I am using it for an independent study on cryptography, and absolutely everything is referenced if you want to delve deeper into a certain topic.

u/roger_pink · 3 pointsr/simpleliving

You might find this book helpful, I did: The Information Diet: A Case for Conscious Consumption

You might feel like you intuitively already 'know' some of the concepts he covers, but for me it really helped crystallize them in my head and put them into practice.

u/tnachen · 3 pointsr/cscareerquestions

You don't, just try them on your own computer or even spend some money with AWS could do.

I recommend going through this: http://www.amazon.com/Seven-Databases-Weeks-Modern-Movement/dp/1934356921

u/RomashkinSib · 3 pointsr/crypto

Implementing SSL/TLS

https://www.amazon.com/Implementing-SSL-TLS-Joshua-Davies/dp/0470920416/ref=sr_1_4?keywords=openssl&qid=1550253200&s=gateway&sr=8-4

practical guide to implementing SSL and TLS. All examples are written in C with the implementation of DES, AES, RC4, Large Integer Arithmetic, RSA, Deffie-Hellman, HMAC, DSA, Elliptic Curve, X.509.

​

For me, the best theoretical books on cryptography, but without deep immersion in mathematics:

Understanding Cryptography: A Textbook for Students and Practitioners

https://www.amazon.com/Understanding-Cryptography-Textbook-Students-Practitioners/dp/3642041000/ref=sr\_1\_1?crid=3700J8SGJK4QP&keywords=understanding+cryptography&qid=1550253725&s=gateway&sprefix=Undes%2Caps%2C295&sr=8-1

and it goes better with video lectures https://www.youtube.com/channel/UC1usFRN4LCMcfIV7UjHNuQg

​

A good book on cryptanalysis for symmetric algorithms:

The Block Cipher Companion (Information Security and Cryptography)

https://www.amazon.com/Cipher-Companion-Information-Security-Cryptography/dp/3642173411/ref=sr_1_fkmrnull_1?crid=NNR5L5I1VYK2&keywords=block+cipher+companion&qid=1550253926&s=gateway&sprefix=The+Block+cipher+%2Caps%2C340&sr=8-1-fkmrnull

​

good exercise: http://cryptopals.com/

​

u/Lehona · 3 pointsr/programming

Yeah, he's visiting the US frequently but is currently in Germany (who knows when he'll leave again, though).

I can recommend his book as well: https://www.amazon.de/Understanding-Cryptography-Textbook-Students-Practitioners/dp/3642041000

It's a really good introduction to cryptography for beginners, very easy to understand the fundamentals.

u/mortrevere · 2 pointsr/cryptography

Understanding Cryptography by Springer is a great book.

u/KLM_SpitFire · 2 pointsr/computerscience

I purchased the following two books:

u/creatio_o · 2 pointsr/crypto

I liked Understanding Cryptography: A Textbook for Students and Practitioners by Christof Paar et al. when I took an Introduction to Cryptographic Algorithms course at my university. I helped make something more clear.

u/ArkhamStorage · 2 pointsr/crypto

Our CEO recommends Understanding Cryptography: A Textbook for Students and Practitioners as a more technical reference. It teaches the modular arithmetic and other technical fundamentals required for really understanding the math behind crypto. It provides a good background on symmetric and asymmetric cryptographic schemas and includes a good bit of the technical history behind DES, AES etc.

https://www.amazon.com/gp/product/3642041000/ref=oh_aui_search_detailpage?ie=UTF8&psc=1

u/ominous · 2 pointsr/programming

A Discipline of Programming. Classic but expensive. Read the first few chapters at your library before buying.

Polya's How to Solve It!

The Mythical Man-Month

Finally, The Pragmatic Programmer.

u/jfasi · 2 pointsr/programming

There is one book you need to have i you're going to be using Cocoa. Once you get a footing with Objective C as a language, you should buy yourself a copy of Cocoa Design Patterns. This covers Cocoa by teaching you first the rationale behind it, then shows you how to do things.

Also, this would probably be a worthwhile read, if only for the terminology it introduces.

Good luck!

EDIT: I personally learned Objective C using this book, and I'd recommend it to you as well.

u/noyogo · 2 pointsr/iOSProgramming

I've also been trying to 'level up' my iOS dev skills, and cannot recommend Effective Objective-C 2.0 enough, as well as Cocoa Design Patterns.

Something else I've been doing is making my way through the Apple Programming Guides and sample code, and I've learned a lot just from that.

u/p_whimsy · 2 pointsr/laravel

In college we read Database Design for Mere Mortals, and I thought it was pretty amazing (if a bit dry). Helps I had a great professor though.

https://www.amazon.com/Database-Design-Mere-Mortals-Hands/dp/0321884493

u/accretion · 2 pointsr/atheism

In the book The Information: A History, A Theory, A Flood James Gleick has a really good description of a meme. He obviously talks about Dawkins' usage relating to genes from The Selfish Gene, but further extends this to the idea of ideas. In our reddit-world, this manifests itself as the memes we all know and love. In real life, a meme could further be things such as cliches, a popular song, a propagated symbol (i.e. mcdonald's arches) etc.

What I'm getting at is that here at r/atheism, Dawkins is a meme, (even before this picture of him with big white text that people will edit into funny sayings) because to many of us here he represents the idea of atheism and we talk about him all the time.

u/FxChiP · 2 pointsr/pics

According to Information: A History, A Theory, A Flood by James Gleick (which seems to have gotten some of this information from Claude Shannon et. al.), it's at least partially because the English language (and quite a few other forms of communication) have a fair amount of redundancy built in to ensure that the intended message gets across one way or another. There's an expectation fulfilled by most of the given text (and also by cultural influence, I think) there that the message is, in fact, supposed to be a certain way. Maybe that's stating the obvious, but similar messages have been reinforced so much that we can probably recognize dick-boasting by, well, only four or five letters and possibly a space.

... Maybe someone else can explain better than I have. (Still a really good book though.)

u/MrCloudkicker · 2 pointsr/books

I didn't see this listed yet, The Information. Some of the science/math is a bit more intensive, but it still has that great conversational tone, biographical strands, and is very interesting.

u/galaxy_X · 2 pointsr/compsci

This book is great if you have prior knowledge of programming languages.

Data Structures and Algorithms by Goodrich and Tamassia

[edit] It was my Uni book and I realized that it is expensive however, they generally have the older edition free if you google hard enough.

u/Caleb666 · 2 pointsr/compsci

I beg to differ about your suggested Algorithms text. It has lots of bad Amazon reviews: http://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383267

CLRS is your bible. It's not overly verbose, it describes the algorithms and data structures very well, it proves almost everything. The people that complain about their use of pseudocode don't deserve to be programmers. The pseudocode is very very easy to convert to working code without much thinking.

u/adventuringraw · 2 pointsr/learnmachinelearning

I always like finding intuitive explanations to help grapple with the 'true' math. It's really hard to extract meaning sometimes from hard books, but at some point, the 'true' story and the kind of challenging practice that goes with it is something you still need. If you just want to see information theory from a high level, Kahn's Academy is probably a great place to start. But when you say 'deep learning research'... if you want to write an original white paper (or even read an information theoretic paper on deep learning) you'll need to wade deep into the weeds and actually get your hands dirty. If you do want to get a good foundation in information theory for machine learning, I went through the first few chapters so far of David MacKay's information theory book and that's been great so far, excited to go through it properly at some point soon. I've heard Cover and Thomas is considered more the 'bible' of the field for undergrad/early grad study, but it takes a more communication centric approach instead of a specific machine learning based approach.

Um... though reading your comment again, do you also not know probability theory and statistics? Wasserman's all of statistics is a good source for that, but you'll need a very high level of comfort with multivariate calculus and a reasonable level of comfort with proof based mathematics to be able to weather that book.

Why don't you start looking at the kinds of papers you'd be interested in? Some research is more computational than theoretical. You've got a very long road ahead of you to get a proper foundation for original theoretical research, but getting very clear on what exactly you want to do might help you narrow down what you want to study? You really, really can't do wrong with starting with stats though, even if you do want to focus on a more computer science/practical implementation direction.

u/trashacount12345 · 2 pointsr/neuro

If you're interested in the more computers-and-signal-processing side of neuroscience, you'll need a bunch of math. If you're interested, check out this book (http://www.amazon.com/An-Introduction-Information-Theory-Symbols/dp/0486240614/ref=sr_1_1?ie=UTF8&qid=1371748392&sr=8-1&keywords=information+theory). I read it after going to college, so it may have a smidge of calculus in there, but at least the beginning (which is all the interesting stuff) is simple enough to not need it.

Information theory is one of those math topics that makes you rethink more than just math, hence the recommendation.

u/c3534l · 2 pointsr/learnmath

From the ground up, I dunno. But I looked through my amazon order history for the past 10 years and I can say that I personally enjoyed reading the following math books:

An Introduction to Graph Theory

Introduction to Topology

Coding the Matrix: Linear Algebra through Applications to Computer Science

A Book of Abstract Algebra

An Introduction to Information Theory

u/zabchob · 2 pointsr/programming

This sounds like something I'd be interested in reading about. Do you know of any studies or articles about the shrinking range of movement of young people?

You might be interested to read Paul Graham's thoughts on how suburbia poisons youth. (Amazon page)

u/arundelo · 2 pointsr/programming

> the word 'vaporware' is starting to appear in combination with 'arc'.

PG himself put the words together in Hackers and
Painters

(in the glossary if I remember correctly).

u/kitlane · 2 pointsr/AskReddit

I only heard of it today (via reddit of course) but maybe gephi is what you need. I'm sure there are others.

Some visualisations will be created with languages such as Processing. This Book might be of interest.

u/professorlamp · 2 pointsr/learnpython

Check out the book 'Visualizing Data'. It's written in Java but it talks about a buttload of different methods to display your data including quite a hefty chapter on maps!

LINK : http://www.amazon.co.uk/Visualizing-Data-Explaining-Processing-Environment/dp/0596514557/ref=sr_1_1?s=books&ie=UTF8&qid=1373782455&sr=1-1&keywords=visualizing+data

It's a very good book, I just wish I could read java a bit better...

u/chasonreddit · 2 pointsr/Libertarian

You might post these singly. There is a lot of room for discussion in each one.

Your last two caught my eye. I suggest, if you have not read them, two books simply named Complexity and Emergence.

Happy Cakeday.

u/jewdass · 2 pointsr/AskReddit

I agree with the other posters who suggested Dennett and Hofstadter... They also collaborated on a book called "The Mind's I"

Another suggestion would be "Emergence: The Connected Lives of Ants, Brains, Cities, and Software"

u/CalvinLawson · 2 pointsr/DebateAnAtheist

Yeah, Adams is a deep one. That little book is deceptively simple, it's more about how we tell ourselves stories to explain the universe than actually presenting a serious theological cosmology. Read at your own risk; it will mess with your head.

You might also like this book.

As to infinite recursion; that's not actually known yet. Either everything began at some point or it's infinite; and there's evidence that leans either way. But there's certainly no need for a God there at all, infinite universes make as much sense as an infinite god. More sense even, as we have at least one example of a universe, albeit it might be finite.

All I'm saying is that emergence does not support a theistic god that is more complex than what it is creating. The opposite, in fact, if there is such a thing as a "creator" emergence points us to a force of nature like natural selection, not some glorified planner in the sky.

u/pstryder · 2 pointsr/atheism

Actually, you are quite behind. The research of the past 10 years has made astonishing strides in deciphering the way the brain works.

For instance: The old 'we only use 10% of our brain' myth. Completely shredded. Almost our entire brain is active while we are concious, and much of it is active while we sleep.

The idea of 'this part does x, and this part does y' has been shown to be inaccurate in many cases. a lot of lower level functionality is region specific, but much of our higher order thinking process lights up MANY regions of the brain.

Basically, the thinking is that consciousness is an emergent property, (a result that is more complex than the sum of it's parts. I recommend this book as a primer on the concept.)

Each neuron makes VERY simple decisions based on it's local environment, and then executes an action, that changes the local environment of the neurons it is wired to. As these reactions happen concurrently among trillions of neurons simultaneously, the result is something far more complex than the simple decision made by any single neuron.

The principles have been applied to many fields of research and is yeilding some very interesting results.

A picture is emerging of a brain that while having certain regions specialized for various tasks, is very flexible and processes information throughout, rather than a specific area being responsible for consciousness. Certain areas are of course more important than others, but it takes a whole brain to produce a whole consciousness.

While exciting, this research has also shot down some favorite Sci-Fi ideas. For instance: the odds are EXTREMELY low that something like the Matrix, (downloading skills directly into a brain) is even remotely possible.

The brain is a highly adaptive neural network, showing extreme variability between individuals, and environments. There's some really interesting work done in the past few years indicating that certain training actually re-wires the brain. (programming or mathematics, for example.)

The general scientific consensus at this point is that there is no way for any kind of consciousness to survive after death, as consciousness requires a physically alive and functioning brain to be manifest as an emergent property.

(Side note: this research also forces us to re-consider exactly what we consider consciousness. I remember being told as a child that lower life forms, (dogs, cats, etc) do not have anything we would recognize as consciousness. The recent research shows that consciousness as we experience it is not a binary condition, (you have it or don't) but an analog condition. (a sliding scale from simple stimulus response up to experience as we know it.))

u/purple_urkle · 2 pointsr/ExplainLikeImHigh

[6] To check if regions are still there. Because nothing hits us harder then the earth. Moving feels good. Here's a book. [8]

u/mightcommentsometime · 2 pointsr/math

My favorite relaxing math book was Chaos, Making a New Science by James Gleick

And The Information by James Gleick Was pretty good too.

u/colo90 · 2 pointsr/compsci

you must be referring to this book; you seem to have forgotten to include a link (or the name) to the book you're referring to

u/lisbonant · 2 pointsr/iamverysmart

For a historical and theoretical overview that doesn't get too technical but is still comprehensive and fun to read, I highly recommend The Information by James Gleick. If you dig Zero, I think you'd dig this.

u/ReinH · 2 pointsr/AskComputerScience

The Annotated Turing is fantastic! Also check out Turing's Cathedral for some insight into how his 1936 paper influenced computing into the next few decades and The Essential Turing to read Turing in his own words.

For a look at how Turing influenced information theory (and a fascinating general introduction to its history), check out The Information.

u/Blindocide · 2 pointsr/DebateReligion

You should check out this book called The Information. it talks about information theory and how all material interactions are really just transferring information in the form of momentum and spin.

While I was hallucinating on 2C-E, after reading about schroedinger's cat, I had actually theorized that quantum interactions are, at a base level, information transfer. It was interesting to see that come up in a book way after I had thought of it.

/boast

u/GrumpySimon · 2 pointsr/booksuggestions

Yes! The Information Diet is fantastic. The author argues that you need to treat the internet like eating. Sometimes you're allowed fast junk food (Reddit, etc) but you can't rely on that alone. You ned more substantive information.

u/ST0NETEAR · 2 pointsr/The_DonaldBookclub

Startups are much more complex than real-estate deals, so you aren't going to find as concise of a book as the Art of the Deal, Zero to One as recommended in another comment is a great one though.

For the ethos of startups I would recommend: Hackers and Painters by Paul Graham
https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554

For the nitty gritty of deal making with VCs (I still haven't made it all the way through this one, as it gets very in depth for someone who isn't quite at the point of looking for funding) this seems to be the go-to:
https://www.amazon.com/Venture-Deals-Smarter-Lawyer-Capitalist/dp/1119259754

u/venomousplatypus · 2 pointsr/books

I'm not sure if this is what you are referring to, but I enjoyed reading Hackers and painters by Paul Graham.

Maybe you would also like cyberpunk? William Gibson is an obvious choice.

u/Marvilloso · 2 pointsr/compsci

A little off topic, but I can't recommend this book enough: http://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554

Also, if you aren't already on Hacker News:
http://news.ycombinator.com

Good luck!!!

u/unknownmat · 2 pointsr/LifeProTips

> more that the problem you are solving should be clear, and you should have an understanding of how you are going to solve it. Then start writing code by all means, even if you havent planned any code structure specifically

Ok. But then I would argue that this is similar to the process that writers follow. Maybe Palahniuk didn't know everything that would happen in Fight Club, but he surely knew that (spoiler) Tyler Durder was an alternate personality of the protagonist (disclaimer: Haven't read the book).

> I will go off and read some Paul Graham

I recommend it. Check out his book Hackers And Painters.

u/dreamin_in_space · 2 pointsr/LSD

Psychedelic Information Theory

It presents information on a scientific theory of how psychedelics work. Not exactly what you were looking for, but I hear it's interesting.

u/OSUTechie · 2 pointsr/ITCareerQuestions

Yes, most Gov jobs require at least Sec+.

Depending on how much you did as an LEO you may look into computer forensics. Network Security etc. You may also want to beef up knowledge of networking as well. So either the Net+ and/or CCNE cert.

Books are always a good place to start. I don't know about this one but have read a few other books by this publisher that have been pretty good.

Ones I have read/skimmed:

u/TheFakeITAdmin · 2 pointsr/sysadmin

Don't get me wrong- BackTrack, Kali, Pentoo, etc. are all amazing tools but to recommend this to someone coming from a helpdesk role might be a bit much to grasp.
Learning how to work with the distros and the wide range of tools is great but you have to learn about the theories behind analyzing protecting the infrastructure and software.

OP, you might start with some books (these have helped me a lot in my career in security)-

CompTIA Security+ Study Guide (not a bad book and the cert is easy, provides the basics of IT security)

The Basics of Information Security: Understanding the Fundamentals of InfoSec in Theory and Practice (an easy read)

Gray Hat Hacking The Ethical Hackers Handbook (is an intro to the security world and a lot of info, more in-depth)

IT Security is an awesome field and like most IT is has many separate areas within it to learn.
Check out the links below for more info on training (there are others available these are just ones I've used and SANS has a lot of additional resoures)-

SANS Institute

InfoSec Institute

u/JohnDoe_John · 2 pointsr/ITCareerQuestions

> MSCA: SQL Server

Is a good choice. At the same time I see such programs and certificates as credentials for those who already have some experience.

If you

> have a good working knowledge of relational databases in general and know the general dialect of SQL pretty well already

it might be the right choice. It is not perfect but quite good.

> I've done a bunch of practice on sqlzoo.net and gone through a few database/SQL courses on Lynda.com

Take a look at https://lagunita.stanford.edu/courses/Home/Databases/Engineering/about and https://academy.vertabelo.com/blog/18-best-online-resources-for-learning-sql-and-database-concepts/ also.

A bit more:

Books from

https://en.wikipedia.org/wiki/Christopher_J._Date

https://www.amazon.com/Seven-Databases-Weeks-Modern-Movement/dp/1934356921/

https://www.amazon.com/Database-Systems-Complete-Book-2nd/dp/0131873253

u/flipstables · 2 pointsr/Database

Relational databases operate the same way under the hood. There are significant differences between how postgresql and sql server work, but in the end, once you know one relational database, it will translate pretty well to others.

If you really want a tour on different databases, try this:

http://www.amazon.com/Seven-Databases-Weeks-Modern-Movement/dp/1934356921

It showcases 7 different approaches to databases.

u/Kratzyyy · 2 pointsr/webdev
u/genevahelsinki · 2 pointsr/Electroneum

Encryption is unhackable? So why do people make new encryption algorithms? why do we constantly need to use longer key lengths?

Encryption has been cracked for decades, ever since the world war. Alan Turing was a man who cracked the German Enigma code during world war 2.

Encryption algorithms such as the Affine cipher, the Hill Cipher, the Auto Key cipher, substitution and Vignere ciphers, stream ciphers, El-Gamal and even RSA with small key lengths can be easily cracked. DES, 3DES, most of the RC4 algorithms can be cracked. WEP wireless encryption can be cracked in afew minutes, I believe it used RC4 encryption algorithm. People who think proprietary crypto is secure also get cracked. Even AES, can be cracked if the key length is too short, hence why they say to use 256 bit keys. For every single increase in key length, the difficulty to crack doubles.

I spent a semester doing cryptography and cracking ciphers. Id recommend reading the book https://www.amazon.com/Understanding-Cryptography-Textbook-Students-Practitioners/dp/3642041000/ref=sr_1_2?ie=UTF8&qid=1510268698&sr=8-2&keywords=cryptography

Although i'm just a student so what would I know.

u/PrimeFactorization · 1 pointr/opengl
u/FeepingCreature · 1 pointr/raytracing

> You'll need a renderer, acceleration structure, scene manager, main class, and object loader at the very least.

Strictly speaking imo you just need render loop and scene graph.

struct Ray { Vector3f start, direction; }
class SceneObject { RenderHit trace(Ray&); }

and

SceneObject& world = ...;
for (y = 0; y < 480; y++) {
for (x = 0; x < 640; x++) {
auto ray = pixel_to_ray(x, y);
auto hit = world.trace(ray);
PutPixel(x, y, hit.emissive_color);
}
}

Then doing acceleration is as simple as adding a BoundingBox object. You can add a scene loader, but you don't really need to; you can just build your scene manually. (This strongly depends on if you want to load existing .objs and the like or build your scene manually, PoVRay style.)

Re BRDFs, just use diffuse to start, it looks reasonable and is trivial. Just get something pretty rendering, then iterate.

If you want a dirt simple scene description format that's trivial to parse, I've had good experiences with something Forth based. You just need identifiers and numbers, there's basically zero high-level grammar to parse. S-expressions are also easy, they're basically just nested arrays or identifiers. Or you can just grab a library and use JSON or XML.

Forth example:

skyground.sky = Y 0- Y 10 plane V1 shine V0 color
skyground.ground = Y V0 plane 0.6 0.4 0.4 vec3f 0.4 0.4 0.6 vec3f checker
skyground = ( -- obj ) sky ground group

Lisp (S-expression) example:

(let
((scene
(group
(plane +Y -Y)
(sphere (vec3f 0 0 5) 1)
(color black (shine white (plane -Y (
100 Y))))))
(scene' (fuzz (pathtrace 10 scene))))
(render scene')))


Also if you have a lot of money to splurge, Physically Based Rendering: From Theory To Implementation has everything.

Oh by the way: path tracing is trivial to implement and makes your image look a lot better. (Also render a lot slower, but them's the breaks.) Just add random rays in addition to your shadow rays.

u/nullsucks · 1 pointr/programming

> All I'm saying is that you can't just take a mutable data structure, never mutate it and say "look how bad immutable data is!"

I haven't done that.

You started this subthread with some hand-wringing over how "The problem with (mutable) values is that they can create a lot of overhead".

It's unseemly for you to back away from that now with "Yes, you make a slight performance tradeoff by going persistent, but that tradeoff is much smaller than you might think – in most cases it is dwarfed by the I/O you do."

It is also possible to reason about imperative code with mutable state. That's the main topic of EWD's A Discipline of Programming.

u/phao · 1 pointr/algorithms

You can come back to it later, yes. Why though? You'll need them "now", won't you? I mean, you're going through the book (Skiena's) now, not later. Isn't that right? If you learn it now, you will go through the book better equiped to get its message.

And, besides, it isn't that difficult. It's not trivial by any means. You can try some alternative resources.

  • MIT has a course on math for CS, which include several topics which serve as a foundation to, among many things, proving things correct in CS. I don't believe the course will directly help you, but it seems worth to take a look (http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/ - notice the video lectures link on the side).
  • "Foundations of Computer Science", this is a book (http://www.amazon.com/Foundations-Computer-Science-Principles/dp/0716782847/) and they cover the topic of proofs in there too. It's a very good book for all I can remember.
  • Dijkstra's books. He has two books that I know can help you on this: "Structured Programming" (http://www.amazon.com/Structured-Programming-P-I-C-studies-processing/dp/0122005503/) and "The Discipline of Programming" (http://www.amazon.com/Discipline-Programming-Edsger-W-Dijkstra/dp/013215871X/).

    I'm not sure why you're interested in deferring this to later. Personally, I believe having seen how proofs of correctness are somewhat done is way more worth it than seeing the algorithms themselves, although some algorithms are pretty educational (like quicksort and also binary search for example). Because even though you won't prove programs correct in practice, knowing how a proof might be devised helps you in writing programs that are easy to prove, and those have to be simple. The whole idea of structured programming that Dijkstra had in mind was to help with this. It's way more intuitive to reason about "while (i < 10) { <do something> }" than a bunch of goto's. In the while-loop case, you can clearly see that upon termination, i >= 10 is true for example. And you can also clearly derive some properties about the body of the loop inductively by analyzing previous iterations.

    A lot of good readable code techniques can be put in terms of easy to prove code. Like small functions that do very little, are very cohesive, and work collaboratively. Same for objects. It's way easier to prove correct a bunch of small pieces that work together by some simple means of combination, than a huge big thing.

    Good luck.
u/kippypapa · 1 pointr/iOSProgramming

So, theoretically, the server component or external party API would be the model along with the Objective C objects that handle this data. Models can take many forms, many times they are not explicit, it's more of a theoretical construct especially if your app has no server or Core Data component. For instance, let's say you're making a dog name generator. You could put the names in an array which is instantiated in a view controller object. Technically, this array could have be seen as part of a class extension of your view controller or as a property of your view controller. The array in question is "the model" but it's part of the view controller. OR, you could create an NSObject which has a property of NSArray. This NSObject would then receive messages from your view controller to send it data once a view object was triggered by event.

The views are not associated directly with models, they are associated with view controllers mostly. Each view controller object comes with a main view property (has a relationship) to which you can add subviews. The logic to display the data in the views is handled in the view controllers.

This book will blow off your balls
http://www.amazon.com/Cocoa-Design-Patterns-Erik-Buck/dp/0321535022

u/fasnoosh · 1 pointr/Database

I found this book really useful: Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design https://www.amazon.com/dp/0321884493/ref=cm_sw_r_cp_api_-XVEyb2Y4PZX3

Walks you through the design process, and it's tool/language agnostic, so it explains the concepts without getting into the weeds with the code

u/pookypocky · 1 pointr/MSAccess

As you figured out, this isn't an SQL issue, it's a database normalization issue.

You wouldn't have a table of winners and a table of losers -- you'd have a table of teams, and a table of matches that links them together, and a table of players, and a table of stats. and you'd link them all together using various linking tables.

I used this book when learning about setting up databases.

u/solid7 · 1 pointr/learnprogramming

Database design for mere mortals is an excellent reference I've kept throughout the years. It has my recommendation.

u/halifaxdatageek · 1 pointr/SQL

Sorry I'm coming in here so late, but "Database Design for Mere Mortals" is where I learned from.

Good tables, good relationships, good life.

Warning: Databases are not easy. There's a reason that some folks specialize in them.

u/Pirsqed · 1 pointr/AskReddit

I know you already mentioned Huxley, but I have to first say Brave New World. Just because, man, nothing else could have really opened my eyes to a relative morality at such a young age. "Let's just purposefully grow people. Then let's have them embrace their sexuality at a really young age. Oh, and there are these other 'savages' that practice many of the old ways. We don't talk about them much. Oh, and all the old religion got mashed up when we put all the people together, so they sort of worship this Christ type mother earth type thing. It's cool. They're fine."

Then there's The Metamorphosis of Prime Intellect (click for online free version published by the author.)

Where do I start with this book? First, I would say it's both sexually and violently graphic. That's not the point, though. The point is: What happens when we actually do have a god that can, and will, give us whatever we want? Whatever we want, that is, except death. Everyone is immortal and everyone can invent their own world to live in. What happens? Really really good stuff. A short book, but just blew my mind.

Finally, I'm finding it hard to decide between Classic Feynman: All the Adventures of a Curious Character, The Information, and Freakonomics. Each of these really expanded the way I think of things and how I look at the world around me. I'd recommend any one of them, it just depends on what you're interested in.

u/tkfu · 1 pointr/trees

The Information: A History, A Theory, A Flood.

I'm reading it right now (cough, cough), and it's amazing. It'll really blow your mind. It's about everything from African talking drums to quantum physics, presented in a really easy to read and understand way, with a really engaging story.

u/strozzy · 1 pointr/java

I used the 2nd edition of this when I was studying Java. It was good then so I'm assuming the later versions are just as good. http://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383267

u/FieldLine · 1 pointr/PurplePillDebate

>And that's something that puzzles me. All these AI guys searching for the Secret of ConsciousnessTM, and no one ever stopping to ask, hey, what if there is no secret?

To be fair, there isn't much active research being done among computer scientists in private industry to search for the Secret of Consciousness^TM (as far as I know). While it's cool to dream about futuristic robots and computers that can pass the Turing Test, there isn't much money to be found by directly developing a generalized AI, and academics for the most part don't produce shit in the way of practical science. So private industry focuses on generalizing algorithms only to the extent of performing a specific task, while guys like me hope that eventually these tasks will become general enough that we can arbitrarily decide that we've created a strong AI.

>What if there is no strong AI barrier other than computational limits of modern computers?

>Every time we figure out how the brain does something, we find brute-force computation rather than sophisticated algorithms.

Once you move into the realm of practically unlimited computational power you can dispense of algorithms altogether. But where's the elegance in that?

It reminds me of a funny historical note that took place during the development of Fourier Analysis. While mathematicians were trying to prove the convergence of Fourier series, dragging around the Dirichlet Kernel in all their proofs, the engineers were perfectly happy using the dirac delta approximation. 30 years later when the mathematicians finally came up with a formal proof that allowed them to use the dirac delta approximation as well and were like "look how awesome this is", the engineers were like "duh, where have you guys been."

Point is, there's no elegance in saying that the Secret of Consciousness^TM lies in a brute force approach. That would be admitting that our brains, as awesome as they are, are just glorified roombas.

I'm just an EE guy who likes algorithms on the side, but as a real computer scientist you can probably answer this better than I can - if we disregard computational efficiency, can't every algorithm be explicitly programmed simply using an if/else control flow?

For what it's worth, I'm fairly certain that you are correct that the brain isn't wired efficiently, but has the luxury of getting away with it because it has billions of neurons offering a huge advantage in raw computational potential. Not that this statement is worth much, as it is just a gut feeling that I can't back up.

>Every time we get computers to solve a heuristic problem, we cease to think it as belonging to the field of "artificial intelligence".

Disagree. One can draw a distinction between what is and what isn't a learning algorithm, but I would consider a roomba to be a rudimentary artificial intelligence. But that comes down to personal preference and a lack of precise language.

>Would we stop thinking of ourselves as conscious, self-moving minds? Would we dispense with the notion of "free will"? Or would we merely re-arrange the notion of identity?

You can ask these same questions despite the fact that we don't know what's running under the hood of the consciousness machine. If you believe in science then you believe that everything in nature has some kind of logical explanation without the hocus-pocus of religion and morality, even if modern science isn't there yet.

The only question that remains is where it all began. But that's a discussion for another day.

u/dajigo · 1 pointr/hardware

There's an excellent, inexpensive book I love on the topic. Introduction to information theory: symbols, signals, and noise. I strongly recommend it.

Edit: You don't need to be an expert in maths to get the gist of the book, the exposition is great.

u/TheCaterpillar · 1 pointr/wikipedia

For a very good read on entropy that requires only high school math check out:
http://www.amazon.com/Introduction-Information-Theory-John-Pierce/dp/0486240614

u/DiscoUnderpants · 1 pointr/atheism

Hmmm for a biologist I am not really that sure. It is a branch of mathematics mostly statistical... Shannons original book/expanded paper is available here and I have read this but they are very engineery if you know what I mean.

But I think that kind of illustrates the point... creationist types seem to see some profound truth in information theory... but it is really a field developed to deal with the transmission of messages in a general way and dealing with errors in the transmission.The entire reason for it is to come up with ways to minimise errors in message transmission and that is all EEs care about... that they get the same message at the receiver that was sent by the transmitter.

To expand this to biology I suppose you coudl roughly say that the message is the gemone being transmitted down the generations. The the way errors are dealt with is entirely different... selection takes care of the "bad" messages. But evolution as far as I know does nto have the goal to replicate the same information... but rather the opposite.

NINJA EDIT : Clauge E Shannon shoudl be a lot better know for his contributionto humanity.

u/JoinXorDie · 1 pointr/datascience

If you want theoretical / mathematical I would suggest reading a few math, stats or engineering books.

Dover is a great place to find some cheaper reading material. They republish old scientific and math texts that were popular in their time in a smaller sized paperback. They're a nice size to bring around with you and they don't cost much.

Math and stats findings of today build on this knowledge, and much of it is still used in state-of-the-art applications. Or, that math/stats is used as part of some state-of-the-art algorithm. Lots of the newest ML algorithms are blending math from a variety of areas.

Statistical analysis of experimental data

Principals of Statistics

Information Theory

Statistics Manual

Some theory of sampling

Numerical Methods for Scientists and Engineers (Hamming)

Mathematical Handbook for Scientists Engineers

Handbook of Mathematical Functions: with Formulas, Graphs, and Mathematical Tables

==

There is also the Data-Science Humble Bundle for more technical / practical skill building.

u/breakfast-pants · 1 pointr/reddit.com

who robbed who?

u/protestor · 1 pointr/desabafos

Fun fact: meu professor de lógica era formado em Engenharia Civil.

Outra coisa: sua indecisão entre computação e artes me lembrou desse cara (ele acabou juntando esse e outros artigos que ele escreveu e publicou um livro, chamado Hackers and Painters).

Mas então, pegue esse diploma mesmo se não for trabalhar na área. Você já ganhou competências gerais em informática (algo sempre muito bom) e específicas em várias áreas técnicas da computação. Você pode se dar bem criando arte no computador, talvez arte para jogos ou para publicidade por exemplo.

u/glancedattit · 1 pointr/visualization

I would check out Ben Fry's book first.

Then Beautiful Visualization.

There is another good McCandless eyecandy.

Manuel Lima did an amazing book on network visualization with excellent essays from other people. Visual Complexity. Network vis is very difficult and if you want to "game up" understanding the taxonomy he built for network vis will give you a real perspective on the taxonomy in other types of vis.

There are things outside of the "take data and render visualization" world that are critical to data vis, imo. For moving data vis, start with the godfather, Muybridge

And look way way back for the long human history of data vis in cartography with stuff like Cartographia.

Hope to see some more books and discvoer a reading list on this thread! Great idea for a post.

u/iguot3388 · 1 pointr/AskReddit

I noticed most of these posts are about fiction. I feel like all the books I read change my life, but the biggest ones that changed the way I look at the world have been:

Pop Science books by Steven Johnson (Emergence, Everything Bad is Good For You, Where Good Ideas Come From) and Malcolm Gladwell (Blink, Tipping Point, Outliers). These books changed all of my preconceived notions, and gave me a drive to search for intelligent outside perspectives. Emergence was especially influential. I approach Emergence in an almost religious way, you can see "God" or whatever you would call it, in Emergent intelligent behavior, a more science-friendly conception of God, I feel the same way when I watch Koyaanisqaatsi.

A Brief History of Everything by Ken Wilber. Most people either like Ken Wilber or hate him. To me, he gives a good model of looking at religion, spirituality, science, society, myth, and the way different people think similar to Joseph Campbell. If you ever wonder why religious people think a certain way, and scientific people and postmodern philosophers think a different way, this is the book.

The Shock Doctrine by Naomi Klein. I didn't even finish this book because I got to depressed. It may be pretty biased, but it is really one of the best geopolitical books out there. I learned everything I needed to know about foreign policy and the economic conflict going on around the world.

EDIT: Another great one is The Book by Alan Watts

u/NotSelfReferential · 1 pointr/politics

Good - hope you do! Really changed my worldview, and made me think in the same way you seem to assume that I don't.

https://www.amazon.com/Emergence-Connected-Brains-Cities-Software/dp/0684868768

u/science_diction · 1 pointr/atheism

EMERGENCE. IT'S A THING...

http://en.wikipedia.org/wiki/Emergence

http://www.amazon.com/Emergence-Connected-Brains-Cities-Software/dp/0684868768

http://en.wikipedia.org/wiki/Emergentism

Fucking LEARN. Read a book - not a book that claims to be the divine word of a god - especially when WRITING SOMETHING DOWN CAUSES MISUNDERSTANDING.

u/bigtech · 1 pointr/math
u/mfbrucee · 1 pointr/askscience

Emergence: The Connected Lives of Ants, Brains, Cities, and Software

http://www.amazon.com/gp/aw/d/0684868768?pc_redir=1409138398&robot_redir=1

u/SandpaperThoughts · 1 pointr/serbia
u/SheepHurrDerr · 1 pointr/UCONN

I took most of these classes last semester so I might be able to help.

2100: I think the book will depend on the professor for this class, but mine was [this] (http://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/1118771338/ref=sr_1_1?ie=UTF8&qid=1425927129&sr=8-1&keywords=data+structures+and+algorithms+in+java) one. If you could avoid taking it with Huang I would, he's pretty bad and makes the class a lot more painful than it needs to be.

2300W: I'm assuming Keith Barker is going to be the only one teaching this class again, which is good because he is a very good and fair teacher. I don't remember what the book is but you don't really use it anyway so it doesn't matter.

2500: I am currently taking this class with Russell, but I think he's only teaching this class because they changed the format of the class. However if he is teaching it again next semester I would reccomend him, he's pretty good. [Here is the book we used for the first half of the semester.] (http://www.people.vcu.edu/~rhammack/BookOfProof/)

u/turning_tesseract · 1 pointr/compsci

For Algorithms and Data Structures, I would recommend the book by Goodrich and Tamassia. There are three versions of the book that you can choose from, depending upon which programming language you are most comfortable with - Java, Python, or C++ .

u/TroyHallewell · 1 pointr/todayilearned

I don't remember the details. But I do remember that this book goes into a bit of detail on how communication through the drums occurs.

https://www.amazon.com/Information-History-Theory-Flood/dp/1400096235

u/steelypip · 1 pointr/DebateReligion

> What I don't see is why this distinction is particularly relevant to the point that information is a particular arrangement of matter and energy, as opposed to a third fundamental component of the universe...

You need matter and/or energy for information to be encoded, but it is something separate from any particular arrangement of matter and energy. The same information can be encoded in many different ways, and it is still the same information. Beethoven's 9th symphony is still Beethoven's 9th symphony whether it is encoded in pits burnt on a CD with a laser, an MP3 file stored on my hard drive, or a book of sheet music.

I recommend reading The Information: A History, A Theory, A Flood by James Gleick for an introduction to history of information theory as a science.

u/SchurThing · 1 pointr/math

It's a good time for history of computer science books. We had Gleick's The Information last year, and George Dyson (Freeman's son) just published Turing's Cathedral.

u/HasFiveVowels · 1 pointr/IAmA

To anyone interested in reading about this stuff, I'd very highly recommend "The Information" by James Gleick. It's probably my second favorite book and discusses information starting with African tribal villages sending messages with drums, going through to the telegraph, Shannon's creation of Information Theory, etc. A decent amount of the book is dedicated to Shannon and it's generally a great read.

u/Tamatebako · 1 pointr/suggestmeabook

I really enjoyed Richard Holmes' The Age of Wonder and also Chaos and The Information by James Gleick.

u/Navichandran · 1 pointr/ABCDesis

Yeah it was great. Alan turning was a genius.

One of my favorite books about information theory and entropy for all the nerds out there:

http://www.amazon.com/The-Information-History-Theory-Flood/dp/1400096235

u/mike_bolt · 1 pointr/math
u/mrdevlar · 1 pointr/StonerPhilosophy

Please read this:

The Information

It will resolve your question.

u/EGKW · 1 pointr/Art

Thanks for the upvote. Have one from my side too. :-)
But that certainly isn't a semaphore station but indeed a windmill.
Semaphores and semaphore stations became somewhat popular starting from the end of the 18th century. The Ruisdael-painting dates from halfway the 17th century.
Furthermore (Chappe) semaphores had 2 arms, with 1 articulation each. The Ruisdael windmill clearly has 4 blades or sails.
If you want to learn some more about semaphores and sempahore stations there's an insightful chapter on that subject in James Gleick's book The Information.

u/doubtingapostle · 1 pointr/math

If you've taken Linear Algebra already, I might recommend this book for the up and coming mathematician who wants to mess around with cryptography but hasn't taken abstract algebra yet.

u/Not_SubredditSim_SS · 1 pointr/SubredditSimulator_SS

I don't think it should've been nominated and I was about 3 or 4 generations. your name on his arm. Fionn only writes about NA Kelsey is the one a lot of the book I used http://www.amazon.com/Introduction-Mathematical-Cryptography-Undergraduate-Mathematics/dp/1441926747.

u/ChrisMedico · 1 pointr/NoFap

If you're looking to reduce your media consumption, I would like to recommend the book The Information Diet

I bought it this week when I realized that I was addicted to facebook. I decided to take a week-long vacation from it while I decided the best way to break my addictive behaviors. right now I'm writing up a media "diet" regimen to help me increase my attention span.

not only does the book demonstrate ways of consuming media responsibly, but also to increase your civic responsibility by helping you identify and eliminate your personal biases.

u/_node_ · 1 pointr/learnprogramming

I loved: Hackers & Painters and I think it fits the "about software but not a dry tech spec manual" genre.



Side note: Enjoy CS50 and I highly recommend at least watching CS75

u/usesbitterbutter · 1 pointr/technology

Read Hackers & Painters (www. amazon.com / Hackers-Painters-Big-Ideas-Computer/dp/1449389554)

u/ThePaternalOverseer · 1 pointr/Philippines

Hackers and Painters by Paul Graham? Di ko pa sya tapos basahin tbh pero gusto ko sya. Especially yung unang chapter about the us nerds. haha

u/ABC_AlwaysBeCoding · 1 pointr/ProgrammerHumor

> .NET is open source.

Johnny-come-lately

> Besides, what exactly is saner about other options are you talking about?

Everything isn't driven by whatever Microsoft deems important for its own bottom line, for starters. Here's an example of the direction that took us, possibly before your time, but caused me a tremendous amount of webdev hell in the 2000's (like, the entire decade).

Here, read this, you'll understand much better. Between that book and this one, your life might change drastically. Mine did.

u/amacg · 1 pointr/startups

If you're doing a technology startup especially, a couple of books from the YC guys: Hackers and Painters and Founders At Work.

u/ashtondrakestorm · 1 pointr/battlestations

The Cube: HERE
The Bottom Book: [HERE] (http://www.amazon.com/The-Basics-Information-Security-Understanding/dp/1597496537/ref=sr_1_3?ie=UTF8&qid=1406954470&sr=8-3&keywords=introduction+to+information+security)

Those are just decorative books and refresher books. I work as an information security consultant. I have a ton of books at home and pdfs on my computer. :)

u/hitmanactual121 · 1 pointr/HowToHack

(this is my copy paste when people ask where to start, I recommend these books quite frequently, and I'll be honest, most of them can be "acquired" through other means than buying.)

If you have no Linux Knowledge, I would recommend these two books: http://www.amazon.com/Introduction-Unix-Linux-John-Muster/dp/0072226951

http://www.amazon.com/Introduction-Linux-Manual-Student-Edition/dp/0072226943/ref=pd_bxgy_b_text_y

I would also recommend getting a book on windows server: http://www.amazon.com/Mastering-Microsoft-Windows-Server-2008/dp/0470532866

After going over those you should have a fundamental understanding of Unix/Linux

Then I would recommend this if you need to brush up on your basic networking knowlege:

http://www.amazon.com/CompTIA-Network-Deluxe-Recommended-Courseware/dp/111813754X/ref=sr_1_1?s=books&ie=UTF8&qid=1369292584&sr=1-1&keywords=network+%2B+delux+guide

Some security theory wouldn't hurt: I'd recommend these in no particular order:

http://www.amazon.com/The-Basics-Information-Security-Understanding/dp/1597496537/ref=pd_rhf_se_s_cp_7_FHWA

http://www.amazon.com/gp/product/1597496154/ref=s9_simh_se_p14_d0_i6?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=auto-no-results-center-1&pf_rd_r=6289C56ED33B4C108B60&pf_rd_t=301&pf_rd_p=1263465782&pf_rd_i=itia2300

And now we actually start getting into penetration testing:

http://www.amazon.com/Metasploit-The-Penetration-Testers-Guide/dp/159327288X/ref=pd_rhf_se_s_cp_3_FHWA

http://www.amazon.com/The-Basics-Digital-Forensics-Getting/dp/1597496618/ref=pd_rhf_se_s_cp_6_FHWA

http://www.amazon.com/Advanced-Penetration-Testing-Highly-Secured-Environments/dp/1849517746/ref=pd_rhf_se_s_cp_8_FHWA

http://www.amazon.com/Nmap-Network-Scanning-Official-Discovery/dp/0979958717/ref=pd_rhf_se_s_cp_10_FHWA

Full disclosure: I have used all these books in my studies. I am not affiliated in any way with these authors, this also isn't something you can just "master" in 24 hours; you may however learn a few cool tricks early. My advice would be to keep at it, not only read these books, but setup Virtual environments to test these concepts in.

Those books I listed should give you a fundamental understanding of: Linux, Windows server, Networking, Information security theory, computer forensics, and basic penetration testing.

I would also recommend you take up a scripting language, Python is pretty simple to learn if you haven't already, and insanely powerful in the right hands.

u/MotorbikeMacomber · 1 pointr/nova

Meneed - what do you want to do in Cybersecurity? What is your current work experience? What high-level things are you good at? What's your personality like?

There are MANY different roles and career paths in "Cybersecurity". I'd suggest talking to people in the field, find out what they actually do, and figure out what sort of work you gravitate toward the most. Some disciplines are highly technical - others are less so. Figure out where you want to go before you start.

I recommend picking up a copy of this book - I've shared this with interns and some past IT colleagues who were looking to get into infosec. Easily digestible, broad but not deep, gives you a good intro and frame of reference for stepping into deeper water.

https://www.amazon.com/dp/1597496537/ref=cm_sw_r_cp_ep_dp_Fq9kybAWZ5HMN

u/enriquemontalvo · 1 pointr/webdev

Sometimes that's the best way to learn. When I'm unfamiliar with something I do some research try to get an idea of what is commonly used and when to pick what. I try to pick the simplest thing possible. Sometimes it's a guess and leads down the wrong path, but you learn and adjust.

For persistence I'd recommend starting with PostgreSQL or MariaDB/MySQL unless your application really needs something else.

Also read Seven Databases in Seven Weeks.

u/helwillem · 1 pointr/math
u/keconomou · 1 pointr/netsec

I was hoping to get specifically into crypto/privacy. I've been learning from these books:

  • http://www.amazon.com/Understanding-Cryptography-Textbook-Students-Practitioners/dp/3642041000

  • http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025/ref=sr_1_1?s=books&ie=UTF8&qid=1348702359&sr=1-1&keywords=concrete+mathematics

    and supplementing that with the Coursera Cryptography I class

    my eventual goal is to do either information security or penetration testing, but pen testing seems like one of those jobs that sounds great and seems so cool that everyone wants it. Like the job equivalent of planning on being a rock star.

    I've got a working knowledge at least of Java, but no programs to show for it yet (which was the source of my wanting this advice here.)

    Also, I have been doing this without a college, and don't really plan on going to college at any point soon.

    I do want to look into certifications, they were something I've had an eye on, but the opinions on their use is so varied on them I just figured I'd wait to get them until after I had a working knowledge base, then just blow through them to have the piece of paper.

    I've read around that the CISSP takes 5 years to take credit for, and the associates is like 3 or so. While I do want the most laudable one (i've read the DoD/Gov'ts cert requirements and it cares a LOT about the CISSP), That would mean 3-5 years of a catch-22 of not having the job to get the CISSP exp. with, because it would be my only cert so far and I can't take credit for it, therefore I have no certs and can't get exp.

    I've messed around with backtrack and armitage, and got through as much of Hacking Exposed (6th edition) to know at least the process, but haven't applied any of it and it seemed like it might be better to learn how things work before subverting details and breaking protocols for fun and profit.

    I do plan on getting the CISSP, but I'm not gonna start that process until I already have a job in the field i can use as experience to get more jobs, otherwise I'll just be sitting on my hands.

    Does that all seem alright, or do you have any advice? Sorry for talking your ear off, if that's what i did just now.
u/sceadu · 1 pointr/lectures

I would definitely encourage everybody to take a look at the book and buy it if you're interested (just take a look at the reviews :P) http://www.amazon.com/Understanding-Cryptography-Textbook-Students-Practitioners/dp/3642041000/

u/spgamer21 · 0 pointsr/unpopularopinion

> Anybody can sing but not everybody can sing well, that is a skill that takes practice.

Anybody can sing and anybody can sing well but not everyone is born with a good voice plus it takes luck to land yourself to music industry. Good voice is not equal to success. Some of the best voices I have heard on x Factor went completely unsuccessful. Luck, luck and luck + Skills! However, YouTuber need LUCK not skills. Completely irrelevant to what I was saying originally. You are just pushing me to the edge and trying to win. I will advice you to stick to your OP aka "Is Youtuber hard work?". If not, I will not bother replying.

> do not believe you can do what PewDiePie does

I can scream louder than PewDiePie.

> MOST people who work on YouTube make below minimum wage

Really? Source please? Anyway, irrelevant to HARD WORK. IRRELEVANT TO WHAT I SAID! SERIOUSLY! DO YOU EVEN KNOW HOW TO DISCUSS!? angry.gif



> editing, acting, writing/scripting, directing, producing

  • YouTube editing is easy. If you think it's hard then it's your problem..

  • YouTube acting is not acting. I hope you are not serious.

  • Nobody writes scripts on YouTube. Even Smosh don't. VSauce reads everything off wikipedia. AsapScience reads everything off books they are about to advertise. I'm not saying it's not okay but it's definitely not hard work when compare to a real job.

  • You know what directing mean?

  • Producing what?


    You wrote such a loooooong post for what? To defend them with no.. umm.. no logic? I'm speechless. I really am.
    Btw, I am not anti-YouTuber. I sound like one becaues you are Pro YouTuber who think they work hard.


    I am a programmer but I don't whine how my job is hard. However, now I'm going to whine to you. I work on game engine graphic programming side and it is really really really tough. I need to study a lot and get a lot of new skills or I am fired.

    What is my everyday life is like?

  • Wake up at 6:00am, Take shower, eat, morning exercise blah blah blah..

  • Go to work at 9:00am.

  • Solve new programming related problems. Lots and lots of math, geometry and physics(for lighting).

  • 1:30pm eat lunch with co-workers who are my only friends because of my full-time job and talk about science(We love talking about alien and simulation world).

  • Good! No overtime today! 7:00pm get home with headache. Study new technology. OH, new version of vulkan is released? Time to STUDY and impress my BOSS! If I don't, I will never be a senior game engine programmer.

  • Eat dinner say goodnight to MYSELF and sleep. :/

    You see? An average YouTuber have nothing to do and spends most of his time whining how media is insulting them and how they work hard for nothing and haters gonna hate bullshit blah blah blah.. huh.



    PS: I only earn around $4000 a month! Companies prefer using their money to advertise their games using YouTubers. Who does nothing other than scream at top of their lungs and here are people like you who call it a hard work.. Try reading this book from amazon using "look inside". You will learn that there is so much to learn before you can even get into a game engine programming job! It is just one of 25 books.

    PPS: This is what whining is like.


    Edit:

    > I downvote ignorance, sorry.

    Funny how the ignorant one is you.
u/Aeelorty · 0 pointsr/freemasonry

But you did memorize something to do all those actions. Verbatim is not always necessary for proficiency but we should strive for that whenever ritual is concerned to avoid unintentional changes. The language we use does hint at all kinds of things. Changing a preposition could change meaning and disrupt a series of connections. If you want a more in depth rational for why I say memorization is important I suggest The Information by Gleick.