Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

[Reading Notes Included] First Meeting of Street Coder is in 12 hours!

207 views
Skip to first unread message

Alperen Keleş

unread,
Nov 22, 2023, 12:17:47 AM11/22/23
to reading-stacks

Hello Everyone,

First of all, I hope to see you all tomorrow in our first reading group meeting. I have left my notes below as text, and also attached them to this email as a PDF file. The notes are organized into four categories, Discussion Questions, Criticism Points, Good Points, Miscellaneous Points. Please let us know what you think about them!

Links for tomorrow's meeting:

Discord Server Link: https://discord.gg/kampus

Discord Voice Channel Link: https://discord.com/channels/839425986817818654/1163732320021397594

Meeting is at 20.15 Turkey time, and will take approximately 75 minutes.

Notes below!

Discussion Questions:

DQ1- “Technology is becoming more opaque, like cars. People used to be able to repair their own cars. Now as the engines become increasingly advanced, all we see under the hood is a metal cover, like the one on a pharaoh’s tomb that will release cursed spirits onto whoever opens it. Software development technologies are no different. Although almost everything is now open source, I think new technologies are more obscure than reverse-engineered code from a binary from the 1990s because of the immensely increased complexity of software.”: Nice discussion point. Do you agree to this? Is this opaqueness inherent or accidental?

DQ2- “Because almost everything can be given a monetary value, everything you do can be measured in terms of throughput”: I’m not really sure how realistic this is. How objective is this value? How useful it is? 

DQ3- “Try to stick to the type that has the smallest functionality for your purpose.”: Why is this useful in a private API?

DQ4- “You will probably never perform those tasks in your actual job”: Actual job is harder. If you can’t do the simple version, how are you going to handle the harder ones?

DQ5- “The answer is simple: types can help us write code that is safer, faster, and easier to maintain. We can reclaim the time we lost while declaring types of variables, annotat- ing our classes with the time we gained by having to debug fewer bugs, and having to solve fewer issues with performance.”: This is a very popular myth, with no conclusive or quantitative evidence to back it up. How can we reach evidence?

Criticism Points:

CP1- Big O chapter is kind of handwaved. No mention of an upper bound or amortization. I guess it’s just for getting people warmed up but if feels empty.

CP2- “Data structures are about how data is laid out.”: Don’t agree. Data structures are about API’s, their cost, their guarantees.

CP3- “You see, object-oriented programming comes with a nice feature called polymorphism, which means an object can behave according to the underlying implementation without its interface changing.”: This is misleading. Polymorphism is not a feature of OOP, actually OOP mostly supports subtype polymorphism, while leaving out parametric polymorphism.

CP4- “So ideally, unless you’re into systems programming, you shouldn’t need to use a linked list in your daily work except for in job interviews.”: When your operations are mostly filter/map/fold, Linked Lists are pretty good. They are immutable, recursable, simple, resizable. There is not need to dunk on them.

CP5- Dictionary = Hashmap: What about RB Trees?

CP6- Dictionary O(1): Hash Cost + Collision Cost + O(1)

CP7- Interpreted/Compiled Programming Language: False dichotomy. Languages are not interpreted or compiled, although the implementation that is most widely used and accepted could be an interpreter or a compiler.

Good Points:

GP1- “Many programmers consider programming languages, best practices, design patterns, algorithms, and data structures relics of an ancient alien race and have no idea how they work.”: Nice point, 100% agree.

GP2- “People don’t care about the overhead of their code because we have orders of magnitude of more resources at our disposal. Did you write a new simple chat application? Why not bundle it with an entire package of a full-blown web browser because you know it just saves you time and nobody bats an eye when you use gigabytes of memory anyway?”: Agreed.

GP3- “State is the root of all evil, not null.”: Good observation, but it’s not followed through in the rest of the discussion. Linked Lists are basically insulted, but they give you immutability semantics.

Miscellaneous Points:

MP1- Dunking on Haskell: Not cool.



Reading Stacks Notes.docx.pdf
Reply all
Reply to author
Forward
0 new messages