Gönderen Konu: Programlamaya nereden başlasam?  (Okunma sayısı 92324 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Alco

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2130
  • "Kahraman olmak, dürüst olmaktan kolaydır" Luigi P
    • Sizin Amstrad
Ynt: Programlamaya nereden başlasam?
« Yanıtla #15 : 21 Aralık 2013, 14:30:20 »
Bu iş gerçekten de senin bu dille neler yapmak isteyeceğin sorusunun yanıtına dayanıyor. Yani salt CPC'de birşeyler üretmek için birşeyler öğrenmek başka, günlük hayatında da kullanabileceğin birşeyler üretmek için birşeyler öğrenmek daha başka. Elbette bunların kesişim noktaları da yok değil. Bence C bu kesişim noktasının tam ortasında duruyor. Yani retro platformlarda da işine yarar, günlük hayatta da. Lakin, Ref'in Python konusundaki yorumlarına da katılmamak elde değil. Burada azmini, isteğini, öğrenme kapasiteni-hızını-biçimini, ayırabileceğin zamanını ölçerek kararı verecek olan sensin.

Sonrasında da senin için uygun olan öğrenme metodunu seçmen gerekiyor. Yani;kitaplar, video tutoriallar, vb arasında bir seçim veya düzenleme yapmalısın.

Ben kendi adıma IT veya elektronik alanında birşeyler öğrenmek istiyorsam şunlara başvuruyorum:

Fransızca
----------------------
http://fr.openclassrooms.com
Burada bazıları ücretli olsa da çok fazla kaynak var. Bazı kitapların hardcopylerini de çıkartıyorlar. Ama genel olarak free kaynaklar epey fazla.

İngilizce
----------------------
http://stackoverflow.com
Belli bir aşamadan sonra başın sıkışınca başvurabileceğin önemli bir kaynak.
http://www.dzone.com


Tüm dillerden ve tüm türlerden kitaplar
-----------------------------------------
http://avaxhome.cc

CPC için
-------------
FR: cpcrulez.fr
Satıraralarında CPCWiki halt etmiş dedirtecek bilgiler var. Üşenmeden en eski postları bile okumanı tavsiye ederim

EN: cpcwiki.eu

CCZ80: http://ccz80.webcindario.com/ccz80.html
http://ccz80.foroactivo.com
C kırması enteresan bir dil. İlginç bir deneyim olabilir.


Sonuçta dil bahane eyleme geçmek şahane :)
Alıntı
A common pitfall for beginners is getting stuck figuring out which programming language is best to learn first. There are a lot of opinions out there, but there's no one "best" language. Here's the thing: In the end, language doesn't matter THAT much. Understanding data and control structures and design patterns does matter very much. Every language—even a simple scripting language—will have elements that you'll use in other languages as well and will help you learn. In classes I took to get my degree in Computer Science, I programmed in Pascal, Assembly, and C—languages I never actually got paid to program in professionally. I taught myself every language I've used in my career, reusing concepts I already knew, and referring to documentation and books to learn its syntax. So, don't get hung up on what language to learn first. Pick the kind of development you want to do, and just get started using one that works.
http://lifehacker.com/5401954/programmer-101-teach-yourself-how-to-code


Şu da kodlamaya başlama konusunda enteresan bir deneyim :)
https://medium.com/architecting-a-life/fee8f3ee97a0
http://journeymancourse.com

Çevrimdışı Koray Memmi

  • Retroman
  • ***
  • İleti: 35
Ynt: Programlamaya nereden başlasam?
« Yanıtla #16 : 22 Aralık 2013, 20:59:03 »

Python süper bir dil, işine yarayacaksa hatim etmek her konuda faydalı......... tıpkı amstrad basic gibi. Bence burdan başlanabilir.

http://docs.python.org/2/tutorial/

Biraz inceledim, gerçektende süper gözüküyor. Açıkcası önceden C ve çeşitlerini öğrenmek için başlangıçlar yaptım ama formatları o kadar karışık geldi ki, işin içinde zorunlulukda olmayınca hep bıraktım. Ancak Phyton bu açıdan çok daha derli toplu gözüküyor, yeni başlayanlar için. Birde inkscapede yaptığım bir kaç işlemi 5'te 1 oranında hızlandırabileceğim gibi gözüküyor extension'ı yazabilirsem.
 

Sonuçta dil bahane eyleme geçmek şahane :)
Alıntı
A common pitfall for beginners is getting stuck figuring out which programming language is best to learn first. There are a lot of opinions out there, but there's no one "best" language. Here's the thing: In the end, language doesn't matter THAT much. Understanding data and control structures and design patterns does matter very much. Every language—even a simple scripting language—will have elements that you'll use in other languages as well and will help you learn. In classes I took to get my degree in Computer Science, I programmed in Pascal, Assembly, and C—languages I never actually got paid to program in professionally. I taught myself every language I've used in my career, reusing concepts I already knew, and referring to documentation and books to learn its syntax. So, don't get hung up on what language to learn first. Pick the kind of development you want to do, and just get started using one that works.

Amcam çok mantıklı konuşmuş. Başlayalım bakalım. Geronimoooo :)

Sevdalıyam ben sana, CPC128...

Çevrimdışı nightlord

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 389
    • Night Network
Ynt: Programlamaya nereden başlasam?
« Yanıtla #17 : 22 Aralık 2013, 23:21:30 »
Hali hazırda pekçok güzel kaynak verilmiş. Ben de birkaç tane bizlerin hazırladığı kaynağı bir araya toplayan plazmayı hatırlatayım.

http://plazma-dergi.org

Burada 5. sayıdan itibaren başlayan C++ kursu ve Bilgisayar mimarisi yazılarına bir göz atmanı tavsiye ederim. Bunlar önceden herhangi bir dili bilmediğini varsayar. Ayrıca çeşitli başka platform ve dilleri öğreten tutorialler de var plazma'da. Genel olarak şu ana kadar plazma'dan haberin yok idiyse orada 8 sayıda olan yazı miktarı seni zaten bir süre oyalar.

Benim hep insanlara tavsiye ettiğim bir diğer kaynak Bruce Eckel'in Thinking in C++ kitabı.

http://www.lib.ru.ac.th/download/e-books/TIC2Vone.pdf  (internet archive -ed)

Sonuç olarak dil olayına takılmama konusu önemli. Yoksa hangimize sorsan her birimiz ayrı dil öneririz eminim ki. Programlama öğrenmenin en zor taraflarından biri de, sana önerilen diller, teknolojiler, kitaplar ve metodlar arasından senin üzerinde en iyi çalışanlarını bulmaktır. Bu yüzden de bir miktar deneme yanılmaya hazır ol

Çevrimdışı ozayturay

  • Retroman
  • ***
  • İleti: 76
  • Commodore Forever
Ynt: Programlamaya nereden başlasam?
« Yanıtla #18 : 23 Aralık 2013, 01:16:57 »
Geronimoooo :)

Bu replik Doctor Who'dan ise seninle iyi anlaşıcaz galiba. :)

Bu arada benim favori doktorum David Tennant olduğu için ben "Allons-y" diyorum. ;)
http://www.retrodergi.com - http://www.e-turay.com

* Commodore 64C, 1541-II
* Amiga 500, Cortex Floppy Emu

* XBox (TSOP Flash, XBMC)
* Wii (SoftMod, USB Loader GX)
* PS3 Slim (Rogero Cobra, webMAN + mmCM)
* PS2 (FHDB, OPS2L)
* PS1 (ModChip)
* XBox360 (JTAG, Aurora)

Çevrimdışı Koray Memmi

  • Retroman
  • ***
  • İleti: 35
Ynt: Programlamaya nereden başlasam?
« Yanıtla #19 : 23 Aralık 2013, 10:08:31 »

Bu replik Doctor Who'dan ise seninle iyi anlaşıcaz galiba. :)

Bu arada benim favori doktorum David Tennant olduğu için ben "Allons-y" diyorum. ;)

Evet doktordan ve ailemizin dizisidir kendisi haha :) Açıkcası ben de allons-y'mi geronimo'mu yazayım diye tereddüt ettim, sonra güncel olana karar verdim. İki doktor arasında oldukça kararsızım ama bendede ibre Tennant tarafında gibi. Özellikle Tennant'ın sezonlarındaki hikayeler müthişti. Don't blink'i kim unutabilir, Boe's face'in esasında kim olduğu.. Ohooo şimdi bi baktım da bahsedecek o kadar çok süper bölüm var kı :) Bu senaryoları ne alıp hangi kafa ile yazıyorlar cidden merak ediyorum.
Sevdalıyam ben sana, CPC128...

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2882
  • Advanced User Simulator
    • ae unutmadan
Ynt: Programlamaya nereden başlasam?
« Yanıtla #20 : 23 Aralık 2013, 23:41:18 »

Evet doktordan ve ailemizin dizisidir kendisi haha :) Açıkcası ben de allons-y'mi geronimo'mu yazayım diye tereddüt ettim, sonra güncel olana karar verdim....

O zaman ekleyeyim, "dalek attack" zx spectruma cikan son ticari oyun. Yani speccy'nin sonunu dalekler getirdi :)

Çevrimdışı coze

  • RAAT
  • Retroman
  • *
  • İleti: 63
Ynt: Programlamaya nereden başlasam?
« Yanıtla #21 : 04 Ocak 2014, 07:57:11 »

Sonuç olarak dil olayına takılmama konusu önemli. Yoksa hangimize sorsan her birimiz ayrı dil öneririz eminim ki.

Evet, Nightlord çok güzel bir noktaya parmak basmış, hemen onu yalancı çıkarmamak için (ve biraz Pitoncularla didişmek istediğimden) bende Ruby diyorum.
Ruby, Object Oriented dillerin hasıdır. Çok temiz bir syntax'ı ve müthiş bir ek kütüphane desteği vardır. 2013 yılına ait github proje yaratım istatistiklerini aşağıda bulabilisin : (Big Query ile bu blog postunda gösterilen yöntem ile alınmıştır.)

1   JavaScript   439214
2   Ruby   367925   
3   Java   281631   
4   PHP   210435   
5   Python   170887   
6   C++   131410   
7   C   119421   
8   CSS   100425   
9   Objective-C   63840   
10   C#   61492   

merak edenler için tüm zamanlar sıralaması :

1   JavaScript   966699   
2   Ruby   948120   
3   Java   796632   
4   PHP   554893   
5   Python   504030   
6   C   456979   
7   C++   321511   
8   Shell   174250   
9   C#   139831   
10   Objective-C   133345   

Şu linkte çok güzel bir interactive tutorial bulabilirsin.
Şu adreste de genel bir tutorial var.
Ruby syntax'i çok basit olduğundan hemen dile hakim olabilirsin. Yanlız Ruby yazmak sadece Syntax'a hakim olmakla başarılacak bir şey değildir, Ruby'nin (diğer dillerde de olduğu gibi) kendine has bir kültürü vardır ve bunları özümsemen belli bir süre alacaktır (asla testsiz kod yazmamak, git geçmişini düzgün tutmak gibi) Ama ilk başlarda bunlarla ilgilenmene çok gerek yok.
Yurt dışında çok yaygın kullanılmasına rağmen nedense bizim diyarlarda Ruby çok popüler değil. Bunu ağır microsoft toksidasyonu ve camiamızda GNU farkındalığının az olmasına bağlıyorum. Bizim aramızda da Rubyci bildiğim kadarıyla yok. (Endo'dan biraz ümitliyim ona biraz cezbedici gelebilir :) )

Alıntı
Programlama öğrenmenin en zor taraflarından biri de, sana önerilen diller, teknolojiler, kitaplar ve metodlar arasından senin üzerinde en iyi çalışanlarını bulmaktır. Bu yüzden de bir miktar deneme yanılmaya hazır ol

Yine Nightlord'a bağlayarak bitireyim, misal yazmak istediğin Extension'ı python'da yazman tabi ki çok daha mantıklı olacaktır. Oyun yapmak istiyorsan Gosu'ya bir bakabilirsin. Temel mekanikleri anlaman açısından faydalı olabileceğini düşünüyorum.

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2882
  • Advanced User Simulator
    • ae unutmadan
Ynt: Programlamaya nereden başlasam?
« Yanıtla #22 : 04 Ocak 2014, 12:40:00 »
2013 yılına ait github proje yaratım istatistikleri...

Github'dan istatistik vermek, zaman gazetesinden cemaatle ilgili haber vermeye benziyor sevgili adaşım. Github zaten ruby ile yazılmış, ruby'nin evi. Ayrıca, japonyada olduğun için biraz milliyetçi davrandığını da düşünüyorum :D Ruby tek başına pek tercih edilmiyor gibi, daha çok rayın üzerine konuyor. Hatta görünüşe göre Ruby web için kullanılmasına yol açan raylar olmasa ruby bu kadar popüler olamazdı.

Yani github istatistiklerinde java ve ruby çıkmasından daha doğal birşey yok. Daha genel bir istatistik gerek.

Sana gerçek bir istatistik vereyim:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Kod: [Seç]
Jan 2014 Jan 2013 Change Programming Language Ratings Change
1 1 C 17.871% +0.02%
2 2 Java 16.499% -0.92%
3 3 Objective-C 11.098% +0.82%
4 4 C++ 7.548% -1.59%
5 5 C# 5.855% -0.34%
6 6 PHP 4.627% -0.92%
7 7 (Visual) Basic 2.989% -1.76%
8 8 Python 2.400% -1.77%
9 10 JavaScript 1.569% -0.41%
10 22 Transact-SQL 1.559% +0.98%
11 12 Visual Basic .NET 1.558% +0.52%
12 11 Ruby 1.082% -0.69%
13 9 Perl 0.917% -1.35%
14 14 Pascal 0.780% -0.15%
15 17 MATLAB 0.776% +0.14%
16 45 F# 0.720% +0.53%
17 21 PL/SQL 0.634% +0.05%
18 35 D 0.627% +0.33%
19 13 Lisp 0.604% -0.35%
20 15 Delphi/Object Pascal 0.595% -0.32%

şah mat.

Çevrimdışı coze

  • RAAT
  • Retroman
  • *
  • İleti: 63
Ynt: Programlamaya nereden başlasam?
« Yanıtla #23 : 04 Ocak 2014, 14:30:57 »
İlahi ref :) yani çok ciddi bir araştırma maksadıyla değil daha çok Big Query ile hava atma maksatlı iletime 'Akit' ten alıntı ile cevap vermişsin :) Tiobe index'i programlama dilinin web üzerindeki varlığına göre düzenleniyor anladığım kadarıyla, bence bu popülerlikle ilgili iyi bir kıstas olamaz. Neyse en azından PYPL dememişsin, orada Piton kırk puanla şampiyon !

Yılan sevicilere verecek cevabımız her zaman var. 120 milyon arkamızda :) Neyse konuyu dağıtmadan bir dörtlükle toparlayayım.

Alıntı
Vimde yazdım piton,
bug'ı çıktı biton,
Guido dayı nirdesin ?
Kafam oldu beton

Çevrimdışı Alco

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2130
  • "Kahraman olmak, dürüst olmaktan kolaydır" Luigi P
    • Sizin Amstrad
Ynt: Programlamaya nereden başlasam?
« Yanıtla #24 : 08 Şubat 2014, 12:29:37 »
İki doktor arasında oldukça kararsızım ama bendede ibre Tennant tarafında gibi.
Benim favori doktorum da bu

Rowan Atkinson is Doctor Who - Classic Comic Relief

Çevrimdışı peandoas

  • Retroman
  • ***
  • İleti: 29
Ynt: Programlamaya nereden başlasam?
« Yanıtla #25 : 08 Şubat 2014, 19:42:40 »
Sonuç olarak dil olayına takılmama konusu önemli. Yoksa hangimize sorsan her birimiz ayrı dil öneririz eminim ki. Programlama öğrenmenin en zor taraflarından biri de, sana önerilen diller, teknolojiler, kitaplar ve metodlar arasından senin üzerinde en iyi çalışanlarını bulmaktır. Bu yüzden de bir miktar deneme yanılmaya hazır ol

Bu deneme yanılma konusundan nasibini almış birisi olarak geç bile olsa birkaç ekleme de ben yapayım. 6510 assembly'den sonra bir süre C ile uğraştıktan sonra programlamaya ara vermiştim, hemen sonrasında bir yakınımdan gelen ricayla da PHP öğreniverdim. Benim açımdan şaşırtıcı ama ilk doğru düzgün kod yazabildiğim ve sonunda ortaya işgören bir yazılım çıkartabildiğim dil yine PHP oldu.

İşe şununla başlamıştım: http://tvertne.org/tmp/oop/PHP_101_by_Zend.pdf (bu da güncellenmiş versiyonu: http://devzone.zend.com/6/php-101-php-for-the-absolute-beginner/), sonrasında gerçekten hem çeviri hem de mantık açısından gerçekten kötü birkaç Türkçe kitabı referans kullanarak ilerledim, sonunda da ani bir aydınlanmayla php.net ve google aramaları ile devam ettim (kısacası Amerika'yı yeniden keşfettim). İki bilgisayarlı bir ofiste yazılım mühendisliğinin bütün harikalarından uzak ve OOP'nin yalnızca P'sini düstur alarak iki ayımı verdikten sonra, tamam oldu galiba diyebildim :). Bir kısmı halen çalışan o kodlara utançla karışık bir sempati besliyorum, Skate'nin Zamazingo'larını anımsatan pek çok satırım var açıkçası:).

nightlord'un özellikle kalınlaştırdığım satırına gelirsek ise zaman içerisinde dil/platform/öğrenme metodları arasındaki deneme yanılma kaynaklı gelgitlerin bana çok yararı da oldu. Evet artık programlamayı becerdim dediğim PHP'den C'ye döndüğümde daha önceden anlamadığım ve beceremediğim birkaç konuyu rahatça kodladım (bilhassa for döngüsünü C ile çalışırken kafamın almadığını fark ettim, öncesinde işlevi kavramadan ezbere kuruyormuşum döngüyü diyebilirim). Assembly'de uzun uzun okuyup anlamaya çalıştığım adresleme modları konusu C'de pointerler ile uğraşırken yardımcı oldular. Yine özel bir eğitimde PHP'de debugging anlatılırken "aaa VICE monitor ile yaptığım şey, hımm" deyip hemen konuya dalabilmiştim (o dersten önce debugging ile işim olmamıştı :) ).

Bu kadar uzun yazdığıma göre halen bu dil konusuna takılmışım sanırım :P yukarıdan da zaten yazacağım sonuç çıkıyor, bilhassa ilk defa programlama öğrenmek isteyenlere ben PHP öneriyorum; yukarıda adı geçen dillerin yaptığı pek çok işi gerçekleyebiliyor olsa da platform, kurulum ve kullanım açısından yeni başlayanlar için zorlayıcı olabilir. Temelinden daha fazla bilgim yok ama sanırım Python bu konuda daha iyi olabilir, (Windows'ta) next next next kolaylığında kurulabiliyor ve kafa + göz yormayan basit bir interpreter/editor ile hemen çalışır hale geliyor. Python için şu Türkçe kaynağı önerenler oldu, şahsen bir garanti vermiyorum: www.istihza.com

Kendim şu sıralar arada sırada açıp JavaScript kurcalıyorum, sanki fazla "serbest" bir dil ama http://www.codecademy.com/ sitesinde programlamaya başlangıç için kullanılıyor. (Sanırım web'in C eşleniğine dönüştü bu dil.)

Favori doktorum Tennant'tır :).

Ek: Doktor, JS falan derken asıl vurgulayacağım şeyi unutmuşum. Programlamadan önce nightlord zaten linklerini vermiş ama bilgisayar mimarisi, sayı sistemleri, hafıza konularını anlamadan da olsa birkaç defa okumak inanılmaz fayda sağlıyor, birincisi bu. İkincisi yine bu konu altında da mesajları olan kimilerinin daha önce de sık sık yazmış olduğu gibi "kod okumak" önemli bir ayrıntı. Bir de Ref ilk mesajlarından birisinde dediği gibi; programlama forumda soru-cevap şeklinde öğrenilecek bir uğraş - iş değil diye düşündüğümü ekleyeyim (en azından bu metod benim üzerimde çalışmadı).

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2882
  • Advanced User Simulator
    • ae unutmadan
Ynt: Programlamaya nereden başlasam?
« Yanıtla #26 : 08 Şubat 2014, 21:58:22 »
bilhassa ilk defa programlama öğrenmek isteyenlere ben PHP öneriyorum

php bence de kolay bir dil fakat yeni başlayanlar için önerilebilir mi bilemiyorum.

1. type'lar yok
2. immediate yok
3. sunucu yazılımı gerektiriyor (en azından üzerinde php çalışan bir makine gerek)
4. çıktılar genellikle web sayfası şekline ya da bir dosyaya yönlendirilmek durumunda
5. debugging yeni başlayanlar için problematik

Belki de en iyi seçenek visual basic expresstir.

Herşey içinde, beleş, c#'a direk geçiş imkanı var ve microsoft'un desteği ile gidiyor, nette binlerce kaynak var. Kütüphanede de birsürü kitap var.

Çevrimdışı Alco

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2130
  • "Kahraman olmak, dürüst olmaktan kolaydır" Luigi P
    • Sizin Amstrad
Ynt: Programlamaya nereden başlasam?
« Yanıtla #27 : 09 Şubat 2014, 15:50:48 »
Bu deneme yanılma konusundan nasibini almış birisi olarak geç bile olsa birkaç ekleme de ben yapayım. 6510 assembly'den sonra bir süre C ile uğraştıktan sonra programlamaya ara vermiştim, hemen sonrasında bir yakınımdan gelen ricayla da PHP öğreniverdim. Benim açımdan şaşırtıcı ama ilk doğru düzgün kod yazabildiğim ve sonunda ortaya işgören bir yazılım çıkartabildiğim dil yine PHP oldu.
Bence senin avantajın ya da belki farkında olmadan bulduğun doğru yol; PHP'den ziyade hedef-amaç odaklı yani proje bazlı gitmiş olman. Sadece programlama meselesinde değil, hayata dair diğer konularda da öyle değil midir? Boyunu çok aşmayacak ama seni de biraz zorlayacak bir hedef iyidir. Sonuçta dil bahane, amaç şahane. Bence; o ricada bulunan yakınına teşekkür borçlusun :)

Çevrimdışı Wisdom

  • RAAT
  • Retroman
  • *
  • İleti: 44
Ynt: Programlamaya nereden başlasam?
« Yanıtla #28 : 09 Şubat 2014, 15:51:43 »
Tum cevaplara bakamadim ama benim bu konudaki kisisel gorusum programlama bilmeyen birisinin direkt makine dili ile baslamasinin "en dogrusu" oldugu yonunde. Ogrenilecek kapsamli bir dil, API, framework ya da platform olmadiginda geriye ogrenecek tek sey kaliyor; programlamanin kendisi. Makine dili de bu is icin en uygun arac bence. (Assembly bile demiyorum, cunku o zaman isin icine label'lar, macro'lar ve diger muhtelif higher level kavramlar giriyor.)

Çevrimdışı Alco

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2130
  • "Kahraman olmak, dürüst olmaktan kolaydır" Luigi P
    • Sizin Amstrad
Ynt: Programlamaya nereden başlasam?
« Yanıtla #29 : 09 Şubat 2014, 16:01:08 »
Tum cevaplara bakamadim ama benim bu konudaki kisisel gorusum programlama bilmeyen birisinin direkt makine dili ile baslamasinin "en dogrusu" oldugu yonunde. Ogrenilecek kapsamli bir dil, API, framework ya da platform olmadiginda geriye ogrenecek tek sey kaliyor; programlamanin kendisi. Makine dili de bu is icin en uygun arac bence. (Assembly bile demiyorum, cunku o zaman isin icine label'lar, macro'lar ve diger muhtelif higher level kavramlar giriyor.)
Wisdom, senin bu bağlamdaki yaklaşımın yıllar önce de epey etkileyici gelmişti bana. Beş sene boyunca sadece monitor kullanmak herkesin harcı değil sonuçta :)

Merak edenler için:

http://www.tr-demoscene.info/index.php/topic,1909.msg13211.html#msg13211