9 ms·
Teach yourself Computer Science functionally
- _Rabs_ 3y agoIt's a cool write up, but why is this site promoting Triplebyte? Lol what?
- ctvo 3y ago[flagged]
- medstrom 3y agoI don't have a high-res screen (just 1280x800), so to me it's one of the most readable pages I've ever seen. Although curiously, it also looks great on the iPhone by default (which is high-res). I assume you're on some sort of 4K external monitor, but I wonder why it would look small there while reacting well on the phone?
- ReleaseCandidat 3y agoIt is small on a 'normal' (24") 1920x1080 display. So nothing todo with high-res at all.
- zouhair 3y agoIt shows like this[0] on mine (2560x1440). [0]: https://i.imgur.com/I8bl5Es.png https://i.imgur.com/I8bl5Es.png
- medstrom 3y agoWell, that's ideal. IDK what their issue is.
- kimixa 3y agoAs far as I can see it doesn't override the default font sizes at all for the body text. If that's not legible I see that as a client default problem, not an issue with the content.
- ctvo 3y agoDefault != best or even good. The author sets the width of the content container to 40em, for example, to make it so lines of text are wrapped appropriately (a single line doesn't contain on average more than n words). Is it worth adding some styling around typography to make it even more readable? Up to the author. Only a suggestion from a single reader, of course.
- gavmor 3y agoJust for kicks, I applied Tufte CSS[0] onto the page using a browser extension. Great ROI. 0. https://edwardtufte.github.io/tufte-css/ https://edwardtufte.github.io/tufte-css/
- Zambyte 3y agoReferences to the Atom editor shouls be removed
- tabtab 3y agoFrom a practical perspective, one should probably learn procedural/OOP first, it's the de-facto industry standard, and thus better for one's early career. Whether functional is "better" in the longer term, I won't get into here, only to say I have skepticism.
- mcdonje 3y agoThere are jobs for pretty much all established technologies. And if there aren't currently, there could be in the future. I primarily work on procedural & OO projects, but I disagree with your position. I've seen job postings for all sorts of things; Things that interest me, things that don't, things that are hot, things that are old hat, things that have an air of prestige, things that look like a coffee stain on your resume...
- marginalia_nu 3y agoWell if you're learning computer science, what does it matter what is industry standard? Computer science doesn't really have very much to do with the programming industry.
- whateverman23 3y agoBecause when we're talking about CS education, it's usually in preparation for a software engineering career. Whether that should be the case is another story, but that's the reality.
- flaminHotSpeedo 3y agoI think the reality is that computer science is only tangentially useful preparations for a career as a software engineer. There's some courses that are inarguably fundamental, some which "separate the good from the bad," but there's also many which are simply not practical, besides the fact that they teach you how to learn. It's a flawed analogy but I'd liken it to mechanics vs automotive/manufacturing engineers. There's a good bit of overlap, but lots that isn't shared. And software engineering as an industry doesn't always do a good job differentiating between the two
- serhack_ 3y agomh, maybe I'm wrong but it does not touch all of CS, does it? System design, distributed systems, game theory ..
- adamwk 3y agoIt seems to be pretty close to my program (UCSD). Distributed systems was introduced in operating systems but you had to elect for deeper classes. System design wasn’t really taught unless you mean CPU architectures, which this covers. I’ve never heard of game theory being part of a CS program (I took it as an elective)
- pwb25 3y ago[flagged]
- nequo 3y ago"All" FP articles and "always" is probably broader a generalization than what you really mean. Can you share examples from the linked page that you see as smug?
- medstrom 3y agoThis can also easily be a filter on the part of the reader: anything FP is always close to triggering the "smug" concept, even if they don't use words that would be read as smug if the topic was something else. Same way some people are quick to read intelligent women as "uppity" though they say nothing that would be read as uppity if said by someone else.
- butterNaN 3y agoI don't usually (get to) talk much in our team meetings. This one time I suggested we try FP for a new internal project - and the backlash I got was quite unexpected. Merely the mention made my teammates launch into a dozen different assumptions, before I even finished the sentence. I was shut down pretty quickly. I was surprised, because usually they are at least receptive to hearing out new ideas. I think outside of HN, there's a large chunk of people out there who just have this prejudice about FP. I am only about 10 years into the software industry and I feel like I'm missing some history that is not recorded anywhere, but lives as a tribal memory.
- sb057 3y ago"Like normal but worse" wouldn't entice much interest, would it?
- tabtab 3y agoI will agree it's about 30% less code on average, but whether it's "team friendly" or "debug friendly" is quite another matter. Debates over such often rage for months. If it's truly superior, then form a company called Functional Magic or the like and out-compete OOP rivals and eat their lunch. Proof will then be in the pudding, no more talk. (Some co's have tried similar without long-term success, at least outside of niches, as it does well in finance.) If FP is say 15% more productive, such a company would eventually just outcompete OOers by growing 15% a year. Even 5% a year would catch up in roughly a decade. If you truly believe in FP's superiority, do it! Unleash the FP Kraken! When you are golfing with Warren Buffett & Gates, you can say, "I toldja so, fore!..."
- nathants 3y agoalternatively, just start building interesting things and follow all rabbit holes. computer science doesn’t exist in a vacuum.
- ackfoobar 3y agoA lot of people learn best by doing. Some people, especially those who are more math-inclined, probably learn best starting from the abstract.
- kwant_kiddo 3y agoI can tell you that math people also learn from the concrete. You do not learn math by reading it, but by fighting it.
- ackfoobar 3y agoI learned OCaml, which made programming "click" for me, partly by doing these exercises. Compared to the root comment's "building interesting things", it's definitely more abstract than concrete. https://ocaml.org/problems https://ocaml.org/problems I do see your point though. In the algebra class, I couldn't grok groups from the axioms, without first seeing some concrete examples. But the thing is, math people's "concrete" is already several layers of abstractions removed from reality.
- citrin_ru 3y agoI'm not really math inclined (for me math is a tool I can use for physics/engineering and other areas; I don't like pure math) but I find it very hard to start doing something without some reading books / docs / articles first. I need at least vague understanding of what I do otherwise it feels like a ritual which doesn't help me to learn. I can go in parallel. I'm actually self-taught and my acquired over many years knowledge is fragmented but for each specific fragment I first read then do.
- funman7 3y agoMaybe it’s just me… but I never have been able to immediately fluidly intuitively grasp any understanding when someone has made “in a vacuum” statements. I just think of vacuuming carpet.
- imwillofficial 3y agoIs there something like this but for traditional CompSci? Trying to change career tracks
- CobrastanJorji 3y agoThis looks to me like a pretty traditional stack of Computer Science undergrad topics. A similar big list of topic/resources that's frequently linked to is: https://github.com/ossu/computer-science https://github.com/ossu/computer-science Could you describe a bit more about what you're looking for when you say "traditional CompSci?"
- _lnrx 3y agohttps://teachyourselfcs.com/ https://teachyourselfcs.com/
- brandonspark 3y agoThe lectures for CMU's Principles of Functional Programming course are actually online for free! http://www.cs.cmu.edu/~15150/lect.html http://www.cs.cmu.edu/~15150/lect.html
- Al0neStar 3y agoLecture videos, HW, labs and assignments are not available just the slides/notes so its not really suitable for self-study.
- brandonspark 3y agoYes, unfortunately homework and labs aren't something we can release, due to concerns over academic integrity (I'm the instructor). I wrote the slides with the intention of them working as standalone notes, though, and as a kind of "textbook" for the course. So I think if you can follow along with the slides, you will get a fair amount of learning out of them, almost as much as attending the lectures.
- ggr2342 3y agoAre you talking about the summer 2023 version?
- brandonspark 3y agoYes, indeed.
- debanjan16 3y agoSince, you are the instructor for 15-150 this semester and have graduated from CMU as per the slides. I would like to know what you think about similar intro course sequences elsewhere. Like BrownU's CS019 course using Pyret. It also teaches a functional approach to programming. Also Berkeley's CS61A,B,C trilogy. Do intro level courses matter in the long run? Or is it the higher level courses that set apart universities in undergrad CS education?
- Solvency 3y agoCan't say I want to learn "web" from whatever MIT staff wrote this absolutely awful course experience: http://people.csail.mit.edu/dnj/teaching/6170/js-live-2020/modules/bad/index.html http://people.csail.mit.edu/dnj/teaching/6170/js-live-2020/m... Even trying to get past 2 swipes in nearly drove me insane.
- plewd 3y agoIs this supposed to be a puzzle game? Took me an embarrassingly long amount of time to figure out how to move around
- lincpa 3y ago[dead]