These are the goals that I want to achieve in 2017. This blog will largely be dedicated to report and reflect on the road to these goals.
- Theoretical and conceptual Computer Science knowledgeWhat I’m after is a thorough understanding of Computer Science concepts and abstractions. The resources I will use center around the MIT Computer Science curriculum: the SICP book, and the MIT 6.001 lectures and notes, all based on the LISP dialect Scheme.
- CraftmanshipThe goal is to build up an arsenal of good habits and techniques that will improve the quality of the code, and will make it easier to expand, understand and maintain. Primary resources for now are the books Code Complete and Clean Code.
- Actual Languages
The goal is to become proficient in three programming languages:
- Racket. A LISP/Scheme based language. This follows from the MIT resources in the first bullet. This will be mostly for personal use. Apart from general programming experience and conceptual CS understanding I also really, really want to get my head around macros. Here I will rely mostly on on-line resources, in particular Beautiful Racket by Matthew Butterick
- Java. This will build on my (ancient) C++ experience, and also be useful for possible projects at work as well as possible Android development.
- Visual Basic. This primarily for work: to build well-structured macros in Excel and Access
- ProjectsI have a list of ongoing and possible future projects which I will elaborate on in a future post. They fall in 3 categories: Build stand-alone programs for practice and fun. Contribute to an OpenSource project. Build an Android app.
Last but not least: I want to post to this blog at least twice a week. That comes to a round total of 100 posts this year. Watch this space!