views:

146

answers:

4

How you learn new technology/framework/language when it came out? How to approach it?

Why i am asking this question:

I have been trying to learn Iphone Development from last 3 months or so, download all the available books on amazon store from rapidshare lox, reading blogs, tutorial websites, checking forums like this, take the standford iphone course etc but the question which most of these resources dont answer is how to deal with real life problems/practical problems, which most of the people are going to face when they start developing some practical app of their own, or may be its not possible. Sometimes just figuring out how to write those 2 lines of code take days to figure out, sleepless nights are making me go mad!

Though there are few answer i have found but not sure are they correct or not, may be it all depend on your experience e.g;

  1. After first few kick backs, a point come where the initial learning curve ends, and learning new bells and wishes of the tech. become easy because you get understanding of the basics.

  2. After going trough the stage one, start reading the API of the tech. I have learn alot e.g; in Iphone development by checking out their API like i was very confused about core graphics but after reading the CGBase and CGGeometry class, it all turn out great.

  3. After some time you are repeating most of the code (basic constructs) again and again, you just make notes of them in a separate file and just copy and paste when you need them.

Thanks for reading my question, it turn out to be a my rant. Well i don't know what to do, this is my first programming job after finishing uni, i have lost of my social life, i am always working and working! Please help me to understand what is going on with me, thanks.

+1  A: 

First thing to do is download the xcode/iPhone development environment that Apple provide for free for developers.

The iPhone emulator is rather good, you'll be up and running in no time!

Evernoob
+3  A: 

You ain't that far off.

One of the better ways of learning a complex new topic is to emerge yourself in it.

Think of an easy but extensible example project and try to realize it with the given technology.

A nice little project I like to do when learning something new is a Library. Those Applications can be as simple as reading a textfile and displaying the content up to a complete CRUD interface with Database persistance and online lookup functionality.

What you manage in these kind of librarby-applications doesn't matter. Could be Books, CDs, Movies, MP3s or whatever.

For close to Hardware Frameworks I learn to like Mp3-Libraries because there's a lot of Media content to be presented to the user, which are always a bit tricky on those embeded thingies.

Sven Hecht
+1  A: 

You have a specific task, you google "quick dirty <X> tutorial", you search through the official documentation. You try to build up your toy one step at a time, starting with the very very basics, and slowly adding more bells, whistles and features as you go, reading the docs and tutorials along the way. When you finish building your toy, you can say "I've used X to build TOY", but you will only know less than %2 about X, which is fine.

hasen j
+3  A: 

One of my pet peeves is that tutorials never show you how something actually should be used. Instead you get an overly simplistic example that is far from best-practice.

To learn how stuff is supposed to be used, you have to do something close to realistic application. I tend to do something like this to learn about a language/framework:

  1. Read and experiment with tiny pieces of code.

  2. Try to make something small but useful/realistic while continually improving your use of the technology as you understand it better.

  3. Keeping close to realism and completeness in practice application is important for getting familiar enough to "breed contempt" for the technology. :-)

Bloodboiler