When it comes to learning, and “doing things well” for it, you can’t be lazy. You simply can not be lazy.
You won’t get away with it. Eventually you will screw up. Maybe you will catch it, and maybe you won’t. Maybe it won’t matter to anyone else or maybe it will. The only thing that you should care about is that it matters to you because you want better for yourself.
You should always work hard and study smart and give yourself the time that you need to learn.
Tag: philosophy
What is a program?
A program is one or more functions that work together.
— Stephen Bloch
(via PLT)
Beating the Odds: 3 Tenets of Good Software
Lately I’ve noticed three key traits about software that is generally recognized as “excellent” by technical folks. At its core, said software is simple (it does a few things, very, very well), it its highly reliable (correct, predictable, stable), and it is extensible (by the user).
A Theory for Language Design
No amount of language design can force a programmer to write clear programs. If the programmer’s conception of the problem is badly organized, then his programs will also be badly organized. The extent to which a programming language can help a programmer to organize his problem is precisely the extent to which it provides features appropriate to his problem domain. The emphasis should not be on eliminating “bad” language constructs, but on discovering or inventing helpful ones.
— AIM-353: LAMBDA: The Ultimate Imperative
Finding the real problem
The poster of this thread on the PLT discussion list wondered why Scheme code is so much slower than Python. It was interesting to see how the question was answered because there were at least 3 levels to the problem:
- The source code to the solution itself
- How the source code worked “under the covers” (it called into C functions)
- An implementation in Scheme similar to how Python worked under the covers
Finding an explanation didn’t just involve comparing the code, it required understanding that the Python code actually called into C functions, and then converting the Scheme code into a similar “stateful” style of program. In programming, thinking is required!
Controversial or difficult but necessary
While reading a discussion on the R6RS ratification, I came upon a comment explaining that there were features under consideration that were considered to be “Controversial or difficult but necessary“.
It is a virtuous goal towards which all of us ought to work in both our personal and professional life.
Computers are a metamedium
The computer is a medium that can dynamically simulate the details of any other medium, including media that cannot exist physically. It is not a tool, although it can act like many tools. The computer is the first metamedium, and as such it has degrees of freedom for representation and expression never before encountered and as yet barely investigated. The protean nature of the computer is such that it can act like a machine or like a language to be shaped and exploited.
— Alan Kay
I’ve never before heard it put quite so well.
(via R.P. James)
Programmer Hero
Is looking cool and going through the motions all that it takes to be a good programmer?
(via Zhong)
Tuition-free MIT
Make no small plans
Make no little plans. They have no magic to stir men’s blood and probably themselves will not be realized. Make big plans; aim high in hope and work, remembering that a noble, logical diagram once recorded will never die, but long after we are gone will be a living thing, asserting itself with ever-growing insistency. Remember that our sons and grandsons are going to do things that would stagger us. Let your watchword be order and your beacon beauty. Think big.
— Daniel Burnham, Chicago architect. (1864-1912)