And I think you'll find that Gilad Bracha is a more informed critic of reliance on static type checking.
283 karma · joined December 10, 2011
And I think you'll find that Gilad Bracha is a more informed critic of reliance on static type checking.
Turns out that adapting to rapid change is a critical aspect to this career choice. It is also a problem for businesses, which you start to grapple with as you move up the chain of command. The mistake is wistfully hoping that things would slow down enough for you rest on your hard-won knowledge, as in other fields. There is no competitive advantage in aging technology.
This is one of the few truly language agnostic books on programming. SICP is close, but it is limited in relevance at times due to the limitations of a particular language (Scheme).
https://medium.com/@eric2.71828/your-journey-is-important-sh...
I only have a sample of 1 (my six-year-old son, turning seven today), but he is perfectly capable of typing, understanding function definition and composition, data structures, and working with reactive I/O. He's not some super-genius. He's a regular kid who likes to swim, ride his bike, play Pokemon, and watch Netflix. But he can also make things by "real" programming. I'm sure other kids could as well.
Age is definitely not a factor. The speed with which you are able to learn definitely is. Good luck. I think this is awesome.
1) K&R C
2) Zen of Graphics Programming
3) C++ Programming Language, 2E
I wouldn't recommend any of these to a young version of myself today.
https://docs.racket-lang.org/drracket/
http://www.ccs.neu.edu/home/matthias/HtDP2e/
Someone below mentions Khan Academy. It's approach is similar and stays on the straight-and-narrow in its use of Javascript:
http://www.w-k-essler.de/pdfs/goedel.pdf
Here's an English translation (with a lengthy introduction)
http://jacqkrol.x10.mx/assets/articles/godel-1931.pdf
Even without trying to follow the proof proper, the sub-sections of the second part are interesting on their own, particularly Gödel numbering and primitive recursive functions. Here is another translation that covers just this part:
http://www.research.ibm.com/people/h/hirzel/papers/canon00-g...
It's true that if you know nothing about formal logic, history of metamathematics, and decidability, then it's going to be particularly hard going, but there are a lot of accessible resources for each of those topics and the paper is well structured (meaning you can concentrate on the pieces).
The encoding that Gödel used for formulas should be fascinating for anyone familiar with Turing work on decidability as well as how computers work generally. Primitive recursive functions don't handle computation generally, but seem to be a first step in understanding what it means. Anyone familiar with Alonzo Church, lambda calculus, functional programming, McCarthy's first paper on Lisp would probably be interested in this bit.
Of course, Gödel's result on formal systems shattered the idea of an axiomatic basis for mathematics, but I personally think its greater long-term impact is helping to usher in computation. It's worth recognizing both.
I had to wing it because the ages turned out to be younger than I expected. I've taught my 6yo son using Racket and Pyret so I had the basic approach already. Although I shot over their heads in spots, overall the girls seemed to be really engaged, as were their parents. For my money, Pyret is THE language for an intro to programming, almost regardless of age.
http://www.uctv.tv/shows/The-Coming-Collapse-of-the-Middle-C...
Holy smokes, what an inaccurate statement. Arguably one of the obstacles to progress in technology is due the persistence of the fundamental computer design that has been employed since "Baby" ran its first program just before lunch on June 21, 1948, including an approach to fast random memory accesses. This approach was novel, based on CRTs used in radar. Most everything else -- design-wise -- was from the Moore School Lectures of 1946. And the really inspirational part of those was from the work on the ENIAC.
The missing piece that needs to be more generally appreciated is how the early work on practical, general-purpose computers was quietly done in England while the Americans were squabbling over who was first.
The biggest win is confidence about learning. This was particularly meaningful when they got into more "competitive" environments, by which I mean first grade where kids are expected to perform in front of their peers. When I tell my kids that just because they have trouble with something in school, that doesn't mean they aren't good at learning or at the subjects, they believe me because they have succeeded at both reading and math outside of that setting.
I believe kids are capable of a lot more than they are supported on. The trick, in my view, is to constantly know where that boundary is.
Both reading and math have notions of basic mechanical skills and meaning. My kids weren't great at the meaning part until they were over 6. But they both excelled at the mechanics part early. As an example, early on they learned to add by counting up. But later I was able to replace this with "tricks" (aka "math thinking"). A example is adding 9 to a number. Adding by counting is tedious and prone to mistakes. But if you've learned to add 10, then it is always one less. Similarly, since addition commutes, instead of 2 + 8, change it around to 8+2, which is easier and quicker. Both of my kids have embraced this approach to math of learning the shortcuts, which is actually where they get to experience the patterns and relationships that make math fun and interesting. When I showed them how the digits in multiples of 9 always add to 9, they were astounded. And then I showed them how the digits in multiples of 8 add up to a descending, and repeating "countdown" pattern. Wow. My daughter (who just turned 8) knows a bunch of these insights into the behavior of numbers and operations on them, and confidently says "I'm good at math" despite obviously struggling in other areas (gym, music, art) relative to her peers.
My son reads Junie B. Jones quietly to himself and bursts out laughing. He has discovered the meaning part. And when my daughter got a book about feelings, she finally discovered the power and relevance of reading.
Incidentally, my kids spend about 40 minutes on reading and math in the evening. They get roughly 2 1/2 hours to do other things between school and dinner. There isn't an opportunity cost.
The Functional Approach to Programming (Cousineau)
10.5 - sleep
0.75 - morning routine (teeth, dress, find lost things)
7 - school
0.5 - transit
2.75 - free time
0.5 - dinner
0.5 - evening routine (pjs,teeth, don't take bath every day)
0.5 - workbooks & parent tutoring or school homework
0.5 - independent reading of chapter books
0.5 - stories read to them
By time they get to workbooks, they are quite tired. But they are used to being tutored in small doses so they get through it. At this point, all structured activities outside of school are on the weekend (e.g. girl scouts, soccer). Also, ideally they would go to bed 1/2 hr earlier.Because we personally tutor our kids, I'm sure we will resent an increased homework burden as they get older, especially as we are able to tutor to a relatively high level for most subjects. Unfortunately the school does not coordinate with us on the learning objectives, so we more or less rely on Common Core standards to know what's expected.
My son is 6 tomorrow and is also using Dr. Racket to learn programming. I post on twitter and Facebook about it. I'm proud of my son. But more than that, I'm amazed at Racket as an environment for learning and teaching programming.
http://www.ccs.neu.edu/home/matthias/HtDP2e/
This book is much more than the intro to programming that it appears to be. It is a foundational approach for producing robust programs, regardless of your implementation language or level of experience.