Hey everyone, so I’ve been thinking about this. And here’s what I got:
- a project on github where everyone contributes to it (me, but not limited to me, playing the role of product manager + code reviewer)
- but first: we need a collaborative live coding environment
Now, here’s the one thing I haven’t shared: for some time I’ve been thinking about solving the problem of the latter, i.e. a true collaborative live coding environment. I’m about to undertake a new take on it: React + Redux-powered live coding. The thing about live coding that’s always been missing is that both developers have different application state, despite having the same editor state. But with Redux, and the Time Travelable log of actions, we can easily replicate the entire application state between all connected clients–just by making sure actions are propagated to all clients. I think this would be big for the collaborative coding movement which never really took off, which may be even bigger for the remote learning/teaching of programming. So my plan is to sync app state between all connected users, and of course provide a collaborative character by character editor + file browser. That’s the core. WebRTC for video can easily be added after, as well as a lot of other stuff ;). I think having this would make for a learning experience several orders of magnitude better, which is why I’m going to focus on this first.
It’s gonna take 2-4 weeks to get this done. The work will be open source, so we can create some sort of lessons out of that if anyone would like that. I personally love thinking about coding, talking about coding, especially stuff regarding pushing our productivity forward. If you can’t wait, I suggest you email me. The slack class or whatever isn’t really the take i’m interested in, not when the tools I just described are just within reach. Initially I was more interested in a traditional ninja+master approach. There is still something to more private one on one experiences. Specifically what it is is a sense of trust. A bond emerges, which leads to succinct communication void of endless prefacing that larger audience classrooms require. I find that fun with highly motivated students. My email address is above. Ball is in your court. I can answer any questions you have and can become as motivated to expedite your growth as you can. I can get you up and running building real things so quickly it will likely blow your mind. As I said initially, I’ve done it before. I’ve been the mentor of exactly 3 developers in the past, and took them from near zero skills to building full applications. It’s a long time ago at this point, but in 2010 I wrote a book on how to become a programmer:
http://www.faceyspacey.com/resources?section=book
I basically delineate the path I took as a non-technical product/project manager who was constantly frustrated with developers I hired to a lone do-it-yourself programmer. The book is outdated now (based on a PHP stack, culminating in the Yii MVC framework), but let’s just put it this way: I’ve put a lot of time and energy in thinking about not just programming, but how to learn programming and even more generally, how to learn. I come with a deep understanding of the mental roadblocks you are likely to have, questions you likely will have about Meteor idiosyncrasies, and can easily steer you toward common sense solutions for seemingly very technical problems. I view the world as if I’m a digital construction worker, not as a pretentious computer scientist–everything you wanna do is easily within reach.
Ideal developers will wanna continue on building open source things with me. I’ve been an application developer for most of my career (building client projects and my own startups). A year ago, however, I shifted my interests completely into building open source developer tools. Rather than me teach you, let’s discover this together, and along the way share whatever it is we excel in or have to offer. At this very moment am going through a learning phase myself just like you. I’m learning Haskell, which I chose to learn to make sure I had a firm grasp of the important aspects of functional programming coming into the Javascript world. I should be finished next week and will start the above aforementioned project. If you can code some basic React stuff, you’ll have the skills to contribute, while of course getting better rapidly.