19

I am currently working as a Web Application developer using .NET Technologies. I am interested in learning more about the technologies that I work with, but I am ALSO interested in a million other things... (including Systems programming, Networking, Game Development, Mobile Development, Computer Science topics, Math, participating in an Open Source project, starting my own business, etc).

I can't seem to focus on one thing to become an 'expert' in when there are so many other things to 'master' that are pulling at my attention, and there are only so many hours in the day...

My question is, what are some good strategies to stop procrastinating and manage time effectively, so that you can get the most out of your free time and learn what you are interested in, while not losing sight of other priorities and letting other interests fall through the cracks? Or do I have to sacrifice, and if so, how do I prioritize what to sacrifice?

gnat
  • 20,543
  • 29
  • 115
  • 306
donnovan9
  • 219

5 Answers5

7

Yeah, I used to think just like you. I wanted to be able to make a game. Then I would go "no! I want to make a web app!" then I will say "no! I want to master Unix!" And this entire cycle of "no I want this, no I want that" never ceased.

So here's a short answer to it all: stick to doing what's at your finger tips.


So here's a story

I always wanted to build programs in general. It didn't matter what; I just wanted to build something. In the the end, the best way that I managed to move on with my life was just try to do something by using one tool that I "hear" being talking about. If I failed entirely, I would move on to something else.

And that's how I got into game programming.

It all started with Visual C# Express being showcased on the Microsoft.com home page. The entire IDE was blatantly available right in front of me, so, I clicked the download link and got started on it right away. I watched video tutorials, wrote lots of code, and there, I was set.

It was then I started to go left and right to find something to do. I could've built a Windows Forms application, or I could've built a website. Then I would be thinking about feature that I could include within my projects, but I will never proceed to actually build something. I just wasn't motivated enough.

It wasn't until the MSDN news feed in Visual Studio announced the release of a free framework to bulid your game on. It was XNA Game Studio Express v1.0! I got started right away. I built a few small games here and there.

But here's the catch: I felt more motivated to work on a game that just popped into my head, than the ones that had to think really hard for. I had a great idea to build a 3d snake game, worked on it for two days straight -- while taking breaks of course -- and voila! A very handsome game that works!

And when it would come to those games where my sole intention was to impress my friends. I would work on it for two or three hours and give up, and never look at it again. In fact, I haven't looked at it for at least two years.

So here's the moral of the story: let inspiration guide you. Don't force yourself to do something. If you want to make a webapp, maybe you might want to consider solving a problem that always bothered you. If you want to make a game, then I suggest that you look at the small things in life that you found to be "fun." Again, it all comes down to inspiration.

I hope that helps.

Sal Rahman
  • 1,544
4

Find areas within the fields you want to learn with overlap. You might not think it intuitively but systems programming and game programming can be very similar. Especially when it comes to accelerating hardware.

Another example, if you devote 10 hours or more a week towards building a startup company that develops a multiplayer mobile game, you've included Mobile, Game and Network development along with starting your own company. Find a good Open Source library that will be a major part of your project and help develop it further as a way to get going and become familiar with your framework.

Try to follow the KISS principle not only in programming but in life as well :) Consolidate and make yourself gain more reusable skills. In my situation, I'm usually developing internal software for running a company's day to day tasks, tracking data, etc.. In my off time I'm working on a game engine.

Both have huge amounts of data which need to be routed through complex channels. Both benefit from optimizations and both use databases, networking, cache and 'smart precision' among many other things. I've learned from each side how to increase performance and quality in the other.

My advice is to find the best set of tasks keeping in mind what you care most about and then, a close second, how well they interconnect.

2

I suggest doing a nice project on the side. Come up with something cool you would like to build, but have no idea how to approach--maybe a game or a programming language or...

Instead of choosing a topic and learning it, learn what you need to get to the next milestone on your project.

In my experience, this focuses your learning while ensuring that it's complete. You learn only whatever subjects you need to finish your project, but (as long as you actually finish the project) you learn them well enough. The best bit is that non-trivial projects tend to cover a wide variety of subjects, so you won't become over-specialized either.

At the very end, not only will you have learned stuff (sometimes not the stuff you expected to learn, even!), but you will have something shiny to show for your effort.

0

Well your situation is understandable. Happens to newbies. Well your current job will pretty much decide what will do in the rest of your life. It will be difficult(read near impossible) to switch to another line such as Systems programming the longer you work in your current line. If you wish to switch, do so in 2 years. You can follow up on your other interests on the side. Look for projects in sourceforge.

DPD
  • 3,527
-1

This looks like it's going to take many years. Learn Unix, it won't become obsolete.

Christopher Mahan
  • 3,414
  • 21
  • 22