Meteor is the first client-server architecture I’ve learnt. As a newbie to app development. Learning Meteor is really challenging for me. By far, I’m on my fourth week of Meteor learning. And I would like to talk about my previous 3 weeks of experience.
In these three weeks of Meteor learning, I went through the 50-Minute-Meteor-Torial video, which has given me a basic understanding of how meteor works. I had gone through the official To Do App tutorial twice. In the first time, I focused on knowing what I can do with meteor. In the second time, I tried my best to understand the syntax, structure, and the logic of this To Do App. To be honest, even though I had gone through this app twice. I’m still not confident that I am able to recreate this app on my own. It is a lot of information. I can only say that I understood it, but I knew I definitely need a lot more practice in order to absorb what I’ve learnt. And this is just my first stage of studying.
In the second stage of studying, I tried my best to study two app developmenttwo packages, an application template package, and an example form package. I went through the package description and the video tutorials included in the packages. And I also built an app step by step with video tutorial, which also used those two packages. But I felt like I barely learnt anything even after I was done with the app. The tutorial is detailed and clear, but I couldn’t absorb the information. Thus, I reached the conclusion that there must be something wrong with my method of learning. I decided to go over those packages and the tutorial again, and learn everything the old way, not to create the app on the laptop, but copied the code on paper, instead. I copied the full app directory, including the description of each directory. I also copied code carefully, and when I found myself made a mistake, I would circle my mistake with a red pen. I also wrote down other notes and the conclusions came out of my mind when I was copying. For sure, there are still some syntaxes that I couldn’t understood. But I think I’ve understood most of them. I now know what to import to a page, when to use FlowRouter, when to use “,” vs “;” and so on. This is great improvement to me in understanding meteor. However, I still feel like I’ve just got started. There are a lot more going on.
I think, by far, I’ve just understand the surface of meteor. I had never gone deep into it. Knowing the surface have gave me the ability to modify an existing app or package with high similarity. I know that if I would like to create a meteor app on my own. I had to understand what’s the behind the surface. My difficulty areas include schema, collection and MongoDB methods. Those are just some concepts that I’ve used and didn’t understood. They do not include many things that don’t even know that I don’t know.
Another difficulty I had was with command line. I used UNIX to run C program before. I run Java inside Eclipes, and I run JavaScript with chrome. But, I had never try to run anything in command prompt before I touch meteor. It’s a bit hard for me to read the errors when something was wrong. Furthermore, I wasn’t really comfortable with npm. During my app creation, I have encountered two npm errors. Since I had no idea what was going on, and even restarting the app couldn’t solve the problem, all I could do was to rebuild the whole project directory. The good thing is that with GitHub version control, I didn’t had to rewrite all the code. I simply deleted the local project directory. And clone the working directory which include files of my earlier stage of the app development to my desktop again. Version control has really saved my life in meteor learning process. Sometimes, I might have made a mistake and forgot about what changes I had made. And if I really couldn’t figure this out, I could always go back to certain point that I knew was work, without starting the app all over again.
Even though, there were a lot of struggles evolved in meteor learning. I believe that I’ve learnt the right thing. I also believe this is what I need, to do what I always wanted to do. There were some point, at which I felt like, there might be some easier client-server architecture, which can replace meteor. So, I started to search for them. But most of feedback online told me that meteor is a lot easier than other client-server architecture, such as MEAN stack. And it’s a lot more mature, in the way, that it has a lot of package available, which could save us tons of hours. So eventually decided that I would keep learning meteor until I totally master it. In general I want to say that there definitely is a big learning curve to metetor, but we should just keep learning, and try to learn it the you like. I hope my experience can encourage you when you find it’s difficult to start meteor.