1,033 karma · joined August 22, 2015
[1] http://danmidwood.com/content/2014/11/21/animated-paredit.ht... (also http://emacsrocks.com/e14.html)
[2] https://shaunlebron.github.io/parinfer/
[3] https://github.com/luxbock/evil-cleverparens (Vim with Emacs via Evil)
On top of that ... I'm not even sure I /want/ to work anymore. I would love to work on things like climate change, but that being underfunded (and not having a degree) I don't see happening. The only openings I see for a Senior Data Scientist position usually require a PhD (which I dropped out of sigh), or are in the ad space. And, for as long as I have a say in the matter I will never work in the ad space.
I've been thinking of doing my own thing, bootstrap something. But I literally don't know what. Cynicism maybe. You hear all these stories of bozos pitching some idea but can't get the people to build it; I guess I'm the opposite: I think, given time and resources, I can build a lot of things ... but seriously, I wouldn't have a clue what to work on. Except maybe multi-stage flash desalination using concentrated (heliostat) solar power to green deserts as a carbon sink ... but yeah, not a civil engineer.
The thing is ... through life choices I think I've made myself unemployable. I need the autonomy to do stuff, or I'll go mad (also, don't make me get out of bed before 10AM ... just not going to happen). But on the other hand, man it's been a productive 3 years ... and I learned /so/ much. I wish I just knew what to work on next. But my dysthymia prevents me from seeing that stuff clearly. If someone with a cool idea comes around, I'd love to sink my teeth into stuff; on my own, all I think of is the impending climate change disaster. Fun fun fun.
"I have an overwhelming empathy for developers in this position. They have more information than they will ever need, but it’s completely disorganized. It’s like trying to build a ten piece puzzle, except you have to find the ten pieces within a pile of 10,000,000,000 pieces, all of which are square, and you don’t know what it’s supposed to look like at the end. Good luck."
Even with a team of highly experienced developers things quickly turn to a mess if it's not perfectly clear what to work on. I don't mean things like "button should go 1px north to align with header". That's trivial. In fact, I would go so far as to say: most production-ready programming is trivial. Trivial in the sense that someone, somewhere, solved it in a way that's correct. But, when it is not /crystal/ clear what the requirements are, what the business case is, or what the edge-cases look like: oh my. I've been in the incredibly unlucky position of only being in settings like this. Start-ups, academia, R&D positions. And, as a result even with the best intentions and the best teams you'll still produce production-quality garbage. Mostly because incentives were misaligned and there was no coherent vision. Agile story-driven development only works when there is leadership that has the guts to say "no", and when there is something well defined to work on. Sometimes I yearn for some CRUD webstore ... at least then the things are knowable. Anyway, just my rant. I'll probably go the meme-way of becoming a plumber/welder/etc at some point ;-)
All kidding aside, do you think there is some scientific value in the efforts of hobby astronomers and astrophotographers around the world?
"The James–Lange theory refers to a hypothesis on the origin and nature of emotions and is one of the earliest theories of emotion within modern psychology. It was developed independently by two 19th-century scholars, William James and Carl Lange. The basic premise of the theory is that physiological arousal instigates the experience of emotion. Instead of feeling an emotion and subsequent physiological (bodily) response, the theory proposes that the physiological change is primary, and emotion is then experienced when the brain reacts to the information received via the body's nervous system." — https://en.wikipedia.org/wiki/James%E2%80%93Lange_theory
- Haskell, functional programming with static types
- Clojure (or Common Lisp), functional programming in a dynamic language (and understanding the AST-as-syntax-homoiconicity)
- C/C++, "low-level" programming (e.g. pointers, memory management, registers, the basics of compilers)
- Prolog, Logic Programming as a completely different paradigm
Then after you've "grokked" the pros and cons of these languages, pick one language to become good at. It doesn't matter if that is Java, Java is a fine language; but being exposed to different paradigms broadens your horizon in my experience, and sometimes the idioms and ideas are portable. Personally I've done a lot of back and forth between Java, Python, Clojure and R . If the choice is mine I usually pick Clojure, but not always. Statistics and datascience I still do in R or Python just because the sheer amount of documentation and libraries available. I guess I've been influenced too much by Rich Hickey but he asks "would you rather become good at programming or at problem solving?", and for me it's the latter. Language paradigms help you to recast problems onto a different frame of mind, but at the end of the day it's your ability to help further a cause/business/idea that counts. Just my 2 cents!