I am late on this one. New Year’s eve happened long time ago, and the next New Year’s eve is happening two and a half months later. But I can’t wait until then, and I shouldn’t wait until then. My New Year’s resolution is: 52 weeks, 52 projects. I want to develop a small to medium scale project every week for the next 52 weeks (52 weeks = 1 year), and put it online in the weekend.
I was wandering around in SpeackerDeck and found a nice presentation, where this guy called Jefferson Lam was presenting his result. I liked the presentation and thought: “Why don’t I do the same? It will make me a better developer, a better blogger and probably more professional as a Software Developer.” So I decided to start this thing and see where it goes.
What I’m doing exactly?
The 52 weeks, 52 projects challenge states that I should make one projects every week, for 52 weeks. It doesn’t state what kind of project should I make or anything else related to that. But I have a long list of technologies I’d like to try and test, so I probably will have a lot to do. A short list would be compiled of:
- Java/JVM technologies like Kotlin, Scala, getting to know Gradle better, etc
- Android and plenty of what it means: architectural models like Model-View-Presenter (MVP) and Model-View-ViewModel (MVVM), Reactive programming, using ORMs instead of writing my own content providers, learning more about dependency injection using Dagger, etc.
- Getting to know Ruby more and frameworks like Rails and Sinatra.
- Learning more about DevOps, tools like Puppet and Chef, professional containerization with Docker and hosting these containers in various cloud services.
- Learning the newcoming Angular2 and using it for mobile applications through Cordova or even the other newcoming Ionic 2. They’re changing everything in Angular 2, so it might take a while adapting to it.
- Trying NativeScript for mobile development. I’ve waiting a while for it and wanted to try it before, but couldn’t find the time. But they say that NativeScript supports the native APIs out of the box and creates truly native applications from the same JS codebase.
- Becoming better at front-end web development. I’ve never liked CSS and never been good at it. I mean, I can write CSS and have been taking some courses before, but I intend to be better at it. Also I want to adapt the Material Design applied in web development, including Polymer and MDLite
- Learning more JS frameworks. Ember.js and React might be the first in the list.
- Finishing any unfinished project, improving an old one or contributing to any open source project. I’d firstly like to finish one of my old Python project, Numberoid. Also, if I find any other project that needs improvement of any kind, I’ll do that. Maybe my old Slots game is in this list. As for contributing to any Open Source Project, I wanted to add Albanian language support for the PHP Faker library, but that is more of a data entry challenge rather than a coding challenge. But I’ll find something.
Huh, that’s a long list! I’m now wondering if 52 weeks will be enough…
There are a couple of things that might “blow up” the number 52 idea. Firstly, I have to be a good boy this year or Santa won’t bring me a new Macbook Pro. Secondly, being a student has its own perks; I have to study hard during the year, exams might present some latency, some projects might take more than one week, and who knows what else. But anyway, I don’t want to stop this challenge without finishing 52 projects, even if it takes more than 52 weeks.
I will probably start the first project next week, and hopefully it will be finished until Saturday, October 17. You will be able to find my projects on GitHub, starting with this repository as the entry repository with information about all the 52 projects I will develop. All the 52 projects will be found in my GitHub account after they are finished.
If you want to ask me anything, or want to share your thought about this challenge, feel free to comment below and let me know.