Meteor Mentoring Group aka Meteor University

lets try to connect people and share our environment for other groups and help them to start in the future :smile:

1 Like

Darn, it’s too bad I didn’t see this sooner. I think this idea is great, would love to join in if there is room or other study groups form.

@kaashin @henryc now that the number is growing, perhaps @dinos or @faceyspacey would like to start a new group?

@faceyspacey I am up for this. I can create the slack group already :sweat_smile:

1 Like

I was looking to help someone with meteor, because I am planning to make a web tutorial on YouTube and would like some feedback on teaching, actually. Also, I speak German (poorly)

I work professionally in developing with meteor

1 Like

Why can’t the group chats/material be out in the open for the whole community to benefit from instead of just a few, if the classes must be closed to participation (if being closed helps the class somehow)?

I’ve been working with Meteor for a little over a year now, but by no means even close to an expert in any area. I would gain insights and knowledge just by viewing the class materials (without participation), if I for some reason the class is full or restricted to some arbitrary size.

@serkandurusoy @faceyspacey are you guys getting quid pro quo from @christbkk and the like for your time or is this pro bono?

just a idea:
If it’s pro bono, why can’t we place some structure around this, maybe you and others could get compensated somehow for your time, classes could be scheduled and expanded, a curriculum maybe?

chathuraa, how does one join? I would love to join. Not a total noob, but looking to improve my skills.

@aadams it is strictly pro bono and actually is out in the open. We had a glitch today where we were not able to record our video session but it was mostly introduction and getting a few burning questions out of the way. But we are going to make sure it won’t happen again. (Skip ahead for a summary of what you’ve missed)

The idea is:

  • hold the meetings on hangouts on air. try to limit the interaction within the class group itself but allow for everyone else to watch the recording
  • try to get our chat logs public on slack
  • work on a real life project - coding a platform to manage such open classes :smile:
  • revolve the whole project around multiple aspects of the meteor learning/development experience out in the open on github
  • hope to inspire more people to get together in classes
  • hope to get the “graduates” mentor their own classes

Since we are all new at this, we are experimenting and improvising along the way. If this can actually gain traction and become a thing, it would be great.

Quick summary of todays session; after introductions, we lightly touched these topics

  • How do we manage uploads
  • Watch the eventedmind.com video on uploads for a barebones solution
  • Use slingshot if S3 is fine
  • Use collectionfs as a powerful solution that supports filesystem, s3 and gridfs
  • use the vsivsi solution for a simpler gridfs solution that can scale horizontally, which cfs has problems with
  • How to create a chat application
  • Chat is different in the sense that persisting messages on the db and using collections to get the messages across can be intensive on the server
  • use the streams approach that’s discussed by arunoda and implemented by rocket chat
  • How to start a new meteor app, what to use?
  • Don’t get caught up in the distractions, there will be a tech of the day every coming year
  • Follow the official meteor guide, the topics and patterns are relevant to all those stacks
  • Choose the right tools for the right job. Atmosphere has great forms and tables packages, so a line of business app can benefit from blaze more than it can benefit from react where a game-like interface packed full of “components” may do better off with react
  • mongodb is not a bad database. database programming existed 50 years ago where there was no such thing as acid and developers had to implement those paradigms within the app itself, use those ideas on top of mongodb
  • What are transactions and how to manage them
  • Transactions are not always needed, remember, right tools for the right job
  • A transaction is basically a series of database operations that need to happen all together or not at all
  • The problem is, if the server crashes in the middle, we need to “roll back”
  • Mongodb has a fairly sufficient “two phase commit” tutorial on its docs. It can be implemented as a strategy
  • A not-so-strictly-transactional approach where opt in rollbacks can be achieved would be to use the babrahams:transactions package
  • Yes, transactions are somewhat similar to how redux operates
  • How to manage mobile connections where an app consists of a backend and a mobile ui, how to ddp.connect?
  • Meteor docs is your friend, read the raw docs
  • Packages that wrap ddp for better mobile experiences are good but you should first understand how the raw api works and then opt in to use a package when you do actually know what problem it solves and that it is relevant in your use case
  • Meteor 1.3 is on its way packed full of new mobile features like the new wkwebview and better hot code push
  • ddp is not only choice, you can rely on mongodb to communicate over from your backend to your mobile ui
  • Use packages and the upcoming imports to structure out common pieces like database access and server side methods so that you can use them in separate apps
  • ddp is not only relevant to mobile, think about microservices
  • You can always separate out aand independently scale parts of your app depending on their specific resource requirements
  • How to structure and query data that involves embedded array of objects
  • Avoid if you can
  • Read the mongodb official docs, it has great examples
  • Read through the array and positional operators
  • Updating a nested object in an array by its index may unfortunately require reading the whole object and replacing the whole array
  • How to scale and automate (digital ocean) deployments, autoscale jenkins deployments with mup? Is it possible? What are alternatives?
  • Galaxy is by far the best alternative, it not only autoscales, but makes sure it rolls over connections when instances get killed
  • phusion passenger is a strong contender
  • mupx and cluster can be used, but there’s not much literature around for “autoscaling”, perhaps the digital ocean api can be used to help
  • What about scaling to 50 million users
  • That means your business has picked up and you have a lot of money and dedicated devops engineers as well as a vast array of tech stacks at your disposal
  • What to do if we have a static landing page and we get exposure on hn? Every hit on that landing page means an open websockets connection, what to do? Kill the connection manually?
  • It is not a good idea to do such hacks since the user will require that connection to proceed anyway
  • Use a static web server to serve that landing page, place the app on a sub directory and configure url rewriting on the web server. It may look daunting, but it is the right way

And then we moved on to start a discussion that’s going to last during this next week until our next session. Before our 2nd session commences, we’ll try to decide (generally) on

  • How to proceed
  • What to work on (an open classroom/mentoring management app)
  • More q/a and specific coding questions if anyone wants to share
  • We make sure we record the videos @chathuraa @sakulstra
  • And edit them for best viewing experience @kaiyes - btw this guy is an actual rocket scientist, a rocket scientist working on meteor, how about that LOL :smile:
  • We write a blog post after each session about the highlights @christbkk
  • We get the word out and ecourage others to start their own “study groups” like ours
  • The mentors don’t have to be gurus, it is a group event and a holistic learning experience so hopefully everyone will soon find themselves their own groups to mentor
12 Likes

@juliakoe read through the other posts on this thread, there are other people looking to form a group, perhaps you can ping them?

WoW! Ok I will try to make me that notes for next session to write it here… that summary is just awesome.

Thanks @serkandurusoy. Is the size of 5 or so arbitrary? What is the criteria for joining a class? What you’re doing is worth a lot to some.

Would you hold another class (since this class seems to be full for some reason)? I’d gladly pay for a class covering the topics you listed above.

If you’re not interested in some amount, how else could one join some class with you as the instructor?

Sounds like an amazing amount of ground you covered in one class @serkandurusoy and what a great write-up. Congrats on getting this initiative started in such fine style!

1 Like

you can join the https://meteor-mentor.slack.com slack team

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.

3 Likes

To start using Slack, you’ll need to be invited by your team administrator. :frowning:

okay, can you send me your email. i’ll send the invite

@chathuraa, you giving out invites?

Yeah, any one who wants to join, pm the emails.

@faceyspacey if you pm your email, i will add you to meteor-mentor team. there you can have your own restricted channel. we can have few restricted channels for mentoring and one general channel for every one.

@faceyspacey that’s great.

We are thinking about creating our own learning platform as our own learning material, but to be honest, I don’t want that to be overwhelming to new developers so I’d like to keep it around basics and have the group members themselves build it up and out. I myself won’t probably contribute much code, rather assist. It would be the group’s product in the end.

@aadams I am not getting paid for this and I don’t want to. Not for this group at least. And I really want to keep this under control so that this “experiment” can become a substantial “experience” for everyone involved, furthermore, I would love to see this become a structured, repeated and evolving thing.

@chat is trying to organize slack into groups right now and we’ll keep using it until our own product becomes usable in that sense.

Come join in, we’ll try to do our best to accomodate everyone, but let’s please also actively look for other people to join in as “mentors” so that we don’t get overcrowded with our video chat sessions. We were 6 people yesterday and 1 hour was merely enough. I can’t imagine if we do it with 10 people :slight_smile: But please do come join in, I don’t want to see eager people like yourself left out.

About that $100. Keep that in your bank account. The way you can pay would perhaps be to ping some other community members who have not heard about this initiative and perhaps try to persuade (not by money) one to come join in as a mentor :smile:

Finally, our video sessions are more like “here are some resources you can check out and here’s what you need to watch out for” and they are not in the form of tutorials. Ther are so many great resources out there but it is overwhelming for a new meteor developer to find the right gems. That’s what I’m trying to do, point in the right direction, at least the ones I personally believe are right at this time for this experience level. I believe the “project” itself will be the actual self-learning experience where I’ll only be providing guidence.

5 Likes