I am a Asp.Net/C# developer, I develop few projects in my spare time. I try to utilize my time as much as I can. I have been working for past 7 months. Suddenly these days I am a bit worried about learning the new stuff that is there for me as a programmer. I develop in my spare time so I don't get enough time to read books or blogs. So my question to some of you guys is how should I plan to learn new things, should I at least dedicate two-three evenings for new stuff, maybe ebooks while travelling is a good option too. How do you people plan to learn,should I also start to develop with whatever I learnt? As far as learning is concerned, should I just pick up the basics and then implement it or I should seek deeper understanding of the subject?
closed as not constructive by gnat, Walter, Jim G., Caleb, Yannis Rizos♦ Jun 9 '12 at 8:49
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
I think you should take a project that interests you, and implement it, just to have some motivation and keep working. In general I would stick to these points:
The way I learn new things (relating to CompSci/Software Development) is to either:
Sometimes this is difficult, expensive or can take a long time. But I feel that it's worth it in the end.
I honestly think that spending your travelling time reading up on something can be much more useful than blasting your ear drums with music and staring into the middle distance. Of course physical books can be a little difficult to read while on public transport (I remember struggling to read Code Complete on a train, once).
If you can't find the information you need online or in a book, try and track down groups of developers (or even tech enthusiasts). I can recommend MeetUp for searching for local groups.
Failing all of that, how about asking family members/friends for project ideas? Implement the idea in a language/framework/paradigm/etc that you are familiar with, then attempt to re-implement it in one your note so familiar with.
[as an example, I've become an informal Android developer, developing small apps for friends with rooted phones. Until I started doing this I had no experience with
Hope that helps.
First of all, do what Martin says and start a pet project.
When that gets frustrating, and it will, you will have the needed motivation to actually learn the technology.
For me videos are a great learning resource. And not any video, I found the gurus in the community who inspire me and I watched their talks or tutorials.
I've started with the NDC conferences which really have been a "vitamin pill", and then I moved on to payed tutorials from the many websites available. For the payed tutorials, I don't just pay for anything, I also search for the ones made by the people who inspire me.
Just like you, I also code in my spare time, which means I don't have much time left for reading books, and on top of that I have successfully used books as sleeping pills, so I prefer paying for a video rather than a book that I will probably never finish.
It will be easy to plan them, because even if you watch a long and in-depth tutorial on a particular technology, they are usually split into short chunks, no more than one hour.
Indeed having some pet projects is the key. But I often feel frustrated by the projects I do in order to learn new stuff... In fact my brain always try to be friendly to me, so the pet projects he thinks of are often something I can do without learning much.
The best way to learn new things or to improve skills was, for me, to do project for my friends. In fact I work with a lot of people who do not live in the computer world. And they often have needs specific to their jobs, it's often micro tasks needing less than 1000 lines of code, but it's always a challenge, and very rewarding to help them. Not simply because they are friend but because they have specific needs, often needs that you wouldn't have imagined they could exist. Helping that kind of people with their day to day needs will ask you to work on platform you don't know yet, or using langage you do not master... etc.
It's for me the best way to keep your friends while learning a lot of new things.
Also I think this stackexchange web site is perfect to learn new things every day.
Most importantly: Don't push yourself too hard, and don't worry about quantifyable results. You have a desire to learn, and I'm sure there are more things that spark your natural curiosity; following that lead, IMO, is the most effective way of determining what to learn next. After all, if you're curious about something, it means you have a strong desire to learn it and push through, and as a result, you will learn more thoroughly, and it will not feel like a chore.
On a more specific level, a few things you may want to consider.
To get project ideas, create a free, no-obligation account at www.vworker.com, then browse the project listings. They have small and large programming projects listed, waiting for programmers to bid on them. You don't even have to try to bid for a project. Just find a small project that will challenge your current skills, then work on it at your own pace.
Twitter is an unprecedented learning tool.
When I first heard this I was skeptical, but now I realize that it is for a very good reason.
The way to learn through twitter is to simply find and follow the experts.
Over time they point out best practices regarding difficulties before you face them.
In this way you save time by investing time.