İlk Programlama Dili Olarak Birleştirme? [kapalı]


12

İnsanlara Meclis'e (bazı varyantları) ilk programlama dili olarak öğretmenin ne kadar iyi bir fikir olduğunu düşünüyorsunuz? Örneğin, Java veya Python'u öğrenmekten çok daha fazla çaba harcayacaktır, ancak makine "programlama birinci günden" (en azından birçok üst düzey dile kıyasla) az çok iyi bir anlayışa sahip olacaktır. Ne düşünüyorsun? En azından ekstra çaba göstermeye hazır olanlar için gerçekçi bir fikir mi? Avantajlar ve dezavantajlar?

Not: Ben öğretmen değilim, sadece merak ediyorum


5
Yazılım mühendisliği / geliştirme değil bilgisayar bilimi okuyan insanlar için daha uygun olduğunu düşünüyorum
Imran Omar Bukhsh

1
@Imran Prensipte hemfikirim, ancak düşünebildiğim her üniversite düzeyindeki programın Bilgisayar Bilimi alanında çoğunlukla Yazılım Mühendisliği'nde çalışmaya devam eden insanlar tarafından kazanılan dereceleri var. (Bu sorunun örneğin bir lise anketi için değil, programlama kariyeri için ciddi bir temel olduğunu varsayıyorum)
G__

7
@Imran - Bunu biraz şaşırtıcı buldum. Bilgisayar bilimi kesinlikle matematik ve teoriye daha yatkın mı? Kümelerle, soyut cebirlerle ve asimptotik gösterimle, bit-fiddling ve sonsuz hareketlerin sonsuz tekrarlarını yazmaya göre daha fazla ilgilenir.
Steve314

2
Bilgisayar Bilimi kesinlikle özetler içerir, ama aynı zamanda bazı yönlerden çok "donanıma yakın". Bir zamanlar Bilgisayar Bilimi konferansı olan LICS'e katıldım. Çeşitli sıralama algoritmalarının veri konumu hakkında, algoritmaların pratik verimliliğinin incelenmesine teorik temeller verdiğini düşündüğümü hatırlıyorum. Montaj ile ilgili olarak, şahsen bazı teorik hesaplama modellerine (Turing makineleri, sayaç makineleri ...) benzer olduğunu düşünüyorum
Joh

1
Her programcı en azından montajın nasıl çalıştığını okumalıdır, IMO. Bana çok fazla fikir verdi ve genellikle alabileceğiniz krom kadar yakın değilim. Jeff Duntemann'ın Meclis Dili Adım Adım yeni başlayanlar için eğlenceli bir okuma.
Erik Reppen

Yanıtlar:


14

Montaj kodu ile yeni bir programcıya ilham vermek zor olurdu. Dinamik bir merhaba, kullanıcı web sitesi daha az çaba ile çok daha havalı. Temel derslerin aynı olduğunu söylemiyorum, ancak bir giriş kursunun geniş bir ilham verici içeriğe sahip olacağı, aksi takdirde ikinci bir kurs olmayacak.

Erken programlama kurslarımın Scheme'de öğretildiğini hatırlıyorum ve çoğunlukla kolayca bir .exe'e derleyemediğim ve programımı çalıştıramadığım için sinirliydim (MS Visual Basic'in programlamanın sonu olduğunu düşündüm). Yıllar öncesine kadar ne kadar güçlü bir araçla oynadığımı anlamadım. İlk başta biraz daha pragmatik bir şey yaşarsam daha çok takdir edip bu dersleri daha iyi kazanacağımı düşünüyorum.


20
Bir LED yanıp sönmesi ve motor hareketi yapmaktan çok daha fazla hayran olan birçok öğrenci gördüm.
whatsisname

1
@Whatsisname +1, elektronikte yakalanmadan yapılabileceği sürece güzel ve etkileyici bir demo yapar. Tabii ki, "sürücü" eğitmen tarafından sağlanan bir kara kutu olsaydı, daha yüksek bir dil ile de yapılabilir.
G__

1
Çok sayıda yeni programcı VIC20, C = 64 ve benzeri makinelere montajdan ilham aldı.
Gaius

2
@Gaius İlk başta değil! Bu makineleri açıyorsunuz ve temel bir tercümantasınız. Meclis adil bir deneyim ve temel ne yapabilir sınırlarını isabet sonra geliyor ...
G__

1
@whatsisname ancak montaj öğrenmek zorunda kalmadan LED'leri yanıp sönmek ve motorları hareket ettirmek için Arduino gibi bir şey kullanabilirsiniz
Ken Liu

12

Bence bu hem Yazılım Mühendisliği hem de CS öğrencileri için korkunç bir fikirdir ve genellikle programlamaya elektronikten daha fazla ilgi duyan herkes.

Bu olabilir yapılabilir, ama buna anlamına gelmez gerektiğini yapılabilir. Gün içinde ev bilgisayarlarıyla gerçekten harika şeyler yapmanın yolu önce montajı öğrenmekti. Bunun nedeni erken donanım kısıtlamalarıydı - daha üst düzey diller yeterince güçlü ve hızlı değildi. Günümüzde, daha üst düzey bir dille, daha kısa sürede çok daha serin şeyler yapabilirsiniz.

Basit bir oyun için hızlı bir prototip yazmak ve bir algoritmada varyasyonlarla oynamak ya da kayıtlar ve düşük seviye şeyler ile mücadele etmek daha ilginç geliyor?


3
Bir piyanist olarak, bazı şarkılarla hemen atlamayı daha ilginç bulabilirdim, ancak iyi olmak için arpejler, ölçekler vb. gibi) piyano içten dışa nasıl çalışır bilmek gerekir. Zanaatınızı ne kadar iyi bilmek istiyorsunuz.
John

10
@ CashCommons'ta John: Kötü benzetme. Montajcı ile başlamak çekiçleri, klavyeyi, ağırlıkları ve amortisörleri çalıştırmak gibidir. Ve sonra siyah-anahtar, beyaz-anahtar işi açıklamak için müzik teorisine (beşinci daire) geçiyoruz. Daha sonra bir ölçek çalmadan önce daha fazla müzik teorisine geçiyoruz.
S.Lott

3
@ S.Lott: Ehhhhh ... tam olarak satın alma. Transistörler hakkında endişelenmeden montajda "merhaba dünya" tipi bir program yazabilirim. Programcı olmak için çip tasarımcısı olmak gerekmez. Bahsettiğiniz bilgi, sadece imleçle oynamakla ilgili bir piyano inşa etmenin veya onarmanın temelleri olacaktır.
John

3
@ CashCommons'ta John: "bir piyano inşa etmek veya onarmak". Montajcı ile benzerlik budur. Assembler Önemsiz bir "merhaba dünya" olabilir yazılabilir, ama sadece işletim sistemi API çağrıları var - aslında tüm assembler korkunç ayrıntı göz ardı ediliyor. G / Ç sürücülerini yazmak için birleştirici gereklidir. Çekiçler ve amortisörler de aynı şekilde yapıp bakım yapma, performans göstermeme ile ilgilidir.
S.Lott

1
@ S.Lott: Hmmmm ... Sanırım belirli talimat seti çipe bağlı, değil mi? İyi bir nokta.
John

7

Bunun korkunç bir fikir olduğunu düşünmüyorum, ama bu öğrencilere ne kadar karmaşık bir program vereceksiniz? Montaj çok daha fazla iş gerektiriyor. Onları çok temel şeyler için başlatmak ve daha sonra daha düşük seviyede çalışmak için takdir ettiklerinde, daha kolay çalışacak bir şeye taşımak uygun olabilir. İlk kez öğrenciler bazen kafalarında fikir alırlar, bir sonraki Halo veya MS Office veya AutoCAD veya bir şeyi kodlarlar ve basit bir montaj diline ne kadar iş girdiğini gördüklerinde korkabilirler, bu yüzden netleştirin montajdan daha iyi şeyler olduğunu ve kavramları gördükten sonra bunları buna taşıdığınızı Ayrıca C gibi başka bir şeyle eşzamanlı olarak öğretmeyi deneyebilirsiniz.

Ayrıca hangi montaj dili? MIPS'nin çalışmak nispeten kolay olduğunu hatırlıyorum ve bence bir emülatörde çalışıyor, bu yüzden gerçek makinede sorunlara neden olma tehlikesi yok , ancak şimdi bundan daha iyi araçlar olabilir.

Bu olabilir doğru yaptıysa iyi çalışır. Sadece dikkatli ol...


Sorunun karmaşıklığı için +1. Benim oyum, daha üst düzey dil uygulamalarına karşı birkaç meclis uygulamasını karşılaştırmak olacaktır. Ve belki x86 yerine bir emülatörde örneğin 68000 montajcı kullanın - x86 / amd64 montajcının nasıl geliştiğini bilmiyorum, ancak 68000, 8086'dan daha kolay ve daha kolay çalışıyordu. Ayrıca belki de dikkate değer - LLVM ile elde edebileceğiniz gibi bir sanal makine montajcısı. Gerçek montajcı ile aynı değildir, ancak birçok benzer prensibi paylaşır ve muhtemelen daha önemlidir.
Steve314

ASM'nin C ile eşzamanlı olarak öğretilmesi oldukça iyi bir fikir gibi geliyor
Anto

@ Steve314: x86 toplayıcısında değilim, ama 8086'dan daha karmaşık bir hale gelmiş gibi görünüyor.
David Thornley

@David - Öyle bekliyorum, ama bazı yönlerden daha basit olabilir. 8086 gün içinde, mevcut adres modları aralığı, hangi özel kaydı kullandığınıza ve talimatlara bağlıydı. 68000'de, (çoğu amaç için) veri kayıtları ve adres kayıtları vardı, her tür oldukça eşit bir şekilde kullanıldı, bu-bir-indeks-veya-a-baz-işaretçi-ya da ne sıkıntısı yok. Zamanla, belki değişti? 68000'in ayrıca daha fazla kaydı vardı ve bazı bellek giriş ve çıkışlarından tasarruf sağladılar. Her neyse, temel montajcı ilkelerini almak için SIMD öğelerini öğrenmenize gerek yoktur.
Steve314

@David - Bölümlenmiş adreslemeyi unuttuğumu (bastırdığımı) inanamıyorum. Bu, üst düzey bir dilde yeterince kötüydü. Şimdi yeniden bölümlenmiş adresleme var, ancak sanal bellek vb. İle ilgili farklı bir şey, uygulama düzeyindeki programcıların endişelenmesi gerekmiyor.
Steve314

7

Meclis elektronik okulunda öğrendiğimiz ilk dildi (1900'lü yıllarda) ve doğal bir seçim gibi görünüyordu. Derslerimizden ayrık bileşenlerden, direnç-transistör mantığına, mantık kapılarına, entegre devrelere, işlemcilere ve montajdaki programlamaya kadar yolumuza devam ettik. Bu sınıflardaki bir çok öğrenci daha önce hiç bir dilde programlamamışlardı ve doğrudan seçtiler.

Bu yüzden öğrenci için doğru temel atılırsa, montaj ilk dil için iyi bir seçim olabilir . Ancak amacı bir uygulama veya Web geliştiricisi olmak isteyen herkes için derleme muhtemelen çok düşük bir başlangıç ​​noktasıdır.


7

Kesin olan bir şey var, eğer önce Meclisi öğrenen insanlar bunu yaparlarsa, şaşırtıcı programcılar olacaklar.

Bu bana nasıl araba kullanacağımı öğrendiğimi hatırlatıyor. Annem ısrar etti

Güven kazanana kadar otomatik bir arabada öğrenin ve daha sonra manuel arabalarımızı sürün.

Akıl yürütme, bir anda olmam gerekenden daha fazla dikkatimi dağıtmamı istemedi.

Bunu nasıl programlanacağını öğrenmek için uygulayın, her şeyi bir kerede bir öğrenciye atmak gerekli mi? Bir değişkenin ne olduğunu ve aynı zamanda ne tür bir kayıtta ne kadar veri depolayabileceklerini öğrenirler.

Sınıfımın yarısından fazlası meclis sınıfımızda başarısız oldu ve bu, o zamanlar 2 yıldan fazla bir süredir programlama konusunda bilgili olduğunu düşünen bir grup insandı.

Kişisel tercihim, eğer her şeyi tekrar öğrenmek zorunda olsaydım, benim için olabildiğince iyi bir dille başlamak olurdu. Sonra, öğrenirken, daha alt düzey dillere doğru geri git.


1
Bence bu iyi ve sağlam bir tavsiye. Bir noktada, bitlerin ve baytların ve işlemcinin onlarla ne yaptığını bilmek önemlidir, ancak onlarla başlamak son derece boşa giden bir uğraştır, çünkü yakut ve python gibi yeni başlayanlar için mükemmel olan ve mükemmel yazılım mühendisliği ilkelerini teşvik eden dillerimiz vardır.
davidk01

1
Eğitmenin montaj dili sınıfını öğretmek için yıldızdan daha az bir iş yapma olasılığını düşündünüz mü?
John R. Strohm

Bence inanılmaz bir iş çıkardı.
CrazyPenguin

3

En azından ekstra çaba göstermeye hazır olanlar için gerçekçi bir fikir mi?

Hayır

ancak makine iyi anlaşılabilir

Bu neden avantajlı? Bunun nasıl bir değere sahip olabileceğine dair bir örnek veya ipucu verebilir misiniz?

Avantajlar ve dezavantajlar?

Avantajları: Yok.

Dezavantajları:

  • Bayraklar ve durumlar ve kayıtlar ve karmaşık bellek adresleme şemaları ve I / O cihazları ve DMA ve kesmeler ve saat döngüleri ve şeyler hakkında rastgele bir trivia karmaşası. Bunların hiçbiri modern VM tabanlı dilleri ve bilgisayarları anlamaya yardımcı olmaz.

  • Bilgisayarların gerçekte uygulandığı gerçek sorun çözmeyle olan bağlantıyı kesme.

  • Son kullanıcılardan boşanma ve çözmeleri gereken pratik veri ve işleme sorunları.

  • Makine ve sanal makine ve derleyici ve yorumlayıcı ile dünyayı kaplayan tüm kaplumbağa yığınlarının gereksiz yere akması.

  • Pek çok ayrıntılı "bu, bir 'nesnenin' fiziksel olarak sonunda ortaya çıktıkları üst düzey dilde uygulanmasıdır.

  • Sonunda ulaştıkları üst düzey dilde çok sayıda ayrıntılı "yöntem işlevleri bu şekilde gönderilir".

  • Bir çok "bu 80386 için geçerli değildir, ancak 80586 yongaseti için geçerlidir" açıklamaları.

  • Bir ASM programının birisinin faydalı olmasına benzeyen her şeyi yapmasını sağlamak için birçok düşük seviyeli OS API çağrısı.

İlk programlama dilinin amacı yonga setinde ustalaşmak değildir.

İlk programlama dilinin amacı

  1. Bilgi işlem hakkında nasıl düşüneceğinizi anlayın.

  2. Yararlı veri işlemenin nasıl yapıldığını anlayın.

  3. Bir şeyi nasıl yapacağınızı anlayın. Tasarım - kod - testi.


1
@ S.Lott - Elbette, asıl sorumun konusu bu değil, ancak daha üst düzey dillere gitmeden önce bunlara sahip olmak avantajlı olabilir . Beni yanlış anlamayın, geçerli bir noktaya değindiniz.
Anto

3
-1 Dezavantajlarınızın çoğunu avantaj olarak görüyorum. Yukarıdan kullanmadan önce düşük seviyenin nasıl çalıştığını bilmek daha iyidir. Vakıflar önemlidir.
Orbling

1
Bir programlama dili olarak bir araya getirerek, veri yapısı, mantık ve daha düşük seviyeli temellere daha üst düzey dillerinden daha iyi maruz kalmanızı sağlar. Her ikisinin de bir yeri vardır, montajcı, çok karmaşık bir şeye ulaşmaya çalışmadığınız sürece, üst düzey dillerden daha kolay anlaşılabilir. İnsanlar önce karmaşık şeyler yapmaya çalışmamalıdır.
Orbling

4
Montajcının avantajı, gerçek bir bilgisayarın nasıl çalıştığını göstermesidir. Bilirsin. Her şeyin üzerinde çalıştığı şey .
Paul Nathan

1
@ S.Lott - Hayır, ancak bu, topladığınız eski bilgilerin çoğunu çok iyi kullanabileceğiniz ve zamanla yeni bilgiler ekleyebileceğiniz anlamına gelir. Bakın, Python gibi üst düzey diller zamanla yeni sürümlerle geliyor, ancak eski bilgi hala kullanılabilir (ve aslında Python v3 ile geriye doğru uyumluluğu kırdı)
Anto

3

Bir müfredat tasarlama görevim olsaydı, ilk dönem aynı zamanda iki dersim olurdu: asm + temel bilgisayar organizasyonu / mimarisi ve Scheme'de kurulan SICP tabanlı bir ders. İkinci dönem, Şema'daki veri yapıları ve temel algoritmalara odaklanacaktır.

İkinci yıl, modern yazılım tasarımına (OO tasarımı, bazı fonksiyonel tasarım, yazılım mühendisliği, sürüm kontrolü, vb.) Odaklanan Delphi, C ++ veya C #'dan birini kullanan bir yıllık bir proje olacaktır.

Etki, hem soyut hem de pratikte yoğun bir temel vermek ve üçüncü ve dördüncü yıllarda derinlemesine derslere yol açmak olmalıdır.


3

Eskiden TA bilgisayar bilimi derslerine başladım ve bence bu kötü bir fikir.

  1. Meclis hem mantığı (bu işe yararsa) hem de kavramlar ve sayılar arasında çok zor çeviriler kullanır. Giriş CS öğrencileri genellikle sadece mantıkla (döngüler, eğer / başka, boole ifadeleri) mücadele ederler ve hangi sayıların hangi mantıksal ifadeler anlamına geldiğinden endişe etmeden önce gerçekten bununla uğraşmaları gerekir. Üst düzey dilleri kullanmak, daha önce böyle düşünmek için bir nedeni olmayan öğrenciler için bu mantığı özetler.
  2. Giriş CS sınıfları, yalnızca CS ile devam edecek CS ana dallarında alınmaz. Genellikle, bir seçmeli ders için ilginç bir konuyu "gezen" diğer mühendislik dallarında ve binbaşı olmayanlar tarafından da alınırlar. Derleme, sert çekirdekli, kararlı CS öğrencileri için bir temel için mükemmeldir, ancak ana dal düşünen veya ana dalını asla almayacak, ancak alana giriş yapmak isteyen öğrenciler için programlamanın sık sık ne olduğu hakkında çok iyi bir genel bakış vermez. ; ne de çoğu alanda kendi başına çok yararlı değil.
  3. Üst düzey diller, gerçek programlama çalışmalarının çekirdeğini daha şeffaf hale getirir. Montaj bazı temel temel konulara - temel bellek kavramları, temel performans kavramları, vb. - isabet eder, ancak günümüzde daha önemli olan sürdürülebilir, okunabilir bir tasarım yaratmaya gerçekten imkansızdır, IMO. Erken öğrenciler genellikle eski moda "Gerçek Programcılar kimsenin başa çıkamayacağı bir kod yazarlar" gibi görünüyor ve daha üst düzey bir dil öğretmek, kodlamanın sadece parlak olmakla ilgili değil, işbirlikçi bir görev olduğunu öğretmeye yardımcı oluyor.

Bunu söyledikten sonra, montaj / bilgisayar donanımının çok erken bir sınıf olması gerektiğini düşünüyorum - ideal olarak, ana dalın ilk çeyreği. Öğrencilerin kemerleri altında bir üst düzey dil edinmelerini sağlayın, ardından veri yapılarına geçmeden hemen önce düşük düzeydeki donanım öğelerine atlayın - ideal olarak bellek yönetimi gerektiren bir dilde.


Çok iyi dedi - katılıyorum. İlk dersin noktaya gelmesi, öğrenilen becerilerin uçtan uca yararlılığını göstermesi ve hayal gücünü ateşlemesi gerekiyor: "Tanrım! Programlayabilir miyim? Şimdi bu yeni yetenekle başka ne yapabilirim ..." Ayrıca, montaj dili için en uygun zamanın bir üst düzey dilden sonra olduğunu kabul edin. Bu, bilgisayarın gerçekte nasıl daha üst düzey şeyleri anladığına "kaputun altına" bakmayı motive eder. Daha üst düzey bir dilden sonra ilk kez montaj dilini görmek başka bir güçlü etki bırakır: öğrenci elektronik, cips, sensörler vb.
İle

3

Meclis BASIC'ten sonra ikinci dilimdi. Ancak, öğrenirken farklı bir zamandı. Commodore 64'ümde başka diller de mevcuttu, ancak herhangi bir şeyin hızlı görünmesini istiyorsanız veya bir seferde birden fazla şey yapmak istiyorsanız, montaj dilini ve kesintilerle nasıl çalışacağınızı öğrenmeniz gerekiyordu. Commodore'a bir pencere sistemi veren Grafik Ortamı İşletim Sistemi (GEOS) de tüm montajdı. Şimdiye kadar gördüğüm en iyi montaj API'sı oldu. Ayrıca, kodunuzu biçimlendirebileceğiniz yerlerde kullandığım tek platformdu. Doğru, italik ve farklı yazı tipi boyutlarını kullanabilirsiniz - yorumları okumak için yararlı olduğu kanıtlanmış bir şey.

Commodore'un nasıl çalıştığı hakkında çok şey öğrendim, ancak Motorolla çipinin çok basit bir opcode seti vardı. 255'ten az opcodu birbirinden ayrı tutmak çok zor değil. Ben değil cips ve sistem mimarileri çok farklıydı Intel 8086 için programlamaya Motorola 6510 çip üzerinde benim deneyim güçlendirmeye mümkün. Aynı problemin Amiga'nın Motorolla 68000 yongasına da yükseldiğimi düşünüyorum.

Kısacası, Meclis'in iyi bir ilk dil olması gerektiğini söyleyen herkese gönülden katılmıyorum. İşte nedeni:

  • İçsel bir yapınız yok, bir uygulamada işlevselliği bozmanın yaygın bir yolu yok. Üst düzey dilleri bu kadar kullanışlı kılan şey budur.
  • Bir kitaplıktaki bir yöntemi doğru şekilde çağırmak gibi işe yaramaz şeyleri bilmelisiniz. Kütüphane C tarafından oluşturulduğunda, yığının manipüle edilmesi (her şeyin doğru sırada olması daha iyi) anlamına gelir, ancak başka bir dilde kayıtların ayarlanması anlamına gelebilir. Bunların hepsi bir derleyici veya yorumlayıcı tarafından halledilir ve bunları optimize edemezsiniz.
  • Kodunuz olabilir değil başka çip üzerinde kullanılabilir ve çok büyük olasılıkla bir farklı donanım platformu ile kıracak.

Bu günlerde montaj dili, el yapımı montajın derleyici tarafından üretilen montajdan daha hızlı olacağı belirli sonlu eylemleri hızlandırmak için kullanılır. Uygulamanın ana yapısı C, C ++, vb. Gibi daha yüksek bir dilde yapılır. Derleyici yazmaya başlarsanız, elbette montaj programlama çok önemli hale gelir. Kaçımız bunu yapıyor?


1

Lise son sınıfta toplandım. Zaten Java, Pascal, C ve C ++ 'da ders almıştım ve bunlardan hiçbirinde yetkin değildim ve gerçekten Meclis'e emildim - derste topluluk kolejinde uzaktan eğitim programında yer alan tek kişi, bir ya da iki ay önce derleyicinin benim için çalışmasına bile izin vermedi.

İlk olarak montaj dilini öğrenmenin gerekli veya akıllıca olduğunu düşünmüyorum, ancak montajın ilk birkaç haftasında size öğrettikleri şeyleri, işlemcinin nasıl çalıştığını ve bazı hata ayıklama hilelerini öğrenmek akıllıca. Bir neofit olarak çok ilginç ve aydınlatıcı bulduğum şeyler.


0

Neden bir fikrin ne kadar iyi olduğunu ona da öğreteceğiniz kalabalığa bağlı olmasına rağmen neden yapılamadığını anlamıyorum. Nihai hedefi bir web geliştiricisi olmak olan biri muhtemelen sıkılır ve Python, Ruby, vb. Bir şey yaratmanın anında tatminini vermeyeceği için bırakabilir. Sonunda donanım veya diğer düşük seviyeli projelerde çalışmak istiyorlarsa, o zaman tamam bir başlangıç ​​olacağını düşünüyorum (mantıklı olması için yeterince bilgisayar mimarisi arka planı vermeniz koşuluyla). İnsanların gelecekte daha iyi kod yazmalarına yardımcı olabileceğini düşünüyorum, ancak başlamak için diğer dilleri öğrenmekten daha zor olacağını düşünüyorum.


0

Meclis dili sadece aşağıdaki gibi şeylere odaklanırsanız mantıklı olacaktır:

  • Bellek yönetimi teknikleri
  • HW IO (özellikle zamanlama ve performansla ilgili zorluklar)
  • CPU özellikleri - özellikle güvenlik özellikleri

Bu alana odaklanmadan, kötü organizasyon alışkanlıklarını öğretme eğiliminde olacak basit bir dil. Makine düzeyinde kodlama, araçların nasıl çalıştığını bilmek için araç kitinde olması iyidir, ancak iyi bir ilk dil değildir.

Daha üst düzey bir dil ile ilgilenirim. Sonra C ++ öğretmek; daha sonra C ++ derleyicilerinin derleme kodunu nasıl oluşturduğuna odaklanarak birleştirme. V-tabloları ve diğer üst düzey dil özelliklerini anlamak, geliştiricinin dillerin gerçekten nasıl çalıştığını düşünmesine yardımcı olmak için 'sihir' altındaki bilgileri doldurmaktan çok yol alacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.