I already have a BS in Math with a focus on linear algebra and some data analysis (python, pandas, sklearn, numpy...

I already have a BS in Math with a focus on linear algebra and some data analysis (python, pandas, sklearn, numpy, sql) work experience under my belt.

If I want to switch to being a Google software engineer, how will this book help me?

Are there any must-read books? I once took an algorithms class that used CLRS but it was a summer course with a bad prof so I didn't learn much. I later went back to read parts of a different book and learned about linked lists, queues, stacks, and I already know sorting algorithms.

Other urls found in this thread:

inference.phy.cam.ac.uk/itila/book.html
fsfe.org/campaigns/gplv3/drm-and-gplv3.en.html
twitter.com/SFWRedditVideos

You should not aspire to work for Google under any circumstances. Quite the opposite, what you should want for the world is that Google goes out of business /and is replaced wiht nothing/.

Therefore, I will discourage you from your stated career goal. To do this, I will hypocritically point out that per the letter of the sticky, your solicitation for career advice has no place on this board, which is literally true.

The reason why this is hypocritical on my part, and why I also don't care that it is hypocritical, is because I know that Veeky Forums's staff are very inconsistent with enforcement of these "soft" rules, or guidelines which are embedded board-by-board in certain stickies. I just plain don't want to hear of anyone signing up to work for Google, is all.

It's also hypocritical and cynical, in the sense that the guideline is naturally idiotic (of course people who work in the sciences are naturally going to want to talk about their careers on a free-for-all science board, and may even often have constructive conversations doing so), but for the purposes of discouraging this thread I again don't care. I refer you back to the sticky which I will cite when it is convenient to me (now) and ignore when it is inconvenient to me. Veeky Forums's moderation staff does the same.

If you want to go to google, get into competitive programming.

I'll have whatever he's smokin'.

>someone indicates that Google should cease to be

>oh he's smokin' somethin

On the contrary, one does not have to have smoked anything to reach these conclusions. You're just asleep, is all.

cocaine is a hellova drug

>people actually want to work for Google
did i wake up in an alternate reality? jesus

I'll bite, user: why don't you want anyone to work at google?

>I hate google because I hate google because I hate google ...

>Are there any must-read books

>Coding
Programming: Principles and Practice Using C++ by Stroustrup
C++ Concurrency in Action: Practical Multithreading by Williams
C++ Primer by Lippman, Lajoie, and Moo

>Systems
Advanced Programming in the UNIX Environment by Stevens and Rago
Computer Systems: A Programmer's Perspective by Bryant & O'Hallaron
Modern Operating Systems by Tanenbaum
Computer Networks: A Systems Approach by Peterson and Davie
Engineering a Compiler by Cooper and Torczon

>Theory
Algorithm Design by Kleinberg and Tardos
Automata and Computability by Kozen
Computational Complexity: A Modern Approach by Arora and Barak
Artificial Intelligence: A Modern Approach by Russell and Norvig
Information Theory, Inference & Learning Algorithms by MacKay

>Extra credit
An Introduction to the Analysis of Algorithms by Sedgewick and Flajolet
Combinatorics and Graph Theory by Harris, Hirst, and Mossinghoff
Introduction to Linear Optimization by Bertsimas & Tsitsiklis
Network Flows by Ahuja, Magnanti & Orlin
Convex Optimization by Boyd and Vandenberghe
Approximation Algorithms by Vazirani
Randomized Algorithms by Motwani and Raghavan

>how will this book help me

SICP? That's just an intro to CS book for high school students.

Google requires a much stronger background in software engineering and computer science than a math guy who took up programming as a hobby.

no, it doesn't
you just need to be good at competitive programming

SICP is a meme book for scheme meme memers

>focus on linear algebra

lol yeah and I have a focus on finding roots of quadratic polynomials

lolno, look around for what a google hiring process entails.

Competitive programming people often make simple fuckups like not randomizing data before throwing it into a sort (thereby opening themselves up to a DDOS attack). You're expected to know not to do such things in google interviews.

>using qsort

You could have data filled with the same copy of the same thing and get the same effect also.

>Missing the point.

The issue is that each sorting algorithm has a worse case. For some of sorting algorithms that worst case leads to shit-tier performance. So a malicious user may figure out which algorithm you're using to sort data and as a result they could cleverly prepare large amounts of data in worst case form in order to render your service inaccessible.

merge sort has a worst case asymptotic complexity of O(log n) and wouldn't suffer from this issue, though it may have higher memory requirements since it can't be done in-place. But the memory requirements are linear in the input, so there isn't an attack from spamming data that isn't also an attack in just storing the original list

>randomizing data before throwing it into a sort

Ew. Just pick the median of the first, last, and middle.

>thereby opening themselves up to a DDOS attack

That's not how DDOS works. And most implementation of sort that use q̶u̶i̶c̶k̵ pivot sort count the level and switch over to merge or heap sort if it passes log2(n).

Get a load of this guy cam.

Linear algebra is literally the most useful math I know. And I know a lot of math.

furious and unadulterated keks. I have a strong research interest in finding general solutions to quintic polynomials using radicals

TFW a lot of math doesn't include introductory calculus

Addendum:
>Coding
w3schools HTML
Head First Ruby
>Theory
Introduction to the Theory of Computation Sisper
>Extra Credit
Numerical Analysis Burden and Faires

>Introduction to the Theory of Computation Sisper

Redundant, Kozen and Arora's books cover everything in Sisper and far more.

TAOCP as extra credit then?

It's more of a detailed reference. AoA will bring you up to a fairly high level while being far more concise.

bump

>why don't you want anyone to work at google?

It should be evident.

>BS in Math with a focus on linear algebra

>being a commie
>being pissed off that Google favors BSD "literal definition of freedom" over GPL cancer.

I think this pic is an exaggeration, considering there is custom software contracting and developers for internal software, but selling licenses really is by far the most profitable business model when it comes to the consumer market. The only other models I can think of are advertising (would be removed if users had the ability anyway), and crowdfunding, the latter of which is far from close to replacing licenses. But maybe they would fill the void if they could? I'm not going to make the argument that they would, because I don't think I have enough support, but it's something to consider.

GPL is a clever licensing hack that allows a freedom based system to exist safely inside our system. BSD is GPL without any protections.

I'm not saying that there aren't certain occasions where a BSD license is desirable to a GPL license but it is important to keep in mind that the BSD license doesn't offer any protections from the surrounding system. Effectively the only guarantee you get from using this license is that if the person distributes a product containing your work (if it's just a service then you don't get shit) then somewhere in the documentation that no one will read there will be a copy of your license file with your name in it.

what "math level" is this Information Theory, Inference & Learning Algorithms ? Pre calculus? Calculus?

I am very interested in this topic but I am still geting into math

>focus on linear algebra
>wants to be a Google software engineer
>"how does this help me"
somebody help, i'm drowning in bait

>BSD license doesn't offer any protections

You don't know what the fuck you're talking about.

Most /g/tards speak as if it was like a free bike where BSD is like anyone is free to take it and it's gone and theirs now, while GPL is like a shared bike that you return "in better condition than you found it" when you're done with it and protects community property. But this is fundamentally wrong.

When people download and use a piece of code, it doesn't magically makes it disappear off the face of the internet and needs to be replenished by uploading it once more with your changes. What GPL does in this analogy is that you're free to take this bike but you can now only use our brand replacement tire, use only our brand bike pumps, use only our brand bike racks, use only our brand bike lanes, only associate with others riding on our brand bikes, or you will be sued for every dime. BSD is what you expect from a free bike, you're free to use and modify the bike anyway you want. The only restrictions and terms are the obvious CYA ones: if you fall and hurt/kill yourself or others then we're not liable, if you break something or it doesn't work then there is no warranty, and you must be upfront that you got it from us.

There is no need to protect freedom when there is freedom.

A good vector calculus based probability course and linear algebra.

The book is free online: inference.phy.cam.ac.uk/itila/book.html

The GPL isn't about preventing theft or damage to existing works. It's about discouraging proprietary software, which rms felt threatened by, and is a license that is completely consistent with the beliefs of anyone who thinks proprietary software is bad. The reason for requiring GPL in derivative works I assume was mostly practical: otherwise you would have to have some criteria to determine whether a license for a derivative work held similar protections, which I think is difficult.

There are two reasons I can think of right now that are valid for using the GPL:
You think proprietary software is bad, and license restrictions against proprietary software will be effective in reducing it
You want to spite anyone who tries to make your work proprietary, regardless of whether you think it is bad in principle

Matrix Algebra
Vector Space Theory
Applied Linear Algebra
Numerical Linear Algebra
Matrix Analysis
Abstract Algebra
Modern Geometry

You can take a lot of math courses that are steeped in linear algebra

>It's about discouraging proprietary software

If you don't want to code proprietary, fine. That's your choice and your choice alone to make. You have NO right telling me what I can and can't not do with my own labor. Restricting worker's rights to what they make and forcing communal labor is the very foundation of communism.

>otherwise you would have to have some criteria to determine whether a license for a derivative work held similar protections, which I think is difficult.

All you have to do is read the fucking license.

>You think proprietary software is bad, and license restrictions against proprietary software will be effective in reducing it
>You want to spite anyone who tries to make your work proprietary, regardless of whether you think it is bad in principle

Both of these are the very definition of "not free".

The Googleplex is pretty fucking sweet, user.

>Abstract Algebra
>steeped in LA
More like the other way around senpai

Except that LA is the most useful math in terms of applications. If you know LA and PDEs well, you can already tackle a shit load of chemistry, physics, and engineering.

sometimes its just abundantly obvious when you get a specific horde of crossboarders in one thread

I'm but not You are both misunderstanding the issue. There are two sides to the argument and they both rely on the notion of personal property rights with respect to software.

The idea is that an individual has personal property rights with respect to their own labor and those rights extend to the fruits of their labor (both sides agree to this). To clarify, if you build a chair (i.e. a fruit of your labor) then you have the following:
>Use rights: Ability to use and modify the chair however you want.
>Exclusion rights: Ability to exclude others from using the chair without your consent.
>Alienation rights: Ability to transfer ownership of the chair to someone else (give away, sell, trade, etc..) and thereby transfer private property rights in the process.
Both sides agree that these things rights to software as well.

The disagreement then lies in whether or not alienation rights should be invoked when you distribute copies of your software to other. In other words, if you give someone a copy of your software then is that person entitled to personal property rights on that software copy?

(cont.)

(cont.)

In our current system the judgement is no. A developer can distribute their software and maintain ownership of all copies of that software. They can invoke their exclusion rights to disallow software users from distributing the software themselves, they can even invoke their exclusion rights to disallow certain customers from continuing to use the software. More controversially the developer has the right to use or modify the software on the user's computer however they see fit (eg. Microsoft).

Stallman argues that alienation rights should apply to software distribution. Now, normally one would try to get laws passed to change the existing legal framework regarding private property rights. Instead what Stallman did was to cleverly abuse the license system in order to create a workaround where one could glue alienation rights onto software distribution. This is the GPL.

Under the GPL one is also required to provide source code when distributing software because otherwise you are violating the receiving party's use rights (you are impeding their ability to modify the software). Those individuals can also distribute the software but alienation rights will also apply to them (as they have been glued directly onto the software).

(cont.)

(cont.)

GPL doesn't require people to give away software for free nor does it require people to even share the code with the commons. It is different from communism.

Note: GPL effectively allows one system of private property rights to exist within another system. As such the GPL community has taken great care to figure out which licenses are GPL compatible and which ones are not (i.e. which ones restrict alienation rights under software distribution).

The BSD license is essentially a 'just give me credit' license. It says nothing about private property rights.

There was a bug in the GPLv2 that allowed alienation rights to be ignored when distributing software inside of embedded hardware (i.e. Tivo). This bug was fixed in the GPLv3.

Linus uses GPLv2 but it isn't actually the type of license he wants. He just wants a license that allows him to give people code and them to give him back patches. He has talked about this before, he only happened to see the GPL and thought it sounded like it did what he wanted. Naturally he refuses to upgrade to GPLv3.

>The disagreement then lies in whether or not alienation rights should be invoked when you distribute copies of your software to other. In other words, if you give someone a copy of your software then is that person entitled to personal property rights on that software copy?

That's about DRM, not GPL dumbass. GPL software can have DRM all the same.

From GPLv3.
>When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.

GPL doesn't prohibit DRM explicitly but it purposely attacks it's usefulness. Note, within the community there is some disagreement over whether or not DRM should be mentioned explicitly in the document text.

It is also well documented that the GPL community is ideologically opposed to DRM.

fsfe.org/campaigns/gplv3/drm-and-gplv3.en.html

>If I want to switch to being a Google software engineer, how will this book help me?

Can you read it in hebrew?

This. If I handed someone a book written in English and they started reading it in another language then that person is probably crazy brilliant and they've got balls like death stars.