7 ms·
How to learn new things using side projects
- akvlad 12y agoI was eager to learn about HTML5 Canvas, so I created a small project and learned a great deal while developing a lightweight canvas library, which hopefully others will also find helpful. https://github.com/vladakilov/imagine https://github.com/vladakilov/imagine
- listic 12y agoHow hard would it be to make a fullscreen demo? I want to teach myself to make games in HTML5 and most of the examples I see use fixed size frame; so I must be fair to assume going fullscreen is a hard problem. The games I'm interested are visual novels http://en.wikipedia.org/wiki/Visual_novel http://en.wikipedia.org/wiki/Visual_novel or Undum-based interactive fiction http://almostgoodbye.textories.com/ http://almostgoodbye.textories.com/ upgraded with full-screen static 2D graphics and music, so graphics perfomance requirements are quite modest, but running fluidly on screens of different resolution is a must.
- stevejohnson 12y agoIt's not a hard problem; you just need a little JavaScript to update your canvas's width/height attributes when the size of the DOM element changes. Then you can just use CSS to fill the window with your canvas, and use the fullscreen API to take the browser fullscreen.
- akvlad 12y agoWell, it's also not a simple as you describe. You might have objects within the canvas that might also need to be resized, images, text, bg images, bounding borders, etc. All these things will need to be taken into consideration when being scaled or resized.
- stickperson 12y agoI use Perl at work but have been working on a side project using Django and Angular to 1) learn/keep up with the languages I'm interested in and 2) potentially turn it into a business. I'm sure there are tons of things wrong with it, but I know I'm learning a lot just by forcing myself to figure things out. One problem, though, is that I may start looking for a new job soon. I don't want to make this open source since I may try to sell this at some point. If you look at my Github you won't see a lot of activity even though I'm working on this every single day. I know employers are interested in seeing that you're working on something though. How do I make sure I don't get looked over?
- jon-wood 12y agoI'd just be up front about that when applying for jobs. Tell them that you're working on something in your spare time, you don't want to open source it, but if they want to see some recent example code then they can take a look (if you're ok with that).
- Duhveed 12y agoI've used side projects to learn every valuable skill I have. Open source projects are a great way to publicize your new talents, but I don't think it's a prereq for landing a job that makes use of the new skill. Being able to talk intelligently about a subject during an interview goes a long way. As does having a depth of knowledge on a variety of languages, environments, technologies, etc.
- slackpad 12y agoAnybody have experience with his site, greatcoderclub? That looks like an interesting way to get over the activation energy and build up some discipline for pushing out side projects.
- dkarapetyan 12y agoI've signed up. The content is pretty good and covers parsers, compilers, VMs, and a few more things. There is code, videos, and exercises to guide you along each project.
- ambiate 12y agoI was a participant for a month. I realized that my problem was time rather than motivation. Other than that, it is an excellent community and well worth the fee! The instructor's path and the community's expansion is a really great thing to be a part of. I almost kept paying to just watch the community grow, but felt guilt in eating up a spot.
- michaelchum 12y agoGreat to see a software blogger from Montreal
- michaelchum 12y agoGreat to see a software blogger from Montreal
- danso 12y agoI've "published" a few "books" online (by that, I mean, I put text onto the Internet and called it a "book") and even though I've been lax in finishing/updating them, my primary goal has always been to learn something about programming...in this case, programmatic workflow. My first go, I thought that Rails would be a good publishing platform...which was a horrible idea, but when you're a Rails programmer professionally, why not? But every attempt since then has been to find ways to simplify and streamline things, either through new frameworks or disciplined programming. I'm glad that a few people stumble upon my work through Google searches, but even if no one ever read them, I've still accomplished my main goal of practicing and refining my programming.
- potomak 12y agoI totally agree. That's the exact reason why I created two simple open source projects: Draw![1] and Tomatoes[2]; the former to understand Redis better, the latter to know more about MongoDB. [1] http://drawbang.com http://drawbang.com [2] http://tomato.es http://tomato.es
- hfsktr 12y agoI was really impressed with that drawing one. I only clicked to see how I did with my side project(s) of drawing and it was nothing as polished or nice as that. On one hand I'm a bit sad (with myself for not being able to do that on my own) but it really is cool. Especially liked the slideshow (that's what I see) part of it.
- atko 12y agoThere is a pile of 8 books on my table right now (pro asp.net mvc 5, visual c# 2012, software architecture in practice, database solutions...". I started by skimming through each and every one of them, and it all seemed rather boring. Nothing taught me more than working on my side project.[1] I am far from good at anything and there is a long ways to go but actually digging in and creating something was very rewarding. [1] http://whoaverse.com http://whoaverse.com
- sreyaNotfilc 12y agoI can't even tell you how much I have learned outside of school and work by working on an outside project. I had a co-worker ask me "How do you code so well in C#? I want to be a master in that language." My reply... "Create a simple blog project and then work from there. Eventually you'll want to add more and more features that will move you throughout that chosen language." I've learned so much by creating and uploading semi-unfinished side projects on the web. e.g. artJutsu.com/lightbox
- rememberlenny 12y agoThis is also applied to Hackathons.
- shanecleveland 12y agoI've started more than a dozen "side projects" as a way to develop coding knowledge. Most of these have never seen the light of day outside my computer, but they have all built upon each other and made me better at my day job. And a few are actually make a little passive income on the side. There's typically little to no investment necessary, other than time. And I consider time spent learning something that can at the very least be applied to later projects or furthering my abilities a wise investment. There's no such thing as overnight successes, and the more things you make, the likelier it is that you will create something that becomes more than just a side project.
- j45 12y agoSide projects are incredibly important to keep the tinkering in the shed creativity, experimenting, learning and ultimately growth alive. It's fine to have a few to work away on as long as they are not taking up all of your time relative to the return you are seeking in other areas of life.
- oweiler 12y ago> THERE IS NOT SUCH THING AS A FAILED PROJECT This can't be stressed enough.
- andrewflnr 12y agoI disagree with point 1. For me one of the best parts of programming is creating something from nothing. Going from an empty file to working program is part of that.
- macournoyer 12y agoEmpty file yes. But do you start with an empty/blank project?
- andrewflnr 12y agoUsually, yes. Especially when I'm learning a new technology, I won't even write a Makefile until I get lazy. I've never been entirely comfortable with those project boilerplate generators; another factor in starting from scratch is that I want to understand what all the pieces do and what happens when they're missing.
- tdees40 12y agoThe best thing I can recommend is taking some code you put together and rewriting it in a drastically different language that you don't know. I rewrote some Python code I put together in Haskell, and it was a transformative experience for me.
- btbuildem 12y agoI'm doing that with an old project of mine right now. It's mind-blowing..
- mcx 12y agoDefinitely reminds me of the 70/30/10 model[1] for learning. It's amazing what you can pick up when you are given a problem and need to solve it. I continue to learn a ton from work and from personal side projects. Being given a ambiguous problem and then going through the process of breaking it down into smaller solvable problems was a big thing for me. I realized that being an expert in something isn't necessarily being able to regurgitate something from memory but is having a lot of experience to recognize patterns. [1] http://en.wikipedia.org/wiki/70/20/10_Model http://en.wikipedia.org/wiki/70/20/10_Model
- gk1 12y agoInteresting that Wikipedia automatically escapes any forward slashes after wiki/.