Leave these fields empty (spam trap):
You can leave this blank to post anonymously, or you can create a Tripcode by using the format Name#Password
[i]Italic Text[/i]
[b]Bold Text[/b]
[spoiler]Spoiler Text[/spoiler]
>Highlight/Quote Text
[pre]Preformatted & Monospace Text[/pre]
[super]Superset Text[/super]
[sub]Subset Text[/sub]
1. Numbered lists become ordered lists
* Bulleted lists become unordered lists


420chan is Getting Overhauled - Changelog/Bug Report/Request Thread (Updated July 26)

A ridiculous sequence of courses

- Sun, 04 Jun 2017 02:38:16 EST HC1vVHLz No.37033
File: 1496558296564.jpg -(18091B / 17.67KB, 480x360) Thumbnail displayed, click image for full size. A ridiculous sequence of courses
Hello, I made and actually did all this (including the 'grad level' research electives, except for the coding theory book)

It's easier than it looks, it took me 3 years to do that. I did it about 3-4 hrs a day at first but then everything kind of snowballed and I finished it with only 1hr a day after the first year. These days I'm finishing The Art of Computer Programming series, I'm done up to book 4A and doing 4B draft at the same time. I just do it 20-30mins a day.

I cannot shill TAOCP enough, it totally changed me from amateur to professional computer scientist by just doing hundreds and hundreds of exercises. 20mins a day, for one year, it's all you need for the first book. Anyway, pick and choose what you want from this list and enjoy

I make money from cloning shopify apps, and I work P/T on https://turtle.ai/ though much more infrequently these days. I started out shilling myself on elance (now "upwork") as a jr developer and literally taking jobs from 3rd world countries for less than I would spend on lunch. I also work 2 days a week at my local university doing "ML" (statistics) for a cancer research lab making peanuts but it's research, and fun to do, and I don't need the money. The book in that above link, "Parallel and Sequential Algorithms" was directly responsible for the lab hiring me. Anyway anons I'm here to tell you to try this have a good day.
George Brublingway - Thu, 06 Jul 2017 09:14:17 EST d05k9PWy No.37101 Reply
l can't comment on the actual classes, but the quote about Newton reminded me of The Ignorant Schoolmaster by Jacques Rancière. I think you would like it.
Thomas Buzzbanks - Thu, 06 Jul 2017 23:34:46 EST g2PdyrbM No.37102 Reply
Anon, where do you frequent? I've been trying to hunt you down from stormfront /prog/.
Augustus Murdspear - Sat, 08 Jul 2017 13:25:09 EST H7cDawaz No.37107 Reply
If you did it in three, I imagine it could be done it two if one maintained 4-5 hours daily? I'm at Valenza's Abstract Algebra book right now and it's difficult but ez at the same time. Love The Little Schemer/MLer. Anyway, thank you for creating it OP.
Charles Crickleman - Mon, 10 Jul 2017 20:29:55 EST Ay6PEFuC No.37109 Reply
What do you mean code schools? Like programming boot camps? Most of those are legit, but you only get out what you put in and they're more about tools and concepts (e.g. for front/back end web development) than the basic skills that you need to be a decent programmer.
Graham Himmerham - Tue, 11 Jul 2017 14:10:19 EST MNLHjix1 No.37110 Reply
Okay, could you recommend any?
Anything to look out for?
Polly Boddlelock - Wed, 19 Jul 2017 00:15:00 EST 9plGIS8Y No.37114 Reply
Thanks for the curricula brah. Currently learning about learning. Real interesting stuff. I'm already a fast learner but maybe knowing how it works will help me git gud faster.
Lydia Buzzcocke - Wed, 19 Jul 2017 14:42:05 EST hh4uYXvR No.37116 Reply
Thanks for the link, I could use a touch-up on specifically my math (esp. algrebra) and problem solving skills...

Lots of great reading in there. "Parallel and Sequential Algorithms" is really interesting

That's my summer vacation covered :-D
Archie Fongerlodging - Thu, 20 Jul 2017 22:30:07 EST eZVREo4y No.37120 Reply
Anon quit being a fag and mentor me on making money in crypto
Shitting Chuzzledock - Mon, 14 Aug 2017 17:30:31 EST MNLHjix1 No.37156 Reply
Simeltaneously doing the "How to learn" Course paired with the introductory Programming Course. I gave the "How to learn" course a 2 week head start.

What I like about it so far
  1. I already know a lot about anatomy, physiology and how the brain functions
  2. I already habitiually do 30 min-1 hour habits on a daily basis (DuoLingo, Guitar, puzzles, reading...) so this is easy to adopt.

Wish me luck, as I delve into this new frontier of CS
Phyllis Blythegold - Tue, 19 Sep 2017 23:42:40 EST eZVREo4y No.37194 Reply
this was posted on my birthday

anyway, do you have a blog I could follow anywhere anon? all your recommendatiosn are always solid
Ernest Sumblewell - Wed, 27 Sep 2017 12:57:04 EST M+uLLNpk No.37195 Reply

How do you know their recommendations? How do you know that this is the same person that wrote whatever else you are thinking of?
Jack Dartcocke - Fri, 06 Oct 2017 00:37:16 EST eZVREo4y No.37209 Reply
I've stalked this guy to no end, I know his writing style at minimum. Regardless, if someone fooled me, I wouldn't mind following another anons stellar blog and recommendations.
Archie Bridgekut - Sat, 07 Oct 2017 09:24:59 EST h1AD0QpE No.37210 Reply
is this shit actually worthwhile doing till the end? I really want to become better, and I would spend the time, I'm just asking if the curriculum is decent
Walter Hummlebad - Fri, 13 Oct 2017 21:26:35 EST BBXKtFPn No.37219 Reply
The curriculum is decent, but probably not worthwhile unless you're pursuing a degree. If you're looking to be a programmer with the working knowledge of a typical CS graduate, this is not how you do that.
Lillian Follyhone - Fri, 20 Oct 2017 18:24:30 EST qXcTInin No.37220 Reply
I got into a top 30 school in the US and I'm going for computer programming. I'm probably going no matter what, but I'd still like your opinions as to if this is a good idea or not.
Beatrice Mimbledatch - Thu, 26 Oct 2017 12:59:37 EST VU0UgEAS No.37224 Reply
Can you go into more detail regarding how this won't provide you with typical ccs graduate knowledge? Where are the differences?
Beatrice Mimbledatch - Thu, 26 Oct 2017 13:01:23 EST VU0UgEAS No.37225 Reply
hey opcan you repost that online linear algebra resrouces? I see you edited on the 24th and that really rustles my goddam jimmies man
David Dingerhall - Fri, 27 Oct 2017 16:27:58 EST FXkQatto No.37228 Reply
nvm found it, just pls don't delete your github history. Bookmarking what I can, but I don't want to lose anything
Alice Blundersine - Sat, 11 Nov 2017 22:16:46 EST oPY6s1zJ No.37231 Reply
OP will u fukn respond u jolly african-american

make a similar curriculum but for math, pls.
Sophie Dungerwadging - Thu, 23 Nov 2017 03:37:00 EST x6K3CZQk No.37240 Reply
This thread persists!

I'm pretty much terrible at math compared to the people at the lab I work with. Here I give the advice https://functionalcs.github.io/curriculum/#sec-2-4 the best way to learn math is to just find a paper or a book you want to understand and start doing it, looking up things you don't understand as you go along. Then as you progress through the exercises eventually you will just get it, well get it enough so you can use it correctly in an applied way. I did this when I first learned asymptotic representations such as big-oh/theta/ and big omega for lower bounds. It required a background in basic single variable calculus which I didn't have, so I picked up a calculus book and read it until I could follow the text on O(f(n)) approximation and until I could finally use Euler's summation formula to approximate finite sums. This led to learning about integrations, Bernoulli numbers/polynomials, derivatives, limits, all elementary calculus. I was terrible at proofs as well until I read VanDrunen's book on Functional Programming w/discrete mathematics which put it all together for me. Before that I was terrible at induction until I read Knuth's chapter on it despite working on numerous exercises and books on proofs before I came across Knuth's books. I guess you should just jump in and try the Mathematical Preliminaries chapters in The Art of Computer Programming, Vol I 'Fundamental Algorithms'. You can use libgen to get a pdf or buy a used copy anywhere, then when Knuth does some magic you don't understand with the notation summing a pile of subscripts and negative exponents or deriving rules from bracket notation look up directly that material in some elementary text (Knuth also tells you often where more information can be found, often referring T. Apostol or Hardy books by page number and volume). For elementary texts I used "What is Mathematics" by Courant and Robbins and Axler textbooks, since Axler works through every second problem and shows you the complete solutions instead of just providing an answer. I also asked a lot of stack exchange questions and shit posted my elementary problems on /sci/.

There's a bunch of things I should add to this, like lectures I have found by Andrew Appel. If you are unmotivated like me and it's a task to go through this material, what I do now is pick a project, and then I've become a researcher instead of a passive student. Since I want to finish this project it's no longer a tiresome task to slog through hours of lectures instead I'm now focused on exactly what I want to learn so tearing through lectures and papers is much easier for me now then when I started this. Pick what you want to build and then use the curriculum as your research material, or to help understand recent papers you've grabbed off of Google Scholar for your SQL prover or AI coin exchange bot or w/e. Whatever you want to build or problem you want to solve right now, immediately begin to build it and research as you go. I spent an entire night once going through chapters in a networking theory book looking for ideas how my crazy abstraction could work for a program I was building without losing interest once, in fact I glanced at my phone and saw it was 4am and I had been sitting for almost 4 hours without a break engrossed in the material. No way would I have ever done that otherwise.

The point of this list was I wanted to find rigorous material to help with understanding the latest research papers in computer science, in particular complexity theory and type theory which is hard to find, there's a lot of MOOCs but they are not all that rigorous and focused towards business, I wanted academic. It's public since I found myself cut and pasting the list around so much to coworkers and friends I decided to just keep an org-mode curated list online for other people to take advantage of the material I managed to dig up. You can be a working programmer no problem though if you do any of those CMU courses, or just be a working test writer. Once I killed it on elance just doing other people's exams/homework for SQLite/Postegres at $50 a pop making $350 a day for only 2 hrs work. You can learn this yourself here: https://www.youtube.com/playlist?list=PLSE8ODhjZXjYutVzTeAds8xUt1rcmyT7x I still do it once in a while if I'm home with the flu and not working in the lab I'll go on elance and smash some discrete math homework jobs during breakfast so I can gamble the profits away speculating on whatever alt-coin for fun, the demise of BTC-e the world's shadiest exchange killed my previous pastime in arbitrage and writing trading bots, and everybody else wants piles of ID/passport images sadly. Somebody here should finish the list, go intern at Janes Street fintech and write a cowboy exchange for me to raid with my arbitrage bots I don't have the time anymore.
Sidney Gorringwack - Thu, 22 Feb 2018 20:40:31 EST Tfi7s7JZ No.37446 Reply
OP, listen here buddy, you ought to make your presence known on stormfront.org/prog. Or better yet, some sort of blog where lower level lifeforms like myself can follow and pick ups morsels of knowledge, resources and ideas here and there.

I've been following your guide since it was just drunken outlines on /prog/. I have a couple questions about the guide, like the reality of the employment prospects of UoP and similar online unis. A more important question I have is how you managed to find all this, and how you upkeep your search for new materials, new pursuits, etc. I'd be interested to know your daily/weekly 'routine' if you will, at least in how it applies to these sorts of endeavors. I'm always amazed at how you'll reference some obscure paper that fits the bill perfectly. I'm convinced I know your precise account on HN, and reading some of your comments there has only piqued my interest further in terms of how you manage this (your breadth and depth is demonstrated better there, as it isn't limited in scope).

One criticism of the guide, if I may, is that is rustles my gotdang jimmies when you edit out a source I really liked. I used to be able to go into the github history and find the old edits, but they aren't there anymore(?). One example is the graphical introduction to LA, you had some website with a link I never bothered bookmarking since I thought the guide was static and unchanging. Another example is the removal of materials like Stillwell's Element's of Mathematics, which was a stellar read - this is why I'd like to see a guide on your prescription for math, or even simply a 'resource dump'. I'd also be highly interest on any financial advice you have to give, as you've hinted at a financially savvy nature (elance homework, zcash, algobots, etc).

Excuse the blog post, but I really dig your resources and the guide, and would like to extract a bit more usefulness out of you. FunctionalCS is my homepage, along with whatever module I'm currently working on. It's been a blast and as a maths major I really enjoy the rigor you've provided, I was delighted to see updates with Spivak and Apostol, which I've had on the backburner for too long.
Ian Nullerridge - Mon, 26 Feb 2018 19:15:21 EST Tfi7s7JZ No.37454 Reply
Samefagging myself just to reiterate that I'd be highly interested in a meager unorganized resource dump.
Martin Brubblefoot - Fri, 02 Mar 2018 00:54:16 EST ieWealWG No.37462 Reply
Good solid tech guid!!!

Try to learn by doing self challenges. Seeing how much you can do without using references will show your improvement and progress imo. Also using less 3rd party libraries.

Take a low level approach and if you are successful that is what defines a true programmer IMO.
Sophie Hocklefield - Mon, 05 Mar 2018 04:09:18 EST HH6lED9y No.37463 Reply
OP, do you have any tips on starting out freelancing? I am three quarters out from graduating with a CS degree so I have some knowledge but I haven't been able to secure an internship and for various reasons I need to work. I don't want to go back to crappy jobs if I can help it, so I wanted to pick your brain on freelancing. Is upwork worth it if I just needed to make say 300 bucks a week or so?
Sidney Crommlededge - Fri, 30 Mar 2018 21:56:04 EST Tfi7s7JZ No.37488 Reply
will you stop removing things you double jolly african-american
A_Wizard !cMZsY.BCnU!!vVWR8L52 - Wed, 04 Apr 2018 18:33:40 EST mJDH+xt3 No.37492 Reply
Just hang out in all the crypto chatrooms. Done.
A_Wizard !cMZsY.BCnU!!vVWR8L52 - Wed, 11 Apr 2018 20:41:16 EST mJDH+xt3 No.37513 Reply
1523493676068.png -(110901B / 108.30KB, 595x746) Thumbnail displayed, click image for full size.
Spardot doesn't even remember me...
Martin Bleblingdale - Fri, 13 Jul 2018 23:04:58 EST x6K3CZQk No.37575 Reply
Yes, I admit my commit history clobbering is indeed tiresome but there's several reasons for this.

1) The resource contained a bunch of errors without errata and I rage deleted after spending hours trying to solve something in hopes nobody would go through the same extended saga of rage.
2) I received a DMCA takedown req "These lecture/book notes may not be redistributed!" from some publisher even though I'm just linking them, have to nuke them from history
3) Paywalled once they discovered people were using said resource
4) My obsession with optimization now that I specialize in optimization and time constraints.

When I first started, I had access to all lectures for every undergrad course. Then I foolishly didn't archive, shilled their availability and immediately they ended up paywalled. So now what I do is archive the entire course first, do the course to make sure it's complete and actually worth doing, and then post it. I'm just glad these grad introduction courses are public. They're a good 'try before you buy' marketing for these departments as well, wish most grad schools had public lectures available. I started this with no idea where I'd end up and now it looks like I ended up specializing in optimization, so routinely I go through the list and delete shit that I recognize I didn't need to get to where I am now. For example the excellent new Expii.com resource started recently run by the US Math Olympiad coach. This is what Khan Academy should have been.

I also recently had my name added to a paper that was published in a journal, which is crazy considering just a few years ago I was a maximum brainlet on autopilot. I simply recognized an opportunity for optimization on an untractable problem and used an algorithm directly out of a stochastic optimization paper to randomly sample the search space and after a number of significant runs it turned out to be 99% as good as the known optimum the post-docs estimated.

Completely interesting book, though automated theorem proving is ready for a breakthrough with CHiTT (Computational Higher Type Theory) https://existentialtype.wordpress.com/2018/01/15/popl-2018-tutorial/ this is going to solve that exercise in 1.2.2 of TAOCP where Knuth asks you to "prepare a program that accepts, as input, other programs together with assertions that attempts to fill in the reamining assertions necessary to make a proof that the program is valid". I only wish I had more time to do dive into CHiTT but that looks like where the research is going.

All of the freelancer sites are shit for the most part, I slummed there just for experience, was often not paid for hilarious reasons like the payment was fraudulent and they charged me for it instead of going after their own customers, and I'm actually a shitty programmer I write highly abstract hacks that 'just work' because I prove enough properties to guarantee the programs will do what they're supposed to, but it's ugly non-industry standard code in obscure languages nobody would hire me for. If you're a new grad you'd qualify to get into toptal.com no problem but they set your rate, which is often low. A way around this is https://triplebyte.com/ and just take whatever offers until you get experience, or just roll your own consulting service and add 'premium' features where all you do is call to Algorithmia ML algorithms for rent, for example offering highly advanced visualizations and analysis but all you're doing is stringing together existing pay-per-use algorithms with whatever service you are offering. Shopify or Wordpress consulting is good for this, nobody will offer these features https://algorithmia.com/algorithms
Shit Bassleshaw - Sat, 14 Jul 2018 14:32:48 EST VQRmKoLO No.37576 Reply
>I make money from cloning shopify apps

Am I understanding this correctly, you steal other people's apps and sell them on other platforms?

Out of curiosity, what programming languages are you actually using and consider yourself to be good at?

I've started my whole journey by learning C, which was relatively easy and fast, and then moved onto linux, bash, tcp/ip, xml, networking, private/public key concepts and the different modern cryptography stuff -- basically jumping around a bunch of stuff I needed to get personal/hobby projects to work.

I also noticed with Math, that once you come across something you want to understand, but you just don't get the math, you just find-out what topic of math it is a part of, which topic that is a sub-topic of etc. until you get to a point you understand and then work yourself up. On the journey you can take some detours to pick up other stuff that might come in handy later as well.

Anyway, all went smoothly until I decided to learn my second programming language: C++. Everyone raved about Lippman's C++ primer 5th edition. So I got a hold of it, and holy shit. I've been at it for half a year now and it's so demoralising. At this point I'm 75% done so I'll just end it, and I didn't stick to spending a lot of time on it regularly. But I really don't think it's as good a book as people make it out to be. The main problem is that it doesn't offer solutions to it's exercises (and some of these exercises are like: "Why do you think that is?" -- dipshit, you tell me!). Fortunately there are some solutions on github by other people.

Anyway, interesting stuff. I'll definitely have a look at Knuth's ancient book once I'm done with this damn C++ primer.
Oliver Harringforth - Thu, 19 Jul 2018 18:50:55 EST l33Uq0q7 No.37582 Reply
Hey OP!! (I'm the one who called you a double jolly african-american)

Thanks for all the work you've done. Do you happen to have any of the CMU 15-122 Principles of Imperative Computation lectures archived? I'm interested but don't want to spend money.

>When I first started, I had access to all lectures for every undergrad course. Then I foolishly didn't archive, shilled their availability and immediately they ended up paywalled.
got dang jolly african-american jews man

>maximum brainlet on autopilot

Is there any place where I can ask you questions with a little less latency (< 6 months would be cool)? I don't wanna litter your github page with mundane / illicit requests (like asking for a copy of a paywalled course). I could further contribute to the the github page as I've been trying to develop answer keys to books that omit some answers (I can't guarentee their accuracy though, of course).

And lastly, I would REALLY like it if you could possibly find the time to maintain some sort of bookmark/resource sharing page for cool articles, alternative resources, etc. I know you try to keep the FunctionalCS cirriculum concise, but I'm interested in a lot of alternatives and tangential links you've provided me with. I'm not asking for anything even remotely structured, but I know you have a mountain of great resources that would be a blast to peruse.

Thanks again OP, you the man!
Nell Drimmlehood - Fri, 20 Jul 2018 20:53:56 EST x6K3CZQk No.37583 Reply
>Am I understanding this correctly, you steal other people's apps and sell them on other platforms?

Well, it's 'reinventing' not stealing, it would be stealing if I lifted their proprietary source code though I did once get a threatening lawyer email from some guy who apparently owns the rights to any exchange displays that show current bid/ask if they are in the same column, where the prices meet together (If you've always wondered why this is on two columns on every site, now you know). I don't make these apps anymore but what I did is I would find the top selling marketplace applications, on every medium sized marketplace, so Wordpress, Shopify ect., I would copy their features, add dozens of my own, and charge a fraction of the price they were offering. When I did this sometimes the larger apps making gargantuan dollars with thousands of subscribers would offer to buy me out which I accepted since I don't want to be in the business of customer support, and sometimes they would threaten me or even have the marketplace ban me because all of these marketplaces are totally corrupt. By ban I mean make up complete bullshit that somehow I violated the TOS but it was obvious all they did was bribe an employee there who just killed my software. The one time I complained about this I just got a lawyer prepared form letter than basically dared me to sue them so fuck these marketplaces, eventually they're all going to be destroyed when we have a decentralized 'blockchain' (if you're interested in this, read everything @Homakov has to say about failsafe network).

>Out of curiosity, what programming languages are you actually using and consider yourself to be good at?
Common Lisp for the most part, though I used CLisp as glue also to patch together different things, like an auction app I once wrote in Erlang simply by typing 'Auction' into Google Scholar and finding an old paper where some Masters students explained their architecture using Erlang's BEAM vm. Whatever you want to make, type it into Google Scholar, and prototype that paper in Common Lisp. Then you'll understand the problem better and be able to make a release in X language that is best suited for it. For example there is the CompCERT verified C compiler and excellent .pdf 'Verified C' floating around. Something like this would be awesome to implement a hacky EVM in despite the performance of the verified compiler. http://vst.cs.princeton.edu/
All you need is Norvig's PAIP book, where he introduces OOP style in Common Lisp. You dick around in CLOS and then you will understand C++. This is the problem with OOP books they are gigantic piles of confusion that Norvig explains in a few paragraphs. Now that you know how everything works at a high level, you can look at the most recent spec and tooling and figure it out for yourself. This entire course is in C++ http://15418.courses.cs.cmu.edu/spring2016/lectures and there's also the Parallel C++ book with a crash course in C++ templates https://www.cs.cmu.edu/~15210/pasl.html
Nell Drimmlehood - Fri, 20 Jul 2018 21:25:13 EST x6K3CZQk No.37584 Reply
>CMU 15-122 Principles of Imperative Computation lectures archived?
No sadly, I watched them on panopto and they truly were amazing, he'd go through a function, prove it, then show all the various corner cases and fucked up logic to then prove it doesn't work. The theme of the class was to not think operationally, which everybody who asked questions in the class was doing until the midpoint where finally people understood their own intuition was wrong. It's def worth paying for, if you get a vacation go to Raleigh NC it's a college town, plenty of girls in the bars and shit to do, it's the south. However there was some anon on /g/ with an FTP site he was shilling who I believe archived the lectures as I sent him the link to download them. If not just make do with the lecture notes and look for other vidjyas on programming contracts.

Also by all access I mean I could watch and download any labs on piazza or andrew but back then I was naive expecting content to not disappear and often it does, so now I archive everything.

As for other curated lists, just search github for 'curated' there's plenty of meme lists on there filled with resources. If I had more time I'd check them out but I'm in grad school right now so literally no time for anything, in fact I should be reading 3 papers right now and writing a survey about them. Something I definitely will fill out will be the 'General AI' section, because ML/Deep Learning is just icing, there's no cake there. AI is all about the cake, can this system make it's own decisions or is it just mapping shit together like the famous Chinese blackbox. Chinese characters come in, something maps the character to a translation, translation comes out other side. Does that mean the "AI" can speak Chinese or is it just mapping shit? If you look at the latest version of my meme list I added a class by Sussman in 2017 where he had grad students read an old paper and then make conclusions on it from a 2017 standpoint. All of those ideas are still good, and personally I think Deep Learning is a dead end until we can get GPUs that aren't just dumb blackboxes, or multicore CPUs, a 1000+ core handheld device that can instantly train itself when walking into a room will change the way we live but right now it takes forever to do training, even with whatever super GPU is being offered for rent on some Silicon Valley cloud service.

All the old ideas in the 1970s that nobody pays attention to now seem almost feasible, so I'm going to fill out that section the most in the future since that's what I'm doing in school anyway (plus optimization).

Finally Knuth's book, if you want to make a lot of money, study it carefully. Now go and write optimized Solidity assembly. Ethereum your datastructures have to be O(1) or you risk gas limits, so there is unbelievable demand right now to handroll either an interpreter that outputs EVM bytecode or hacking inline Solidity assembly. As for contact I have no time, this is the curse of knowledge. Once you get just a little of it, you realize how much you don't know, and how little time is left to learn it. I can't read a pulp fiction book, watch a movie or basically do anything except gf/friends/research these days because time is the fire in which we burn (stolen TNG quote).
Nell Drimmlehood - Fri, 20 Jul 2018 21:48:45 EST x6K3CZQk No.37585 Reply
1532137725647.jpg -(42262B / 41.27KB, 480x786) Thumbnail displayed, click image for full size.
Since I"m here ranting, another thing I've been doing is corresponding with Stallman just picking his brain on the kinds of decentralized architecture he would design if he still had the time to do so. Stallman has a ridiculous engineering knowledge of circuits and how they work, how they can be abstracted to something like Sussman's Art of the Propagator paper, how they can be verified to be correct, ect. Also considered a GNUniversity kind of curriculum, some Common Lisp undergrad with all free material. Note, as for politics I'm non political but I'm also a skinhead, so I roll the streets of holland these days going to see cringey working class skinhead music since that's my roots https://youtu.be/Pfs9A-THWoU

But after being banned from almost every marketplace, even if I wasn't cloning a competitor and just releasing my own original work, I realized what a scam the entire industry is and how it needs to die with decentralization, esp decentralized search. I'd love to kill google's main money source and watch all those valley dictators be out on the street. I would be happy to die penniless if it means I can guarantee the future generations will have freedom from these corporate structures. If I'm lucky Trump will kill them first if I'm not lucky I spend the next 20 years going broke propagating search results for no income.
Phyllis Sittingmitch - Sat, 21 Jul 2018 17:15:23 EST l33Uq0q7 No.37590 Reply
Are there any other lectures/resources you think are worth searching for that are now paywalled? I should probably archive everything on the functionalcs list before anything else gets paywalled..
Isabella Buzzville - Mon, 23 Jul 2018 02:55:16 EST azETPZ8l No.37591 Reply
Hey OP!

Out of all the "intro to programming" tracks, is there one you recommend over others? The CLisp set looks like the most thorough.

Also, is the "elementary math" stuff really enough to get me up to speed if I barely remember high school math?
Sophie Gabbleson - Mon, 23 Jul 2018 05:17:20 EST 7I/LRcOk No.37592 Reply
Not OP but the elementary math is plenty, and I had actually begun CLisp before this cirriculum was posted and had really enjoyed it. I'm going back through it now though and can only recommend it more.

Depending on how rusty in maths you are, you might want more resources for high school level stuff - let me know if the links provided in functionalcs are inadequate and I'll try to provide some remedial resources.
Rebecca Socklefoot - Fri, 03 Aug 2018 23:53:56 EST x6K3CZQk No.37614 Reply
I recommend 'An Infinite Descent into Pure Mathematics'
If you already remember high school math.
I didn't, so had to constantly review elementary algebra while doing both that CMU pile of lecture notes and also Apostol's Calculus.

Remember math is a syntax for modelling the behavior of something natural. Speaking of I'm going to add this to the list, it's a good high level guide to complexity theory from Harvard everybody should read who's interested https://www.math.ias.edu/avi/book because the nature of computation comes up in everything.

Common Lisp is still a secret weapon. It's my favorite language, routinely I pull off somethign in Lisp I thought was impossible. I also like Erlang, you guy's want a freeBSD fox running 2 million concurrent connections then look into Erlang. You want to rewrite an entire software as a service into a small program, look at common lisp. You want to model pattern matching, higher order functions, OOP, logic programming, anything, you can do it all in common lisp. If you like CLIsp I highly recommend Norvig's old AI book, also I will be filling out more of the AI section (general AI.. aka: meme AI) as that's now my grad speciality plus optimization.

Rebecca Socklefoot - Fri, 03 Aug 2018 23:57:56 EST x6K3CZQk No.37615 Reply
Oops, forgot to reply.
The best lectures that are now paywalled are Rob Simmons 15-122, and his compiler course. I had access to both and the guy is some kind of genius when it comes to teaching. Showing you all the right things, slapping you on the back for proving a function, then pointing out how you totally failed and missed a dozen things because you were thinking 'operationally' and not computationally. He's a really good teacher, which is why I shill him hard on the meme list, if you want an amazing education save some KFC double down money and go vacation in North Carolina and take some guided instruction from him.
Rebecca Socklefoot - Sat, 04 Aug 2018 00:13:03 EST x6K3CZQk No.37617 Reply
Also, if nobody remembers there was an MIT professor who had all his lectures shit canned from Open Courseware because he apparently tried to pick up some girl who emailed him. Because he was retired and had tenure, they couldn't do anything about it except kill his lectures.

This is why I started archiving things, because the personal behavior of a brilliant professor in this modern society leads to information just being deleted from the history timeline. It freaked me the fuck out, regardless how creepy this old man was, the act of just removing from the timeline his lectures (I was following at the time) was an incredible red pill. Soon all of us will be deleted from the timeline. Yes, everybody here, esp anybody who frequents the dark corners of the internet like 420chinz and wherever else. You will be deleted too. Gone from the timeline. Gone from history. Erased. http://news.mit.edu/2014/lewin-courses-removed-1208

I guarantee you Pythagoras broke all these rules too, if you've seen the MIT lectures on Discrete Mathematics, they persecuted a man who noticed that the square root of 2 was irrational, which was heresey at the time because all math was rational, so the Pythagorean sect had said man killed. This is the timeline we currently live, heresy to the political status quo means DEATH.
Ian Channerfirk - Sat, 25 Aug 2018 23:57:17 EST k5mj/iTh No.37633 Reply
Hey OP I know you're a busy guy but I'd really LOVE if you could keep a separate etc-like page for just plain ol' cool resources and good books, talks, etc. I appreciate the philosophy of minimalism in your guide, but I really enjoyed some of those old detours like Stillwell's Element's of Mathematics that you used to supply. It doesn't even have to be organized, but anyway thanks pal. It's a fun ride.
Nicholas Heckleridge - Sun, 26 Aug 2018 18:31:23 EST B01eYMws No.37634 Reply
Goddammit, that's a real blow. I need build an archiving script fast. I know how to get the video URLS and stuff, but it's annoying to do it all manually. Well, just a little bit more c++ and I'll move to python, bash and stuff. Which should be all I need to write some quality archiving scripts.

I'm actually giving the C++ primer 5th edition a slightly higher grade since, even though cumbersome it does really teach you almost the the entirety of the language and things left out are mentioned and given some hints to build open them yourself (which is pretty easy once you understand all the terms are deep enough in. But again... it has problems and takes a really long time to finish. And I don't think it has any real value if you don't finish the majority of chapters properly. Besides some joke programs I wrote (which are great exercise to refresh all the things you've learned and improve a bit on it, )
Shit Fommlestidging - Mon, 12 Nov 2018 22:15:32 EST OONCb2Oo No.37678 Reply
Bumping and requesting OP discuss the differences between HtDP and the MOOC How to Code (I understand the course is based off the book). I liked the MOOCs content but overall hate MOOC's and much prefer textbooks, maybe supplemented with lectures but not with the tight integration and visually controlled pace that MOOC's force.
Fanny Duckhood - Thu, 22 Nov 2018 08:48:36 EST zuSwaRiH No.37681 Reply
imo HtDP is completely unnecessary and I'm not sure why OP added it back to the site. Just read the Lisp, Scheme & ML books if you're starting out.
Caroline Grimbanks - Sat, 08 Dec 2018 23:02:51 EST x6K3CZQk No.37683 Reply
the reason I added it was because of data driven results, something which I became a fan of after doing all those ML and stats theory courses. HtDP the book is much better than the MOOC, as in much more rigorous. If you're reading this and you've never programmed before you should do both, get the insight from the MOOC and then do all the rigorous assignments from the book. The PAPL book (sequel to HtDP) covers a lot of compiler things too, something which helped me get my current job on "wall street" (well, hong kong wallstreet).

I also can't shill that Math Background for ML youtube playlist enough, they're long videos but you will learn stats theory from them. I credit them, plus HtDP, plus 15-210/15-150 direclty for my present 9-5 job. Like most people here I usually reject jobs and all that conformity, but just working with experts in programming who went to ivy league schools is worth it imho since I don't have this background being that I grew up a dropout.
Caroline Grimbanks - Sun, 09 Dec 2018 03:17:05 EST x6K3CZQk No.37684 Reply
Yes the excellent Stillwell book, it's where I first learned how to 'prove' the square root of 2 is irrational by using Egyptian fractions. Last commit I added in a really good Shriram Krishnamurthi talk about creating a compsci curriculum and the various pitfalls https://youtu.be/5c0BvOlR5gs but sure I'll make another repository sometime of random resources I've come across like all the good Ryan O'donnel notes where he shreds probability fallacies. II have many more recorded lectures too from my short time in Holland taking two semesters of optimization in grad school. The CMU and Brown U courses are so good though, once you get used to them all other classes are too slow and easy. I'll try to put up some djb talks too, if you get past IEEE paywall access you can get many of the talks on his site which are usually just released as slides only, like this one ripping apart the shit state of all crypto software https://cr.yp.to/talks/2018.11.15/slides-djb-20181115-cryptosoftware-4x3.pdf

Also, since this is 420chan https://www.youtube.com/watch?v=TuNNcOEgc4Q
Shaggy - Sun, 09 Dec 2018 05:05:29 EST zuSwaRiH No.37685 Reply
>Once I killed it on elance just doing other people's exams/homework for SQLite/Postegres

What exactly do you mean by this? Looking on Upwork now can't seem to find a lot SQL only jobs
Caroline Grimbanks - Sun, 09 Dec 2018 14:22:58 EST x6K3CZQk No.37686 Reply
wait until its exam time and lots of homework/projects they haven't finished will appear, plus direct offers if you're advertising yourself for sql. There's also plenty of jupyter notebooks + sql jobs, like this https://www.upwork.com/o/jobs/browse/c/data-science-analytics/sc/data-mining-management/details/~0152bce95cabda9e98/?q=SQL

You could easily do that after completing 15-388, and every other data extraction or visualization work posted there. http://www.datasciencecourse.org/lectures/ in fact 15-388 is the most useful course listed in terms of wanting to immediately freelance afterwards scraping amazon for junk and stuffing results into spreadsheets or dbms. Of course these shitty freelance sites don't pay a lot but 3hrs a day, you could clear $150/day doing 2 jobs enough to cover whatever expenses and then jacking your fees up as you get experience.
Shaggy - Sun, 09 Dec 2018 15:35:42 EST zuSwaRiH No.37687 Reply
That's pretty neat, I thought web dev was the best thing for freelancing so that's what I've been studying but honestly it sucks, don't like it one bit. So I'll give this data science thing a shot for a month or two. $150 seems like a fuck ton for only 2-3 hours if you ask me. Any suggestions for getting up to speed with the prerequisites (maths) for that course? I just want enough to actually start making money, and then I'll look to improve on the fundamentals. Thanks mate, cheers
Charles Sobblechud - Mon, 10 Dec 2018 03:22:15 EST x6K3CZQk No.37693 Reply
Really there is no prereqs, if you don't get something just directly look it up in one of the other resources or ask math stackexchange. They explain all the notation since a lot of masters students take the course and they don't know their undergrad math background.

Somebody reading this far into the future, and your goal is not casual interest in theory or freelance, and you want to do the absolute bare minimum to squeak through a difficult finance or silicon valley meme interview, my advice from recently going through and passing these annoying hiring rituals:

Start with PAPL, it's 4 semesters of CS in one book: https://papl.cs.brown.edu/2018/index.html and uses 'Pyret' which is essentially typed Racket without the parens. Note the similarities between ML/Pyret, easy knowlege transfer from Pyret to OCaml, or ReasonML, or any functional language really. Also note the graph sections, basic algorithm analysis, parsing, interpretation, everything you need as a foundation. You can now answer questions about memoization, traversing trees, ect. This will also satisfy the most important skill: being able to talk your way through a problem, and find a solution yourself, as the author talks his way through the problems with you.

Next, the ancient and small book: The Unix Programming Environment by Kernighan and Pike. The first 5 chapters will answer: how would you count folders in a directory, list 5 programs that begin with two letters and what they do ie: cd, ls, ps, ld, given a list of strings, return all groups of acronyms, ect. It will teach you bash scripting and awk filters, everything you need to know about grep, ect. A 'gotcha' question is how is cd different from all other unix shell programs, the answer being found in the book that only the shell process can change directories itself, so it's typically built into the shell. Explained more here: https://en.wikipedia.org/wiki/Cd_(command)#Usage

The 15-388 Practical Data Science lectures as they are a crash course in manipulating APIs, SQL, and how to model and analyze data. You will probably be asked about map/reduce, big data, all of that is covered here.

You will need to know the difference between constant and linear time (click videos) https://www.cs.cmu.edu/~112/notes/notes-efficiency.html

Finally, the Parallel & Sequential Algorithms book, 15-210. Any questions balancing trees, hashing, dynamic programming, queues, and all optimization tasks they'll ask you are found here. Since you've done PAPL, you can do this book, it's in functional pseudocode. The math prereqs are familiarity with basic notation and proof by induction, all of which you can learn in a calculus book or try the CMU 'intro to pure math' book https://infinitedescent.xyz/ or maybe you don't want to do any 15-210 homework and just translate the algorithms into your functional language of choice and manipulate them however you want.

Optional but sometimes there's an array task. An interesting representation of Arrays I haven't seen elsewhere is in Vol 1, TAOCP. Knuth represents them as a linear algebra matrix. Any questions asked about manipulating arrays, you're now just manipulating a matrix using basic linear algebra techniques. There's a 1hr crash course on basic matrix ops here: https://youtu.be/hvvPRbXc0-o or go through stack exchange and read everything there is about optimizing arrays.

Somewhere in all of this write features for any open source project. An easy mode for this is use your experience from the parallel algorithms book to break up the work of something and increase it's efficiency. If you can get just one PR reviewed and approved congrats you are now a 'working programmer' and can go apply to finance companies. You will already be better than 3/4 of other candidates who will have zero PRs and parachute into interviews with maximum jackassery. They've had a lot of problems with candidates who think they know everything already, and plan to act as the new CTO immediately upon being hired. If you're not one of these people and can at least talk your way through a problem you're in.
Thomas Buzzfuck - Mon, 10 Dec 2018 10:51:37 EST zuSwaRiH No.37695 Reply
Are you planning on adding anything blockchain related to the site?
Charles Sobblechud - Mon, 10 Dec 2018 13:12:06 EST x6K3CZQk No.37696 Reply
There are already a lot of curated lists on github for blockchain related material, you're basically just using an API or a library. It only gets interesting if you decide to write EVM output directly. My personal totally unqualified recommendation is forget all of them and just look at this project by Egor Homakov https://github.com/fairlayer/wiki who specialized in software security before deciding to write his own full node prototype. His articles destroying the sad state of altcoins and stablecoins are interesting https://medium.com/@homakov
Frederick Pitthood - Mon, 10 Dec 2018 17:41:20 EST 13VDkZHc No.37697 Reply
I guess I could dump what I have, there's this open Berkeley course w/lectures on YouTube but I haven't taken it https://blockchain.berkeley.edu/decal/fa18/fund/ my blockchain 'engineering' strategy is just using google scholar to find papers, then following all the citations which typically lead to good survey papers or in depth protocol descriptions.
Albert Dollergold - Thu, 28 Feb 2019 09:19:07 EST +ZPk5Yi7 No.37701 Reply
guys do you have anything on Coding/Information theory and related probability?
Cyril Gablingman - Sat, 09 Mar 2019 18:23:05 EST Xdvh/Cps No.37707 Reply
not the same guy, but if you're not gonna share all your bookmarks and such, can you share how you find these great resources? as an example, I wouldn't have been able to find CMUs Python course you list. Books are easy enough to find via recommendations and reviews, but I don't know how you manage to source all these .edu sites and I'd be thrilled to know.
Fanny Bunlock - Fri, 15 Mar 2019 22:39:19 EST x6K3CZQk No.37717 Reply
The way I found these courses was mainly due to research methods I learned in said courses, like the data scraping course where I'd archive the entire CMU or Stanford site then test what didn't require a login. Back then almost nothing required a login, the OS course, 15-122, ect were all open. Then I of course foolishly posted them and they all ended up paywalled. I try to keep the course list on the down low, posting to obscure chans to find people like myself but it gets posted to HN and wherever these days but I'd prefer it wasn't just so nobody notices people are getting free access ergo shutting it all down. When I scrape most universities these days it's almost all entirely Piazza links unfortunately which means paywall.

My recommendations to find more of these courses is just go through their course offerings that year and look up the course numbers/professor or TA names to get the course page. I sometimes used a search analysis service for this, like Ahrefs (note, they hire remote ocaml devs if interested) also github looking for public repositories where some student archived the labs and other assignments. I've also written a few professors and asked them to keep lectures open, or record lectures for the next semester to be posted on youtube. Can't do this anymore because of the Berkeley lawsuits where people sued the university claiming the free lectures they dumped as a public service weren't accessible enough and as a result hundreds of lectures disappeared off YouTube. To make a long post short, lawsuits basically prevent universities from just fully opening their courses. I always thought it was due to tuition grubbing but no it's lawsuits. I also follow professors now as they move around and check their webpages for classes or theoretical talks they give, like Ryan O'Donnel which is probably my favorite professor since he's opened most of his courses https://www.youtube.com/channel/UCWnu2XymDtORV--qG2uG5eQ/playlists the Quantum Computing courses are very good btw, you're just learning the quantum information theory model and how to write a (randomized) algorithm that will run on a quantum architecture. No PhD in Quantum physics needed just like you don't have to be Von Neumann to design algorithms for X86 architecture. There is lately a lot of places desperate to pay people to do this if you look around like Rigetti Computing.

One thing I may do is add a graduate section on algorithm design since I've been doing a lot of algorithm design lately. Cornell has my favorite version of notes as it's entirely the core theory of algorithms http://www.cs.cornell.edu/courses/cs6820/2018fa/lectures.html combined with the two recommend books: Algorithm Design, by Jon Kleinberg.Éva Tardos and The Design and Analysis of Algorithms, by Kozen. The Kleinberg/Tardos book is pretty amazing, walking through each strategy in plain english instead of the typical theorem/proof style. The Kozen book takes the theory and then shows how knowing the theory can help you solve problems in matchings in graphs. Of course all of this you can also learn in The Art of Computer Programming series too if interested though I've noticed randomized algorithms are becoming the prevalent solution for solving a lot of traditional computer science problems lately, especially with all these Quantum startups prolifertating. If I were to bet money on what subject will in the future become the most important meme degree like 'Machine Learning' is now, I'd say anything to do with probability, estimation and randomized algorithms.
Fanny Bunlock - Sat, 16 Mar 2019 00:25:52 EST x6K3CZQk No.37718 Reply
1552710352990.jpg -(8298B / 8.10KB, 480x360) Thumbnail displayed, click image for full size.
Since I'm here and never post, I'll talk some careless shit, primarily money, schemes, side projects.
Mainly because if you were me +/- 5 years ago you'd be broke and living off schemes like I used to, so let's talk schemes as everything is constantly evolving in the scheme space.
My strategy back then was simply clone a service, charge 1/2 as much, add twice as many features and then (don't tell anybody) deny service to that service. I didn't do it the 'illegal' way by pounding them with DoS traffic, I just discovered loops that wouldn't terminate, accomplishing the same outcome. This is straight from my original background in reading 2600 and hanging out in IRC all day, which is pretty much max cringe in current year. I'm assuming what I did wasn't illegal but who knows, anyway today is not yesterday, and this strategy won't work. So you want to make money now.

Again functional programming is your secret weapon. If you know say, OCaml, you can go on your local craigslist and just advertise that you can make the impossible realized. They want a combinatorial auction service? Message passing to shared-memory threads as a programming model for parallelism then solve the bids. Use google scholar for anything you want to make, somebody has already made it in theory, or they wrote a survey paper. Transact their paper into OCaml code and sell your MVP for scheme bucks like I used to do. The reason why I shill OCaml so much is not because I'm in love with it's syntax and shitty libraries but because it has at least some libraries (more than SML) and you get ML modules. The idea of modules is from abstract algebra, and from Alan Kay's orig idea of how OOP was supposed to be: message passing over a massive network of distributed servers all performing their own algebras. An algebra is a module, the official wikipedia definition being an algebra is a module, wherein you can also multiply two module elements. ML family languages are not like regular programming languages where you simply import a library and then get some kind of syntax abbreviation to access it's functions, it's an entirely different world where these modules can even be compared and proven equivalent. You can abstract the abstract modules. What this means is rapidly prototyping something totally insane, that should be possible in any other language. And, because you are presumably a solo developer without a team of testers, you can get away with this because of the type checker/compiler, you won't have to cover all edge cases like you would in an imperative language. This isn't to say there isn't still bugs, but easy bugs won't manifest. This was my primary motivation for creating this curriculum. A solo developer, somewhere like me, who has no money, no team of QA coworkers, no graduate knowledge of covering all edge cases, just somebody who knows enough theory they can apply it in unusual ways that nobody else would think of, because they're all distracted by 'industry', and massive teams of people. You of course need those people, but hustling a prototype that can do the impossible while at the same time you've proven in Coq that most of your program logic is sound? Then extract the OCaml code and realize you've done something everybody else said was impossible.

As I further digress into cringe territory I will surely regret in a decade when this thread is still around and Kirtaner has replaced most of his organs with Chinese replacements and ends up living for eternity in the matrix, the whole point of my pile of links was to find people like myself who think the confines of present technology doesn't need to stop them from going on google scholar and then implementing whatever paper they've just read. A good example of an abstraction somebody figured out is all these delivery sevices like Foodora or whatever. There is just now a big menu of anything you want, and multiple orders from different restaurants can be delivered all at once. The restaurant itself was abstracted away. Now every restaurant in your city is your menu. Think about abstractions like this, how can you just remove everything and operate on a higher level. Write an MVP and sell it somewhere. This is the kind of schemes I was interested in side projects. For example MIT comes up with a new fast fourier transform, finding better compression by noticing most video and audio signals are sparse, and releases a prototype. All you have to do is write a new library off their paper, and abstract it so nobody knows what's happening. They just get lighting fast video and think you're running some massive content delivery network. I frequently did this with protocols, rewriting them so they'd be unique and then creating my own network out of band of everything else. Try this sometime, just create things everybody else says is too hard and make. Get an experimental record like this https://youtu.be/f27fW9qM1JM and then process it through different transforms. There's plenty of them https://groups.csail.mit.edu/netmit/sFFT/

Finally I will shill literate programming. Knuth has told numerous interviewers, if you wish to go beyond the confines of regular programming abilities you should try literate programming. Like everybody else I looked at the primitive tools for this (CWEb, and other abortions) and wrote them off as impossible to work with, plus believed the criticisms of refactoring and whatever.. Then I started doing logic in Coq, and other proof assistants. A lot of that work is semi literate, you describing the program logic specification, and one bored morning I decided to write a multi core program of ridiculous complexity and it all came together easily just writing it out in juypyter notebooks, which supports OCaml and other languages. It does seem that talking your way through something helps you write it, without bugs. Refactoring, contrary to popular belief, isn't impossible with literary programming but once you try it, you'll find you'll never need to refactor, especially if what you're doing is amenable to abstract type and modular.. Everything I write these days is in this style now, or 'paradigm'. Find the most difficult paper you can on google scholar/arxiv, describing an implementation of some theory. Follow the paper and write your own complete hack implementation using literate programming, it'll probably work.
Phyllis Dreddleville - Sat, 16 Mar 2019 17:54:23 EST Xdvh/Cps No.37721 Reply
Holy shit, wow! Thank you so much. I think those meta skills rival the value of the resources themselves, personally. Good to know I'll pick it up as I go, that data scraping course (which I've been working through) has really amped up my internet power user game so I really had me wondering how you found this stuff, and your explanation is sort of what I roughly expected.

Out of curiosity, do these walls normally require student enrollment? Or can I just pay $5 to scrape a site, or something? I might be willing to pay a little bit for some of the courses you've described as lost to paywalls, but not anything over $20 really. I imagine the fee is more than what I'm willing to cough up anyway.

Nice anon, if you start a blog let us lesser beings know! You're writing is always extremely motivational.

>think about abstractions like this, how can you just remove everything and operate on a higher level.
Solid anecdote, I've had many similar thoughts and ideas since starting the curriculum, but I'm not quite productive enough yet to pump anything out quickly, but I'm trying. Though I have developed some really ugly programs for myself (mostly for some second hand good flipping, hopefully automating some service arbitrage soon too). I really cannot wait until I'm able to smoothly develop apps and SaaS products without breaking my back on a prototype.

>Everything I write these days is in this style now, or 'paradigm'.
That's awesome, I've just begun scratching the surface in with literate programming in emacs.

Thanks for taking the time, anon. Your presence over the last couple years has had a big impact on my programming skills, and, more importantly, the way I think. /cringe
Reuben Blizzledock - Wed, 20 Mar 2019 21:18:47 EST x6K3CZQk No.37725 Reply
To get access to paywalled/Piazza walled bullshit you need a student ID. This isn't all that hard to get if you find a former student or pay a current one to upload lectures to your seedbox though more and more professors are just posting to YouTube these days then deleting the playlist after the semester because screwing around with proprietary video streaming is too much hassle/expensive. So all you need to do is archive before they get pulled down at the end of semester

I redid the beginner math prep section (again) because I finally found a single resource that covers everything, that isn't out of print or filled with errata, or that assumes any background of the reader. It's legendary /sci/ meme mathematician NJ Wildberger, who's foundation lectures I didn't watch until recently. If anybody has a shit background in math these are what you want to redo your terrible previous education in a series of 10 minute lectures. All the proofs are in basic arithmetic and you end up doing so many that by the time you get to CMU's discrete math course it'll be second nature watching prof Ryan O'Donnell stuff large expressions into arbitrary variables and manipulate them to form a proof. Wildberger's crazy rational Trig is also so simple a primary school student could do it by hand.
Charles Duttingshaw - Fri, 29 Mar 2019 15:34:36 EST GGsT9PTU No.37734 Reply
Why are you guys so obsessed with courses? All they are is explaining the book that you will have to read anyway.
Ernest Grandson - Fri, 29 Mar 2019 23:14:19 EST x6K3CZQk No.37735 Reply
1553915659345.png -(117795B / 115.03KB, 680x1451) Thumbnail displayed, click image for full size.
Most of these courses don't have a book, for example 15-251 is primarily lectures with course notes exercises, the Machine Learning courses are all entirely lectures covering edge cases not in any books, really the only lectures that completely follow a book are the systems architecture course 15-213, and the two complexity theory courses but even there, Toda's 2nd theorem is like 6 pages in Arora & Barak, whereas the lectures they easily walk through the entire proof and expand on the lemma remarks instead of you spending a better part of the day trying to decode 6+ pages of notation. Projections onto a convex set probably would've lost me as well if I went off a book.

If you did just want to primarily use a book, you could shortest-path most of the undergrad curriculum with PAPL -> Discrete Math w/SML -> Parallel & Functional Algorithms book and watch the 15-213 lectures in a week. You'd learn recurrence relations, greedy algorithms, set theory as a program and proving correctness, complexity theory, interpretation and briefly compilers, memoization techniques and how to exploit cache locality, graph theory/trees, analyzing extremely obscure shit like garbage collection or dispatching depending what lang you're using, and how to just abstract away the entire details and look at programs like a god would look at the 3D world, something I have to increasingly do where I work lately.

Speaking of work, I have killed it at bounty hunting lately, all those gitcoin sites with bountys for commits. Also, speaking of books, I think I will write a jupyter book series walking through the Cornell OCaml course with how-to bounty hunting, since the primary objective of that course is how to teach yourself any language. It's also almost shocking how different my life is from when I first started doing this 7 or so years ago. I had what could be called a totally insane world view, basically being a blackhat but giving all the money away (they trace you through money). I concocted this scheme that I would elevate the community around me in order to elevate my own shitty life. It actually worked which is the craziest part. I have some articles in 2600 related to this I wrote that were published, (and blew my opsec, goddamnit) but that's all I'll say that time was literally brainlet to the maximum epsilon and I am embarassed that guy walked the earth under my name. I only survived due to dumb luck. Now, the more I learn about probability the more I realize how I actually just tossed some dice and can be here to write this. The tl;dr of this is no matter how clever you think you are, the criminal schemes are a dead end, and surprisingly, you make way more money not being a criminal just it doesn't come as fast. When you're in the shit doing stupid things it comes tomorrow but if you play the system, it's just as sweet without staying up all night wondering when you're going to get it. My competitor got it in the parking lot at his gym because it was just suspicion of doing set ups, not even a sliver of proof. That woke me up real quick but is a story for some anonymous board on fictional nonsense not here.
Ebenezer Dartworth - Mon, 01 Apr 2019 13:34:20 EST zb32WQST No.37736 Reply
Is it okay if I do SICP instead of PAPL?
Ebenezer Summerstone - Thu, 04 Apr 2019 12:20:25 EST x6K3CZQk No.37740 Reply
Sure, the author of PAPL claims SICP is 'the best CS 101 text ever made' in the first chapter, and has modelled the book after SICP, like the tabular data chapters(memoized procedures) plus most of the exercises in SICP will end up in labs in nearly all the courses. There are some problems though, such as this: https://stackoverflow.com/questions/5499005/how-do-i-get-the-functions-put-and-get-in-sicp-scheme-exercise-2-78-and-on For people who use imperative languages, like Java/Golang or whatever, Cornell has a good set of tutorials on how you can design yourself any kind of array sorting or other imperative datastructure without needing to memorize CLRS to pass those terrible whiteboard interviews and codility tests. Your array sorting algorithm just kind of writes itself, so all you have to do is remember how to logically step through their 4 procedures, and no matter what imperative algorithm somebody asks you to do you can do it.

If interested you start here just learning the notation: http://www.cs.cornell.edu/courses/cs2110/2017sp/online/programCorrectness/programCorrectness.html click on the faces/avatars, they lead to a playlist: https://www.youtube.com/playlist?list=PLTD_NtzzD4VCSiMx_-6hrKfva0TdgP234
Then proceed to their playlist on Loop Invariants https://www.youtube.com/playlist?list=PLTD_NtzzD4VC6l2uLdzbsm9wW21mMaWwj
For example, here's designing with their '4 loopy questions' https://youtu.be/T3HqmkdKqsM which I tried out on some array algorithms out of CLRS at random, it works nicely. In functional programming you would be finding representation invariants instead for ADTs/modules, but for any reason you need to write mutable code this is a good method since you only need to remember 4 things.
Walter Choblingfield - Thu, 04 Apr 2019 13:07:30 EST czIU0qQN No.37741 Reply
Holy shit man! Where did you find those resources? Thank you very much for providing them. I'm just a freshman at college btw. Just starting my first course here.
If I want to start a data science project(not those memed shit) what should I study?
Matilda Wivinghall - Sun, 07 Apr 2019 23:50:25 EST wo8qr+K9 No.37743 Reply
section 6.1 looks dope! good find OP, god amongst men!
Archie Chuttingchotch - Thu, 11 Apr 2019 19:12:48 EST p18qherm No.37746 Reply
this is a hodge podge of resources, some of which might be valuable to the posters ITT (particularly in the Computer Science -> University Courses, and there's a collection of math lecture notesand other resources in Computer Science -> Theory -> Math.

It is not a structured curriculum though, but does contain a lot of resources for cherrypicking.
Betsy Drummershit - Fri, 12 Apr 2019 14:39:30 EST wo8qr+K9 No.37747 Reply
Hey OP, just out of curiosity, have you still personally consumed everything you recommend? The "intro programming" section has changed frequently since the list was first up, for example, and it makes me wonder if you read a lot of intro material frequently still (and if you do, why?)
Frederick Fessletag - Fri, 12 Apr 2019 23:01:22 EST wo8qr+K9 No.37748 Reply
serious question OP what's the scoop on non-traditional degrees in the US? can something like the Open Uni get my foot in the door at a local (I live in the Pacific Northwest, USA) uni for some post grad work? I like this theory stuff and working in it sound great, I'd like to go into math or CS but these are both heavily gatekept fields by academics and I doubt ol' Joe Schmoe can walk in off the street and work with the boys who paid a premium for their ticket.

I'm stuck trying to decide if I should go back to school and pay out the ass to take 'Intro Programming with Java (TM)' and Calculus II featuring James Stewart. Ideologically, I agree much more with not paying out the ass for a scam that reteaches what I've already learned (thought to be fair, I don't actually know Java), but I'm not sure what will have the most net gain long term.
Frederick Fessletag - Sat, 13 Apr 2019 17:28:18 EST wo8qr+K9 No.37749 Reply
OP, feel free to ignore this question and my other shitty ones of course, but do you believe in doing courses/textbooks/resources concurrently? or do you get more out of going monk-mode on a single resources?
Ian Blovingford - Sun, 14 Apr 2019 21:44:03 EST x6K3CZQk No.37752 Reply
Found a crazy MIT resource where they teach operating systems in the style of Lion's Commentary on Unix, the book that everybody passed around as illicit photocopies back in the day.
They recreated Kernighan's and Ritchie's ancient Unix v6 https://pdos.csail.mit.edu/6.828/2018/xv6.html for the purposes of teaching, as it's small enough to follow along the source with book.

I've done many more too, such as the Cornell book 'All of Programming' which covers C/C++ as an intro http://aop.cs.cornell.edu/ but I had to discard it due to highly proprietary format (can only buy from Google play store and read with annoying browser plugin). Otherwise if you're some kind of amateur game developer who just wants to manipulate engines and you want a really good intro to C/C++ that covers tools like editors and compiler errors it's prob the best practical intro book. I've also done MIT's python intro courses, CS50 from Harvard, Princeton's courses, numerous other books. It was mainly out of interest in creating my own curriculum but then I started following Matthias (Felleisen) and Shriram's papers on what actually works, like this study from Shriram: http://cs.brown.edu/%7Esk/Publications/Papers/Published/mfk-measur-effect-error-msg-novice-sigcse/ and came to the conclusion that all of the existing curriculum is essentially terrible, and CMU also came to the same conclusion around 2011 and Robert Harper completely redid their entire undergrad though he was forced to keep a bunch of legacy courses. I keep changing that section because I want a resource that is free/open, will not disappear, and something that compliments the rest of the material and PAPL is pretty much that book now that it's almost finished. For example this section: https://papl.cs.brown.edu/2018/Type_Inference.html on understanding type inference by building your own will cure the reader of any confusion on future compiler type checking errors in other courses. Studying how a language works makes it much easier to program. Plus PAPL also doesn't require any kind of local install, can all be done in the browser which to me makes sense if you want an introductory course, don't require your students to spend forever learning some complicated pile of language packages with missing dependencies or cryptic IDEs designed for professional industry programmers.

My own anecdote for teaching, which wouldn't scale of course, is that I believe programming should be taught from the top down, similar to The Art of Computer Programming series. You spend a few weeks learning how to solve recurrences like the opening chapter of Concrete Mathematics, progress to combinatorics/group permutations, basic linear algebra to manipulate arrays, automata theory, then how to represent data from a physical thing like a playing card to it's abstract representation in an information structure( Chapter 2, TAOCP), and then analyzing said structure on paper before you really even begin programming. Everything to me anyway is so much easier when you know basic design techniques like divide/conquer, dynamic programming, greedy algorithms, and network flow then you start seriously programming in language of choice. In most intro texts or school courses you generally start from the middle where nothing makes sense and they expect you to come up with algorithm design techniques yourself, which is where everybody drops out because it looks like this work is impossible to do and only a few people can understand it. In your 3rd year or so at university you move up to something like Algorithm Design by Kleinberg/Tardos, which probably should be taught first with pen and paper. For example this intern's report on how he dealt with the task of needing to modify 10k+ config files, using dynamic programming design strategy combined with A*search (typical general AI course algorithm) to find an acceptably efficient solution http://thume.ca/2017/06/17/tree-diffing/ I like the book 'Discrete Mathematics and Functional programming' for this too as a compromise between programming first yet learning the important theory parts at the same time instead of endlessly frustrating exercises a typical university intro course or book uses that teach a crippled Python curriculum.

Any online school that offers regional accreditation will be fine for applying to grad schools, if that's what you're asking, such as Open U in the UK which somehow has US regional accrediation. They're getting expensive now though. You generally have to put together a really good application and directly send it to a department member you want to supervise your degree, hoping to impress him/her enough they are willing to take a risk on you if the goal is PhD. There are actually people you can hire to help you write applications for this floating around but it's still very difficult to get in. If your goal is masters then all you need is money up front and good to go from what I've seen. I dislike school in general as I've never been to a really good one so another solution is just apply to work as an outside contractor to be a programmer on whatever grant funded research team. Then you get best of both worlds: paid to learn on a team with researchers in academia. Your local university will have these jobs for outside candidates since students never take them, they want resume prestige and money that come with internships at bigtech.

If you mean multiple subjects I generally just did one subject but from multiple resources of various difficulty, like how they assign you 3+ books for assigned reading per lecture sometimes I'd do 2-3 courses at the same time if they were the same subject (ie: Machine Learning). In a university you'd be doing 4+ totally different subjects all at the same time so much faster than how I did these courses but my background was utter shit when I started so I had to constantly mix different material together just to understand one introductory chapter.
Basil Worthingcocke - Wed, 17 Apr 2019 15:12:29 EST wo8qr+K9 No.37755 Reply

ayyy mang where can I get this for free? sounds dope. I don't wanna spend $10 to encourage some authors with their walled garden proprietary BS
Cyril Duckworth - Thu, 18 Apr 2019 08:43:48 EST Xu2x3Xtn No.37756 Reply
Is the functional programming part redundant if I have already finished the Common Lisp alt intro?
Edward Bruvingstock - Thu, 18 Apr 2019 12:47:36 EST x6K3CZQk No.37757 Reply
1555606056661.jpg -(37073B / 36.20KB, 350x500) Thumbnail displayed, click image for full size.
I had to buy a copy, as they made it as proprietary as possible in order to read unfortunately. It also comes with lecture videos if you buy it. One book you can try is Data Structures & Algorithm Analysis in C++ 4th Edition by Mark A. Weiss which covers greedy algorithms, dynamic programming, etc. http://iips.icci.edu.iq/images/exam/DataStructuresAndAlgorithmAnalysisInCpp_2014.pdf

Up to you to take whatever interests you, there's no reason to learn SML/OCaml if you like working in Lisp though looking at the module system in SML/OCaml is rewarding, most languages you just import some library to use and that's basically it, not very interesting ,but in ML family languages libraries are completely different and vastly more powerful. Kind of like OOP but not OOP. Guile(scheme) has something similar https://www.gnu.org/software/guile/manual/html_node/Modules.html#Modules and speaking of Common Lisp it is still heavily used in quantum computing research, for example Rigetti Computing hires Lisp developers https://github.com/rigetti and my meme list of courses there's a really good intro to Quantum Information Theory lecture series if you're interested though will take a lot of work to understand the randomized algorithms but it'll be worth it, since almost everything I do these days in optimization work is some trick with a randomized datastructure.

Something I'm going to add is this talk http://cr.yp.to/talks.html#2015.04.16 'The Death of Optimizing Compilers' by djb. There's audio + slides. I had no idea until I got into the industry just how much hand rolled optimization is going on. Anytime a hot spot is found we are writing by hand assembly for it and bypassing the compiler optimizations completely. In the book 'Coders at Work' (pic related) there is an interesting interview with Fran Allen about the shit state of current day optimization and how much compiler theory we still aren't using they left behind in the 1970s.
Nathaniel Cegglechack - Thu, 18 Apr 2019 20:26:22 EST wo8qr+K9 No.37760 Reply
Thanks for helping the little guys, OP. Anyway:

Do you store notes long term (and if so, how)?

Have you by chance taken CMUs 15-122, Intro to Imperative Computation? I am looking to read CS:APP soon and follow the accompanying course (15-213), so I wanted to make sure my C base is strong (so I can apply what I read), and it looks like it's a very solid intro to C.

>just apply to work as an outside contractor to be a programmer on whatever grant funded research team
That is a good idea, thanks. I'm not at that level of knowledge yet, but that sounds like a great balance between fulfulling work, and avoiding the downsides of working in academia, and having something to shoot for is always cool.

And if you have any general tips for resource gathering/curation I'd be interested in hearing it. It seems like you've forged a high quality resource and curation stream, and I'd like to mimic that ASAP.
Nathaniel Cegglechack - Thu, 18 Apr 2019 20:28:57 EST wo8qr+K9 No.37761 Reply
Oh, and I've been using Org-Mode for some time now, so if anyone has any tips for good workflows (esp for self-teaching related task management, note taking, etc), I'm in dire need of a better system.
Archie Sankinshit - Fri, 19 Apr 2019 04:07:55 EST x6K3CZQk No.37765 Reply
Yes I did, the lectures for 15-122 used to be open when Rob Simmons taught it and then they disappeared as they switched from panopto to some other proprietary video service. I also posted them so that could be why they disappeared but who knows. The lectures covered much more than the notes, he walked through contracts then would frequently find some way to violate the contract as a way to get the students to think less 'operationally' and more logically. The contract language used is loosely based on a tiny subset of JML and the same professor from that course has a tutorial on JML covering much of the same material he used to teach in 15-122 https://www.youtube.com/watch?v=lNITrPhl2_A but you really don't have to do this class, everything in it is covered elsewhere in the curriculum just CMU department heads felt they needed to prepare students for 15-213 as they were failing due to being unable to handle the annoying complexities of C like undefined behavior and surprise casts, so 15-122 was born. 15-213 is self contained and will pretty much teach you C as you go, including gdb and valgrind and other tools. Big-O introduction, is much better defined in the Parallel & Sequential algorithms book (used in 15-210) where they use a language based cost model of complexity to measure things like garbage collection and dispatching. I also liked the big-O explanation in the Waterloo Functional Datastructures book that talks about abuse of notation and clears up some things. https://cs.uwaterloo.ca/~plragde/flaneries/FDS/Tools_and_Techniques.html#%28part._.Order_notation_and_its_discontents%29 and elementary data structures like arrays are much better covered by the njwildberger videos on datastructures where he shows the Knuth method of thinking about them in linear algebra terms. Still I had never heard of contracts and liked rj simmons as a lecturer so did the course anyway. Probably the most important lecture notes in the entire course are the one's about temporarily violating and restoring invariants since it's a technique that comes up again in algorithms courses but you'll learn it from those courses/books anyway.

15-213 the Randall Bryant lectures are sometimes unintentionally hilarious, depending which semester you watch, with him accidentally teaching from totally screwed up slides or arguing with some student about which language came first. Apparently most CMU students just attend the lectures and don't read the book, however I found the chapter (not covered in the course) where they roll their own architecture really interesting since I know nothing about engineering. MIT and Cornell both use the book 'Computer Organization & Design: RISC-V edition' and MIT has a full course for it here with YouTube lectures if interested in transistor level details https://6004.mit.edu/web/spring19/resources/lectures for programming FPGAs https://github.com/darklife/darkriscv Also you will quite easily slay this NCC Group challenge after you finish chapter 3 https://microcorruption.com/login

Best way to get these resources yourself is just do that practical data science course from CMU, then open up jupyter notebooks and drop in some master list of uni domains https://github.com/Hipo/university-domains-list/blob/master/world_universities_and_domains.json then train to recognize a class page or just look for professor names. Google scholar let's you get lists of professors, subjects, citations ect. to cross reference your pile of data you scraped. Usually I find a paper I like then have my pile of shitty jupyter notebook scrape code retrieve everything it can find about the people who wrote it, searching university domains for their class pages. Then I present myself a list pushing the courses with youtube videos that are accessible to the top. For example I just did this and found a class starting here apparently about robot algorithms for walking/swimming http://underactuated.csail.mit.edu/Spring2019/ with live streaming youtube playlist https://www.youtube.com/channel/UChfUOAhz7ynELF-s_1LPpWg
Cedric Hoggleworth - Fri, 19 Apr 2019 11:02:05 EST Oxa3He0q No.37766 Reply
After finishing Practical Data Science which one should I do next for a rigorous treatment of the subject?
Archie Sankinshit - Fri, 19 Apr 2019 13:29:51 EST x6K3CZQk No.37767 Reply
Machine learning if you like that subject. For example we'll use fintech outfits. They primarily hire people to solve the seemingly impossible task of cleaning/scrubbing/indexing data, and by data I mean a non stop fire hose of unstructured data from 100+ different sources, all of it highly proprietary so you can't use a third party to process it. You need to build a custom data processing pipeline that can clean/index as it comes streaming in to discard invalid data, detect outliers, normalize etc. Outliers such as weird errors like data coming in declaring itself valid when it was timestamped after markets closed. Probably 90% of the work is just preparing and sorting this data and doing it in a way that is more efficient than everybody else, as most of the profits are derived from price discovery, which as I understand it as it was told to me, is finding inefficiencies in the market then correcting them, where you make all the money. So huge, high signal data comes in from all directions, is prepared for analysis (an enormous task omitted for brevity), advanced queries run on it and random sampling, then a Quant will come up with hypothesis to backtest their strategy, then that strategy is deployed. All of this is generally done in real time and if you are really good at cleaning and sorting data to be analyzed you will be poached by every fintech startup, everyday some new hedge fund will try and lure you away by very large promises of bonuses as there's only a handful of people that can build these data processing pipelines, most people specialize in other areas so this is one guaranteed way of earning income for yourself. Even if the entire finance sector melted literally every major business and even governments want a similar pipeline, because data is just out of control, there's so much of it right now and it's often proprietary, and you absolutely need your own people to work on these pipelines because the advantage lies in being the first to act . Caveat: I know nothing about actual finance, so I'm just recycling what Quants have told me, my experience is with the data pipeline architecture and randomized algorithms to extract more efficiency out of the research platform.

Of course, once you are really skilled in building these data pipelines that simply receive and prepare the data, and you've worked in the industry enough to network, you can if you want go into the business of selling this data yourself which is another reason why it's hard to find people. The people you hire quit and end up selling yet even more data that you now need to analyze. The math to accomplish this is just undergrad probability and stats. The CMU book I included about performance modelling of systems (queueing theory) came from the need to do stochastic analysis of resource allocation while building one of these pipelines. Applied machine learning at this level is definitely just undergrad math too.

Anyway enough of my shitposting my little sabbatical is over where I kind of slacked on learning some more randomized algorithm techniques, so should probably do that. Randomness is incredibly useful for developing very simple (as in under 10 lines of code) algorithms with provable performance guarantees. Whenever I'm done I'll dump everything I have on randomized algorithms and probability I've found.
Shit Punkinlock - Mon, 22 Apr 2019 08:53:04 EST Sh3Jt6P/ No.37774 Reply
OP you got any good resources for creative coding ? like uni-grade ?
Beatrice Blatherbury - Wed, 24 Apr 2019 01:26:18 EST 5KqiXgaB No.37780 Reply
Thanks a lot dude! Btw do you work at Jane Street H.K.? How hard was the interview there?
Matilda Haffingbury - Fri, 26 Apr 2019 00:22:03 EST wo8qr+K9 No.37787 Reply
Any recommended *free* C++ stuff? Ideally something suited for getting up and running with making games quickly. I don't want to do this professionally, but do want to roll up something akin to a Minecraft clone just for my own enjoyment.
Hedda Pebberbury - Tue, 14 May 2019 07:48:16 EST bmJib2vJ No.37840 Reply
Hey dudes what's your current progress? I'm grinding through the Common Lisp intro for almost 1 month, and its suprisingly quite hard near the end, especially recursion.

How about making a discord channel to check on each other's progress?
Phineas Shittingcocke - Wed, 15 May 2019 21:54:12 EST x6K3CZQk No.37843 Reply
I don't work there (yet), I had planned on it, but then was sidetracked. HK has over 200+ fintech startups per year or something many of them run by Frenchmen with PhDs for some reason, and OCaml is big in EU so ended up somewhere else. However from what I know from talking to people there about the interview strategy, essentially they want people who are beyond honest about their capabilities. So if you write on your application 'I know linear algebra' they will proceed to ask you the hardest linear algebra questions to test how honest you really are about your skills. So my advice is be as humblebrag as possible. This is because they have a unique situation where all of their income comes from looping tiny transactions over eleventy billion times a day, so if you make a mistake due to ego of thinking you know everything and not having somebody review your code, they're out a lot of money in minutes. Another thing that is unique to them is they don't have deadlines and pressure like a regular fintech outfit does. They have all the time in the world to rebuild things from the ground up which makes it a very interesting place to work if what you want is a job reinventing things and not freelancing/running your own shit. Most employees there don't do OT either. The first interview they will likely ask you some probability 'puzzle' questions to start just to see if you can do them, which means maybe you are now interviewing for a Quant developer position or even trading instead of software. Speaking of puzzles, they have one every month on their company blog. They also have a github of OCaml exercises you may want to try, plus the 99 OCaml problems based on Lisp 99 problems https://ocaml.org/learn/tutorials/99problems.html

tl;dr the interview process is not actually about skill but about communication. How does your thought process work when trying to solve a problem, can you ask questions to narrow the parameters, can you explain in plain english like Feynman used to explain quantum physics, do you use terminology without concretely knowing it's definition, etc. This is really all you need to know. The Cornell OCaml course, plus studying their Real World OCaml book, plus making stuff using their own open source libraries (see Increment) you're likely to get hired so long as you don't violate anything above like rushing to solve a whiteboard problem without talking about it with the interviewers so they can examine your problem solving process. Those Oregon Programming Language Summer School lectures will help too, and any kind of compiler theory.

It gets easier the more experience you have. I don't know how many times I absolutely did not understand an exercise and ended up on stack overflow, but then discovered that by simply writing out my question carefully I was able to come up with the answer myself before posting. Often that's all you need to do or just pass out and the next day magically you'll find you know the answer. You could also start writing your own software, Something really popular on WeChat I didn't know about is Sichu, which is Chinese private chefs working out of their house. They typically have a wechat page and you msg them for orders, they cook you up some spicy crab and deliver it. They're popular because restaurants are way too sweet, and often can't be trusted (toxic wonton for example). A lot of people also run illegal restaurants out of their house, taking reservations but they can't afford OpenTable bullshit. Write something that interfaces with WeChat in common lisp, so they can automate orders. Then sell it on Google Play/iOS or whatever Chinese app store. Sichu exists in all western cities too like 'Cloudlifedaily' account in Vancouver which lists over 60+ of them. Remember you can just embed a lisp interpreter in virtually anything.

My current status is working through Wildberger's 'Algebraic Topology' vids. I routinely am surprised by these lectures being able to do what is usally difficult things in mathematics only using arithmetic and basic algebra.
Priscilla Publingham - Thu, 16 May 2019 00:24:32 EST Q/0wZWf1 No.37844 Reply
Would they be willing to accept fresh grads from another country? I'm thinking of finishing up my undergrad, but follow your own curriculum because its much much more rigorous.

Also, do I need to learn Java to program in Android/ios? Or can I just port it through common lisp?
Phineas Shittingcocke - Thu, 16 May 2019 00:24:49 EST x6K3CZQk No.37845 Reply
Something I'm reviewing is Jeremy Kun's 'A Programmer's Introduction to Mathematics' https://pimbook.org/
Note it is a book about math, from a programmer's perspective (sort of). Though there is a little too much medium blogger/casual writing fluff in some of the intros to chapters, the rest of the book is pretty good
His advice:
>The most important cultural expectation, one every mathematician knows, is that the second you see a definition in a text you must immediately write down examples. Generous authors provide examples of genuinely new concepts, but an author is never obligated to do so. The unspoken rule is that the reader may not continue unless the reader understands what the definition is saying. That is, you aren’t expected to master the concept, most certainly not at the same speed you read it. But you should have some idea going forward of what the defined words refer to.

I kind of do this, modelling everything I come across in lectures with a tiny junk program of no use but to build myself an example to learn from. Common Lisp is great for these throwaway programs.
Phineas Shittingcocke - Thu, 16 May 2019 02:04:08 EST x6K3CZQk No.37846 Reply
I have no idea how employment visas work, for which country, so just apply anyway. For example maybe HK doesn't give a shit if you're from EU but if you have an Indian passport you have to produce piles of documentation proving why they could not find a local making it difficult to sponsor a visa, the rules change all the time and are complex. I suspect they just handwave these things away at the level of finance global corps though I didn't have any problems. US and UK I have no idea. Singapore is the easiest for visa sponsor I find.

>common lisp mobile programming
One I've used is parenscript https://common-lisp.net/project/parenscript/ via cordova https://cordova.apache.org/ for iOS (this is what Ocsigen(OCaml) uses). Use Zeit for free so-called serverless hosting of your parenscript made API on their node boxes. There are scheme implementations out there too like http://www.lambdanative.org/ it's used for writing hand held medical devices, so has sensor libraries, for use in the developing world. Mozilla is pushing wasm to be the new mobile 'app', so your browser is the new playstore and you just get a binary pushed to you through it that will soon have native access to system resources like a regular iOS/android app would. I have no idea the status of any lisp -> wasm project but web assembly is just a limited MVP right now anyway.
Shitting Winderman - Sat, 18 May 2019 04:03:11 EST afYdzNrx No.37853 Reply
Hey OP, I've read this thread and your curriculum, and didn't find any mention of Haskell.
What do you think about it? Is it worth learning? Have you tried it? If so, would you recommend some learning material?
Phineas Blythedale - Wed, 22 May 2019 14:28:04 EST e+24tp3r No.37857 Reply

>Is it worth learning?

Depends on what do you want to get out of it. It is certainly worth it if you want to learn some functional programming and it will look good on your CV. But don't expect to get a job that actually involves haskell... not saying they don't exist, so feel free to try, but they are very rare, keep that in mind.

To get more specific: Did you study CS and/or are a working developer? Then yeah, learn haskell (see reasons above). You are just starting your education? Nah, not worth it because there is more important stuff to learn first before you move on to haskell. But if you are so curious about haskell, start learning and stop if you feel like it and pick it up some time later again, there is nothing wrong with this approach too.

Not OP btw but someone who studied CS and I actually got a job working with a functional programming language as my main tool.
Charlotte Crubberstone - Thu, 23 May 2019 20:45:03 EST x6K3CZQk No.37860 Reply
I actually don't know anything about Haskell with exception from the appendix of 'Purely Functional Data Structures' book, where some of the algorithms are translated there (I did that book in OCaml, not the imaginary SML version it uses that doesn't exist). All I know is Haskell by default uses lazy evaluation, which means a lot of complexity in trying to reason about what you're writing. I also don't think the language matters, I personally use OCaml because of things like MirageOS, Coq (outputs OCaml), js_of_ocaml which is a voodoo library, you write something in OCaml and it just magically converts almost 100% to js (bucklescript optimizes for 'readability' in js output, js_of_ocaml is just straight translation), and because all those Oregon Programming Language Summer School lectures on theory can easily be translated to OCaml and I don't have to understand GHC. Finally the ML module system is just too rich and awesome to do without, again I don't know anything about Haskell but it doesn't seem you can have first class modules which is what I use for rapid prototyping.

So tl;dr do the entire curriculum in Haskell if you want, I did most of it in Common Lisp before I switched to OCaml. Jobs also get posted to Haskell Weekly and https://functional.works-hub.com/ or just make a post on HN monthly freelancer thread that you know Haskell and want work. Or of course just use it to make your own side gig look at Deal Dash website and translate that to Dope Dash. Sell the prototype to some licensed producer out of California.
Rebecca Hemblefat - Fri, 24 May 2019 00:29:17 EST uQdF/Qdw No.37861 Reply
How many months did it take for you to finish the whole ocaml course in the curriculum? I've been thinking of switching after finishing PAIP.
Rebecca Hemblefat - Fri, 24 May 2019 00:31:36 EST uQdF/Qdw No.37862 Reply
Also, is it a good idea to use Courant and Apostol after I finish the proofs part in DMFP?
Charlotte Crubberstone - Fri, 24 May 2019 12:43:19 EST x6K3CZQk No.37863 Reply
It's hard to guage time for the Cornell CS3110 course because when I took it I had already finished 15-150, and 15-210 (parallel algorithms book), and DMFP book, and a CMU course on automated program verification/bug catching using proof assistants, so most of it was review. It's probably one of the best courses though as it's designed to give you the abilities to learn any language. You can follow CS3110 with this book, which for me had very clear examples on how to do modern algorithm analysis pointing out ambiguities in math notation https://cs.uwaterloo.ca/~plragde/flaneries/FDS/ and is overall a really good yet small algorithms book that assumes little prior background.

>is it a good idea to use Courant and Apostol after I finish the proofs part in DMFP?
Sure if you want, but I'd recommend to try this first (it's on libgen) https://pimbook.org/ since you can already program. I used to read his grad school blog. Only reason I haven't included it is I haven't looked all the way through it, but it will teach you both Calculus and how to actually do math from what I've seen so far, such as writing yourself examples every time you come across a definition. The hardest part of Apostol for me was dealing with large messes of sin/cos/tan and their inverse functions which is why I ended up doing the whole thing because I was absolutely terrible at trig identities. Note Wildberger has an interesting rational trig system that can be easily modelled with your own libraries. Also, it turns out all the modeling I did, directly translates to quant finance strategy something that was unexpected. Later I'll dump some info here
Esther Crirringham - Fri, 24 May 2019 21:37:43 EST P7FCvqvg No.37864 Reply
I'd like to do the parallel algorithms course, but my math background is still quite shaky imo. Guess I'll practice for a while.
Caroline Lighthall - Tue, 28 May 2019 21:13:49 EST x6K3CZQk No.37866 Reply
You should consider working through Brown's CSCI 0190 then. Here is the lectures, get them before they disappear (can use firefox/chrome addon to grab video) it's an accelerated intro to CS focusing on analysis and data structures that assumes zero prior background, and covers 1 full year of intro CS: https://brown.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%222559ad35-3fff-4ef1-a2ac-a951011eb91e%22

2 of the 36 lectures are kind of fucked up and audio only until half way through but otherwise these are great at explaining exactly how you write and analyze algorithms, and the syntax is basically an OCaml flavor of Python (Pyret) that's easy to use (it's basically just Racket/Scheme). It uses the (free) book PAPL https://papl.cs.brown.edu/2018/ and more importantly the professor and rest of Brown department has run numerous studies to measure the effectiveness of the course material, so it's not just anecdotes of 'This worked for me, you should try it' but actually proven to work to teach an understanding of algorithms and fundamentals of CS. There's some assignments for it and the PAPL book too is filled with assignments on every page http://cs.brown.edu/courses/csci0190/2018/assignments.html also if you finish PAPL, you've also done another course in interpreters/parsing, which is Brown 1730 IIRC. More importantly there's a great section in there on type inference, which directly translates to any future course where they try to explain how type inference works which usually takes 2-3 lectures but you will already know it.

For example O(n^2). Most people interpret this as a constant or unknown number (n) that's squared. This expression is actually a variable, that represents the function that maps n to n^2 which you will see in this course as he always uses the notation O[N -> n^2] to make it clear. I also think you can just program professionally after this course (cs 0190) it sort of covers everything, then you can just focus on whatever interests you, like complexity theory, distributed systems research, etc.
Caroline Lighthall - Tue, 28 May 2019 22:16:50 EST x6K3CZQk No.37868 Reply
1559096210329.jpg -(9478B / 9.26KB, 201x211) Thumbnail displayed, click image for full size.
Also by 'job' I mean passing those annoying codility tests or whiteboard interviews for most positions, the course even covers a bit of model-view-controller, btrees, DAGs (git is a DAG), etc.

In other news, the world of fintech for anybody who is interested what happens here. FPGAs are primarily used to sort through the massive data firehoses I talked about, where data comes in from about 100 different sources. FPGA's are faster at problems solved in parallel such as analysis on the 100s of real time data feeds then triggering a pre-defined buying or selling strategy that matches a particular pattern. These strategy's are all performed via modelling, and Quants despite what you've heard are mainly not PhDs, in fact the one's I work with are just Physics undergrads who are good at building models. This is covered here, it's essentially about finding inefficiencies and pricing them correctly: https://ieor.columbia.edu/files/seasdepts/file_attach/BoysGuide.pdf plus the same author has written books about modelling you may find interesting. The crown jewel of all these outfits is their research platform, where strategies can be backtracked over historical data. Should you some up with your own platform and strategy you will quickly find yourself with 7 figure job offers to stop what you're doing and join that fintech outfit. Of course this is also the most dangerous area to work in, because if you leave and work for somebody else it's very common to end up sued or even arrested for 'IP' theft, a famous Russian programmer had this happen to him when he defected from Goldman Sachs. It's also dangerous in that you're handling billions of dollars per second.

The quants however are probably 10% of any fintech outfit with the rest of the programmers there writing client software (clients are all other billionaires or banks) and the bulk of those programmers are working on the data pipelines, writing and maintaining FPGAs, or just writing parallel programs to sort and verify data because there is just way too much of it, terrabytes per hour are coming in. The more investment a company does in this department the more successful they are (Rentech aka Rennaisance Technologies). Hours are surprisingly easy, you never work overtime unless you're a Quant trying to backtest your strategies all night but if you're a Quant you're trying to make millions in bonuses so you don't give a shit. If you're in the data pipeline manipulation department or client programming, you only ever work market hours and no overtime. There is also no deadlines, no panic, no releasing half tested software because of said deadlines. You also get a bonus depending where you work and the offer they give you, which you can expect to be 2x your salary if on the lowly data pipeline or sky is the limit if you're on the research platform or working on a quant team and translating matlab to algorithms. There is also no 'culture' meaning you do not have to live/work with everybody like some bay area cults, and can just clock out and takeoff once markets close. I was completely surprised by this expecting hours and hours of unpaid overtime but nope. The problems you have to solve are incredibly difficult, and largely unsolved. You can throw parallel FPGAs at these data firehoses but it's never enough and you're always looking to squeeze as much optimization as you can since the first to act on data wins the prize in fintech.

Note this is my anecdotes for 2 different fintech outfits, I've never worked for a bank or anything. The #1 thing I've noticed here is desperation to hire, as they get a lot of self-described financial experts but shitty programmers, so you may end up working beside somebody who has conned their way in like my current coworker, who was supposed to be my 'team lead' but I'm having him go through Brown's CS 190 as he doesn't appear to actually know anything and I have no idea how he got hired. Another thing I've noticed is owners are often absentee, so it's some billionaire's kid who's running the outfit from Europe or NY, and if you prove to be 30% competent and aren't trying to embezzle for yourself you get upped immediately to upper management which for me is hilarious, I honestly should be an intermediate developer at best, not running an entire branch by myself. Anyway I highly recommend fintech, nobody applies here except these wannabe Warren Buffet types.
Caroline Lighthall - Tue, 28 May 2019 22:42:52 EST x6K3CZQk No.37869 Reply
oops that should read many, many terabytes per hour, also I forgot to add, K. L. Chung's book on probability w/stochastic processes is sitting on every desk of the Quant's I talk to here, I haven't read it. Anyway no bump
Phyllis Poddlestock - Wed, 29 May 2019 01:21:21 EST 7Ms2u8sL No.37871 Reply
Does this full series also cover algorithms?
George Dushstock - Wed, 29 May 2019 01:51:01 EST n9sOXPqJ No.37872 Reply
Are there pros and cons to PAPL vs the Common Lisp intro books, or will I end up with roughly the same skillset from both?

Also are there any basic math (as in starting with precalc algebra) resources that aren't videos?
Caroline Lighthall - Wed, 29 May 2019 11:35:59 EST x6K3CZQk No.37873 Reply
PAPL/lecture vids for it shows you how to solve the most common recurrences, graph theory, dynamic programming, etc. All things you would expect in a terribad white board interview or phone screen filter or codility candidate filter. Sorting strategy algorithms are covered, but shown within the language ie: building sort algorithms using the built-in language features then reasoning and analyzing them. This is essentially exactly what you would do at any job for example consulting for toptal for side income. He also has a good teaching style, the lectures are always interesting and the book style doesn't let you passively read it.

Precalc algebra you could just watch the Wildberger 10 min videos if stuck on something while you work your way through Algebra by Gelfand (also on libgen) https://www.springer.com/gp/book/9780817636777 then Trigonometry by Gelfand, Functions and Graphs by Gelfand (Dover). These are very short but difficult books. I included the Wildberger videos because just in the first playlist, he walks through Binomial Coefficients (n choose k) which is in the first chapter of math prelims in Knuth's book, and most other university discrete math courses. Another example, starting at 5:26, here is the definition of Limits/epsilon notation that will be used in every future class https://youtu.be/K4eAyn-oK4M?t=326 in fact I can't think of a course I took which didn't use limit or epsilon notation.

The History of Math playlist https://www.youtube.com/playlist?list=PL34B589BE3014EAEB follows John Stillwell's book "Mathematics and Its History" I included this because it's like reading through TAOCP, Knuth is always referring to history, and telling the reader what the original mathematicians were trying to solve when they came up with some theorem. If you've never seen Differential Geometry this is a pretty good summary https://youtu.be/6xgtMQ7WSzQ and often I ended up using 'differential invariants' to prove correctness of programs with moving physical parts, and other modeling in later complexity courses. Same youtube channel there is an entire course on differential eq which you could follow along using Sussman's Functional Differential Geometry book that turns all these formulas into programs, just out of interest to learn quantum field theory or relativity if you wanted again another reason why I shoved it in there. I could also rant on and on how awesome doing linear algebra in the affine/projective plane is too (his other lectures) which is useful for learning more about quantum theory if you're interesting in Rigetti computing simulators or doing complexity theory of quantum algorithms. These just exist on paper, for now, or run on simulators but very interesting, like back when they wrote algorithms in the 1930s for architecture that didn't exist yet
Fuck Mellerwell - Wed, 29 May 2019 12:42:35 EST NK9xbfnB No.37874 Reply
How does PAPL compare to the ocaml course? Also, is Basic Mathematics by Serge Lang a good supplement to Gelfand?
Fuck Buzzman - Fri, 31 May 2019 16:32:24 EST x6K3CZQk No.37880 Reply
You can see the dependencies for the 3110 course here in this (confusing) chart https://www.cs.cornell.edu/sites/default/files/shared/Undergrad/csugradcourseprerequisites.pdf
Basically it's expected you've already done CS 1110, a python intro, and everything here: http://www.cs.cornell.edu/courses/JavaAndDS/ in CS2110 so a full year of undergrad which is exactly what PAPL is, two semesters of intro compsci. Of course it is possible to have done none of those things and take 3110 but it will be very slow going, but possible. The difference between the two you can just read the syllabus http://www.cs.cornell.edu/courses/cs3110/2019sp/syllabus.html but essentially PAPL gives you the high level overview and drills it with practice so you can effortlessly tell somebody how to do basic analysis on a program, how programming languages are built, etc. 3110 you are now using a real 'industry' language to implement real things and doing real analysis, but they won't spend much time explaining it expecting you to already have this high level intuition of what's going on. There's no reason to do 3110 either, only if you're interested in that style of programming which for me paid off because you can do some crazy shit in OCaml like dicking around with OCsigen, a framework to generate html or js_of_ocaml, it takes compiled OCaml programs and automatically translates to JS like magic. Things like this interest me but might not be interesting to you so don't take 3110 if you don't want to, you could always finish PAPL and just pick language of choice after to start professionally programming, building your own software. You could definitely slay those codility tests or whiteboard interviews after PAPL.

I removed Basic Math by Lang because errata galore, and hard to find a decent copy that's not a badly scanned pdf, but you can try it if you think your background is weak. Gelfand is much shorter, so would be faster to work through. There's much more answers for Gelfand's books around too on math stackexchange.

I still think the best way to learn is just to plod your way through any first year Calculus book, solving all the exercises. When you get to something you've never seen like weird function notation or trig identities, ie something else a precalc course would cover, I'd just look that up directly in Axler's Precalculus or even wikipedia. The reasons for my belief in doing math this way is because it's proven if you figure out something for yourself, you'll never forget it. When I first worked through all those excessive trig identity exercises in Apostol's Calculus, I had forgotten large amounts of trig and had to research it myself to solve the problems. At first the took forever, because I was always looking up prereq material, but then half way through book I had done so many exercises everything I forgot from precalc was filled in. Most universities design their Calc I course for exactly this reason, they assume your background is weak and will now fix your deficiencies in prep for later courses. Dover has a alot of good cheap calc books or just libgen.io download a massive George Simmons, Thomas or Stewart 'early transcendentals' type calc book and do the exercises until you no longer have to look up precalc to solve an exercise.
Edward Pockway - Wed, 05 Jun 2019 00:34:02 EST aHsAt7lv No.37881 Reply
should i still do papl even if I finished htdp and a gentle introduction to common lisp?
Nicholas Hellygold - Wed, 05 Jun 2019 12:59:30 EST x6K3CZQk No.37882 Reply
Sure, PAPL expects you to have already done some HtDP, here's the author comparing the two: https://news.ycombinator.com/item?id=8751465

You could also try the course for PAPL before it disappears, it has pretty good lectures. For example this lecture, skip to 13min in: https://brown.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=fc8a2ebf-ecde-4147-a8cb-a9910126b0b6

He describes the paradox of trying to prove that two functions are the same (ie: undecidability). You'd also learn this in the complexity theory courses but it's interesting to see how he sets up these things for freshmen students which basically have your background, all these Brown students would've taken highschool compsci and read some HtDP as chapter's out of HtDP are assigned as a placement exam before the course. The assignments are incredibly difficult unless you think through them which is the point of the course that real world difficult problems require being able to model them. For example the first assignment wants you to reimplement word2vec a famous NLP modelling strategy http://cs.brown.edu/courses/csci0190/2018/docdiffdocdiff.html but it turns out to be surprisingly straight forward once you think for yourself how you're going to go about converting words to vectors, and look up on Wikipedia how to multiply two vectors.
Fanny Henderford - Thu, 06 Jun 2019 02:03:09 EST diVnmzD1 No.37883 Reply
How would I fare against those who learned imperative programming in data structures and algorithms?
Albert Chankinken - Sat, 08 Jun 2019 03:05:25 EST x6K3CZQk No.37884 Reply
The material almost always shows both implementations, especially the CMU parallel algorithms book it shows you a typical, built-in sequential imperative algorithm in any language core library, then walks through which parts of these common built-ins are ripe for exploitation of multicore work processing. You still wouldn't rewrite the built-ins though, you'd just write a custom staging algorithm that better prepared the data for the built-in libraries, since now you know how to exploit them.

I'm currently still slowly auditing the Brown cs 019 course (if the lectures disappear I'll upload them to peertube) and I'm pretty sure this is the best course I've ever found for introductory CS. The language DSL is dead simple and maps directly to OCaml, and these assignments are pretty clever as they are difficult enough that you can't easily do them without having to think how you're going to architect everything and write examples, and at the same time are directly relevant to industry such as dealing with impossible to work with data, automated testing, finding invariants. He also has them rewriting almost all the built-in functions as drill practice. There probably should be more courses where you rewrite standard library things just to learn. A good example is the 3rd party Base library (if you already know some OCaml, or Pyret from PAPL) just because it's documented so well https://github.com/janestreet/base/blob/master/src/binary_search.ml
Alice Firrycocke - Sat, 08 Jun 2019 04:09:08 EST 6UJz7xj/ No.37885 Reply
I'll try to keep up with the course sequence. I've found it easier to think functionally rather than imperatively tbh.
My shit university is forcing us to learn Java garbage as part of the curriculum, and honestly it's unsatisfactory.
James Worthingwill - Tue, 11 Jun 2019 05:47:07 EST sWlaHijb No.37889 Reply
The examplar for the assignments in PAPL ain't working
Phyllis Fuckingforth - Thu, 13 Jun 2019 14:05:42 EST FF05ZpvR No.37893 Reply
OP you mention making freelancing. What would you suggest to learn in order to start making money a few month from now?
Edward Lightstock - Thu, 13 Jun 2019 20:34:33 EST x6K3CZQk No.37894 Reply
Indeed we don't have access to the wheats/chaffs testing thing but through the assignments you end up writing entire programs just to test anyway. The main thing I like about this course is the assignments, if you do them as asked. You can actually find some answers to the assignments if you check the github issues for Pyret where students claimed to have found a bug while working on one of the assignments, but notice they violated all the rules of not using a certain library so likely failed.

Learn a framework: Shopify, Wordpress, or (harder) React and freelance on craigslist or upwork until you qualify to get into TopTal. React will be much harder to do in just a few months, but possible. Shopify is probably the easiest and there are always Shopify gigs around or support gigs for some Shopify plugin you can do on the side. Salesforce is another actually high paying, freelance gig but hard to find material for it, though if you took the database courses they cover in-memory dbms, which means you can work on and understand SAP HANA of which there are countless freelance positions for.

I tried one of the remote universities and they forced me into 2 years of Java courses before I gave up. I get why people use Java but I too hated using it. js_of_ocaml is probably a secret weapon, there's just a ton of things you can build with it. Reason/Bucklescript outputs 'readable' javascript, but js-of-ocaml simply compiles from OCaml bytecode so you can just basically 'export' pure OCaml straight to js (except for a few caveats). Jane street has their incremental demo you can also play with, perfect if you wanted a live trading memecoin bot with a 'desktop' to show all trades going on without lagging out.
Sidney Bapperkot - Fri, 14 Jun 2019 06:42:15 EST f+HHr8JR No.37895 Reply
Would a third-worlder like me be able to compete with someone from the international market using freelancing? Do you recommend learning Ocaml/ReasonML before those frameworks?
Ebenezer Blackfoot - Fri, 14 Jun 2019 07:33:11 EST HNGhXyui No.37896 Reply
You site seems to focus mostly on courses. Why is that so?

Can you learn everything on there just from books?
Polly Fammleham - Sun, 16 Jun 2019 20:33:53 EST x6K3CZQk No.37897 Reply
I prefer doing everything in OCaml/ReasonML as a single freelancer, just because it was much easier to learn than complicated frameworks, it's much easier to write and maintain MVP style software by yourself, and it's also much easier to add features to said MVP when people start buying it. By freelancing I mean building things you're going to sell or lease to others as a product owner, not working for somebody on salary/hourly though if you wanted, you can definitely work on TopTal as a ReasonML consultant too (though as a "third-worlder" they will try and screw you with region based rates). Most of TopTal when I was on it was people from ex soviet republics or south america you should have no problem getting in there.

The Cornell course will teach you the Lwt monad for example http://www.cs.cornell.edu/courses/cs3110/2019sp/textbook/ads/promises.html which the Ocsigen framework uses, so can build websites, mobile apps or APIs that can be compiled as a native binary. Or there's ReasonML if you wanted to write NodeJS APIs, or Reason-React if you wanted to write using the React library ecosystem. Being just me and not an entire team of people I prefer to write once, have a compiler confirm I didn't make any obvious mistakes, and export everywhere for simple business logic things or for crazy experimental hackery. But this is just my preference you don't have to do any of these things. You could instead learn some .NET framework and spend all your education time on learning complexity theory if you wanted.

Because guided instruction , just reading a book you can easily get lost in extra material as most university assigned textbooks are also references, so will include numerous things that may already be out of date or just simply not required to know at that point in your education, and it's helpful to have a course guide you through a massive reference book like The Nature of Computation instead of getting bogged down spending weeks on a chapter that you didn't have to immediately read unless you were involved specifically with said subject (like the XMM floating point register chapters in CS:App, it's covered in the lectures in less than 2 minutes). Courses have better exercises too, a lot of books have shit exercises like pretty much all publisher global editions (exercises rewritten and terrible) or even Apostol some of the chapters he has nothing to say more about the subject, so will just have you doing random calculating which is great if you need the practice but if you thought you'd understand the chapter subject better by spending a few hours doing those exercises you're screwed. Some of the lecturers are quite good too, like Ryan O'Donnell is an active CS theory researcher so always has something to add to each topic on whatever research is going on, and common pitfalls he's seen grad students fall into to avoid that aren't contained in any books.
Isabella Gadgebog - Wed, 10 Jul 2019 15:42:25 EST ob7f5uxa No.37910 Reply
I have a computer science degree already and I'm struggling with the PAPL course... kinda depressing
Phyllis Dinnertat - Wed, 10 Jul 2019 18:50:34 EST x6K3CZQk No.37911 Reply
Well it is an 'accelerated' course that covers 1 entire year in just one semester, so will be difficult at first but will become much easier the more lectures you watch. Some of the beginning assignments took me a few days to finish (Nile assignment) where I had to think in my spare time how to complete it with their requirements. Here is my very hideous first draft implementation of the first assignment (DocDiff) where you convert strings to vectors and calculate the dot product: https://code.pyret.org/editor#share=1vTO382t2gzfzC-GLlYwrwgZa6cE4Fyyu&v=01bb5ff (this violates numerous requirements: no design template, using library list functions, no comments, etc). It's done in REPL style so incrementally I wrote simple statements, tested the output and then wrote some more ignoring the design recipe. In the final version of DocDiff I wrote my own append and member library types and functions(as per requirements), added many more tests, added actual documentation, wrote the design template based on the type variant for docdiff 'vector' I made, and was able to remove about 70% of the junk in 'fun overlap' to be reusable anonymous helper functions since you'll notice at least 3 statements there are repeating themselves.

I believe in the second or third lecture, he reminds the class that they're supposed to follow the requirements of the course, and claims if you come to office hours and you're struggling it's because your strategy has failed you so try their strategy instead. So I did try his strategy for future assignments, which differs slightly from HtDP. You start every assignment with a draft datatype definition, which is what I do everyday at work actually. Then follow it with test cases, which often lead to changing the variants in the datatype to account for those cases. Of course you write the tests in HtDP style so not just producing an answer but how you imagine the answer will be found, so if the test is squaring a number, you want your test to be 'square(8) is 8 * 8' instead of just using 64 as your test case answer, the whole point being it helps you write that function by thinking through the logic (n * n). Then from the datatype you've just created, you can see how to write the draft design template to implement it, should the type refer to itself you'll need a recursive template, etc. The lectures barely mention design recipes but they are directly lifted from a few HtDP chapters noted here: http://cs.brown.edu/courses/csci0190/2019/placement-readings.html

There's also some labs from prev years I didn't post I don't think: http://cs.brown.edu/courses/csci0190/2016/assignments.html also check 2017 for part 2 Big-O lab. If you're wondering how some students are able to answer questions in class, it's because they check Piazza, which is a kind of message forum-like software, where the professor will assign the next lecture's reading so they've already seen say, how a stream is implemented before he talks about it in the lecture. Anyway by the end of the course it gets much easier, you're just doing normal developer stuff like writing interfaces, and improving small programs via memoization, dynamic programming and other common optimizations which are really well explained by him in the lectures if you've forgot these topics or were taught incorrectly.

I'm trying to get the most recent lectures for the last 1/4 of PAPL, which are a different course though there are Racket lectures for it available
Eugene Denderford - Wed, 10 Jul 2019 22:28:42 EST x6K3CZQk No.37912 Reply
Note, I did all the assignments on a phone, which turned out to be quite easy to do esp with the default chrome browser which something like 2.3 billion people use everyday. One thing I've always been looking for is a hand held complete intro curriculum and this definitely is one
Phoebe Blinnershit - Thu, 11 Jul 2019 03:08:52 EST lM0Wpia2 No.37913 Reply
What Java resource to use if my uni is forcing us to learn this Java crap?
I'm planning to do this with the SML functional course since it looks neat.
Barnaby Gapperford - Fri, 12 Jul 2019 23:21:16 EST x6K3CZQk No.37915 Reply
1562988076197.png -(95966B / 93.72KB, 640x480) Thumbnail displayed, click image for full size.
I feel your pain as I also was forced 2+ years of Javaschooling
The best Java resource is likely Cornell's https://www.cs.cornell.edu/courses/cs2110/2017fa/online/index.html if you click on the stupid icons it leads to short youtube lectures.

I added the 'future of networking' network programming lecture crash course from a 2018 OPLSS video series https://www.cs.uoregon.edu/research/summerschool/summer16/curriculum.php done in 'Frenetic-OCaml'. Everything you need to know about modern networks, is in those 4 lectures. As a result I'm going to nuke every other network resource because honestly they're outdated, everything is a massive server farm these days and using an OCaml DSL to split up your network into modules and prove one part of the network cannot talk to the other part is the future instead of leaky VLANs and junky hardware running proprietary sequential algorithms the NSA can break into.

This 'curriculum' is now almost complete, except I still haven't found a very good probability resource (outside of the discrete probability notes by Ryan O'Donnel), and the proprietary book on qeueing theory I had to read, so I can hopefully save potential future students hours of bullshit like I had to go through to grok the subject.

PAPL -> Cornell OCaml course/CMU SML course, -> Persistent 'parallel' data structures -> Compilers -> AI/probability -> creating your own language to take advantage of these properties. If you want a spark to get into these things I highly suggest the Oregon Programming Language Summer School grad tutorials, esp the Robert Harper lectures to just see a premiere computer scientist who can lecture on cruise control without any notes about his field and explain to you how to properly implement your own language. Imagine that's you up there, able to describe finite details of your field to an audience over a week of lectures without needing any kind of notes. It's completely possible if you do these resources and then scheme your way into a grad program should you be interested.

Of course a major hole in said curriculum is web development, because generally I hate doing it, but we need money right to keep the lights on so if you need to cash in your expertise then React.js follows smoothly from PAPL(or CS3110) -> React. Then go pimp yourself on turtle.ai like i used to do, or toptal or gigster other curated freelancer platform scheme. If you don't need to do any of these things, then watch that lecture on youtube by Jane Street for their Incremental dom web app framework. Very easy to create incredibly abstract web apps with sockets if you already know basic OCaml provided you can go on google scholar and look up papers on CSS, or read Egor Homakov's medium articles on authentication pitfalls, or even Latacora's blog (tptacek of HN fame) on what to use for your authentication scheme (scrypt) or dsacco's comments on HN if you're further interested in finance or security.

Sometime I'll upload everything to peertube as well, I have all the lectures, including the deleted CMU AI ones.
Wesley Gemblehall - Wed, 17 Jul 2019 07:42:47 EST E/kAXTw/ No.37917 Reply
Thanks so much for doing this. Will be working through this the next few years. Maybe I can turn my shitty life around.

Here is a pretty good resource for react if anybody needs a hustle https://fullstackopen.com/
Molly Serrymid - Thu, 18 Jul 2019 00:08:37 EST x6K3CZQk No.37918 Reply
The next update I'm going to make my own seperate math preliminaries site because I believe I underestimated the foundations that slogging through Apostol's Calculus gave me, without it I likely would not have ever truly understood big-O or how to truly analyze a program, none of the linear algebra courses, none of the abstract algebra courses, and would have never really figured out how prove something with confidence the proof is correct. I think now looking back, the only way I really learned to prove something was seeing Apostol do it a few hundred times (Wildberger does a bunch of good proofs too, but you really need to go through a large book). My math was beyond shit at the time, you can tell in my example of the Concrete Math notes, I wrote that before doing Apostol like Grade 10 dropout level math. Even after Concrete Math I had a good idea of big-O just being a fudge-factor but until I did Apostol I never truly understood it.

I also take for granted my style of learning by writing my own 'book' to go with whatever it is I'm trying to learn. When you write the same rules of a field over and over or how a transcendental function works 50 or 60 times you just memorize these things and future courses, you can often skip half the book which will be introduction and review which is how I did these resources so fast, it was all because of Apostol and his really tedious exercises. The new math prelim site will have these lectures and notes from 1970: https://ocw.mit.edu/resources/res-18-006-calculus-revisited-single-variable-calculus-fall-2010/ which were based of Thomas' Calculus (Knuth's old college text) and it doesn't assume any background, because math background then was even more shit than now. For example the first lecture where he doesn't even assume you know 0/0 is 'undefined' and shows you a few paradoxes related to 'calculus is the study of 0 over 0". The very high res notes included cover highschool trig as well, and are unlikely to disappear like everything else I've linked to that after a few months just vanishes from the timeline. Anyway long post short, my advice is stick with it and 'refuse not to know' a resource, do it just a little bit every day, and eventually you'll just get it and from then on it's smooth sailing. Remember university students have TAs to walk them through all these things we don't.
Betsy Sedgeforth - Sun, 21 Jul 2019 14:27:30 EST ZqEwk2Rb No.37921 Reply

"ArsDigita University (ADU) was a one-year, intensive post-baccalaureate program in Computer Science based on the undergraduate course of study at the Massachusetts Institute of Technology (MIT). It was financed and supported by the ArsDigita Foundation, a non-profit organization begun by ArsDigita Corporation.[1] The majority of the instructors were professors from MIT and the program was tuition free.

After running from September 2000 through July 2001, seeing the first class to graduation, the dissolution of the ArsDigita Foundation forced the program to shut down. Most of the course lectures were videotaped. The tapes and other course materials are available free under the Open Content License from aduni.org, a website maintained by the alumni of the university. That site exists to carry on the school's mission of supplying free education, and streams ~150GB/month of lectures to thousands of people around the world. A 4-DVD set containing the videos and course materials (problem sets, exams, solution sets, and course notes) is also available for a fee. The tapes were made available on Google Video in 2008 allowing easier and more flexible access. "

Shit Pickbanks - Tue, 23 Jul 2019 12:32:20 EST Bhx3yagb No.37922 Reply
Glad to hear you feel the same way about the math foundations - I was bummed when you stopped endorsing Spivak's Calculus.

I'd be very interested to hear more about your style of learning though! I use Org-Mode and kind of do something similar,, but I'm probably not as fast (hopefully one day I will be).
Fuck Gannerman - Wed, 24 Jul 2019 21:23:10 EST x6K3CZQk No.37923 Reply
Sadly they used that hated proprietary real media codec I remember so well from the early 2000s so requires extensive jerryrigging today to get these to play, the concrete math lectures look interesting though.

The complete replacement will take a while to finish, but it will work up to doing this book and it's multivariable sequel: http://www.math.iitb.ac.in/~srg/acicara/ which combines calculus and classical analysis into one unified treatment so everything actually makes sense, and assumes no background in trig, and assumes only highschool algebra with some 'proof maturity' which a few chapters out of Daniel J. Velleman's book covers and even some 'intermediate' algebra books. I'm just going to make it an entire second site that starts at absolute basics and works up to completing the two volumes, with the help of some AoPS online books on number theory and basic algebra, some various short lectures and all of if can be had via libgen.io, with Wildberger rational geometry thrown in since you don't need non algebraic, transcendental functions like sin(x) until you get to the Calculus book and they build it from scratch anyway, assuming no background. The difference is I do the book with the reader in a 'solutions guide' that explains what is happening, walks through definitions with custom examples, etc., in hopes they write their own guide, then we have competing guides for these things and people won't just look at an undergraduate book and give up, thinking they need years and years of prep to complete it when really you likely can complete it just need to backfill things as you go. At least this is the theory anyway, it'll probably take a long time so who knows when I'll finish, since I can only do it P/T.
Priscilla Brenderway - Thu, 25 Jul 2019 00:40:06 EST Bhx3yagb No.37924 Reply
nice anon, you're really going for it. Glad to hear it. I really like your teaching/learning style, and I'm really looking forward to all of this.
Fuck Gannerman - Thu, 25 Jul 2019 10:28:17 EST x6K3CZQk No.37925 Reply
Anybody interested in web development, MIT has a crash course with youtube lectures http://weblab.mit.edu/schedule/ though the 2019 lectures were filmed terribly, so try the 2018 playlist https://www.youtube.com/channel/UCS2pbR9gJpaT6HIcQNT2QQQ/playlists

Unfortunately a lot of these web dev classes get corporate shills in there to hype their products and teach the class for some of the lectures, no doubt so they can collect resumes of the students for internships. I still do these things in OCaml, with Reason-React if I'm freelancing on one of those so-called vetted freelancer sites like turtle.ai or use increment dom from janestreet w/ js_of_ocaml if it's something I'm making myself. Ahrefs in Singapore will hire you remote to do ReasonML or OCaml too if anybody is nterested, or you could move there, the visa process is simple.

In more detail, it starts with basic counting, proving some laws of addition, proving laws of subtraction, proving laws of division etc. because proofs of these things in the Integers or Naturals/Rationals are much easier than having to do so in the Reals. Working in different bases than base10 to understand that abstraction (those AOPS books all do this). Each level from Nat->Int->Rational is distinctly noted, so you know what field or ring you're working with. Then the Calculus and Analysis books are the introduction to the Reals and then proving objects there which are completely different, like trig functions or complex algorithms that spit out infinite decimals that are just represented as a single symbol, things that aren't numbers but instead these higher order 'programs'. If you understand how they work, manipulating them becomes easier imho.

In the books limits are explained through classical analysis instead of confusing objects like they usually are in most Calculus books. Then you prove the Reals, so have proofs starting from the very basic Nats to the top of the 'math abstraction chain'. Kind of like The Art of Programming books where Knuth defends his use of an obscure lower level language because knowing how it works at the bottom makes learning all the higher level stuff much easier, you can dig into it's library and see what it's really doing whenever a mistake happens much like you can dig into Euler 'algorithms' to understand what they are doing when some book drops them as a single symbol to be the input into some other symbol. Terry Tao's book is like this too, but it expects you already know 3 semesters of Calculus when there's no reason both these subjects can't be taught at the same time.
jjjj - Thu, 25 Jul 2019 15:40:56 EST fKgP7HUI No.37926 Reply

Before coming across your site, I was inspired by Scott H.’s MIT curriculum ( https://www.scotthyoung.com/blog/myprojects/mit-challenge-2/ ) and completed 18.01, 18.02, 18.03, 8.02 and 6.002 (single +multivar calc, diff eq, E&M, analog & digital circuits), and Berkeley’s CS61b data structures (kudos to Prof Hug, thank you so much for publishing your lectures and gradescope despite the UCB lawsuit). Now I’m doing 15-213 (computer systems) and linear algebra (that brown course + 18.06 from MIT + 10 various libgen books).

I’m halfway through 15-213 and I have to say it’s probably been one of my favourite classes. Randal and that other guy are great instructors, and the assignments like attack lab finally gave me an understanding of all the stuff you’ve been reading about forever in the iOS jailbreaking community. Highly highly recommend.

Now I need some advice. My upcoming semester will mostly consist of shit I’ve already learned on my own so I’ll have plenty of time. I’m a rising junior in EU, and I want to maximize my chances for landing a summer 2020 internship. Thoughts on these classes?

I’m really bummed about that algorithm class from CMU being paywalled. I definitely want to be able to cook up algorithms without memorization.

As somebody earlier had mentioned, we should create a discord so we can share more stuff without it blowing up on HN and consequently causing profs to paywall their shit.
I’ll take the step and create one. We’ll see what happens. Would love to discuss various classes and experience w/ them.


I’ll try to be as active as I can, so join and introduce yourself.
Priscilla Brenderway - Thu, 25 Jul 2019 16:25:10 EST Bhx3yagb No.37930 Reply
MOOC nerds unite!

thoughts on irc instead of discord?
Lydia Fangertan - Fri, 26 Jul 2019 22:54:46 EST x6K3CZQk No.37932 Reply
I took studying advice from that guy too, some of it worked, though I find his site way too spammy, for example the entire front page is filled with clickbait, and shameless 'preorder' selling of vapor books. I understand the hustle of self promotion and can forgive the most egregious self-shilling but preorder cancer and clickbait is unforgivable, especially when he should know better since he did actually take those MIT classes and learn statistical analysis. I think what happened is I took too many statistics courses so then my thinking changed, I'm no longer convinced what worked for me will work for everybody else so I try not to promote my specific methods as hard as I used to, and I promote proven results, which is why now my little meme list is filled with Shriram Krishnamurthi, NJ Wildberger material and the guy who wrote 'Infinite Descent , an introduction to pure mathematics' because they all promote evidenced based teaching. This is of course the consequence of taking these courses, you start to question every claim somebody makes without proof.

For example this is a hard pill to swallow for all math students: https://infinitedescent.xyz/20180214-exercises-ibl/ but it's proven to work, and it's how I learned. The courses I took for the most part didn't have any solutions, so what I did after proving something is I asked somebody: is this correct, after trying to prove it was correct myself. Turns out, just formulating the question helps you learn more than looking up an answer, which can be completely different in the world of proofs. Usually what you do in an upper level undergrad math text is you look at the example proofs, and then from their example, try the exercises using the same methods, and usually this will work but sometimes it won't, and you need to ask somebody. So I whole heartedly endorse your discord channel if the goal is to ask 'is this pile of logic I wrote illogical' and then get advice to fix the proof. To me this is the great feature of stack exchange, access to mathematicians because nobody checks email I've found, and I don't blame them because they're active professors who probably get hundreds per day.

As for your specific question, I would not underestimate your upcoming semester and I would use the time to do a lot of supplementary difficult problems out of whatever material they're working from, in other words I would try to prove everything in their course and stay within the confines of the course, not seek extra material, but rely on their expertise to 'level up'. Hell I would TA if you already know it, explaining these concepts to somebody helps you 'level up' as well. You get some nice recommendation letters if you do this, meaning very expensive grad school completely paid for via grant potential. You can also hustle invites to special programs by TA'ing, like the Oregon Programming Language Summer School is all based on professor recommendation, I would absolutely get into that and then hang out with the top people in that field (if you're interested) who will in turn, encourage you to be their PhD students and furnish approval.

The 6.042 class is pretty good, I liked the lectures from 2010 on induction and the hilarious possibly apocraphyl story about the Pythagorean sect throwing some guy over the boat to kill him because he exposed root 2 was irrational after they tried to cover it up and pretend irrationals didn't exist. Personally I think you should combine the CMU 15-251 course with it, because they cover much more material, so 6.042 as the primary course, doing all the exercises they assign but then dipping into 15-251 to learn Godel's incompleteness theorems, some of the crazy Turing theorems on the halting problem, or their complexity theory lectures, since both the guy's doing the 15-251 lectures are active in complexity theory research and are a goldmine of information. The competitive programming classes are interesting but keep in mind they do physical competitions, not the online ones, which are trash. For me competitive programming is going on a freelancer site and grabbing every single contract then banging out an elaborate hack, calling it a MVP and collecting all the money. I'm not interested in capture the flag or anything else, unless of course I was on a physical team, which all the CMU students are. The Topcoder competitive programming environment is filled with bugs and the rest have numerous other problems, like Kaggle. But if your school sponsors or you want to create a physical competitive programming team (you should) to show up to one of the real events, you should definitely do it w/the CMU material they usually win or come in 2nd IIRC.

Algorithms nobody will like my answer, since The Art of Computer Programming, esp 4A, Combinatorial Algorithms (finite, discrete math that's easy to reason about), and the slightly unapproachable, depending on your background, Kozen's Design and Analysis of Algorithms, and the CMU book on parallel algorithms, is how I learned. Both require extensive prereqs except the CMU book, which you could try (the 15-210 book). You don't really have to understand the ridiculous analysis and just be able to pinpoint areas of some program where you can split the work up and learn about span, which are both easy concepts anybody can learn. Unfortunatley TAOCP 4a generally req that you know the first volume as well, so is totally inaccessible but somebody wanting to just jump in the parallel and sequential 15-210 book is possible to figure out and I use the methods from there all the time. The Kozen methods I've only used a few times, when I had to be sure what I made was better than the original, which required a lot of careful analysis and he spells out what to do but it wasn't easy, I have much more respect for the people who do this full time. Although TAOCP gave me what I can call a solid background to understand what was going on, I've only ever used it specifically in practice when we programmed a series of RISC-V chips for a data pipeline, which I've since replaced by watching the OPLSS (Oregon Programming Language Summer School) lectures on network programming where he showed how to build your own DSL to split a network and manipulate it. Where I am we decided it was better to work more securely isolating things than working as fast as possible but if you're someplace where as fast as possible is primary then Knuth plus RISC-V you probably can't go wrong. My understanding of RISC-V is just introductory too from that MIT course/book, and looking at the documentation, I'm not an engineer, and I"m not involved in HPC so take my advice with a grain of salt.
Phyllis Criffingville - Tue, 30 Jul 2019 01:53:03 EST Qo15bdSs No.37938 Reply
> I try not to promote my specific methods as hard as I used to,
well shit

I popped by to ask you what your org mode workflow is like for studying or ""deep work"", would you mind sharing some personal anecdotes on that? I didn't see anything in the new sections about this, and I know it's kinda niche. I've got a lot of time right now so I'm trying to leverage that and squeeze as much as possible out of big days, and this can lead to big piles of tasks and notes that need organizing, plus convenient searching and presenting (which org-mode provides a lot of flexibility for).
Phyllis Criffingville - Tue, 30 Jul 2019 01:55:23 EST Qo15bdSs No.37939 Reply
also, fwiw, I was really fond of the highly specific and personal methods, but I understand why you'd remove this from the cirriculum. I found your style really jived with my own experiences. I also really enjoy your 'hustle' theme throughout your post here and elsewhere.
Shit Sublingdale - Wed, 31 Jul 2019 02:43:38 EST 5SEjbCsS No.37946 Reply
Do you stand by this recommendation for learning C/C++ for game development? I just want a comfy project I can work on at night, and a TempleOS-like Flight Simulator or similar silly games sounds fun.
Edward Brallerbad - Fri, 02 Aug 2019 12:00:31 EST whjVh6X2 No.37953 Reply
Would ahrefs be willing to accept a freshgrad if I know ocaml?
Graham Gollerweg - Sat, 03 Aug 2019 22:50:26 EST x6K3CZQk No.37954 Reply
If you want to learn game development you should take a gamedev course http://www.cs.cornell.edu/courses/cs3152/2019sp/lectures/index.php
I used that book to learn C++ for a specific course on parallel algorithms https://www.cs.cmu.edu/~15210/pasl.html If you really want to know a language/programming, you rewrite parts of it's standard library how you think it should be rewritten. Then you look at the actual implementation. Repeat this until your own implementations look at least vaguely similar to the official ones. Now you are programming in their style, which differs in every language like the so-called pythonic way to write programs. The Brown U pyret course in my meme list of courses does exactly this, has the students rewriting a bunch of standard library and it works since everything you need to this already exists, and the solution exists to check your answer.

Probably not , you could try anyway or scheme your way in through support. Learn everything there is to know about whatever business model they're doing, and then weasel into development internally. I did this once for a remote dbms place I worked at briefly. Added myself to the slack channel the developers used and then slowly from there just weaseled my way in to their world by lurking until I could offer to write a feature nobody else wanted to do.

I've only ever used org-mode properly for billing time back when freelancing, and I use it half-assed for note taking, while doing courses or books because you can directly link specific PDF pages inside org. For 'deep work' I just got up routinely X hours before I normally did, to work uninterrupted because there is no distractions, everybody you know is still asleep, and it feels like self discipline is at it's maximum when you first get up for me anyway. If you put it off then odds of you still doing whatever it is you wanted to do will diminish the longer the day goes on imo. That's really all deep work is, uninterrupted time where all distractions are eliminated so you can concentrate. Lot's of artists did this as well as scientists throughout history, if you were any kind of high profile scientist holding some prestigious chair you had to entertain constantly all day and all night various patrons and politcians, and review piles of grant requests which took up all your time. Now it's even worse, because these people can contact you 24/7 with a device that's almost attached to you. So people set aside hours to make sure they could still work https://dailyroutines.typepad.com/daily_routines/artists/ That's essentially the idea of deep work
Martin Dinnerkock - Mon, 05 Aug 2019 22:08:39 EST x6K3CZQk No.37955 Reply
I decided to take a web developer crashcourse from MIT, these are what my disorganized and very rough notes look like attempting to learn the material and how I usually write notes https://n0x400.1mb.site/

Unfinished, only up to lecture 7, plus I made a large digression into CSS Grid which they didn't mention. CSS Grid is pretty easy, easier than frameworks I find. I've never really taken a true webdev course, just kind of hacked together on my own bare min css and DOM abstractions like creating a shadow tree to do incremental updates on in a functional way without changing too much state.
Hamilton Siffingtine - Thu, 08 Aug 2019 13:13:02 EST HNGhXyui No.37957 Reply
OP do you dabble with trading or investing? I feel like doing this curriculum would be a great way to build up some starting capital for investing and afterward you can utilise what you've learned to help with that or even trading.
Jarvis Brellerchag - Thu, 08 Aug 2019 19:12:24 EST x6K3CZQk No.37958 Reply
I haven't yet, though if you're interested: https://ieor.columbia.edu/files/seasdepts/file_attach/BoysGuide.pdf and then you need a data pipeline, most are using Bloomberg Terminal which is like $20k per year, and a few dozen more proprietary data feeds, some of these are only $30/mth subscription price and you can just write your own pipeline to analyze it if you wanted, and were only trading on a personal level. Bloomberg gives you vast information like 'which oil tanker is under repair this week?' so you can predict energy prices and tons of other information, it even has it's own internal craigslist called 'posh' which is all very expensive rolex's and shit, and 'yelp' clone to review extremely expensive restaurants and business class airline lounges. There's also Bloomberg chat, where you can just dump stock privately with some billionaire who's online like Carl Icahn. However the price is way too much, so you would have to find the next best thing which is raw data, and then process it yourself, build a model (read that pdf), identify inefficiencies in the market (arbitrage) and then try and make money from that. To do so you would need a subscription to Nanex NxCore 'N-Core', CBOE Livevol, or QuantQuote. There's also Tickdata but i've never used them.

In general, statistical arbitrage (identifying inefficiencies in pricing) isn't machine learning bound, and it is not a data mining endeavor. Understanding the market you are trying to capitalize on, finding new data feeds that provide valuable information, carefully building out a model to test your hypothesis, deriving a sound trading strategy from that model is how it works. There's so many of these data pipelines it's impossible to keep track of them, because anybody and everybody who works in analytics ends up making their own proprietary feed, which is why the fintech industry is always hiring. You get good at parsing some massive feed then about 300k people will pay you for that information on a monthly basis.

If you're really interested in this, all you need to know to work at Rentec (Rennaisance Technologies), who is probably the most successfull outfit in the world, is C/C++ and a basic knowledge of statistics. Then of course you will be exposed to their proprietary data feed farm, which is currently the best on earth, and if the SEC allows it you can dabble on the side but I don't know anything about US law, seems everything is illegal while in HK, nobody cares.
Wesley Sommlebine - Fri, 09 Aug 2019 08:31:09 EST HNGhXyui No.37959 Reply
Having to learn C++ is rather off-putting. I'm thinking about applying for an internship at Jane Street when I'm on holidays from uni next year. I believe you mention earlier that your plan was to work for them, but you got sidetracked. What do you think about them?
Samuel Brublingway - Fri, 09 Aug 2019 20:05:08 EST x6K3CZQk No.37960 Reply
What I know is they work easy market hours, since they're an arbitrage shop. So no 60hrs a week or anything, just standard hours depending what you're doing (this is for software developer,). When you get hired you get a month long or so internal OCaml course taught to you so you don't have to know OCaml. You can go on their github and see the exercises from their internal course but you should know about functional datastructures and things.

The interview always changes but in general whatever you put on your application/resume, they're going to ask you in detail about to try and see if you bluffed. Their #1 hiring goal is to avoid bluffers at all cost so the more honest you are about your own abilities the better. Unless you can effortlessly explain like Richard Feynman the concepts of linear programming I wouldn't put that on a resume, for example. An arbitrage shop does millions of tiny calculations a day, if you fuck up something for just as few minutes while trading live you've lost a few million dollars so they're very keen to flush out bluffers, just keep that in mind during the interview. Any term you use they will ask you to define it. Anything on your resume/application they're going to drill you on it.

If you know everything there is to know about hash tables and some functional data structures http://www.cs.cornell.edu/courses/cs3110/2019sp/textbook/ads/memoization.html (every whiteboard interview is just a hash table/memoization exam for the most part), and you know the basics of algorithm analysis, like being able to Feynman describe what an upper bound is(note, I didn't write the upper bound, an upper bound), and you did some of that OCaml compiler course then you'll probably get hired. If you master that Cornell OCaml course they will likely be biased towards hiring you since most of their employees are from Cornell and other Ivy league grads, Yaron Minsky himself is Cornell alumni.

What I know about their day to day, is they generally work in emacs, using in-house written emacs modes for code review, use mercurial for version control, and do a lot of code review. Basically everything I do they generally do, however I was sidetracked to numerous reasons, one of which is I can't enter the USA because from age 16-19 or so I was a F/T street criminal with a record that UK or HK doesn't care about (and doesn't have access too) but US border guards will likely arrest me on sight (I already did 3 months at Seatac, do not want to repeat) unless I go to this special NAFTA court that convenes once per week, and attempt to get a youth conviction exception, which I did once before but only for limited time and literally every official I ran into tried to arrest me, and NAFTA doesn't even exist anymore so who knows. tl;dr I'm fucked and probably can't work there, that's why I don't. I highly suggest you do, in fact I would apply F/T, and skip the internship. Drop out of school and go P/T while you work there to finish your degree. They will pay you $250k a year w/bonus after your probation and if you take that ferry to New Jersey you're paying 1/2 the rent of Manhattan and can easily afford school. Good luck.
Hannah Cunningten - Sat, 10 Aug 2019 04:23:22 EST 0TNNAvyb No.37962 Reply
To begin with, I have to thank you for sharing your insights since I read everything in this thread and I learned a lot.

I wanted to ask you recs to improve my programming/general problem solving/algos knowledge, I almost finished my degree but I'm insecure. I was thinking of doing CS3110 and https://cs.uwaterloo.ca/~plragde/flaneries/FDS/ for example(they are worth it even if I don't use OCaml otherwise, correct?), I think I'm familiar with most things in SICP/HTDP/PAPL so this is a better use of time.
David Worthingridge - Sun, 11 Aug 2019 00:51:52 EST x6K3CZQk No.37963 Reply
Learn everything there is to know about basic discrete/finite probability, so if you fuck up the interview well at least you can easily pass the random probability questions all these ivy league interviewers like to throw at candidates https://www.math.ucdavis.edu/~gravner/MAT135A/resources/chpr.pdf

find some TA or somebody else at your school and bleed them for information, that's what I would spend time on if I were to interview at JN.

The Cornell OCaml course, it's goal is to help you learn any language and is just using OCaml as an example but you don't have to know anything about OCaml to work there so don't take it if you feel you already know the material. Really the #1 rule you have to remember is just don't bluff, and in plain language describe to them how you will go about solving a problem. They'll probably ask you to do something incredibly difficult on purpose, like designing a whiteboard regex parser (the first chapter of Programming in SML) for an imaginary language with weird syntax quirks, just to see how you react to being asked to do something like that and what your thought process is while trying to break down difficult things. As you try to explain it they will have some PhD sitting there asking you to define every word "What's abstract syntax?", "Define lexical atoms" just to make this even harder and to test your bluffing potential. If you are honest about your own ablities, and can learn things on your own without being hand held every second of the day you're in.
Reuben Brurringwater - Sun, 11 Aug 2019 16:58:05 EST OlpB3hOZ No.37964 Reply
Wouldn't it be better to apply at the HK office, because of the lower taxes and cost of living? Maybe not right now with all the riots, but when the dust settles. The only thing that worries me about HK is the agreement expiry in 2047. But that's a long way away.
Eliza Nacklespear - Tue, 13 Aug 2019 21:13:56 EST b+OiMDuR No.37965 Reply
OP have you used incr_dom before?
Matilda Sesslegold - Tue, 13 Aug 2019 23:30:14 EST x6K3CZQk No.37966 Reply
Yes, you would likely have a better chance getting in via Hong Kong which was exactly my plan before I ran into some other fintech recruiter there (they're everywhere). Cost of living being better I'm not sure, HK is insanely expensive, and of course a landlord can on their whim decide to just double your rent, or some other bullshit. You would want to find some foreign landlord from Europe (there's tons of them) and rent off them. NYC can be lower cost of living if you take the ferry to NJ everyday but everybody wants to work in NY so competition is much higher.

In other news I decided to infiltrate Crossover and BairesDev just to see what kind of work they do and if the online reviews can be trusted of if they're blackPR. I'm LARPing as a Jr. Developer and putting in a few week's worth of work to see how easy it would be for somebody else to get in there, and if they actually pay you, before I shill them to people. Crossover is famous for near fraudulent recruiting tactics like pushing phony titles and salaries then slicing said salary by 1/3 and offering you that instead after you spend 3 days working on their 'hiring project'. I got the same kind of highly suspect hiring project (suspect as in collecting unpaid labour) but they did actually hire me, and now I'm just running around rampant in the network trying to bill 8hrs for finishing project targets very early to see if they'll fire me or pay for efficiency.
Matilda Sesslegold - Wed, 14 Aug 2019 00:25:37 EST x6K3CZQk No.37967 Reply
Yes, mainly because I didn't want to write/maintain js hash tables. However there are alternatives https://github.com/finos/perspective/ but nothing I've made ever required more than incr dom performance. The cowboy method would be to use vanilla javascript with a hashtable for storage, with all your pieces of data linked to it in a unique way. When you need to update data, like say a changing stock price, you directly access the hash and then re-render that DOM cell. You can write functional vanilla JS, there's plenty of books around like this good enough functional js book https://github.com/getify/Functional-Light-JS

The vast majority of 'indirections' like React or even Bucklescript are kind of trashy when you can just do the exact same thing in vanilla js, but only if you've carefully thought out the logic of your program because of how impossibly complex things can get. There's a book for this: https://mitpress.mit.edu/books/software-abstractions-revised-edition (it's on library genesis for free). I got that book from this brownU course http://cs.brown.edu/courses/cs195y/2019/pages/notes.html which is mainly about reasoning about program design and applying 'formal' methods but in a shady agile way just so you can produce correct code for a pointy haired boss who doesn't really care about correctness but you do being that your name is being shipped with it. In other words this is building models in pseudocode and checking them before you start implementing a crazy js hash table DOM updating scheme.
Shitting Sedgetick - Tue, 20 Aug 2019 18:14:04 EST E/kAXTw/ No.37976 Reply
I am halfway through PAPL and encourage all beginners to go this route. The professor behind the course, Shriram, made a public manifesto declaring that his full focus is cs education. He's just awesome. He actually figured out how to teach programming. He got a h-index of 50. (40 is a strong case for a professorship anywhere)
It's amazing how organically the course have made me adopt good software practices: test-driven development, types signatures, modeling ADT's to fit the problem description. No other beginner course teach these things so well. And this is just a side effect of the curriculum. Thanks for putting this together op, i'll finish it all.

Is it worth doing the 'programming languages' part of PAPL without lectures?

Do you think i can teach myself calculus while doing Dan Licata's Principles of Functional Programming - or should i just do mathematics and nothing else?
Hugh Trotwell - Wed, 21 Aug 2019 03:15:17 EST p7Y8STFQ No.37977 Reply
OP, how much do degrees matter? I can't bother studying all this useless shit they make me, but I'm afraid nobody will take me seriously without a degree. I learn alone.
Walter Fellerwater - Wed, 21 Aug 2019 15:25:46 EST x6K3CZQk No.37980 Reply
There is older lectures, http://cs.brown.edu/courses/cs173/2012/Videos/ but they radically redesigned the course for use with PAPL which is explained here: https://cs.brown.edu/courses/cs173/2017/AFQ.html so now you are essentially reverse engineering/analyzing unfinished 'mystery languages' and trying to figure out what they're doing, and make them complete. I'd say it's worth it to complete without lectures. You build objects and type inference from the ground up.

If you want to learn Calculus, try pimbook http://gen.lib.rus.ec/book/index.php?md5=14074C1DD80FAD624DE1FD4149266E50 although it uses Java for some of the examples this won't matter. His writing style is kind of blogspam in some early chapters but otherwise it's a pretty good book to explain math to programmers. Anything you don't get, look up a Wildberger lecture to show you https://youtu.be/K4eAyn-oK4M?t=380 and you don't have to do anything F/T like only math or only programming, can do the OCaml or Licata course at the same time as any math course.

For example right now I'm writing a set of math curriculum notes and a set of web development notes just one hour per day: https://n0x400.1mb.site/

There's some things you can't do without a degree, like move to another country/visa sponsorship. They have to 'prove' you have some skill a local doesn't, and if you don't have a degree often this means you can't get a visa but of course depends, you can sometimes get around this. Another bonus of a degree is any kind of government job will usually require one so if you wanted to go work in computer security at whatever agency does this in your country you're screwed. If you hate the material you're being taught then switch your degree to something else, take applied math and stats instead. Take design or linguistics then spend all your spare time learning natural language processing or any programming really, since linguistics directly translates to those fields. A few of RHarper's ex and current grad students if you check their resume's they came from linguistics undergraduate degrees. Math also makes much more sense if you know linguistics, since analyzing/parsing a bunch of abstract symbols will be easy for you, most linguistics majors take a lot of math as well. tl;dr you don't have to compsci in university but if you're already there, you should finish some kind of degree in my opinion.
Fucking Blythestock - Thu, 22 Aug 2019 15:06:12 EST OYUyI9gK No.37984 Reply
OP what do you think about making an official discord server for the curriculum? There's the one that anon posted earlier but it's gone, and even if it weren't there's no guarantee when some rando makes it. You could make one in 5 minutes and just link it on the site, no moderation required. And it would be beneficial to learn in a collaborative manner with like minded people, which you said yourself. This thread is the only way (afaik) to interact with others following the curriculum.
Emma Chonnerham - Thu, 22 Aug 2019 18:06:31 EST VDq0sJFX No.37985 Reply

not OP. Here's the discord invite code: V34pTzY

We've had some good talks & shared our plans. I'm happy to give the server to OP if he wants, but I'm assuming he's very busy and doesn't use discord.

I'd also recommend joining the Math discord (google "math discord"). It has a lot of helpful grad students.
Emma Chonnerham - Thu, 22 Aug 2019 18:06:31 EST VDq0sJFX No.37986 Reply

not OP. Here's the discord invite code: V34pTzY

We've had some good talks & shared our plans. I'm happy to give the server to OP if he wants, but I'm assuming he's very busy and doesn't use discord.

I'd also recommend joining the Math discord (google "math discord"). It has a lot of helpful grad students.
Henry Sanningfoot - Fri, 23 Aug 2019 00:47:44 EST x6K3CZQk No.37988 Reply
I've done a few learn math w/programming books, like 'Doing Math w/Python' from NoStarchPress I bought as a prerelease in 2014 IIRC. They're OK, they have the same problems of most math curriculums where too much background knowledge is assumed so the reader becomes lost., and the material isn't advanced enough that you could really get anything from it if you already know the math subject. The only one's I've really liked are Sussman's SICM, which some guy even wrote a clojure library for https://github.com/littleredcomputer/sicmutils and it's one of the hardest books I've ever tried to do as even Sussman discovered his own errors in understanding of classical mechanics when he was writing the book due to problems in everyday math notation. That book assumes you are familiar with The Variational Principles of Mechanics by Lanczos or something similar. Oddly enough I was able to complete much of it anyway, though a lot of things I didn't fully understand at the time but the book is written well enough, and scheme language expressive enough even an idiot like me 10 years ago could work their way through it. Sussman goes even further with this concept, in Functional Differential Geometry which is probably one of the best books I've ever read, which I tried to do after being exposed to that CMU course on cyber-physical systems, which covers differential invariants/cuts. There's even a not well known book that 's a complete redo of Calculus from the very beginning using differential geom Bamberg and Sternberg: A Course in Mathematics for Physics Students which I've only flipped through. One of these days I'm going to re-do Functional Differential Geometry and attempt to fully understand it. Like Knuth suggesting BigO estimation/fudge factor for making calculus easy to do with pen and paper, differential eq done with software seems to make proofs easy when you take that CMU course, though I have no expectation of ever programming something that moves.

Anyway I now fully shill the Wildberger math foundations lectures as the best possible way to learn math from scratch even if I don't buy into 'ancient babylon' tablets about Trig, but I do agree with him that piles of axioms are largely bullshit, but so does Robert Harper and every constructivist as well. I also like how he singles out the Reals as being confusing objects, not that I agree or disagree with his views on them since I don't know enough about math, but I agree that students should be shown they're not looking at a 'number' or a decimal when they're confronted with a real number object, they're looking at an algorithm producing an infinite stream of data. Understand the underlying algorithm and everything makes much more sense.

Indeed I don't have time, hilariously I do everything about one hour per day, using a shitty motorola phone, like the notes I'm doing for the MIT webdev programming competition I'm just doing them on a phone while in a noodle restaurant in chrome inspector/console or commuting on a train. I did the entire CS193//PAPL course on a phone too. I have to do this so I don't get sucked into virtual time sinks. I have to schedule time, which I learned while working in that university lab with a bunch of PhDs who strictly regulated their time. I'm also thinking about making a run at Jane Street (as written prev I might not be able to) so that's been eating even more time doing Knuth's Martingales 'fascicle' 5a, Ryan O'Donnel discrete prob classes, with things like the renewal theorem in probability being a lot of work. The problems are taking me a few days but the best part about probability is it's very accessible, not a lot of math background is needed.

If somebody wants to run it I'll just put the discord invite in the meme list. Though I do credit having to annoyingly go through latex docs and strict mod authoritarianism on math stackexchange with helping me finish a lot of this material, I can't remember how many times I had to ask a question, and just the process of going through all the stack exchange requirements to not get your thread closed almost always led me to the solution without even needing to post. In a chatroom you wouldn't have this prereq, to really think about how to word your question properly but of course such a discord channel could help in other ways.
Henry Sanningfoot - Fri, 23 Aug 2019 01:05:11 EST x6K3CZQk No.37989 Reply
Another book I would consider to be one of the best written, is that R harper 'Programming in Standard ML' book in terms of being the single best source of explaining beginner programming, while at the same time being a pretty advanced book on the subject. I was thinking maybe I should write a brief crash course in programming for the MIT notes, and his very precise decription of things like how a function is just containing a pattern of data is the single best source I can remember, but if I point some potential student there they'll just give up after the first chapter on regex bug finding in SML. Maybe I'll just cut and paste the specific parts with citations. I'm also going to try and get into a variety of those 'curated' freelancer sites just using the MIT material, and giving them a near blank resume to see if it's possible for somebody to follow my notes and con their way in to these platforms. I already conned my way into one with a blank resume, though I can't recommend it because they are fully dystopian with webcam snapshots taken at random intervals to prove you're actually working, so fuck them. There's plenty of others though I'll try. Anyway I have to disappear for a while as it's nearing end of summer and work load will become insane. Good luck anons.
Jarvis Naddlemin - Fri, 23 Aug 2019 16:28:51 EST AM7AjW7P No.37990 Reply
OP I don't know how well you know this but you mentioned trading so I'm wondering if you can recommend some resources for business/finance/investing
Clara Pinnerpire - Fri, 23 Aug 2019 18:20:07 EST VDq0sJFX No.37991 Reply
I'm happy to run it. Your github site would probably refer lots of great people.

link: discordapp DOT com SLASH invite SLASH V34pTzY

Lots of content disappears (451 algos, 388 meme science), so this server would be great to share backups. Sometimes profs don't intentionally take it down, they just prepare the site for the next semester.

Report Post
Please be descriptive with report notes,
this helps staff resolve issues quicker.