How should I get started with programming? Which language should I learn first?

How should I get started with programming? Which language should I learn first?

How should I get started with programming? Which language should I learn first?

I get these questions frequently. 
Keep in mind that I only “got started” programming once, and that was a very long time ago during which I was primarily thinking about which girls I liked (since I was 13 years old). 
But here’s how I think it works, especially for adults coming to programming for the first time:

The best way to get started is to rethink the question to be more pragmatic:


What do you want to make first?

Be specific. 
The answer isn’t “iPhone apps” or “websites”. 
An iPhone app or a website to do what, exactly?

If you don’t have a specific idea that you’re motivated to create, you’ll have a very hard time getting started and plowing through the hard parts. 
And there will certainly be hard parts: you’ll get frustrated, go to Google, find some guidance, bang against it for a while, then finally get it working and experience immense satisfaction for as long as you can go before hitting the next wall of frustration. 
Fortunately, as you get more experienced, you’ll hit those walls less frequently.

If you have a specific idea, the goal of achieving it and the incremental progress along the way will motivate you to keep going. 
If you don’t, every little frustration will be an excuse to give up.

Once you have that specific idea, the other questions become much easier to answer:
 Which language should I learn first? 
 The most platform-native, modern, commonly used language for the kind of thing you want to make. 
 If it’s an iOS or Mac app, use Objective-C. 
 If it’s a web app, use Python with the Django framework, or Ruby with the Rails framework. 
 If it’s a Windows app, use C#.
 Webアプリならば、Python+Django 又は Ruby+Railsを使いましょう

 No language is “too hard” for first-timers. 
 Programming is naturally complex and unforgiving, and that’s going to be intimidating at first. 
 You’ll face the same challenges as a new programmer in any language.
 How should I get started? 
 Search Google for a basic tutorial or find an entry-level book on how to make the kind of thing you want to make in your chosen language. 
 Do a few tutorial projects, learn how to modify them to get a bit more comfortable with the language, then start your own project and deal with each wall as you hit it.
If you find that you truly enjoy programming, you’re very lucky: it’s a highly fulfilling hobby and can become a lucrative career if you want it to be.

Good luck.