Yeni bir programcı yetkin oluncaya kadar tek bir teknolojiye odaklanmalı mı? [kapalı]


10

Tamam, bir dostumun bir süredir nasıl programlanacağını öğretiyorum. Çok hızlı bir öğrenen ve şimdiye kadar programlama konusunda oldukça iyi. Ancak düzeltmeye çalıştığım bir "sorunu" var.

İçeri giriyor ve bazı temel bilgileri öğrenmeden yüksek düzeyli programlama yapmaya başlıyor (Tam bir web uygulaması oluşturdu, ancak sayfalandırma veya oturum yönetimini hala bilmiyor).

Bu sorun değil. Yeni teknolojiye (Node.js, MongoDB, EC2, vb.) Atlamaya devam ediyor. Ona kendi seçtiği RDMS (MySQL) hakkındaki bazı temel bilgileri öğrenmesi gerektiğini söylemeye çalıştım, çünkü MongoDB'nin temellerini öğrenmek için bir sürü zaman harcamadan önce (muhtemelen yeni bir şeye geçiyor).

Burada yanlış olan ben miyim, yoksa her seferinde bir şeye odaklanmaya ve gerçekten iyi olmaya mı çalışmalı?


6
Web uygulamasının oturumları ve sayfalandırmayı desteklemesini talep etmek için iyi bir fırsat gibi görünüyor. Bu onun öğrenmesine neden olmaz mı?

Ayrıca hangi tek teknoloji öğrenilmelidir?

@ ThorbjørnRavnAndersen Tek bir teknoloji değil, ama LAMP yığını her gün çalıştığı şey. En azından MySQL, Apache, PHP ve JavaScript ile ilgili iş ayrıntılarıyla ilgili tüm temel / ilgili bilgileri öğrenmesi gerektiğini düşünüyorum.
Brandon Wamboldt

1
O zaman kendi sorunuzu "hayır" ile cevapladınız.

1
Web, veritabanı vb. Gibi birden fazla teknolojiyi aynı anda öğrenmiyor mu? Burada bir teknolojiyi neyin oluşturduğu sınırları nelerdir?
JB King

Yanıtlar:


18

Şahsen, programlamayı öğrenirken farklı teknolojileri ve dilleri örneklemek harika bir fikir olabilir. Bir teknolojiye odaklanmak, onu çok iyi hale getirmenin bariz bir yararına sahiptir, ancak yalnızca tek bir teknolojiyi bilmenin bariz bir dezavantajı vardır.

Ancak bence daha önemli olan daha olumsuz olan, diller ve çerçevelerin genellikle bir ideoloji ile gelmesidir. Programladıkları her şeye yalnızca bir ideoloji uygulayan birçok programcı (belki de çoğu programcı) vardır. Bunun nedeni genellikle bir dilde bir çerçeveyi gerçekten iyi öğrendikleri ve şimdi bu gözlükler olmadan hiçbir şey göremedikleri içindir.

Özellikle programlamayı öğrenen biri için, orada ne olduğunu denemek ve daha sonraya kadar bir şeye odaklanmak için beklemek gerçekten bir sorun olduğunu sanmıyorum. Sonuçta, bir teknolojiyi iyi bilmeden önemli bir şey yazmak zor olacaktır.


2
İkinci paragraf için +1. Farklı dillere, çerçevelere ve API'lara bakmanın, tasarımcıların neden belirli bir dili / çerçeve / API'yi yaptıkları gibi uygulamayı seçtikleri hakkında çok şey öğretebileceğini ekliyorum. Öğrenciye bir bütün olarak programlama ve yazılım hakkında daha derin bir anlayış kazandırmak. En azından imho
Jamie Taylor

+1 Odaklanmayı öğreneceğiniz durumlar, örneğin "gerçek" bir programlama işiniz olduğunda. Ancak, yalnızca bir çerçeveye maruz kalırsanız nasıl iş bulabilirim? CV'nizi doldurup belirli bir teknolojiye önyargısız olmadığınızı gösterebilmeniz için birden fazla çerçeve / kitaplıkta bir şeyler yazmayı öğrenin. ;-) Gerçek bağlam kazandıktan sonra sayfalandırma ve RMDB'ler gibi şeyleri daha sonra öğrenebilirsiniz.
Spoike

@Spoike "Gerçek" bir programlama işi var, bu yüzden onu bu iş için her gün kullandığı teknolojiye odaklamaya
çalışmamın nedeni

1
@RougeCoder: Ona bilmesini istediğiniz kavramları nasıl yapacağını öğrenmesi için ona uygun görevleri verin (sayfa bu dev listeyi filtreleyin, öğeleri filtreleyin, gruplanmış örneklerle diyagram çizin vb.). Eğer böyle bir görev yoksa, o zaman bu bilginin yapışmasını sağlayacak bir bağlam yoktur.
Nisan'da Spoike

1
İnsanlar "işlevsel programlamayı öğrenmek sizi farklı düşünüyor" gibi şeyler söylediğinde BS veya en azından abartı olduğunu düşünürdüm. Anlaşılan, kodunuz üzerindeki etkisini kesiyorlardı. Kodum zaten tamamen farklı ve henüz işlevsel seçim dilim konusunda uzman değilim ya da kod yazma şeklimi değiştirmeye çalışmıyorum . Gerçekten bir göz açıcı.
Steven Evers

5

Bu sorunun her iki tarafında da iyi bir gerekçe var. Birçok farklı teknoloji hakkında " yeterli " bilmek kesinlikle değerlidir. "Bilerek bir az şey farklı teknolojilerin birçok konuda"? Çok değil.

Belirli teknolojiler hakkında derin bilgi sahibi olmak kesinlikle değerli olabilir - eğer onlar için sürekli talep varsa. Belirli bir teknoloji hakkında "bilinmesi gereken her şeyi " bilmek mi? ... büyük ihtimalle aşırıya kaçmış.

Yani, hepsi dengede. Nosql ile harika uygulamalar geliştirirse, neden InnoDB motoru ile MyISAM motoru arasındaki farkı bilmek zorunda kalacak?


InnoDB ve MyISAM arasındaki fark temel olarak işlemlerdir. İşlemleri anlamıyorsa, "nihai tutarlılık" gibi kavramlarla doğru çalışma şansı nedir?
Michael Borgwardt

Pardon? Hiç kimse işlemleri anlamadığını söylemedi ve yazdıklarım ALL'de bunu ima etmedi.
pbr

3

Kısmen katılıyorum. Temel prensipleri bilmesine gerek yok - ama sadece bir şeye oturması ve gerçekten iyi olması gerekmiyor. Kimse bilmiyor.

Bir şeyle oturmak ve gerçekten iyi olmak

Şu anda bir oyun yapmak için C # ve Microsoft XNA ile çalışıyorum. Ben giderken XNA hakkında çok şey öğreniyorum ve zaten C # ile yetkin olduğum halde, bilgim biraz genişliyor (bugün tip parametreleri üzerindeki kısıtlamaları öğrendim ).

Ancak, XNA veya C # 'da' gerçekten iyi 'olmama gerek yok. Eğer projemi şimdi bitirip devam edip bir daha asla kullanmasaydım, tamamen tatmin olurdum ve öğrenimim başka bir yerde devam ederdi.

Prensipler önemlidir

En azından temel prensipleri anlıyorum. C # ve XNA'da bir şeyler yarattığımda, ne yaptığımı anlıyorum - ve yapmazsam, bunu öğreniyorum.

Sayfalandırma yazsaydım, sayfalandırmanın nasıl çalıştığını anlardım. Arkadaşınız biraz sayfa oluşturduysa ve nasıl çalıştığı hakkında bir fikri yoksa, bu bir sorundur. Eğer sayfalandırma oluşturmamışsa, bilmesine gerek yok.

Buradaki sorun şudur: @ $ #! yapıyor ya da nasıl programlayacağına dair hiçbir fikri olmayan bir programcı mı?


İyi puanlar verirsiniz. Sorun şu ki, bazı şeylerle ne yaptığını biliyor ama diğer şeylerle bilmiyor. Örneğin, sayfalama yazdı, parça parça aştım, ama hala anlamıyor. Anlayabildiğini biliyorum, çünkü bu çok basit bir kavram ve çok daha karmaşık şeyler yaptı.
Brandon Wamboldt

Evet ve bu olduğunu bir sorun. Kod yazıyorsa, kopyala yapıştır programcısı olmanın ve ne yaptığını bilmeyen bir programcı olmanın yarısını anlamıyor.
doppelgreener

3

Sanırım başka dilleri deniyor çünkü inşa etmek istediği bir şey var. Her zaman bir dile veya çerçeveye dönebilir ve daha fazla bilgi edinebilirsiniz.

Teoriyi öğrenmek / bir vakıf kurmak ile motive olmaya çalışmak arasında ince bir çizgi vardır.

En azından tek bir dilde kalmadı. Bazen iyiyi kötüye götürürsün.


3

Onun tutumunu bir sorumluluktan ziyade bir varlık olarak görüyorum. Araştırma yapma yeteneği ortalamanın üzerindedir. Öğrenme eğrisi de sığdır. Bir şey öğrenmesini istiyorsanız neden bu özelliklerden yararlanmıyorsunuz?

Meraklı zihni her zaman hareket halindedir, neden ona yön vermiyorsunuz? İlk olarak, sayfalandırmanın neden önemli ve önemli olduğunu söyleyerek başlayın. Bırakın sayfa numarasına sahip web sitelerine ve bunlar olmadan web sitelerine bir göz atalım.

Yaptıklarına yapıcı bir eleştiri vermeye ne dersiniz? "Vay canına harika bir şey yaptınız, ancak optimizasyon ve en iyi uygulamalara vurgu yaparak bu şekilde yaparsanız daha iyi olmaz.

Bence iyi bir uygulama ile kötü bir uygulama arasında bir karşılaştırma yapmak aklını gerçekten canlandırabilir.

Onu kısıtlamayın, sonunda istediği bir şeyi bulacak ve bir süre onunla anlaşacak. Ben senin yerinde olsaydım, ona çok tutkulu olduğu şeyler hakkında birçok öğrenme materyali sağlarım.

Sanırım yukarıdan aşağıya yaklaşımı yapıyor, öte yandan sizden aşağıdan yukarıya yaklaşmasını istiyor


1

Bu neden kötü?

Tam tersine çok iyi olduğunu düşünüyorum! Merak ve öğrenmeye istekli olduğunu gösterir. Dahası, doğru iş için doğru aracı bulmak istiyor! Yetersiz ilk tercih teknolojisine bağlı kalmaktan daha iyidir. ;)

Aslında, ben de tecrübeli bir programcı olarak yapıyorum. Ve ben tavsiye ederim. Yeni bir projem olduğunda davranışlarım şöyle:

  1. keşfetmek (faydalı olabilecek potansiyel teknolojiler)
  2. deneme (umut verici görünenlerle)
  3. tekniklerinizi seçin (veya bilinceye kadar biraz daha deney yapın)
  4. buna bağlı kalın (uygulamanızı geliştirin ve çekin)

Bence bu çok mantıklı.


1

Şahsen, eğer birisi sadece bir teknolojiye odaklanmak zorunda kalırsa, bunun SQL ile birlikte kullanılan C # / Java olması gerektiğini söyleyebilirim.

Bundan, başka herhangi bir teknolojiye uyum sağlayabileceğinize inanıyorum.

Ancak bir kişi şirket ortamına adım atmak istiyorsa, bir teknolojiye bağlı kalmak sınırlayıcı olabilir.

İdeal olarak, bir nesne yönelimli platform, bir mobil platform, bir web platformu ve daha sonra SQL (veya başka bir db ortamı) hakkında çok iyi bilgi.

Ve önce temel bilgiler, aksi takdirde daha sonra takılır!


0

Programlamaya yeni başlayan biri olması kötü değil.

Bazı şeylerin nasıl çalıştığını görecek. Ama ne yaptığını anlamıyorsa, hiç yapmamak daha iyidir.

Ben kendimle bu sorunu vardı ben tüm Java, C, C ++, C #, Phyton, ASP.NET ... vb bilmek istiyorum ama ben hepsini bilemiyorum fark, bu yüzden birkaç şey üzerinde duruldu ve çok daha iyi.

Peki ne yapmalı (ona tavsiye et):

  1. Ne yapmak istediğini düşün
  2. Tüm seçenekleri keşfedin
  3. Size uygun olanı bulun
  4. Öğren
  5. Öğrenmeyi asla bırakma

Yeni bir proje önünüzde olduğunda (tamamen değil) her zaman yeni şeyler keşfedip öğrenirseniz @arnaud ile aynı fikirde olmazdım. Yeni şeyleri tekrar tekrar keşfetmek ve öğrenmek çok zaman alıyor ve bazı projelerin zaman sınırı var. Ancak diğer taraftan basit yeni şeyler öğrenmeniz gerekiyorsa sorun değil: D.


0

Size katılıyorum, bazen belirli bir çerçeve veya teknoloji veya dil hakkında yüzeysel bir bilgi elde etmek kolaydır, ancak tamamlanıncaya kadar gerçek bir dünya gelişimine dahil olmak ve onu korumak için elinden gelenin en iyisini anlamak - tavsiye için gel. Onun tercih edilebilir bir hale tüm esnaf jack, birinin usta yerine sadece tüm esnaf jack, hiçbiri ana . Bunu söyledikten sonra, onu yeni şeyler öğrenmekten vazgeçirmezdim, çünkü açıkça iyi bir coşkusu var.

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.