# How to Actually learn programming [0/2]

The goal is to complete the tasks outline in a CH article. This post will contain the plan, as well as the notes on each task. A few of the exercises are already completed.

• [ ] Learning Lisp: I started going through Land of Lisp (Conrad Barski), since it was available with my O’reilly subscription. This is not mentioned in the reading list in the article, but was generally recommended in the channel from an unrealated thread. I am yet to formally start recording notes on this. The last time I bungled with lisp was via the SICP course which I never finished, though I did have some fun with scheme. This book is based on Common Lisp (CL).
• [2019-08-18 Sun] Completed Chapter 1.

### Exercises

1. [-] generate and secure GPG keys:
1. [X] Atleast on a basic level – I can generate keys today and encrypt files, on 3 machines. The keys were passed on through SCP in general.
2. [ ] securing the keys is something I have been thinking about and would like to discuss in the ossasepia channel.
2. [X] set up and operate a virtual server
3. [X] set up a blog
4. [ ] set up an IRC bouncer
1. I have no clue what that means at the moment.
5. [ ] operate a server
1. I have been thinking of wiping my old macbook of the Mac OS and use it as my my metal to begin with. I could start with installing Cuntoo on it. My current macbook is available to run the day to day.
6. [ ] run a “The Real Bitcoin” node
1. A preliminary read has been done on this. The forward approach also depends on the method agreed to set up a server.

### Projects

1. [ ] extend Diana Coman’s “foxybot“, a bot for Mircea Popescu’s MMORPG Eulora.
• This sounds extremely interesting.
2. [ ] – (re)implement V
1. [2019-08-18 Sun] This is ongoing.
3. [ ] make a Lamport Parachute
4. [ ] operate an IRC bot
1. This is something I would really like to do.
5. [ ] build and host a log viewer

## Land of Lisp

• The book uses ANSI Common Lisp

## 2 responses on “How to Actually learn programming [0/2]”

1. What is perhaps not obvious re Lisp: there are two main approaches to programming namely procedural and functional. Lisp is a functional language (in short: everything is a function) – this makes for very elegant and satisfying expression but it does require an initial change of mental paradigm in general. Ada is a procedural language with some very strict rules that help you to both know what you are doing and do it right. Each of them have advantages and downsides and are better at some sort of tasks and worse at others. As such I’d say in time you should learn both, yes, but take it easy – and Ada might be the easier to learn of the two. Anyway, the best way to learn a language is to *need to use it* so I wouldn’t sweat this decision right now – let’s first get to the point where you can start working on something and that will choose the language to start with too.

There is more to discuss on the other points indeed but perhaps best through direct chat.

1. shrysr says:

Thank you for reminding me about this. While I’ve read of this difference between functional and procedural, and there was some related content in the Land of Lisp (ch 1) – the idea has not truly sunk in yet, and I’ve never had to make a decision considering this factor. C/C++ (way back in Uni) and some FORTRAN later on seem to be the only times I recall using a procedural language. From my recent progress in learning R, compared to python (in particular for data wrangling), as well as the desire to really know the Lisp I use in my Emacs config) – it appears I learn ‘better’ with the functional approach, but I do not recall having trouble learning the other and there is no real basis for the feeling.
Yes, the language seems to ‘stick in my head’ only when I *need* to use it, rather than a ‘leisure’ / ‘interest’ based approach.