Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

From what I know, learning a programming language consists of :

1- Learning the syntax

2- Learning how does the language handle\use\implement its "abilities" (Classes, delegates, structs, polymorphism.... etc)

And What from what I found while researching a couple of programming languages, is that the "major" languages share almost all of these capabilities (OOP,delegation,polymorphism, and so on)

I am learning C# at the moment, and as a "major" language , it offers all of the said capabilities and more.

after learning C#, I should be able to learn other languages relatively easier, for example Objective-C ( for iOS development ) and java (for android development)

the problem here, the Framework. for windows there is (.net), for Mac (Cocoa) for iOS (Cocoa Touch)

how does one go about USING these frameworks, I am not looking for tutorials for a specific api, I can use google for that ;)

I am talking about "understanding" the general idea of how one would easily use a framework ( even if its previously unknown to the programmer) to build an application.

For example, we all heard of the Playstation Vita, the new handheld device of Playstation...

now this device offers alot of new features not found in the PSP ...

so the game developers for this device will need to get the API from sony and work their way through it to build a game for the PS Vita . How does that work?

is there something you need to know besides the programming language used for the API (eg. C# for .NET and Objective-C for Cocoa) ? I know that there are books covering each major API out there, But again I am trying to get a general understanding not a tutorial.

On a forum for game developers, someone said (once you know programming, the language is just a tool) That's what I want to achieve...

Sorry for such a long post, And I would be grateful for your experience on the subject.

share|improve this question

migrated from stackoverflow.com Jun 14 '11 at 20:35

This question came from our site for professional and enthusiast programmers.

    
@Eaves12: You need solid experiences in your main language before easily moving into other languages. Solid experiences here mean actually creating real world applications. No short cut or magic formula. It takes years to achieve that. –  Predator Jun 14 '11 at 18:33

2 Answers 2

What’s missing from your description of learning is the study of working examples.

As a Dr. Dobbs article recently pointed out, K&R C was a brilliant tutorial in part because it teaches syntax by giving complete programs. http://drdobbs.com/tools/229700183?queryText=lax+language

You learn a language or library for a platform by looking at sample code that demonstrates how the parts go together. Then you modify it to try out things.

Studying other people’s usage of the language is at least important as comprehending the syntax.

With a library, it helps to have a diagram of which parts are low and high level layers. You probably need to understand high level layers (windows, apps, files, etc.) and then low level layers when really needed (line drawing, device management, etc.) You need to know what the major concepts are. If you were approaching an API from a reference manual only (say for a platform that hasn’t been delivered) you’re going to need to relate it to past experience and identify the entry points that interest you.

share|improve this answer

Think of a framework as a road map for how to develop your application. A framework provides mechanisms for how different components of your application communicate with each other.

Programmers developing on the PSP don't need to understand the low level technology underneath the API, they can read the API documentation which provides you the basic functionality for doing simple things right away.

If all airplanes had different looking cockpits then a pilot would have to re-learn how to fly every time he got in a new plane, but most cockpits provide the same set of tools for doing common tasks, and they provide a way for you to see the horizon without having to know what calculations it's doing behind the scenes.

The same goes for APIs, in order to draw something to the screen, they need to know the width and height of the screen. The PSP API will provide you with this information using a command similar to getScreenHeight() and getScreenWidth(). Any developer of any language will be looking for commands like that to navigate his way through the learning curve.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.