Üniversiteden hemen sonra iyi bir programcı mı olmalıyım?


28

Olası Kopya:
Bilgisayar Bilimi diplomasıyla mezun oldum ancak uzman bir programcı olmaya bile yakın olduğumu sanmıyorum

Geçenlerde üniversiteden mezun oldum ve o zamandan beri belki de en az deneyimli geliştirici olduğum ve belki de kemerim altında birkaç çalışma şartı olan bir geliştirme ekibine katıldım. Bu arada, ekibin geri kalanı 5-10 yıllık tecrübeye sahip.

Şişelenmiş ödevler ve testler konusunda çok iyi bir öğrenciydim ve çok iyi bir programcıydım. Başarı ile bazı projeler üzerinde çalıştım, ama şimdi çok daha büyük bir kod tabanı ile çalışıyorum ve öğrenme eğrisi çok daha yüksek.

Diğer geliştiricilerin kariyerlerine takımlar halinde başladıklarını ve emdikleri gibi bıraktıklarını merak ediyordum. Bu ne zaman değişir? İşlemi nasıl hızlandırabilirim? Yaşlılar bana yardım ediyor ama ben şimdi mükemmel olmak ve değerimi göstermek istiyorum.

Yanıtlar:


50

Yazılım geliştirme ile ilgili ilginç olan şey, ne kadar iyi olduğunuzun önemli olmadığıdır - her zaman daha iyi veya en azından size bir şey öğretecek kadar farklı biri vardır. Birkaç ay önce yazılmış olan koda bakmak ve deneyim düzeyinize bakılmaksızın berbat olduğunu düşünmek de nadir değildir.

Benim için, yeteneklerim ve iş arkadaşlarımın becerileri arasındaki boşluğu fark ettiğimde, daha önce hiç öğrenmemiş olduğum gibi öğrenmeye başladım; Üniversite beni bilgisayar bilimi için hazırladı, ama gerçekten yazılım geliştirmeye hazırladı. Neredeyse 4 yıl sonra ve ben eskisinden çok daha güçlü bir yazılım geliştiricisiyim. Yani, sadece oraya asıl ve çevrenizdeki insanlardan mümkün olduğunca çok şey öğrenin. Daha iyi olacak.


+1. Ayrıca takımdaki bir şeyi emen kişi olmaktan da çok hoşlandım ve bu bilgilerimi ayarlamaya zorladı.

27
+1University prepared me for computer science, but not really for software development.
George Marian

1
Umarım, üniversiteyi bitirip programlama işinde ilk (oh bekle, ikinci) işimi aldığımda aynı deneyime sahipimdir.
gablin

4
@George: Daha da kötüsü, gerçek dünyada pek çok yazılım geliştirmenin, genellikle çirkin kullanıcı arayüzlerini veritabanı tablolarına tıkatan aşağıya kaynayan “IT” şemsiyesi altında kalmasıdır. :( Tam olarak üniversitenin seni hazırlayabileceği bir şey değil.
Adam Paynter

@adam Kesinlikle. Zaman zaman ihtiyacını anlasam da, "yeterince iyi" yaklaşımı beni deli ediyor.
George Marian,

23

Hayır. Üniversiteden ayrıldıktan sonraki ilk 6 ayda programlama / yazılım mühendisliği konusunda önceki yıllarda edindiğimden çok daha fazla şey öğrendim. Ancak, bu, üniversitenin zaman kaybı olduğu anlamına gelmiyor, fikrimi hazırladı ve geliştirmesi için temel bilgileri sağladı.

Sonra tekrar, şimdi geriye dönüp baktığımda, 6 aydır ne yaptığımı gerçekten bilmiyordum.


4
Eh, profesörlerim her zaman "Endüstri ve akademi arasında büyük bir eşitsizlik var" dedi. Gerçek dünyaya çıkana ve orada olduğunun farkına varmak kadar inanmak zor!
Chris

Bu. İşte bu yüzden staj, ücretsiz veya alabileceğiniz her şey bu kadar değerli. Cehennem, programlama dışı bir staj bile deneyimde, herhangi bir sınıfın olabileceğinden çok daha değerlidir, çünkü bazı insanlarla çalışmanın tuzaklarını öğrenirsiniz.
Kzqai

10

Eğitim size geliştirmeniz için bir temel sağlar, ancak sizi gerçek hayatta yazılım geliştirmeye hazırlamaz. Bu deneyim ile geliyor. Bir iş için programlamaya başladığımda kesinlikle sizinle aynı durumdaydım. Öğrenmeye devam ettiğiniz, kitap okuduğunuz, blog gönderdiğiniz ve işinizde öğrendiklerinizi uyguladığınız sürece, gelişeceksiniz. Anahtar, öğrendiklerinizi uygulamaktır. Sadece okumak yardımcı olmaz, aktif olarak yeni bilgileri uygulamanız gerekir.


Öğrendiklerinizi uygulamak için +1. Bu kısımdan bahsetmeyi unuttum. :)
Adam Lear

7

Kesinlikle öyle olduğumu düşündüm, ama değildim.

Güven bana, kariyerinin bir noktasında, geri dönüp yazdığın bazı kodlar üzerinde çalışacaksın, yıllarca dokunmadığın ve umutsuzca başka hiçbir profesyonel geliştiricinin bu kodu görmesini ya da yazdığını bilmesini istemeyeceksin. Bu büyüyorsun demektir.


4

Bazı yönlerden, bir programlama dili seçmek, doğal bir dil seçmek gibi bir şeydir. Okulda adil miktarda teori öğrenebilirsin. Dilbilgisini ve sözlüğün temel öğelerini öğreniyorsunuz ve kendinizi iyi bir konuşmacı ile gerçek bir konuşmada bulana kadar oldukça iyi olduğunu düşünüyorsunuz ve sonra tamamen kayboldunuz.

Dilini gerçekten öğrenme şekliniz, anadili ile olan bir konuşmada kendi dilinizi tutabileceğiniz noktaya kadar, aslında her gün her saat dilini konuşarak. Bu genellikle konuşulduğu bir yerde yaşayacağınız anlamına gelir. Ve o zaman ilginç bir şey olur. Okulda öğrendikleriniz, kendi başlarına, yabancı bir ülkenin sokaklarında değersiz olsa da, gerçek dil öğrenimini çok daha kolaylaştıran iyi, sağlam bir teorik temel sağlar. (En azından İspanyolca ile olan deneyimim buydu.)

Programlama aynı şekildedir. Okulda öğrendikleriniz sizi gerçek bir programcı olarak yapmanız gereken iş için hazırlamaz, ancak (popülerliğin menfaatlerine her şeyi aptal yapmayan yetkin bir okulda olduğunuzu varsayarsak) zihniniz, gerçekte iyi bir kodlayıcı olmayı öğrenme zamanı geldiğinde, ihtiyacınız olan temel kavramlar zaten yerindedir. (En azından programlama konusundaki deneyimim buydu.) :-)


2
İyi cevap, ama "okulda öğrendiklerimin değersiz" olduğunu söyleyemem. Neyi hedeflediğini biliyorum.
gablin

4

Bir çok iyi programcı, üniversite bilgisayar bilimi derecelerinden, çoğunlukla kendilerine giren programlardan çıkıyor.

Bilgisayar bilimi ile ilgili olan şey, insanların yukarıda tartışıldığı gibi programlama ile aynı olmadığıdır. Üniversitede okuduğum bir sürü şey temelde hazır değildim - bir sürü gökdelenin akademik saçmalık gibi gözüktüğü pek çok şey vardı. İşe yaramaz olduğum bir kaç şeyi tekrar öğrendiğimde daha fazla dikkat etmiştim. Aslında yapmak istediğin buysa, bilgisayar bilimi diplomasına başlamadan önce ticari bir ortamda birkaç yıl boyunca programlama yapabileceğini düşünüyorum.

Ayrıca sık sık üniversitede nasıl öğreneceğinizi bilmediğinizi düşünüyorum. Yanlışlıkla veya diğer geliştiricilerden öğrenerek öğrendiğim pek çok şey elbette ki öğretim görevlilerimin ve yüksek lisans öğrencilerimin üniversitede bildikleri şeylerdi ama onları anlamanın faydalı olacağı konusunda hiçbir fikrim yoktu. İnsanlara bir şeyler yapmayı öğrenirken yaşadığınız problemleri sormak (ve bu gerçekten her şey için geçerlidir) öğrenme sürecini daha yumuşak ve daha az acı verici hale getirir. Kendin için veya diğer insanlardan öğrenebileceğin çoğu şey - kendim için öğrendiğim derslerin çoğunun acı hatalarımdan öğrenildiğine göre, yapabildiğim zaman diğer insanlardan öğrenmeyi tercih ederim ...


2

Brian Hurt'un görevinden alıntı yaparım

Bilgisayar bilimi ve programlama ayrı şeylerdir

Ayrıca Joel Spolsky'nin Lisans programlarına ve Yazılım Mühendisini Öldüren başlıklı mükemmel makaleye de değinmektedir.

Bütün bu tartışmalar gerçeği oldukça iyi açıklıyor ve bence “Hayır” olarak sorunuzu yanıtlayın, çünkü üniversite sizi iyi bir programcı yapmaz. Kendini iyi bir programcı yapmalısın.

CS derecesine sahip değilim, ancak 8 yıldır profesyonel olarak programlama ve yazılım geliştiriyorum. Sahip olduğum tüm programlama becerilerimi kendim öğrendim.


1

Hayır, programcı gibi davranıyordum ve zor yoldan öğrendim. İlk müşterimi freelancer olarak aldım ve C / C ++ ile çok kötü mücadele ettim ve sonunda kazandım. Bir yapıya malloc yapmanın yapıdaki işaretçilere bellek ayırmak için yeterli olmadığını anlamak birkaç saatimi hatırlıyorum.


Asıl derecen neydi? Sıkı çalışmanız sonunda işe yaradı mı?
rwong

Ben bir elektronik mühendisiyim, Matalb'da oldukça iyiydim, ama C / C ++ ve Java hakkında çok az bilgim vardı. İster inanın ister inanmayın, ilk gerçek programlama işim Windows CE için sürücüler yazıyordu ve bu cihaza aktarıyor : eurotech.com/EN/innovation.aspx?pg=wearable . Şirketten biraz yardım aldım, ama temelde evde yalnız çalışıyordum, çok az şey için büyük zaman kaybediyordum. Ama iddiaya girerim ben hiçbir şey unutmadım! Hala öğreniyorum ama şimdi çok büyük bir program yapan bir girişime sahibim ... bu yüzden işe yaradı.
martjno

1

Üniversiteden mezun olduğumda oldukça iyi bir programcıydım. Ayrıca mezun olmadan önce aylar süren bir iş teklifi aldım (daha da çekici olanı için geri çevirmeyi başardım).

Önemli olan, eğitim yılı boyunca bir web geliştirme işi olan bir hobi olarak bir sürü hobi olarak çalışmam ve IBM ("ExtremeBlue speed-teams" ve uygun ExtremeBlue programına uygun) ile yaz stajı yapmak. Profesyonelce iyi bir deneyim , mezun olduktan sonra giriş seviyesinden biraz atlamanıza izin verir.

(Yine de, ilk altı ay içinde, bir Real Job'da (tm) programlamada hala çok daha iyi olduğumu söyledi . Daha sonra yapılmadığımdan değil, o zaman gerçekten çok şey gösterdiği zamandı.)


1

Doğruca liseden işe başladığım için size ters bir cevap verebilirim. Kendimi düşünen bir programcı olarak çalışmaya başladım ve işverenlerin bana verdiği projede hemen hemen üretken oldum. Yeni bir bilgisayar bilimi derecesine sahip bazı iş arkadaşlarım vardı ve onlar üretken değildi.

Zamanla, mezun olan bazı meslektaşlar yeteneklerini büyük ölçüde geliştirdi, diğerleri bunu yapmıyor ve bu onların not ortalaması ile ilgisi yoktu.


1

Üniversite size gerçek dünyadan bir programcı olmayı öğretmiyor. Bunun lisans programlarına kıyasla bir çok işe benzer olduğunu tahmin ediyorum. Derecemden hiçbir şey almadığımı söyleyemem , ama aslında 4 yılını işte geçirmekten çok daha az faydalı oldu.

Ama sorun değil. Başlattığım her iş muhtemelen yetersizdi. Yeteneklerinize güveniyorsanız ve öğrenmeye adanmışsanız, adım atar ve işi yapabilirsiniz.


1

Genel olarak programlama hakkında en azından koleje maruz kalmadığım herhangi bir gerçek öğrendiğimi sanmıyorum. Elbette, burada ve orada yeni programlama dilleri aldım, yeni API'ler, yeni kod tabanları ve yeni araçlar öğrendim, ancak genel kavramların hepsi okul dışında mevcuttu.

Tecrübe ile edindiğiniz şey, bildirilen bir hatayı nasıl daraltdığınızı hızlandıran veya sizi yeni kod yazmanın en sağlam yoluna yönlendiren bir tür içgüdüdür. Yeniyken, aynı hatayı hala düzeltebilir veya aynı özelliği uygulayabilirsiniz, ancak daha uzun sürer ve öngörülmeyen bir sorun için geri dönüp düzeltmeniz daha olasıdır.

Bu nedenle, size rehberlik etmesi için daha deneyimli meslektaşları edinmeniz önemlidir. Onlara gidin ve "Bu şekilde ele alınması gerektiğini düşünüyorum. Bu daha iyi bir yol düşünebilir misiniz?" Bu size hem kendiniz çözme deneyiminin hem de başkalarının deneyimlerinden öğrenme avantajı sağlar.


0

Üniversitedeki öğretmenlerimden daha iyi bir programcıydım.

Sonra çalışmaya başladığımda harika programlama pratikleri öğrendim.


0

İyi bir programcı daima öğreniyor ... bunu yapmanın farklı bir yolunu ya da daha iyi bir yolunu öğreniyor. Programcı arkadaşların sana öğretmek zorunda kaldıklarını dinlerdim.


0

Hiç kimsenin bahsetmediği şeylerden biri, okulda çözmeniz gereken problemlerin, öğretilmekte olduğunuz belirli bir teknik olarak nasıl kullanıldığını görmeyi kolaylaştırmak için kasıtlı olarak boşaltılmış olmasıdır. Genelde bu belirli problem için hangi tekniği kullanmanız gerektiğini biliyorsunuzdur, çünkü sınıfta kapladığınız tekniktir. Tüm dönem projeleri biraz daha iyidir, ancak yine de gerçek dünyayla karşılaştırıldığında kapsam ve karmaşıklık bakımından sınırlıdır.

Gerçek hayattaki projeler dağınıktır ve yıllar içinde gelişir (yazılımımız on yaşın üzerindedir ve bu süre boyunca sürekli değişmektedir) ve birçok farklı beceri düzeyine sahip birçok insan tarafından dokunulmaktadır. Hala 10 yıllık bir veritabanı sürümüne dokunuyor olabilirsiniz ve daha yeni SQL teknikleri kullanamazsınız. 8 yıl önce harikulade olan bir araç kullanıyor olabilirsiniz, ancak okulda öğrenmediniz, başka bir şey tarafından desteklendi. Ancak şirket, tamamen yerine koymak için aylarca süren geliştirme çabalarını ödemek istemiyor.

Gelişme zamanının müşterinin parasını ödeyeceği ve bazen (normalde tamamıyla) yapay, son teslim tarihlerinin ne ile sınırlandırıldığı bir dünyada sıkışıp kaldınız.

Müşterinin özel olarak istediği araçları kullanmanız kısıtlanabilir. Belirsiz gereksinimleriniz veya çok az anlamlı olanlar olabilir. Hakkında hiçbir şey bilmediğiniz çok karmaşık bir iş alanıyla uğraşıyor olabilirsiniz ve bu nedenle gereksinimlerin anlamlı olup olmadığını yargılayamazsınız.

Gerçek dünyadaki problemler okulda verdikleri güzel temiz problemlerle hiçbir şekilde karşılaştırılamaz. Kafanız karışmaz ve ilk yılın çoğu için yeriniz dışına çıkarsa, sizin için endişelenirim.


0

Bundan daha kötüsü ... bu işte birkaç yıl sonra, öğrendikleriniz konusunda kendinizi iyi hissedeceksiniz. Ama sonra işleri değiştireceksiniz ve yeni şirketiniz (veya aynı şirket içindeki belki de yeni grup) işleri farklı şekilde yapacak ve ilk aşamada olduğunuzu hissedeceksiniz. Farklı kodlar, farklı kodlama standartları, farklı araçlar ve farklı işlemler olacak ve iki günden sonra son işinizde gerçekten bir şey öğrenip öğrenmediğinizi merak edeceksiniz. Bu sefer su balığını daha hızlı hissedeceksin, ama bu sefer istediğinden daha uzun sürecek.

İşleri her değiştirişinizde bir adaptasyon süresi var. Deneyim kazandıkça kısalır, ancak her zaman oradadı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.