The true language of computing is mathematics, and its power and beauty are masked to those who cannot speak it. Programming languages are powerful tools for communicating ideas and encoding the language of mathematics . You can use these tools to shovel bits around without understanding the language, but you won't be able to see or say much unless you become fluent. Creative expression comes with fluency, and fluenc…
Logic more so than mathematics. Mathematics as a means to achieve efficiency, which is an afterthought most of the time. Most working programmers don't need more than a basic understanding of algebra.
What are some things you wish you knew when you started programming?
81–90 of 102 posts
Re: What are some things you wish you knew when you started programming?
#82Re: What are some things you wish you knew when you started programming?
#83> What are some things you wish you knew when you started programming? That the status of being a programmer would drop to subzero levels in the next two decades :S
Re: What are some things you wish you knew when you started programming?
#84Re: What are some things you wish you knew when you started programming?
#85Smalltalk plus the book about patterns. That would have been a game changer. It happened to me but years later and largely improved my coding quality on all other tech stacks
Could you be more specific?
Re: What are some things you wish you knew when you started programming?
#86Earlier quoted context omitted.
See https://news.ycombinator.com/item?id=13904881
Thanks!
See https://news.ycombinator.com/item?id=13713199
Also I've been posting a lot on math lately so if you want more examples and references, scroll through my HN posts and comments (I tend to cite everything so there's a ton of links in there).
Of special note, as others have started to discover, Grant Sanderson's 3Blue1Brown YouTube channel is a masterwork, an evolutionary tour de force in the way mathematical concepts and visualized and presented.
Grant wrote a custom software library (in Python, on Github) that enables him to create video visualizations to show the geometrical intuition behind abstract mathematical concepts. And this is key. Being able to visualize the geometric structure and transformations the mathematics is describing is the key that's been missing from the way math is traditionally taught, and this lack of visual intuition is why many find math so hard to penetrate.
3Blue1Brown's YouTube channel : https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw
Go there first to develop your visual intuition -- watch all his videos, and then watch them again, and again -- and soon you'll discover your new, powerful mental models forming, and things that were once opaque will suddenly become clear.
Start with his "Essense of Linear Algebra" series (it's one people are usually blown away by, and it's being discussed on HN a bunch lately).
He's going to release an "Elements of Calculus" series in April, and while Calculus is usually a prerequisite to Linear Algebra, it's not critical for understanding the visualizations the way it's presented here. But if you need a refresher, MIT's "Big Picture Calculus" is great (it's linked to in the HN thread I referenced in the first paragraph).
Re: What are some things you wish you knew when you started programming?
#87Earlier quoted context omitted.
Thanks!
Oh BTW, I answered a similar question in a comment a few weeks back -- I had more time that day, and I was able to give a more detailed answer: See https://news.ycombinator.com/item?id=13713199 Also I've been posting a lot on math lately so if you want more examples and references, scroll through my HN posts and comments (I tend to cite everything so there's a ton of links in there). Of special note, as others have s…
Re: What are some things you wish you knew when you started programming?
#88Earlier quoted context omitted.
Oh BTW, I answered a similar question in a comment a few weeks back -- I had more time that day, and I was able to give a more detailed answer: See https://news.ycombinator.com/item?id=13713199 Also I've been posting a lot on math lately so if you want more examples and references, scroll through my HN posts and comments (I tend to cite everything so there's a ton of links in there). Of special note, as others have s…
I can't thank you enough, this is really great. I've attempted a lot of videos etc. I really enjoy Shai Simonson's stuff, for example. And it helps me think more about things like time &/ complexity, but I've really struggled to find a "path" so to speak. I start losing them and without an application lose interest. So thank you again, I greatly appreciate it.
https://en.wikipedia.org/wiki/ArsDigita
After the year ended, they released all of the video lectures online. This was back in the late 90s / early 2000s. Back then there was no YouTube, video compression sucked, and broadband was in its infancy so connections were painfully slow . To get the videos, you could try and download the massive video archive, but it took forever and I don't think I ever got the full thing. Finally at some point they started selling and shipping HDDs pre-loaded with the entire video archive.
Today we're fortunate to have a lot of high-quality course content available online. Greenspun was one of the pioneers who helped make that happen. We should all be thankful for his foresight and initiative to trailblaze that space.
Prior to ADuni, Phil put all the curriculum online for MIT 6.916 "Software Engineering for Web Applications". It was one of the first serious Web Engineering courses offered anywhere. Several other schools used the material to teach the course in their CS dept.
http://philip.greenspun.com/teaching/old-one-term-web-6916
Problem Set 4 was my favorite -- design a Knowledge Management (KM) system using metadata, and then let the computer generate the server-side code for the application automatically.
http://philip.greenspun.com/teaching/psets/ps4/ps4
The material was so new and innovative, it was the thing back in the day -- part of the foundational material programmers used as we were learning to build server-side apps in the dotcom era. The ArsDigita Community System (ACS) was one of the first big Web development toolkits, and it was built on top of AOLserver, a high-quality C server that had an embedded Tcl interpreter running inside. Greenspun is an MIT Lisp hacker, and Tcl is an embeddable language similar to Lisp. And running Tcl directly inside AOLserver was a key innovation because it made server-side scripts fast because it bypassed all the traditional CGI overhead, and it allowed you to make database calls from directly inside the server. All the architecture design choices were documented and explained in detail in "Philip and Alex's Guide to Web Publishing," which was required reading at the time.
http://philip.greenspun.com/panda/
The semester I did the self-study program, Phil had the MIT students take the final exam online via an app built on the ACS. The exam wasn't open to self-study students, but I wanted to take it for my own edification. I had become intimately familiar with the ACS code, and I found a way to to hack into the online system and took the exam under some guest account. I never found out how I did though -- I asked Phil about it one time when he came to Dallas, but he didn't remember. I can't believe that was almost 20 years ago.
Re: What are some things you wish you knew when you started programming?
#89This is what I've learned over the years (since 9/BASIC in 1989.) 1. Number of active users of language matter more than the language itself. 1.a Fads come and go. 2. Math matters. 3. Elaborate design/architecture before programming is a waste of time. Emphasis on elaborate, not architecture.
Re: What are some things you wish you knew when you started programming?
#90Although I had done some programming before, I always remember the first lecture of the first year of the CS course I did where the lecturer basically concentrated on the importance of KISS (i.e. Keep It Simple Stupid). He did say that we'd probably not believe him, and of course we didn't as we were all desperate to prove how awfully clever we were. He did also say that if we stuck at things long enough we'd probabl…
Can't agree with this one enough. I'm currently battling through a project full of people that are too smart for their own good and too stupid to realise it. I had a huge argument today with someone that wanted to wrap a certain type of higher order function ("foos") in another higher order function with a particular name ("fooGenerator()") for the sole purpose of differentiating it from a different kind of higher or…