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.