Bir dilin standart çerçevesini / API / işlevselliğini nasıl öğrenirsiniz? [kapalı]


14

Kodlamayı anlıyorum. Düzenli kullandığım dillerin temellerini nasıl ele alacağımı biliyorum. Biraz yukarıda temel düzenli ifadeler yazmayı biliyorum, veritabanlarıyla konuşabilirim, girdi kabul edebilir, çıktı alabilir, dosyaları tutabilirim, vb. Temel kodu tükürmek için temel yeteneğimin az çok eminim orta derecede karmaşık bir program.

Benim sorunum asla yeterli gibi hissetmemem. Dilimin standart kütüphanesinin sadece küçük bir kısmını bildiğimi hissediyorum ve hepsini anlayana kadar, en azından geçerken, onu kullanarak bir iş bulmaya bile hakkım yok. Ben sadece (topluluk / genç / whathaveyou) kolejden çıkıyorum ve arkadaşlarım sektörde iş buluyor, ama yine de sahte ya da postacı gibi hissediyorum ve yeterince iyi olmadığımı hissediyorum.

Kodlayabileceğime emin olmak için kullanabileceğim "yeterince biliyorum" için iyi bir işaretleyici var mı? En azından bir FizzBuzz'ı bir şeyler için başvurmanın uygun olduğuna dair bir gösterge olarak kodlayabildiğimi düşünmeli miyim? Bu standart kitaplıklar, çerçeveler ve / veya API'lerden daha fazla bilgiyi nasıl kolayca öğrenebilirim? Düzenli olarak kod yazıyorum, kitap okuyorum ama bilgim hala çok sığ geliyor.

YARDIM!


3
ne kadar çok öğrenirsen o kadar az bildiğini anlarsın. Çok iyi bir soru için +1.
devnull

Bu şeyin ezberlemeye değer olduğundan emin değilim. Sonuçta, aranabilir bir belge, akıllı IDE'ler vb. Var. Beyninizi önemli şeyler için, temel bilgi için, tüm bu uçucu API'leri dışarıda tutmak için kullanmak çok daha iyidir.
SK-logic

I feel like I only know a small portion of the standard library of my languagebu cümle resmi C ++ sloganı olmalıdır .
ZJR

Yanıtlar:


8

Benim tavsiye arkadaşım:

ikili düşünmeyi bırak (0/1, bilmemek / bilmemek, okuma yazma bilmeyen / okuryazar) ve bulanık düşünmeye başlayın (bir dereceye kadar biliyorum). Hepimiz bir şey biliyoruz ve bir dereceye kadar. Bilgi bir sürekliliktir ve herkes en okuma yazma bilmeyen kişi ile en bilgili, sofistike adam arasında bir yere yerleştirilir. İşi yapabilirsiniz, ancak sizin seviyenizde ve altında . Kural budur. Korkma. Çerçevenizin her şeyi öğrendiğiniz bir gün beklemeyin ve IMHO o gün hiç gelmeyecek. 20 yıllık deneyime sahip geliştiriciler bile yeni şeyler öğrenmek için okumaya devam ediyor. Programlama o kadar geniştir ki hepsini almamalısınız (ya da yapamazsınız).

Çalışma ortamına dalın ve korkmayın. Hepimiz bir şey yapamayacağımız günler geçirdik. Bu bir suç değil. Bu bizim işimizin bir parçası. Bilmiyorsunuz, öğreniyorsunuz, işi yapmaya çalışıyorsunuz ve işiniz bitiyor.

Şimdi sahip olmanız gereken şeyin daha fazla bilgi olmadığını düşünüyorum. Aksine, bu sadece kendine güven.

İyi şanslar


Ben tüm bulanık bilgi ve bazı detaylar JIT-Öğrenim olsun. Sadece kendimi nasıl bulacağımı nasıl bilmem gerektiğini bilmiyorum. Gerçekten önemli bazı şeyleri tamamen kaçırdığımdan endişeleniyorum.
Throwaway

2

Burada yanlış soruyu sorduğunuza inanıyorum ve bana biraz güvencesiz psikolojiye izin verirseniz, bunun nedeni biraz kendinden şüphe ve düşük özgüvene maruz kalmanızdır.

Kendinizi başkalarıyla karşılaştırmayı bırakın

Her şeyden önce, kendinizi diğer programcılarla geniş bir düzeyde karşılaştıramazsınız. Şu anda bakabileceğiniz rock yıldızlarının bile muhtemelen problemleri vardır (özensizlik, Şeyleri Yapmanın Bir Başka Yolu ve tutum sorunları), bu yüzden onlarla karşılaştırıp karşılaştırmayacağınız konusunda endişelenmeyin. Bunun yerine, yaklaşımınız olabildiğince çok sayıda mentor edinmek, mümkün olan tüm bilgileri toplamak ve uzmanları izleyerek ve taklit ederek daha iyi olmak olmalıdır.

Öğrenmek için öğren

Ayrıca, genel olarak daha iyi bir programcı ve öğrenen olmak için en iyi yaklaşım, belirli şeyleri öğrenmek ya da hafıza ile anlamak değildir. IMO, ezber ezberleme en düşük öğrenme biçimidir. Bu, Input-> Process-> Output'un önemli "işleme" adımını eksik olan bir program gibidir. Kendinize sorunuzda bahsettikleriniz gibi kavramlar öğretin. Programlamaya ilişkin geniş anlayış, en fazla değeri sağladığınız yerdir. Bildiğiniz paradigmalarda yeni bir dil öğrenmek, problem çözmeyi öğrenmeye kıyasla cakewalk'tır.

Ve şimdi, senden sadece biraz daha yaşlı birinden kötü tavsiyeler için

Genç bir adam olarak yaptığım en büyük hatalardan biri, yeterince iyi olmadığımı varsayarak ve zamanımın ve yeteneğimin zaman ve paralarına değmediğini varsayarak herkesin kararlarını almamdı. Yeteneklerimi ve yeteneğimi sürekli anladım, o zamanlar olsa da seyrek. Bu büyük bir hataydı.

Anlamanız gereken şey, orta derecede iyi bir programcı bile günlük joe ortalama bir sihirbaz gibi görünüyor. Senden nefret edebilirler, her zaman yerel bir nerd'e bilgisayarlarını nasıl açacaklarını sormaktan bıkabilirler, ancak ne kadar önemsiz ve basit görünse de, ne yaptığınıza dair anlayış ve anlayıştan yoksun oldukları için imkansızdır. onlara.

İnsanlar size zamanınız, yetenekleriniz ve enerjiniz için ÖDEMEZ. Endüstrimizde, sadece bir koltukta oturabildikleri ve (tartışmalı olarak) temel programlar yazabildikleri için öldüren yeterince korkunç programcılar var. Başarı yoluyla biraz özgüven geliştirerek kartlarınızı doğru oynayın, konuşma ve beden dilinizi uygulayın, her zaman bilmediğiniz şeyleri arayarak zanaatınıza hakim olmaya devam edin ve daha fazla anlayış aramak için bu şeylere doğru koşun ve son olarak: küçümsemeyi bırakın geliştirdiğiniz beceriler.


2

"Yeterince biliyorum" ve "Bu iş için iyiyim" tamamen farklı.

IMO "Bu iş için iyiyim", "temelleri biliyorum ve biliyorum - ne öğreneceğim / nerede aranacağım / kime soracağım / ne okuyacak - görevlerimi tamamlamak için".

(Bu, örneğin öğrenmek için 1-2 aya ihtiyacınız varsa sizi işe alacakları anlamına gelmez: XML dosyalarına yazma / okuma. Umarım ne demek istediğimi anlarsınız.)

Ayrıca, hiçbir programcının "yeterince biliyorum" diyeceğini sanmıyorum. (belki "işi almaya yetecek kadar", "zengin olmak için yetecek kadar", "yetecek kadar ..." ama "yeterli değil" :))

EDIT: "temel" dediğimde

  1. Programlamanın temelleri (bit, bayt, değişkenler, fonksiyonlar, parametreler, döngüler, koşullar, özyineleme)
  2. Çalışacağınız programlama dilinin temelleri (bir program nasıl derlenir, bir program nasıl hata ayıklanır; IDE nasıl kullanılır; anahtar kelimelerin% 90'ı ve ne yaptıklarını, ne zaman kullanılacağı, nasıl kullanılacağı; değişken türleri; 1'den gelen dilde nasıl kullanılır; en kullanışlı kütüphaneler; hata yönetimi)
  3. "Kanla 1 ve 2'yi bağla" :)

(Muhtemelen işinizde 2-3 dil kullanmanız gerekecektir)

Saeed ile aynı fikirdeyim, işe dalmak, bir şeyler öğrenmenin en iyi yoludur, senden daha fazlasını bilen insanlarla çalışıyorsun, onlardan öğreniyorsun, nasıl çalıştıklarını görüyorsun, ama tıpkı senin gibi başladılar (ya da belki başladılar) sahip olduğunuzdan daha az bilgiyle).


XML dosyalarını okumak ve yazmak bir ayımı almazdı, yine de muhtemelen beni bir gün alacağını düşünüyorum. "Temeller" üzerinde durabilir misiniz? Aslında sorumun ana itişi bu, çünkü temelleri bildiğimi bilmiyorum. Bazı temel bilgileri kesinlikle biliyorum , ama gerçekten bazı temel boşlukları kaçırdığım için gerçekten endişeliyim.
Throwaway

1

Harika bir tavrın var! Başarılı olmanın temel faktörlerinden biri asla şikâyet etmemektir. Asla yerleşme. Asla kendinizden taviz vermeyin. Bununla birlikte, bunun tam olarak nasıl yapılacağını anlamak çok zordur (örneğin, X görevini yapmak için 'en iyi uygulamayı' bilmek, Googling kadar basit değildir, çünkü herkesin kendi görüşü vardır).

İyi kodu ve arkasındaki mantığı nasıl tanımlayacağınızı öğrenmek en iyisidir ( nasıl ve neden ). Bunun için, alanımızda saygın profesyonellerin bloglarını okumanızı tavsiye ederim, çünkü bu sizi aramak için bir çeşit zihniyete maruz bırakacaktır. Açık kaynaklı bir projeye katkıda bulunmak da derinlemesine atlamanın bir yoludur, ancak şu anda ilerledikçe size başkalarından öğrenme fırsatı verecektir .


Teşekkürler. Böyle bir övgü duymak için ne kadar ihtiyacım olduğunu fark ettiğimi sanmıyorum.
Atılabilir

0

Bence çoğumuz kariyerimizde er ya da geç bu durumda bulunduk. Ve her yeni dil seçişinizde, her şey yeniden başlar. Benden ilk tavsiye şu olurdu: Umutsuzluğa kapılma, yalnız değilsin. Ve: sadece kendi kendini yansıttığınız için muhtemelen düşündüğünüzden daha iyisinizdir. Eski atasözü hatırla: Aptallar, meleklerin basmaktan korktukları yerde acele ederler.

Günümüzde çoğu dilde, tek bir kişinin ezbere tamamen bilmesi için çok büyük olan standart kütüphaneler bulunmaktadır. Üstüne çerçeveler ve API'lar ekleyin ve bunların hepsini bilemezsiniz. Yapabileceğiniz en iyi şey temel bilgileri bilmek ve daha sonra nerede daha fazla bilgi bulabileceğinizi bulmaktır. Deneyim ile daha iyi olur, bu yüzden en iyi tavsiye muhtemelen: sadece git ve eşyaları kullan!

Tek bir "iyi" işaretleyici yoktur. Her şey çevreye bağlı. Bir şirket / proje için mükemmel olan şey başka bir şirket için yoldan çıkabilir. Söylediklerinizi gerçekten yapabiliyorsanız, sizi oldukça iyi bir sınıf olarak sınıflandırırdım ve iyi iş bulmakta zorlanmamalısınız.


[@ E-MEE'nin yukarıdaki yorumu hakkındaki yorumumdan Kopyala / Yapıştır] XML dosyalarını okumak ve yazmak bir ayımı almayacaktı, yine de muhtemelen beni bir gün alacağını düşünüyorum. "Temeller" üzerinde durabilir misiniz? Aslında sorumun ana itişi bu, çünkü temelleri bildiğimi bilmiyorum. Bazı temel bilgileri kesinlikle biliyorum, ama gerçekten bazı temel boşlukları kaçırdığım için gerçekten endişeliyim.
Throwaway

0

Sorunuzda yazdıklarınıza dayanarak, kod yazabilirsiniz ve becerilerinizi ve bilgilerinizi geliştirmeye hazırsınız.

Herkes, her işte, bir acemi olarak çok az başlamak zorunda ve daha sonra deneyimle büyümek zorunda.

Büyümenizin ne kadar hızlı olduğu size bağlı, herkes farklı hızlarda büyüyor, tek önemli şey şu an kendinizden çok fazla şey istememeniz.

Henüz tam olarak anlamadığınızı düşündüğünüz bir şey varsa endişelenmeyin. Yakında resmi çekebileceksiniz.

En kısa sürede sektörde çalışmaya başlamak isteyebilirsiniz. Zaten kod yazabildiğiniz için zaten çalışmaya başlayabilirsiniz. Bunun nedeni teorinin yeterince iyi olmaması, uygulamaya ve çözmeniz gereken gerçek dünya sorunlarına ihtiyaç duymanızdır.

Kütüphane kodu bilginizle ilgili kaygılara gelince, çalışmaya devam ettiğiniz sürece, dokümantasyonu okuyun ve kullanarak pratik yapın. Bunun gibi site de çok yararlıdır ve ilgili soruları aktif olarak sorup cevaplarsanız daha hızlı öğreneceksiniz.

Kişisel bir tavsiye: Spagetti kodu yapan birçok insandan gerçekten öne çıkmak, kendilerini programcılar olarak çağırmak, en iyi uygulamaları öğrenmek istiyorsanız. Hangi dili veya kütüphaneyi öğrendiğiniz veya kodladığınız önemli değil, en iyi uygulamaları öğrenin. Bu size çok zaman kazandıracak, hatalar, aksaklıklar, baş ağrıları ve daha iyi bir programcı hissetmenize yardımcı olacaktı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.