Bilgisayar Bilimi derecesi ile mezun oluyorum ancak nasıl programlandığını bildiğimi sanmıyorum


1050

Computer Science derecesi ile mezun oluyorum ancak Stack Overflow gibi web siteleri görüyorum ve Google gibi arama motorları görüyorum ve hatta böyle bir şey yazmaya başladığımı bile bilmiyorum. Bir yaz boyunca bir iPhone geliştiricisi olarak çalışma fırsatım oldu, ancak daha çok diğer insanların yazdığı kütüphaneleri kaputun altında gerçekleşen mekaniği çok az anlamakla birlikte yapıştırdığımı hissettim.

Algoritmaları inceleyerek bilgimi geliştirmeye çalışıyorum, ancak bu uzun ve acı verici bir süreç. Algoritmaları zor buluyorum ve kitaptaki materyale ustalaşmadan önce on yıl geçeceğini öğreniyorum. Şu anki durumum göz önüne alındığında, bir ayını iş aramak için harcadım, ancak becerilerim (C, Python, Objective-C) nispeten sığ ve yerel pazarda C #, Java ve web geliştirmenin çok daha yüksek olduğu yerlerde istenmiyor. aranılan. Bu, C ve Python fırsatlarının mevcut olmadığını, ancak sahip olmadığım 3+ yıllık deneyim talep etme eğiliminde olduklarını söylemek değildir. Genel not ortalam (3.0), ancak IBM gibi büyük şirketlere başvuru yapmak veya yüksek lisans programlarına geri dönmek için yeterince yüksek değil.

Temel olarak Bilgisayar Bilimi diploması ile mezun oluyorum ancak nasıl programlanabileceğimi hissetmiyorum. Bir şirkete katılmanın ve tam zamanlı programlamanın bana yeteneklerimi geliştirme ve kendimden daha deneyimli olanlardan öğrenme şansı vereceğini düşündüm, ancak iş bulmakta zorlanıyorum ve gerçekten sinirlenmeye başladım.

Ağımı daha geniş açacağım ve içinde büyüdüğüm şehrin ötesine bakacağım, ama benzer durumdaki diğer insanlar ne yapmaya çalıştı? Çok çalıştım ancak kendi başıma çıkıp kendi uygulamamı yazacak güvenim yok. (Yani, iPhone uygulama pazarında bağımsız bir geliştirici haline gelir.) Hiçbir şey çıkmazsa, daha popüler beceriler geliştirmeyi ve öğrenmeyi düşünmem veya BT gibi marjinal olarak ilgili bir şeyler denemem gerekecek, ancak bu hissi verdiğim tüm çabayı göstermem gerekecek Başa çıkmak gibi.

Yanıtlar:


533

Program öğrenmenin en iyi yolu program yazmaktır.

İki öneri:

  • oyun geliştirmek
  • bir web sitesi geliştirmek

Algoritmalar yararlı olsalar ve anlaşılmalıdırlar, aslında yazılım tasarımında ikinci bir keman çalıyorlar. TDD / Tasarım Desenleri / Mimari / Yeniden Düzenleme / Birim Testi / Kod ekleme / etc işlemi çok daha önemli becerilerdir.

Ayrıca, bunu kendi zamanınızda yapmak çok daha iyidir. Bu işte çalışmak için beklemeyin. Daha iyisini yapma eğiliminde olan kişilerin, kariyerlerinin erken saatlerinde becerilerini kendi zamanlarında geliştirmek için çaba sarf ettikleri kişiler olduğunu düşünüyorum. Genellikle, yazılım geliştirme konusunda gerçekten tutkulu olduklarından

  • Bir şey daha " Kitapları ve örnekleri okuyun " ve sormaktan utanmayın. Öğrenmek istiyorsan sormalısın :)

70
+1 Anladım. Bu işleri kendi zamanında yapmak istemiyorsanız, bu sizin için en iyi kariyer yolu olmayabilir. Şimdi bir şeyleri bir araya getirirseniz, not ortalamanıza yardımcı olacak bir portföy oluşturabilirsiniz.
Chris,

68
@ Chris, -1. Bu, bono yanlısı olarak çalışmayan bir kişinin avukatın kendi zamanında çalışıp çalışmadığını yanlış söylemek demek. Bildiğim birçok programcı daha az zaman programlama ve neredeyse başka bir şey yapmak için daha fazla zaman harcamaktan daha iyi olurdu.

21
Aslında dişlerini keserken bir sürü avukat, çok para ödüyor ve ilerlemek için fazladan saatler harcıyor.

22
Bir avukatlık işini bir programcı işiyle gerçekten karşılaştıramazsın. Programlama ile kendi becerinizi kazanabilirsiniz; Bu kısmı geliştirmek için herhangi bir işveren veya müşteriye ihtiyacınız yok.

31
Gerçekten, programlamanın özel olduğunu düşünmekten vazgeçmelisin. Avukatlar da bizim gibi kendi başlarına çalışabilir / öğrenebilirler. Düşük ücretli işlere başlayabilirler ve uzun saatler boyunca çalışabilirler, ancak birçok programcı da yapın. "Eğer bir hobi olarak programlamazsanız, bir programcı olmamalısınız" satırı gerçekten çok özneldir.

388

Çoğunlukla diğer insanların yazdığı kütüphaneleri birbirine yapıştırıyormuş gibi hissettim.

Bunun neden "gerçek programlama" olmadığını düşündüğünüzü anladığım halde gerçek şu ki entegrasyon çalışması, kurumsal bir programcı için tipik iş yükünün önemli bir yüzdesini oluşturuyor. Deneyiminiz sandığınızdan biraz daha değerli olabilir :)


126
Tutkal için +1. Hiç kimse yeni bir ev inşa etmek için bir grup profesyonel işe almaz ve bu süreçte ev inşaasında yepyeni teknikleri icat etmelerini beklemez. Aslında, risk ve bütçeyi yönetmekle ilgilenen herkes muhtemelen bunu yapmamayı tercih ederdi .
Dan Bryant,

14
Orada bazı ileri vakalar olduğuna katılıyorum, ancak programlama işlerinin% 75-80'inin sadece kitaplıkları yapıştırdığınız türden olduğunu söyleyebilirim.

15
Ve sadece kütüphaneleri birbirine yapıştırmada yanlış bir şey yok . Seni üretken yapan şey budur!

10
Kesinlikle çalışmamın% 90'ı başkalarının kodunu (kütüphaneler veya eski kodlar) takmak veya eski kodları korumak gibi. Ancak, ekstra zamanımı bit ve parçalarını öğrenirken harcıyorum, böylece artık bu kütüphanelerin çoğunun nasıl çalıştığını biliyorum ve genel olarak kaputun altında neler olup bittiğini daha derinden anladım. Hayat boyu öğrenen biri olun ve sonunda hepsini alacaksınız.
CodexArcanum

53
Kütüphaneleri birbirine yapıştırmadığımda, genellikle daha sonra birbirine yapıştıracağım kütüphaneler yapıyorum.

238

İlk olarak, son derece dürüst bir soru için teşekkür ederim. Eldeki sorunları çözmenin birkaç yolu vardır. İşte geçmişte benim için çok yararlı olduğunu düşündüğüm ve hala bilgilerimi genişletmek için kullanmaya devam eden birkaç ipucu.

  1. Öğren, Öğren ve biraz daha öğren. Bu muhtemelen sana verebileceğim en önemli ipucu. Asla öğrenmeyi bırakma . Bir dili bilmek iyidir, çoklu dili bilmek daha da iyidir. Başka diller hakkında bilgi sahibi olmak sizi daha iyi bir programcı yapacak ve bazı görevlerin üstesinden gelmeyi kolaylaştıracak ve ortak veri yapıları hakkında daha iyi bilgi edinmenize yardımcı olacaktır.

  2. Küçükten başla .

  3. Boş zamanlarınızda bir hobi projesi başlatın. Oldukça kolay bir şekilde başarabileceğiniz bir şey yapmayın. Nereden başlayacağınız hakkında hiçbir fikrinizin olmadığı bir projeye katılın. Kendini derin uçlara at. Bunun faydaları, asla var olmadığınızı bilmediğiniz şeyleri öğrenmeniz ve onu tamamladığınızda büyük bir gurur ve memnuniyet hissetmenizdir. Bu beni devam ettiren şey.

  4. Yaptıklarınız için gerçek bir tutku var. Her ne kadar insanlar bu konuda benimle aynı fikirde olmayacak. Eğer 9-5 işi kabul edersen, bu alanda üstün olabileceğine inanmıyorum. Bunu yapmak için bir tutku olmalı.

  5. SO'da diğer insanlara yardım et! Anlamanın en iyi yolu, onu diğer insanlara öğretmeye çalışmaktır.

  6. Diğer insanların programlarını inceleyin ve nasıl çalıştıklarını anlamaya çalışın, sonra da benzer teknikleri kendi programlarınızda uygulayın. Okumayı ve anlamaya çalışın, sonra kopyalayıp yapıştırmak yerine bu anlayışı temel alarak kendiniz yapın.

  7. Devam et . İşler zaman zaman çok sinir bozucu olabiliyor, ama iş bitince çok ödüllendirici olabiliyor. Eğer bir şey anlamıyorsanız, ara verin, düşüncelerinizi giderin ve tekrar deneyin. Bize SO'da sor! Biz istekli bir demetiz :)

  8. Yeni teknolojiler öğrenmeyi asla bırakma.

  9. Biraz kitap oku. Öğrenci olmayı anlıyorum, bir ton okuma yapardın. İşte kullanışlı bulabileceğiniz birkaç pratik kitap… umarım - Pragmatik Programcı: Seyahatçiden Ustaya - Kod Tamamlandı: Pratik bir Yazılım İnşaat El Kitabı


13
Okunacak listelerinize Temiz Kod ekleyin, bu oldukça iyi.

7
"Bir dili bilmek iyidir" -> yanlış. Bir dili bilmek olduğunu değil yeterli. Birden fazla dil bilmek iyidir, daha fazla dil öğrenmek daha iyidir.
Denilson Sá Maia

10
"Küçük Başlat" yalnızca yaklaşılabilir projeler seçmekle kalmaz, aynı zamanda bir proje içinde uygulanabilir bölümleri uygulamaya başlar. Benim bir proje paralaksta küçük bir deneyle başladı ve ben "oyunun arka planı için oldukça havalı bir yıldız alanı gibi göründüğünü" düşünüyorum. Bir gemi ekle ... bir uzaylı ekle ... birkaç füze ekle, klavye kontrolü ve çarpışma algılama (her biri kendi başına basit problemler) tek tek ve kısa bir süre sonra, sattığım ticari bir oyun oynadım (düşündüğüm şeyi zaman) biraz nakit. Öte yandan "bir oyun yaz" belirsiz, ulaşılmaz bir iştir. Bir seferde bir bit.
mmc

2
@Dililson OP, nasıl programlandığını bilmediğini belirtti. Programlama konusunda emin olmayan biri için bir dil bilmek iyidir. Listem sadece bu içerik için geçerlidir.

7
@Dililson, önce bir dil öğrenmeden birden fazla dil öğrenmiş olabilir misiniz ?
Péter Török

141

Kişisel bir proje başlat. Okuldaki sorun şu ki, yaptığınız en karmaşık şey, yılda 15 hafta süren ve birkaç başka insanı içeren bir proje oldu. Sorun alanı çok iyi anlaşıldı (profesörünüz size döneminize tam olarak uymayan herhangi bir görev vermedi.) Bu, gerçek dünyanın sağladığı bir lüks değil.

Tutkulu olabileceğiniz büyük, baştan sona önemli bir şey yapmak zorunda kalırsanız, beyniniz bu süreci sarmaya başlayacaktır. Bu sadece bir kariyer olduğu ve sevmediğin sürece, hala kazanmamış gibi hissedeceksin.


Günlerimi 1) özgeçmiş göndermek 2) kitap okumak arasında bölüyorum ama 2) kod yazarak daha iyi harcanabilir gibi görünüyor. Sanırım birçok işveren çok az endüstri tecrübesine sahip birini işe alma riskini almak istemiyor, bu yüzden almadığım staj şu an gerçekten çekici görünüyor.

5
+1. Tamamen aynı fikirdeyim. Küçük bir uygulama başlatın ve sonra istediğiniz gibi işlevsellik ekleyin. Bina ilerledikçe ve daha neler yapılabileceğini anlamaya başladığınızda, bunu da ekleyebilirsiniz.

11
“Sorun alanı çok iyi anlaşıldı (profesörünüz size döneminize tam olarak uymayan herhangi bir görev vermedi.)” Bu, bilgisayar bilimleri eğitimi ile ilgili en büyük sorunlardan biri. Bu sorunu ele alan birkaç CS veya yazılım mühendisliği programı vardır, ancak çoğu sizi kutunun dışında düşündürmez. Gerçekten kendi projelerinizi üstlenmeniz gerekiyor. Stackoverflow'un nasıl yapıldığını bilmiyorsanız, kendiniz bir klon yapmayı deneyin. Herhangi bir sınıfın size öğretebileceğinden çok daha fazlasını öğreneceksiniz.
Matt Olenik

Mükemmel fikir Ancak çekirdek işlevli küçük bir şeyle başlayın ve yavaşça ekleyin. Tek bir dev mükemmel uygulama almaya çalışmaktan çok bu şekilde motive edici olacaktır. Ayrıca kitaplardaki bilgi hazinesi kadar bilgi ve öğretici asla bulamayacağınızı düşünüyorum
Xster

@ Xster, demek istediğim bu. Çok temel işlevselliğe sahip bir "soru ve cevap" uygulaması yazma görevi başlamak için iyi bir yerdir.
Matt Olenik

106
  1. K. Nicholas'ın dediği gibi bir projeyi kullanarak, talep edilen dillerden birine başlayın.
  2. StackOverflow ile kendinizi ölçmeyin. Bu sizi gereksiz yere caydırır.

81
# 2 için +1 - kendinizi ve kalabalığın bilgisini karşılaştırmayın.
gf

8
StakOverflow'un kendisi bir virtüöz ürünüdür. Bahsetmiyorum bile, çok çeşitli ürünlerde onlarca yıllık deneyime katkıda bulunan insanlar var.

6
StackOverflow'a karşı kendinizi ölçmenin kötü bir şey olduğunu düşünmüyorum, burada bir sürü akıllı insan var. Bazıları her zamankinden daha akıllı. Ancak sizi öğrenmeye devam ettirmek isteyen insanlar.

15
Hey, neden SO'ya bağımlı olduğumu biliyorum! Bir düzine nedenden dolayı müthiş. Ama bilmediğin her şeye sürekli maruz kalmak zor oluyor. Kişi gözünü korkmamak için biraz dikkatli olmalı, hepsi bu.

@Georg - Güzel oyun go gravitar. KGS Smandoli

72

İş durumunuzla ilgili yardım edemem, ancak umarım becerilerinizi geliştirmenize ve kendi becerilerinizle ilgili hislerinizi perspektif içine sokmanıza yardımcı olabilirim.

Computer Science derecesi ile mezun oluyorum ancak nasıl programlanacağımı bildiğimi sanmıyorum.

Eğitmenlerinizin utanılacak bir şeyleri olması mümkündür. Ayrıca, nasıl programlanacağını bilmeme konusundaki hisleriniz, yaşamınızın ve eğitiminizin bu aşaması için doğal ve uygun olabilir. İşte yardımcı olabilecek bazı fikirler:

  • Birçok işveren transkriptinizde hangi derslerin ve hatta genel not ortalamanızın ne olduğu ile ilgilenmez. Bunun yerine, neler yapabileceğinizi ve özellikle neyi kurduğunuzu bilmek istiyorlar. İyi bir iş için, kurduğunuz şey, özgeçmişinizdeki teknolojiden (C, C #, neye sahipsin) daha önemlidir.

  • Eğitiminiz sırasında birçok ilginç proje oluşturma şansınız olmadıysa, eğitmenlerinize utanç verin. Ancak bu projeleri şimdi yapabilirsiniz. İlginç problemler için web sitelerini araştırın. İkinci dönem öğrencilerimiz "Şarkı Arama" yı bitiriyorlar - bir web sitesi için çok fazla şarkı sözleri çektik, ters bir dizin oluşturdular, anahtar kelimeleri beslediniz ve bu sözleri içeren sözleri bağlamında gösteriyor. Google değil, benzer veri yapılarıyla aynı prensiplere dayanıyor ve şimdi oluşturmaya başlayabilirsiniz.

Çok çalıştım ancak kendi başıma çıkma ve uygulamamı yazma konusunda kendime güvenme.

Belki de doğru tür problemler için çok çalışmadın mı? Bu sorunları bulmak güzel

  • Açık uçlu
  • Birden fazla iyi çözüm var
  • Bol miktarda kötü çözümü var

Bu tür sorunların üstesinden gelirseniz, seçimler yapmayı, sonuçlarla yaşamayı ve işler işe yaramazsa geri dönüp seçimlerinizi tekrar gözden geçirmeyi öğrenirsiniz. Başarısızlıklarınızdan başarılarınızdan daha fazlasını öğreneceksiniz, ancak başarılarınızdan başarısızlıklarınızdan daha fazla güven kazanacaksınız.

İyi problemler (yukarıda listelediklerim gibi özelliklerle) altın gibidir, ancak başka birinden iyi bir problemle karşılaşırsanız hiçbir şey kaybetmezler. İyi problemler için web'i araştırın ve pratik, pratik, pratik yapın. Euler problemleri başlamanız gereken yerlerdeyse, yeni başlayanlar için de sorun yok. Ancak yakında, gerçekten havalı olduğunu düşündüğünüz küçük veya orta ölçekli projeler oluşturmak isteyeceksiniz . İnşa ettiğiniz bir şey için heyecanlıysanız, potansiyel işverenleri etkileyecektir. Heyecanlı değilseniz sizi işe almak zor.

Peter Norvig, bir uzman olmanın on yıl aldığını bildirdi . Elbette derecenizi aldıktan hemen sonra bir uzman gibi hissetmiyorsunuz. Küçük bir sır vermene izin vereceğim: Harvard fakültesinin çoğu üyesi (sekiz yıldır bir tane oldum) gerçekten Harvard'a ait olmadıklarını, yeterince bilmediklerini ve bir yanlışlık olmuş olmalı gibi hissettiğini Onlar işe alındı. Bu tür hisler, okuldan işyerine veya bir işten diğerine geçişi yapan insanlar için çok, çok yaygındır. Yaygın olarak bunun için bir isim var: "sahtekarlık sendromu".

Dereceniz olmasına rağmen, üniversiteniz hala sizinle konuşacaktır. Gerçekten iyi profesörlerin varsa, muhtemelen seni hala önemsiyorlar. Öğrencilerinden birinin B ortalamasından mezun olmasından ve ticaretinin temel becerilerinde uzmanlaşmadığını hissetmesine kesinlikle dikkat ediyorlar. Bu nedenle, programınızdan en enerjik, en sempatik profesörlerden birini veya ikisini arayın ve iyi sorunlar bulmak için yardım alın. Sonra koymak kendini sorumlu beceri, bilginiz ve onlar hakkında duygularını. Her gün küçük bir şey inşa et ve kıymetli inşaat zamanını boşa harcamayın. Sonunda, söz veriyorum, programlama ile ilgili bir heyecan duygusunu yeniden yakalayacağınız ve bundan sonra kendinize de güven oluşturabileceksiniz.


Katılıyorum. Oraya gidin ve potansiyel işvereninize KNOW C, Python, Objective-C bildiğinizi ve bir şeyler yapan bağımsız bir uygulama yaptığınızı kanıtlayın. İnsanlar genellikle oyun seçer, çünkü oyuna bağlı olarak, zorlu tasarım ve uygulamaları içerebilirler ve etrafındaki kütüphanelerin çoğu ücretsizdir. Windows için bir oyun yaparsanız, GDI / + veya DirectX'in kullanımı tamamen ücretsizdir.
Vs.

“Harvard fakültesinin çoğu üyesi (sekiz senedir bir kişiydim) gerçekten Harvard'a ait olmadıklarını, yeterince bilmediklerini ve işe alındıklarında bir hata yapmış olmaları gerektiğini” hatırlattı. of Dunning – Kruger effect =)

2
+1 bir şeyler inşa etmek için: özellikle yararlı olan bir şeyse, sizi kalabalıktan ayırır.

5
@Alex, asla İK üzerinden geçmeyin. Şansın varsa, tanıdığın biri nerede çalışmak istediğini biliyor.
Norman Ramsey,

1
Bilirsiniz, şimdi bahsettiğinize göre, genellikle iş bulma şeklim budur. Sanırım gelecekte gelecekte ağımdaki (veya diğer alanlardaki) işlere daha fazla odaklanmalı ve kendime anahtar kelime tarayıcılarının hakaretini bırakmalıyım.

59

Bir DA'nın hukuk okulunda işini nasıl yapacağına dair hiçbir şey öğrenemediğinden, gerçek dünya hakkında hiçbir şey öğrenemediğinden şikayet ettiği eski bir Yasa ve Düzen üzerine bir sahne vardı. Şikayet ettiği profesör, "Bu bir hukuk okulu, bir avukat okulu değil."

Aynısı bilgisayar bilimi için de geçerlidir. Belki de çevrimiçi gördüğünüz bazı projelere hemen katkıda bulunmayı öğrenmediniz, ancak uzun vadede başarılı olmanız için gereken temeli geliştirdiniz.

İlk önce bir iş bul, herhangi bir iş. Kendi kendine yeten ol. Özellikle şu anki ekonomide, herhangi bir adayın bir kitapçıda veya daha uygun bir iş ararken ne olursa olsun çalışmalarında hiçbir zaman hata yapmam. Etrafta hiçbir şey yapmadan oturan insanlar için sorularım var.

Herhangi bir proje, bir proje bulun. Örneğin github.com'da birçok uygulanabilir proje var.

İyi haber şu ki, düşündüğünüzden çok daha erken hiç kimse okula nereye gittiğinizi, genel not ortalamanızı ya da benzeri bir şeyi umursamıyor.

Pes etme! Zor olabilir ama bir gün bu deneyimden memnun kalacaksınız.


8
Son zamanlarda bu konuda iş görüşmemiz var. Kariyerinizle ilgisiz bir iş bulmanın gerçekten CV'nize yardım edeceğini düşünüyor musunuz? Finansal nedenlerden dolayı meyve toplamanız gerekiyorsa, sorun değil ama bir programcı olarak kariyer yapmaya çalışıyorsanız CV'nizde bir yeri olduğunu sanmıyorum. Ekonomik tazminat olmadan bir projeye katılmak veya kendi işinizi kurmaya çalışmak için daha iyi finansal kısıtlarınız yoksa. Açık kaynak projelerine katılmak veya bir saha teknisyeni olarak bile sahayla ilgili bir şey yapmak bence çok daha iyi.

1
@piotr - Kendin söyledin - "Eğer herhangi bir finansal kısıtlamanız yoksa." Yeni mezun olan herhangi bir üniversite mezunu, annem ve babamla birlikte yaşamadıkça bu sorunu yaşayacak. David M ile aynı fikirdeyim - doğrudan kendi alanınızda bir iş bulamazsanız, bir iş bulun. Sadece etrafta oturmadığını göster. Daha sonra, günlük işinizde çalışmadığınızda, geceleri öğrenmeye devam edin ve alanınızı projeler vb. İle anlayın. Tabii ki, özgeçmişleri de arayıp gönderin.

Herhangi bir iş bir özgeçmiş üzerinde daha iyi görünüyor sonra bir boşluk yapar.
Jim C

Kariyerinizin başında, ilgisiz bir iş, işsiz olmaktan iyidir, bence. Ancak, herhangi bir işin özgeçmişinde işsiz olmaktan daha iyi olduğuna katılıyorum. “İşsiz” için iyi bir neden varsa, o zaman “herhangi bir işten” daha iyi olabilir. Gönüllü olarak uzun süredir işsizliğe maruz kaldım, fakat tutarlı bir şekilde açıklayabilmem için sağlam nedenlerim vardı.

5
piotr: "Gerçekten, kariyerinle alakasız bir iş bulmanın, CV'nize yardım edeceğini düşünüyor musunuz?" Evet kesinlikle. Arıza süresi boyunca, bütün gün evde oturan bir programcının çalışmasından çok daha fazla bir programcı çalışma yapısı olduğunu düşünüyorum. İş ahlakını gösterir. Evde yalnız kod yazarken oturan yalnız bir dahi almak istememiştim. Başkalarıyla nasıl iyi çalışacaklarını ya da işlerin kirli kısımlarını yapma eğiliminde değillerdir.

59

Baktığınız Project Euler ? Bu sitedeki sorunları yaparak kendime Python'u öğrettim. :] Java veya C # öğrendikten sonraysanız, bunu deneyebilirsiniz. Ayrıca, ellerinizi GUI programlamada da denemenizi öneririz.

Düzenle:

Kodlama uygulaması için göz atabileceğiniz birçok bağlantı için SO hakkında harika bir konu:

https://stackoverflow.com/questions/662283/websites-like-projecteuler-net


4
Site hakkında çok şey duydum, ancak sorunları denemek için hiç zamanım olmadı, ancak bugünlerde sahip olduğum tek şey boş zamanımdı, bu yüzden de meşgulüm.

44
Project Euler, programlama bilgisi oluşturmak isteyen acemi bir programcı için çok az kullanışlıdır. Matematik problemlerini kodlama algoritmalarıyla nasıl çözeceğinizi bulmaya yöneliktir. İyi bir programcı olmadan milyonlarca kişiyi yapabilirsiniz (muhtemelen yine de büyük bir matematikçi olacaksınız). Harika algoritmalar yazmak çoğu programlama çalışması için yüksek öncelik değildir.

1
Charles'a katılmıyorum - Euler belirli kavramları anlamak ve üzerlerinde uygulamak için motivasyon sağlayacak.
Broam

Xavier Ho'nun yaptığı gibi kullanmak ilginç ve faydalı görünüyor. Bu, kendinizi yeni bir dilin temelleri konusunda ustalaştırmaktır. PE'nin her iki programlamada (küçük ölçekte) VEYA matematiği konusunda size yardımcı olacağından şüpheleniyorum. Böylece her iki şekilde de dalabilirsiniz. Bu noktalar bir yana, Charles ile aynı fikirdeyim.

6
pythonchallenge.com anahtarıdır! Euler programlama ile çözülecek matematik problemleri olsa da, pythonchallenge saf programlama problemleridir
Xster

48

Kullanıcı adınızdan bir kadın olduğunuzu tahmin ediyorum ... Olmazsa, bunu görmezden gelmekten çekinmeyin veya kendi bakış açınıza uyarlayın.

Tecrübelerime göre, bilgisayar bilimi okulundan mezun olan kadınlar kendilerini benzer becerilere sahip erkek meslektaşlarına göre daha az yetkin buluyorlar. Birisi kadınların (ya da kesin olarak bildiğim kadınların) kendi eksikliklerine göre daha dürüst olduklarını söyleyebilir, ancak sonunda kendilerini işverenlere satmakta daha fazla zorluk çekiyorlar.

(Yüksek lisans okulunun çoğunu meslektaşlarımla karşılaştırıldığında tam bir başarısızlık gibi hissettim ve sınıfımın en iyisi oldum.)

Bu yüzden benim tavsiyem, kendinize karşı dürüst kalmak ve becerilerinizi geliştirmek için sıkı çalışmaya devam etmek olacaktır. Ancak iş ararken bildiklerinizi küçümsemeyin ve “ulaşmak” işlerine başvurmaktan çekinmeyin.

  • Size değerinizin gerçek bir değerlendirmesini verebilecek bir mentor bulun.
  • Sahte röportajlar yürütün ve kendinize güven, enerji ve tutku yansıtmayı öğrenin.
  • Bir röportaj yaptığınızda kişisel projeleriniz hakkında konuşun ve teknik sorular sorun. Öğrenme ve enerjiniz için en iyi varlığınız.

Sonrası olarak eklendi:

  • İlk işinizi yaptığınızda, maaşınızı pazarlık etmekten korkmayın. Çok fazla kadın ilk teklifi minnetle kabul ediyor ve hak ettiklerini asla alamıyor.

Bu ilişki ....
Paul Nathan

+1, tüm iyi noktalar. Okuldayken diğer meslektaşlarımla da benzer düşüncelerle karşılaştım.
Heather M

6
Sadece kadın bir şey değil; Zaten yetkin ya da büyümeleri gerektiğini görebilecek kapasitede olan insanlar (Yay sen!) Kendi yetkinliklerini kendi yetersizliklerinden şüphelenmeye başlamayanlardan daha fazla sorgulama eğilimindedirler. Bu fenomen için bir isim var. Dunning-Kruger etkisi. Okuldaki deneyiminiz, yaşam boyu öğrenme yolunuza devam edebilecek durumda olursanız, hangi kariyerde olursa olsun, olağanüstü bir başarı oldu. Size iyi şanslar diliyorum !!!
Warren P,

1
Warren: Kesinlikle doğru; daha az açık sözlü erkek akranlarımın çoğunda aynı problem vardı. Kuzey Amerika da dahil olmak üzere, dünyadaki birçok kültürde, küçük kızların agresif bir şekilde rekabet etmeleri ve becerilerini küçük oğlanlar kadar göstermeleri konusunda teşvik edilmemeleri nedeniyle bu özelliği kadınlarda daha sık görüyorum. Ama bu kesinlikle sadece kadınsı bir şey değil.

Müthiş cevap, tamamen katılıyorum. Ayrıca, mezun olduğum sınıfta fark ettim ki, dışarı çıkarılan kadınlar genellikle en iyi öğrencilerdi. (Yani, ne yazık ki, okulu bırakan birçok kadın mükemmel bir şekilde yetenekli programcılar yapabilirdi ...)

39

Birçok insan kişisel bir projeye başlaman gerektiğini söyledi. Bence, buradaki en iyi tavsiye. Diğer cevapları okuduğumda görmediğim bazı şeyleri eklerdim ...

  • Nerede bir alanda bir şey seç tutkulu hakkında . Bunu bulmak için en iyi yer belki de bilgisayar bilimi dışındaki çıkarlarınla ​​ilgilidir. Katıldığınız kar amacı gütmeyen, tutkulu olduğunuz bir hobi, yaptığınız bir spor olabilir.

  • Bir ortak çalışan bulun . Yalnız kodlamak zordur, bu yüzden bu projede sizinle birlikte çalışacak bir arkadaş bulursanız çok yardımcı olacak başka bir şey var. Bu çok daha eğlenceli hale getirir ve sizi motive eder. Son blog yazısında Jeff Attwood, SO inşa etme deneyimindeki bu kesin şey hakkında konuşuyor. http://www.codinghorror.com/blog/2010/05/on-working-remotely.html

  • Mütevazı bir şey seçin (başlangıçta) . İdeal proje küçük bir şeyle başlar. Geçitten çıkan hedef çok iddialıysa, o zaman göz korkutucu olacak. Bilgisayarlar, telefonlar, gömülü sistemler ve web için geliştirme yaptıktan sonra, web'in diğer insanların hemen kullanmaya başlayabilecekleri ulaşılabilir bir şey aramanın en iyi yolu olduğunu söyleyebilirim.

  • Mümkünse, diğer kişilerin kullanacağı bir şey seçin . Sadece on “müşteriniz” olsa bile, başkalarının sizin yaptığınız şeyi kullanmasını sağlama bir ilaç gibidir. İnanılmaz derecede tatmin edici. Müşterilerden öğrenmek ve onlara cevap vermek de böyle değerli bir öğrenme deneyimidir.

Eğer bu proje, mutlu bir şekilde gecenin derinliklerinde üzerinde çalıştığınız ve ertesi sabah yataktan sıçrayan bir emek emeği ise, o zaman iyi şeyler olacaktır. Öğreneceksiniz, güven artacak. İnsanların görebileceği bir şey olduğunda, portföyünüzün başlangıcı olur. Hiçbir şey programcıları ve (nezih) işe alım yöneticilerini gerçek bir şeyden etkilemez.


Mümkünse, diğer kişilerin kullanacağı bir şey almak ... geribildirim almak için en iyi yolu thats
balalakshmi

34

20 yılı aşkın bir süredir geliştirici olan birinin bakış açısından birkaç yorum:

Stackoverflow ve Google gibi arama motorları gibi web siteleri görüyorum ve böyle bir şey yazmaya nereden başlayacağımı bile bilmiyorum.

Bunlar, çoğunlukla diğer ekipler tarafından üretilen ve deneyim ve kaynaklarla desteklenen kütüphaneler ve altyapı (.net, java, asp.net, vb.) Üzerine inşa edilen ekiplerin ürünüdür. Bireysel olarak, benzer bir şeyi nerede yapmaya başlayacağınızı bilmemeniz, tamamen anlaşılabilir bir durumdur. Bu konuda endişelenme.

Bir yaz boyunca bir iPhone geliştiricisi olarak çalışma fırsatım oldu, ancak daha çok diğer insanların yazdığı kütüphaneleri kaputun altında gerçekleşen mekaniği çok az anlamakla birlikte yapıştırdığımı hissettim.

Korkarım ki, birçok geliştirme çalışması şimdi böyle. Ancak bu kütüphanelerin “üstünde” ilginç çalışmalar yapmak için çok fazla alan var. Ve algoritmaları zor bulma konusunda endişelenmeyin - kariyeriniz boyunca hemen hemen hiçbir zaman hızlı bağlantı, bağlantılı liste veya herhangi bir şey uygulamak zorunda kalmayacaksınız. Kütüphaneler bunun için var.

Temel olarak Bilgisayar Bilimi diploması ile mezun oluyorum ancak nasıl programlanabileceğimi hissetmiyorum.

Nasıl programlanacağını ve profesyonel bir geliştirici olarak nasıl çalışacağını bilmek iki farklı şeydir. Sadece bazı deneyimlere ihtiyacınız var, tercihen gerçek dünyadaki sistemlerdeki diğer geliştiricilerle çalışmak. Beceri setinize C # veya Java eklemeyi deneyin - aralarında çok fazla fark yok, bu yüzden bilgi aktarılabilir. Çok yakında uzmanlaşmaya dikkat edin. Derhal fazla para kazanamayacağınızı kabul etmeniz gerekebilir, bu nedenle mümkünse kişisel maliyetlerinizi bir süre düşük tutun.

Bahsettiğiniz proje üzerinde çalışmaya başlayın, ancak programlama bilginizi arttırmanın yanı sıra, onu kullanmayı deneyin; sürüm kontrolü, ünite ve entegrasyon testi gibi ilgili beceriler edinmenin ve hatta basit belgeler yazmanın bir yoluydu. Bu tür beceriler, bir geliştiriciyi bir programcıdan ayıran şeydir ve potansiyel bir işveren için iyi bir vitrindir. Yardımcı olabilecek birçok ücretsiz araç bulunmaktadır (Visual Studio'nun açık sürümleri, github, nunit, Google uygulamaları).

Yazdıklarından, CS dereceniz size teknik problemler hakkında nasıl düşüneceğinizi öğretmiş gibi geliyor. Ayrıca, mevcut teknik sınırlarınız ve deneyiminiz de dahil olmak üzere, iyi düzeyde bir kişisel bilgi birikiminiz var gibi görünmektedir. Bunları avantaj olarak kullanın. Şimdi iş piyasasına girmek için iyi bir zaman değil, ama çok çalışırsanız sorun değil. Endişelenmeyin, öğrenin, tecrübe edinin, güncel kalın, zevk aldığınız şeyleri yapmaya çalışın.

İyi şanslar!


“Neredeyse kesinlikle hiçbir zaman bir hızlı bağlantı, bağlantılı liste veya kariyeriniz boyunca ne olursa olsun uygulamak zorunda kalmayacaksınız” Mevcut pozisyonumda, özel bir yazılı bağlantı listesi için bir hızlı bağlantı uygulamak zorunda kaldım. Yine de listeyi uygulamak zorunda değildim. Temel şeylerin nasıl çalıştığını bilmenin kesin bir değeri vardır.

İyi bir geliştiricinin bu temel veri yapılarının ve algoritmaların nasıl çalıştığını bilmesi ve bunları uygulayabilmesi gerektiğine katılıyorum. Bağlantılı listelerimi birkaç kez yuvarlamak zorunda kaldım ama hiçbir zaman (neyse ki benim için) bir kısa mesaj yazmak zorunda kalmamıştım. Demek istediğim, OP'nin derecesi boyunca çalışmış olabileceği algoritmalar hakkında çok fazla endişelenmemesi gerektiğiydi çünkü birçok dil / platform (.net, Java, C ++, vb.) Muhtemelen önceden yazılmış uygulamaları içerecektir.

31

Programlama, kolej sırasındaki algoritmalarınızı veya genel not ortalamanızı anlamanızla ilgili değildir. Programlama kutunun dışında düşünme yeteneğine sahip olmak, öğrenmeyi arzu ve istekli olmak ve hepsinden önemlisi yaratıcılık ile ilgilidir.

Kişisel bir notta, geçen Mayıs'ta üniversiteden yeni mezun oldum ve çok kötü bir not ortalamam vardı. Sosyal hayatıma akademi'den daha çok odaklandım ve bedelini ödedim.

Bununla birlikte, üniversitedeki son iş görüşmem sırasında ( beni bir yıldan daha az bir süre önce karaya çıkardı), iş bulmada bana yardımcı olan yaratıcılık, öğrenme tutkusu ve analitik becerilerimi gösterdim.


27

Not: Bu gönderinin reddedilmesini bekliyorum. Bu, orijinal posterin cevabı değil, yukarıda okuduğum yorumların birçoğu üzerine bir gözlem.

Yukarıda okuduğum cevaplar beni gerçekten korkutuyor. Comp.sci derecelerinin işe yaramaz ya da alakalı olmadığı ya da size hiçbir şey öğretmediğine dair evrensel bir his var gibi görünüyor. Comp.sci dereceleri gerçekten o kadar kötü mü oldu, yoksa bu onların eksikliğini haklı çıkarmaya çalışan dereceleri olmayan geliştiricilerin sıcak havası mı?

Cidden insanlar, bugünlerde üniversitedeki insanlara ne öğretiyorlar? Mezun olduğunuzda bir CS derecesi (en azından öğrenciyken) yaptığınızda, derleyici tasarımını iyi bir şekilde kavrayacaksınız, comp. karmaşıklık, biçimsel yöntemler ve mantık, veri yapıları ve algoritmaların tüm hayvanat bahçesi, temel işlem araştırması (LP vb), veritabanları, şifreleme ve güvenlik, zamanlama algoritmaları, ağ protokolleri, internet geliştirme, işletim sistemi ve çekirdek tasarımı, paralel algoritmalar ve veri yapıları, Sayısal algoritmalar ve çok daha fazlası. Bütün parti tipik olarak son tezin bir parçasını oluşturan dev bir programlama projesi ile desteklenir. Bana comp.sci mezunlarının pratik uygulama programlama yetmediğini söyleme.

Ayrıca, daha geleneksel comp.sci derecelerinin bir kısmının yazılım geliştirme döngüsünün bazı yönlerini ihmal ettiği gerçeğini takdir ediyorum, muhtemelen TDD, birim testi hakkında fazla konuşmayacaksınız. Ama vahşice dürüst olalım: gerçekten roket bilimi değil, değil mi? SCRUM veya fonksiyon noktası analizi hakkında bir şey duymayacaksınız. Bu tür temel konularda detaylı kurslar vermek oldukça gereksiz olurdu, ancak bugünlerde birçok derece öğrencilere bu şeylerin nasıl çalıştığı hakkında bir fikir verdikleri sistem tasarımı konusunda bir kurs veriyor.

Verilen, .NET, PHP veya diğer mevcut endüstri standartlarında uzman olmayabilir, ancak bunun önemi yoktur. 5-10 yıl içinde, tercih edilen diller yine de değişmiş olacak. Sadece bir Peugeot'da araba sürmeyi öğrendiğiniz için, bir Fiat kullanamayacağınız ve bunun programlama dilleri için de geçerli olması gerektiği anlamına gelmez. Herhangi bir dilde çalışmaya yetkili olmak için birkaç iyi kitapla birkaç ay uygulama yapmanız gerekir.

Elbette, eğer bir şey zaman kaybı ise, temel olarak elektronik çoktan seçmeli bir sınav için oturmayı içeren ve size belirli bir mimarinin veya dilin (genellikle anlamsız) minutilerini soran bu pahalı "sertifikalar" dır. Bir programcının yetkinliğini belirli patolojik programlama durumları hakkındaki bilgileri ile ölçmeye meyillidirler.

BT sektöründe çeşitli firmalarda çalıştım ve diğer yazılım geliştiricilerin görüşme sürecine de katıldım. Olağan fizzbuzz sorularından birkaçını belirledik, fakat temel olarak örgün eğitim görmeyen veya kursiyer olmayan insanlara yönelikti. Daha önce hiç basit ve çok basit olmayan programlama soruları cevaplayamayan bir comp.sci mezunuyla tanıştım.

Not Avrupa'da yaşıyorum ve yalnızca Avrupa üniversite derecelerini biliyorum. Ancak ABD’deki üniversite standardının AB’dekinden çok daha yüksek olduğundan eminim.


4
Bu, herkes bir kez onları bulduktan sonra her derece hissettiği gibi. Genel olarak okul sizi çeşitli durumlar için hazırlar. Çalışmaya başladığınızda, daha fazla uzmanlaşabilirsiniz ve belki de tüm bu enerjiyi okula harcadığınızı hissedebilirsiniz, ama aslında ne yapacağınızı nasıl bildiniz? Asla öğrenemeyeceğin bir şey hakkında daha fazla şey öğrenmen daha güvenli.

1
Argümanın iki tarafını da görüyorum. Bazı gerçekten akıllı CompSci dereceleriyle tanıştım, ancak şimdilerde bir çağrı merkezinde çalışan CompSci dereceleri olan bazı adamlarla tanıştım çünkü CompSci'yi gerçekten umursamadılar. CompSci derslerimde çok şey öğrendim, ancak okuldan öğrendiğim işleri bana getiren teknik becerilerin çoğunu kendi zamanımda itiraf etmeliyim. Yazılım mühendisliği işleri için röportaj yaparken, genellikle belirli teknolojiler, problem çözme stratejileri ve kişilerarası beceriler hakkındaki bilgilerinizi sınarlar. Bunların hiçbiri açıkça üniversitede öğretilmedi.
Cerin

1
Beş dakika düşünmeye kalsa bile, herhangi bir sıralama algoritmasını açıklayamayan düzinelerce CS notu ile tanıştım. Belki de buradaki eyaletlerdeki üniversite standardı, kurulun genelinde tamamen iyi uygulanmamaktadır. @Chris S in işaret ettiği gibi, hiçbir şey öğrenmeden bir dereceye kadar kaydırmak yeterince kolaydır.
Dean J,

Burada iki şeyi karıştırıyorsun. İnanılmaz derecede yararlı bir derece buldum - beni çok daha iyi bir kodlayıcı yaptığını biliyorum , ama nedenini tam olarak çözemiyorum (muhtemelen biraz bilginin bir kombinasyonu ve problem çözme için daha iyi bir yaklaşım). Bununla birlikte, 512 baytlık bir arama tablosuyla (9,5) ECC'nin nasıl uygulanacağını bile bulamayan çok sayıda mezun var (oldukça prestijli bir üniversiteden). İyi kodlayıcılar “Bunu anlamadım ama sınav sorularını yapabilirim” den ötekilerdir.

1
ilginç bir problem, fakat neden normalde bir ECC testi yapıyorsunuz;), donanım hariç, elbette. compSci'de öğren

24

Alçakgönüllülüğün sana iyi hizmet edecek. Başlangıç Zihin olursak olalım, ne kadar eğitim ve deneyim öğrenme, her türlü yararlıdır.

Diğerlerinin önerdiği gibi egzersizlerle çalışın - Project Euler'de ve başka yerlerde.

SO'da başkalarına yardım etmek için çözümler geliştirin. Sorunun anlaşılması, uygulanabileceklerinin belirlenmesi ve nihayet bir cevabın ifade edilmesi, alıştırmalar becerilerinizi geliştirirken, kendinize olan güveninizi geliştirmenize yardımcı olacaktır.

Onunla sopa; iyi olacaksın.


9
Alçakgönüllülük size, size hizmet etmediği sürece - ayağınızı kapıya sokmak için ( kişisel bir proje de dahil olmak üzere ), belirli bir miktar chutzpa'ya ihtiyacınız olursa, irrasyonel olarak kendinize güvenmeniz de gerekebilir.

@Ian, senin düzeltmeni alçakgönüllülükle kabul ediyorum. ;-) Cidden - bu iyi bir nokta ve iyi bir makale. Sonuçtan hoşlanmıyorum, kadınların tıpkı erkekler gibi serseri olması gerektiği, ancak bunun pratikliği ile tartışmak zor.
Carl Manaster,

@ Carl - bir sonuca varmak için çok hızlı :-) İstihdam personeli / yöneticileri bu kibir / kendini terfi ettirmeyi yiyor. Özellikle adayların teknik pozisyonlarını değerlendirirken gerekliliklerini anlamaya başlamadıkları. Kendine terfi ettiren ve kendinden emin biri bu şovu çalıp çaldığında, bu zavallı kadınlarla aynı teknede çok sayıda nitelikli erkek gördüm. Daha fazla kadına fazla güvenme konusunda cesaretlendirmenin bir kazanç olduğunu düşünebileceğimizi sanmıyorum. En iyisini yapabileceğimiz yer IMHO, daha iyi kararlar vermek için İK mensuplarını eğitmek veya süreci yeniden canlandırmaktır.

23

Zorunlu bir lisans derecesi ile mezun olmanız, sizi bir müzik programından mezun olmaktan daha iyi bir programcı yapmaz.

Uygulama, uygulama, uygulama ve deneyim yerine geçemez. Günde 8 saat programlayın ve 5 yıl içinde şu anda eksik olduğunuzu anlıyor olabilirsiniz.


6
Bu bir yakalama-22 değil mi? İstediğiniz işi almak için tam zamanlı programlayın.
Jim Schubert

16
Hayır, 5 yıl içinde hiçbir şey bilmediğinin farkına
varacaksın

1
@Earlz, Ve sonunda bildiğiniz hiçbir şey zaten eski.
Dan Bryant,

4
Nitekim - tüm "Java okulları" ile (burada olabilir veya olmayabilir), bilgisayar biliminin programlanmadığını unutmak kolaydır. CS derecesine sahip, tıp fakültesine giden ve programcı olarak biten biyologları tanıyorum. Ancak hiç kimse bir biyoloji derecesinin neden onları bir cerrah yapmadığını sormaz: herkes biyoloji okumanın tıp pratiği yapmadığını bilir.

1
@Earlz ne kadar Zen :)
Tullo_x86

23

Böyle samimi bir soru, harika cevaplar - Kısaca zil çalacağım :)

Şimdiye kadarki cevaplar beni biraz şaşırttı - potansiyel olarak kendi büyüklüğümüzü biraz ironik bir şekilde kutluyorlar. SO belgelendirme ve çerçevelerdeki hatalar nedeniyle SO’ya geldim. Belli ki burada başka altınlar var ama harika bir şey olsanız bile alçakgönüllülüğünüzü tutmaya değer - ve bunu kişisel tarihsel (?) Kibir perspektifinden söylüyorum.

Daha iyi İK çalışanları ve yöneticileri sizi değerlendirmek için bir teknoloji uzmanı kullanacak olsa da, bir teknisyen tarafından işe alınmayacağınızı (muhtemelen değil) unutmayın.

İşverenlerin çalışanları için bir planı vardır, tüm yolu bu şekilde planlamayı ve algılamaya çalışın ve kendinizi biraz saygıyla içine sokun, belki de biraz kişisel gelişim ve gelişim sağlayın. Bir işveren gerçekten belirli bir plana sahip olmadığında zorluk ve fırsat ortaya çıkabilir - iyi sorular sormak ve planın bu tür durumlarda ortaya çıkmanıza gerçekten neden olabilir.

İş adamları (haklı olarak), onları anlamadıkları kararlara yardımcı olmak için sıklıkla algılarını biraz yönetmemiz gerektiğinden, onları anlamadıkları kararlar konusunda paranoyak olabilirler - ve diyorum ki, yanak dilinin size sahip olmadıkları bakış açısını göstermesi için ya da teknik olmayan iş arkadaşlarınızı geliştirmek. Bunun teknik olarak teknik olmayanlarla arasındaki ilişkinin özü olduğunu anlamamızın alçakgönüllü olduğunu düşünüyorum - ve yapmaktan kaçınmak zor, yaptığımız şey geniş.

Profesyonel olmak, açık fikirli ve saygılı olmak, meslek sahibi olmak anlamına gelir - eğer profesyonel olanı bulamıyorsanız, internette çalışacak yerler olduğundan eminim - Birisinin başladığımda bana işaret etmesini diliyorum. :)

Söyleyeceğim son şey, geliştirme ve mimarlıkta daha iyi bir hale geldiğiniz ve zaten bu yola adım attığınız gibi ses çıkarıp duyduğunuzda, profesyonel kodunuzun, olmasa bile, oldukça tatmin edici olabileceğini fark edebilirsiniz. uygun çözüm.

Çözümün ne olduğundan emin değilim, ancak bir çıkış bulmaya çalışın ve işinize daha az duygusal olarak katılmaya çalışın, kendinizi hızlandırmanıza ve daha iyi bir yaşam sürdürmenize yardımcı olur - özellikle daha fazla çaba göstermeye çalışırken dikkatli olun "doğru" bir şey - iş arkadaşlarınız için çok fazla komplikasyon yaratacağınız ve projenizin zaman çerçevesi içinde gerçekleştirmeniz için gereken zaman miktarını neredeyse asla koyamayacaksınız. Bunun bir belirtisi “kararıyor” - kimseye ne yapmak istediğinizi açıklamak istemediğinizde. En iyi cihazların çoğu özüne yatkın bir kişiye ne yaptığını açıklayabilir - bu, öğrenmek için harika bir beceridir ve bunu entelektüel olarak uygulamayı özgürleştirdi.

Heh, tahmin ederken, başlangıçta görevinizi bitlere ayırın, zamanı toplayın ve ikiye katlayın (buna, bölmek, fethetmek, eve gitmek;

İyi şanslar! Bir kayak hocası olmayı umduğum okuldan ayrıldım ve bir liderlik kurdum. Eminim sonunda ne yaparsan yap, iyi yapacaksın.


10
İlk cümleniz kısaca zil çalacağınızı söyledi ... ama burada en uzun cevaplardan birine sahipsiniz. ;)

+1 için "görevinizi parçalara ayırın, zamanı toplayın ve sonra ikiye katlayın (bu, bölmek, fethetmek, eve yürümek;)" ... birçok işte yöneticilerin yapmasını bekleyeceği gibi dört katına çıkmanız gerekir. Sürenin yarısını ve tahmininizin uzatılmasına izin vermeden aynı zaman diliminde yapılması gereken başka bir proje ekleyin. Hatta şunu duydum "iki ile çarp ve birimi arttır (1 saat => 2 gün, 1 gün => 2 hafta, 1 hafta => 2 ay, 1 ay => 2 çeyrek, 1 çeyrek => 2 yıl, .. .) ve bazı gerçek iş deneyimlerinden sonra her zaman düşündüğüm kadar komik değil

Sadece bu yazdırdı ve duvara yapıştırılmış
Soru

22

Evet, bu oldukça normaldir - çoğu okul, hatta prestijli olanlar bile, bilgisayar bilimi öğretimi için harika bir iş ve yazılım geliştirme öğretimi için korkunç bir iş çıkarır. Bu yavaş yavaş iyileşiyor, ancak daha gidecek çok yolu var.

Her neyse, doğru şeylerin çoğunu yapıyor gibisin:

  • İş dışında program
  • Yazılım geliştirme ile ilgili kitapları okuyun (Kod Tamamlandı, Tasarım Desenleri, Efsanevi Adam Ayı, vb.).
  • Yeni teknolojileri öğrenmeye devam edin - okul size dilleri değil, dilleri nasıl öğreneceğinizi öğretmiş olmalı. Yeni çerçeveleri, IDE'leri, apisleri, kütüphaneleri, yapım araçlarını vb. Öğrenin.
  • SO ve benzeri sitelerde takıl. Düzenli olarak deneyimli insanlarla etkileşimde bulunmak, bilgeliğe giden birkaç kısayoldan biridir.

1
Açıkçası, Efsanevi Adam Ayı biraz abartılıyor, değil mi? (Ama ben "Kısaca" türünden kitapları severim).
Camilo Martin

2
@Camilo aynı fikirde değil. Efsanevi Adam Ayı yazılım mühendisliği konusunda, kısaca kitaplar sadece tek bir teknolojiyle ilgili. Sonunda, yazılım geliştirme ile ilgili peopleware konularını anlamanız gerekecektir. MMM, konuyu kapsayan okumalardan biridir.
Brian Wigginton

21

Gerçekten harika bir soru. Eminim, tüm yaşam ve iş pazarlarında tam olarak tanımladığınız şeylerden geçen birçok insan vardır.

İlk önce - kontrolünüz dışında olan şeyler hakkında endişelenmenize gerek yok. Okulu, ne yaptığını ya da öğrenmediğini ya da akademik olarak ne kadar iyi yaptığını vurgulama, hatta düşünme hakkın yok.

İkinci - uzmanlaşmak. Yaptıkları işte gerçekten iyi olan insanlara her zaman talep olacak, ne yaptıklarını gizlememiş olsalar bile. En sevdiğiniz programlama dilini seçmeniz ve bu dili tam anlamıyla tamamlamanız ve “kendi dilinizi yaratmanız” için çözmeniz gerekir. Programlama becerilerini nasıl geliştireceğiniz konusunda zaten çok iyi bir tavsiyeniz var, ancak günün sonunda hiçbir şey bulmak için kıyaslayamayacağınız bir şey var. konuyla ilgili yetkili bir kitap ve birkaç gün boyunca odanızda kendinizi kilitleyin; hiçbir şey yapmadan, her sayfayı okuyun ve kitabın verdiği her örneği yazın.

Üçüncüsü - kendini tanıt. Bu bilgisayar bilimi tarihinde bu adım hiç olmadığı kadar kolay olmamıştı. Verdiğiniz cevaplar ve SO ile ilgili sorduğunuz sorular özgeçmişinizdir. Mastering yapmaya karar verdiğiniz dilde SO'da lider otorite olmak için kendinize danışın. Saatlerce süren kapsamlı araştırmalar ve geç cevaplar gelse bile, etiketiniz üzerinde bu sunucudan gelen soruların sorumluluğunu üstlenin. Arşivleri araştırın ve konunuzla ilgili SO hakkında sorulan her soruyu okuyun. Yanlış bilgileri düzeltin, cevaplara kendi cevaplarınızı ve varyasyonlarınızı verin ve mevcut birkaç yanıtı daha iyi bir cevapta birleştirin. Yorumlarınızı, cevaplarınızı ve düzenlemelerinizin bitmeyen bir akışını içeren SO’yu sel etmek, akla gelmeniz gereken şeyler olmalı (artı eğlenceli çünkü ün kazanıyorsunuz).

Dördüncü - genel imajınız üzerinde çalışın. En iyi işe inmek için özgüven önemlidir. Şirketler, mükemmel iş arkadaşları, ortak çalışanlar ve iletişimciler olan insanları istiyor. Bu bir sorun olabilir düşünüyorsanız, o zaman yerel kütüphaneye gidip birini almak Egonu artırmak ve sonsuz tamamlayıcı ile duş için onlara ihtiyacımız olduğunu arkadaşlarına söyle bunlar .


2
İşbirliği / iletişim becerilerinin önemini vurgulamak için +1. Mezunların çoğu onlardan yoksun.
Denis Otkidach

1
Uzmanlaşmaya katılmıyorum, her teknoloji bir gün ölecek, bu yüzden çok fazla uzmanlaşırsanız işiniz bitiyorsa ... tamam, bazı teknolojiler (=> COBOL) yavaş yavaş ölür, böylece yeni bir teknolojide uzmanlaşmak için yeterince zaman tanırsınız ama yine de riskli.

1
Uzmanlık yeri var, ancak üniversiteden çıkmanın doğru zaman olduğundan emin değilim. Arz ve talep için de tartışabilirim - uzmanlaşmanın püf noktası, doldurulması gereken boşluğu bulmak, zaten dolu olanı değil. (ve COBOL cephesinde - birkaç yıl önce, bir uçaktaki koltuk arkadaşım 20'li yaşların ortalarındaydı, fakat eski bir sistemi gösteren bir projeyle uğraşıyordu ... ve anladığım gibi) onlar hala COBOL'e bağlı kalıyorlardı, yeni bir donanıma geçmek zorunda kalıyorlardı - bu yüzden potansiyel olarak yeni nesil COBOL programcıları var)

21

Tamam, hacker haberini gördüm ve ben de "KENDİ KENDİ KOLAY!" Gibiydim!

Bu yüzden geçen Aralık’ta CS’de bir derece ile mezun oldum ve bir şekilde derslerimi geçmeyi ve gerçekten de kazanmadan bir derece almayı başardığımı hissettim. Bütün sınıf arkadaşlarımın kodlama becerilerinin inanılmaz olduğu ve yapabileceğim tek şeyin temel Java programları hazırlamak olduğunu hissettim. Nasıl kodlanacağını ve iyi bir kodlayıcı olmayı öğrenmek çok zaman alır. Öğrenecek çok şey var sooooo ve orada benim tavsiyem sadece biraz zaman almaktır. İşleri giderken öğreneceksiniz. Diğer herkesin üzgün olduğu gibi, öğrenmenin en iyi yolu özellikle kodlama yapmaktır. Söylemeye gerek yok, okul uygulamaları hakkında size rahatsız etmeyecekleri uygulamalar oluşturma konusunda çok fazla şey var. Kötü hissetme, sadece orada öğrenmen için çok şey olduğunu bil ve öğrenmenin zaman alacağının farkına var.

Bence büyüdüğünüz şehre kesinlikle bakmalısınız. Dışarıda CS derecelerini işe alan bir ton şirket var ve bunların hepsi okul dışında iyi bir programcı olmanızı gerektirmiyor veya beklemiyor. Kodlama ile ilgili herhangi bir soru sorulmadığı yerlerde yaptığım birçok röportaj vardı (ayrıca algoritmaları çözmemi ve kodlamamı isteyen çok fazla şey vardı). Öğrenebilme yeteneğinizi zaten bildiklerinizden daha fazla önemseyen şirketlere başvurun (deneyimlerime göre, büyük şirketler bu konuyu daha fazla önemsiyorlar çünkü kodunuzu hemen çözemezseniz onları etkilemeyecekler).

Kodlamanın yapmak ve sürdürmek istediğiniz bir şey olup olmadığını bilmiyorum, ancak teknik bir altyapıya ihtiyaç duyan teknik olmayan birçok iş var. Bu seçeneklere bakabilirsiniz.

C # veya Java gibi bir dilin giriş ve çıkışlarını öğrenmeye ve programlama ilkelerine odaklanmam. İyi kodlama becerilerini aktarabilmeli ve bunları herhangi bir dilde uygulayabilmelisiniz (bu, kariyerinizdeki uzun ömürlülük için önemlidir ... Java sonsuza kadar ısınmaz). Öte yandan, "sıcak becerilerin" bilinmesi, bir işin yapılmasına yardım edebilir. Görüşme becerileri REALLLLLY için önemlidir. Sadece alıştırma yapmak için olsa bile, aldığınız her röportajı yapın.

Her neyse, IBM gibi büyük şirketlerin ulaşamayacağınızı düşünmüyorsunuz. Birkaç ay önce sizinle aynı hissettim ve şimdi IBM'de çalışıyorum. Benim not ortalamam da o kadar iyi değildi. Programlamayı hala emiyorum ama zamanla daha iyi olacağımı biliyorum. Sadece öğrenebilme yeteneğine güven!


1
IBM gibi büyük şirketlerin diğer pek çok yerden daha fazla erişime sahip olduğunu söyleyebilirim. Zeminde koşmayı beklediğiniz küçük yerlerin aksine, yetenek havuzlarını geliştirebilecekleri yeteri kadar insan var. Ve her zaman staj vardır - zaten mezun olmuş olmaktan biraz geç olabilir, ancak birçok devlet kurumu yaz stajyerleri getiriyor ... böylece “NASA” ya da benzerini özgeçmişinizde alabilirsiniz.

20

Vay, bundan önce ne kadar çok cevap.

Tamamen farklı bir tepkiye ne dersiniz?

Sorununuzu bir insan olarak ele alalım.

“Konsept dersinden mezun oldum ve doğmak üzereyim. Annem taç yapıyor ve yarın sabah teslim edileceğim. Ama Usain Bolt gibi sporculara baktığımda, “ nasıl çalıştırabilirim diye düşünüyorum. hızlı?".

Ama buradasınız, tam teşekküllü bir insansınız, okula gittiniz, yürüyebiliyor, konuşabiliyorsunuz ve bir bilgisayar kursu yaptıysanız, önyüklemek için oldukça zekisin. Utanılacak bir şey yok.

Şimdi, Usain Bolt doğdu ve aniden çılgınca zamanlar yoluna koymaya başladı mı, yoksa büyük bir miktar hayata maruz kalmaya başladı, neyle ilgilendiğini, ardından inanılmaz miktarda uygulama izledi ve sonra aniden " Bam!" oradaydı.

Daha büyük olasılıkla ikincisi. O yüzden ne yapman gerektiğini bilmediğin için kendine zor zamanlar verme. Sizin için neyin doğru olduğunu bulmak zaman alır. Yani içindir size Ailen senin eş düşünmüyor, ne düşündüğün gibi değil. Sizin için doğru olan ne ? Ateşini yakan ne ? Seni düşündüren şey * evet bu havalı "herkesin pantolon olduğunu düşündüğü zaman bile.

Ne yapmak istediğinizi hiç düşünmeden derecenizi bırakmanız (ve / veya) çok nadir değildir.

Benim için okulda O seviyelerinde iyiydim (İngiltere’de bir yeterlilik) ama A seviyelerini umursamıyorum (Üniversiteye bir derece almak için gerekli). Bu yüzden derecemi yapmak için daha küçük bir yere gittim (ve bunun sonucunda tercih ettiğim dereceyi değil). Ama onu dışarıda bıraktım (kariyer olarak ne istediğime dair bir ipucuna sahip değilim) ve çoğu yazılım uzmanının asla öğrenemediği elektronikler ve şeyler hakkında çok şey öğrendim. Bu süre zarfında bilgisayar oyunları yazarı olarak serbest çalıştım.

Sonuç mu? Derecemi aldıktan sonra (takdire bağlı olarak) düz elektronikle çalışanlardan daha yüksek maaşlı bir iş görüşmesine sahip bir işe girdim ve saçımı değiştirmedim veya takım elbise giymedim. Ne? 23 yaşındayken önemli olan şeyler (şu an geriye bakarken, 44 yaşındayken buna gülüyorum, ama bu sizin için gençliğin boşluğu).

Bu şirket çöktü ve sonra daha ciddi olmaya başladım. Ama birdenbire birkaç yıl daha beklemeden aniden (kazayla) beni ilgilendiren bir şey bulamadım. Düşük seviye yazılım araçları olduğu ortaya çıktı. Belli olmalıydı - yazdığım tüm bilgisayar oyunları montajda yazılmıştı, her zaman kimsenin kafasını dolaştıramayacağı düşük seviyeli şeyleri sevdim. Ancak bunu bir gelecek olarak görmek, daha olgunlaşıyor ve 20'li yaşlarımın ortasına kadar tezahür etmemesini şaşırtmadı.

Sık sık (ve hala şaşırdım), genellikle hala gençleri olan gençlerin ne yapmak istediklerini bildikleri görülüyor. Fakat asıl soru, hala 27 yaşında mı yapıyorlar? Yoksa erken fikirleri onlar için doğru olmadığı için rotayı değiştirdiler mi?

BU kadar etkileyici bir şeyi nasıl yapabilirim (ne olursa olsun, Google, SO)? Şey, parçalara ayırıyorsun, tıpkı yazılım gibi ve hayattaki her şeyi. Temel şeylerle başlar, deneyim kazanırsınız. Yeterince iyiyseniz, devam edersiniz ve daha fazla tecrübe elde edersiniz, ya da onu terk edersiniz, çünkü yeterince iyi olmadığınızı ya da cehennem kadar sıkıcı olduğunun farkına varırsınız (bu yüzden her zaman olduğu gibi bile gelmiyoruz Altın madeni oldu. Benim için sıkıcı!).

Elbette, arkadaşlarınıza bakın, büyüklerinize bakın, seçimlerini ve ilgi alanlarını inceleyin. Ancak kendi sınavınızı da inceleyin. Genellikle ilk bakışta deli görünen şey / bonkers aslında asıl meseledir. İlginç (yerine sadece fatura ödeme yerine) bulabilirsiniz şey yapmak olduğunu SO çok daha ödüllendirici.

Evet, biliyorum ki 23 yaşında ve Audi TT'ye ve havalı daireye odaklandığını ve mantıklı kariyer seçimlerinden ziyade parayla cazip geldiğini biliyorum, ama bir noktada cidden havalı arabanın tamamen parçalanmadığını fark edeceksin. Olmak - o kız, senin kim olduğun için senden hoşlanmalı, kullandığın gibi değil.

Cidden, bir düşün. Çok soğuk olmayan bir çözüm sadece doğru cevap olabilir.


-1: Bunu biraz sıkılaştırır mısın, soruya daha çok odaklanıp kendin hakkında daha az mı?
Jim G.

2
'Ben' ile ilgili değil, başlangıçta 'burada' ne olduğunu bilmeden oradan buraya nasıl geldiğimle ilgili. Ben sadece kendi deneyimimi örnek olarak kullanıyorum, çünkü deneyimimi başkalarının deneyimlerinden daha iyi biliyorum. Benim hakkımda okursanız, yanlış bakış açısıyla okursunuz. Genelde, nesneleri koyduğunuz gibi "sıkılaştırırsanız", ifade edilen bakış açısı için bir arka plan sağlamaz ve okuyucunun kafası karışmasına neden olmaz. "Mezun olduğumda ne yapmak istediğim hakkında hiçbir fikrim yoktu, ama şimdi filan filan yaparım" yazabilirdim. Bu, kimsenin devam etmesi için ilham vermeyecekti - "inanmak için gerçek bir sebep yok" (TM).

İyi cevap Stephen. Sadece buradaki diğer cevaplardan farklı bir POV'dan.

+1, Keşke bunu en iyi cevap olarak yapmak için 1000 oy ekleyebilseydim. Bana dokundu!

18

Başkaları tarafından verilen mükemmel tavsiyeye ek olarak, bölgenizdeki geliştirici etkinliklerine katılmayı da eklerim. Toplantılar, kullanıcı grupları, bar kampları, kod kampları, vb. Arayın. Bu, diğer geliştiricilerle ağ kurmanıza, iş adayları edinmenize, yeni teknolojilere ayak uydurmanıza ve diğer geliştiricilerin beceri seviyelerinde gerçekçi bir bakış açısı sağlamanıza yardımcı olur.


Bunun için uğraşmak istiyorum. Bunu yap. Bir hastanede tıbbi kayıtlarda çalışan bir teknoloji okulundan yeni çıkmıştım. Yerel .NET toplantılarına gitmeye başladım. Biraz zaman aldı ancak nihayet sunucu ve uygulama desteği yapan bir geliştirme firmasında pozisyon aldı. Hayattaki son hedefim olmasa da, tıbbi dosyaları taramaktan vazgeçmek.

17

10.000 saatlik kuralı takip edin.

Bir şeyin ustası olmak için en az 10.000 saat pratik yapmanız gerekir. Böylece 10.000 saat programlama geçirin ve bunun ustası olacaksınız Eğer 10.000 saat programlama yapmamışsanız ve bir usta ustası gibi hissetmiyorsanız, bulaşık ısırmayın, sadece kodlama için daha fazla zaman harcayın.

Ayrıca, günde 8 saat boyunca program yaparsanız, bunu yapmanın muhtemelen 3 buçuk yıl alacağını unutmayın. Yalnızca mesai saatlerinde program yaparsanız, muhtemelen yaklaşık 4 yıl sürecektir. 3/4 yıllık lisans programınız sırasında bu kadar zaman geçirmediyseniz, muhtemelen bir usta gibi hissetmezsiniz.


1
ve aynı saati tekrar tekrar yapmadığınızdan emin olmalısınız! Öğrenmeye devam etmek için kendini zorla.
Froome

10k kuralı için +1. İlk önce duydum, ama pazarlama açısından harika görünüyor ve çok gerçek.

14

Mümkünse sadece birkaç düşünce.

Wendy bir CS derecesi ile mezun olabilir, ancak programlama pratiği hakkında çok az fikri olduğunu söylüyor. Bu çok rahatsız edici, hatta korkunç değil mi? '70'lerde İngiliz bölümlerini suya batırmak dolandırıcılık kadar rahatsız edicidir: edebiyat, kişinin anlayabileceği ve bütünleştirebileceği bir fikir topluluğu değil, öğrencinin soyutlaması ve' yapısızlaştırması 'gereken bir metinler demesidir ( http: / /www.answers.com/topic/deconstruction ). Neyse ki, bu fetit gelgitleri fırlıyor, belki de yabani ot sörfünde silen eğitmenler şimdi emekli oluyor.

Yıllar önce - onlarca yıl önce - CS'deki ilk kursum bana sıralama dilini, sıralama, karma alma ve arama (ve, evet, özyinelemeyi) gibi gerçek sorunları kullanarak derleme dilini (C icat edilmeden önce) öğretti. İkinci kursum gerçek bir canlı çalışma derleyicisinin tasarımını ve gerçekleştirilmesini öğretti. MIT'de yarı zamanlı bir öğrenciydim ve bu iki kurs, bir programcı olarak ödeme almaya başlamak için ihtiyacım olan tek şeydi; ve iki ya da üç ay sonra biraz üretken olmak.

Bu yüzden, bu sabah Wendy'nin ağlamasını duyarak, her yerdeki MIT'nin tekliflerini hafifletemediğini ve öğrencilerini (programlama pratiği bağlamında) faydasız bir saçmalıkla kandırdığını düşünüyorum. Ancak, MIT'nin EE / CS müfredatına baktığımda, tam olarak ne olduğunu görüyorum:

http://student.mit.edu/catalog/m6a.html

Özellikle departmanın Python'u öğretim dili olarak kullandığını fark ettim! Yani gerçekten! MIT'de CS derecesine benziyor, MIT'de CS öğretmeni olmak için bir öğrenciyi nitelemek anlamına geliyor. Özyineleme hakkında konuşun!

Sonra Kodlama Korkusuna ( http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html ) bu katkıya rastladım ve çok düşündüm. bu konuşmanın:

“Bu tartışmaya geç kaldım [programcı adaylarında başarının öngörülmesi hakkında], ancak geç çiçek açan 30 yaşındaki CS lisans son sınıf öğrencisi olarak benim deneyimimde, programlama derslerini işe yaramaz ve daha az kötü öğretilmiş olarak öğrendim Ben sadece bir topluluk kolejindeydim, sonra Chicago’daki Illinois Üniversitesi’ndeydim.

"1. Nesneye yönelik, öğrencileri usul yöntemlerini çok az ya da hiç anlamayan bırakan ve

“2. Weed-out sınıfları. Sınıflar, öncelikle insanların sadece kitabı okuması söylenen ayntax ve yapı yerine, farklı türdeki problemlerin tanımlarını ve bunların arkasındaki matematiği içermekteydi.

"Veri Yapıları çekirdeğine kadar kod doğrudan onaylanmadı ve sonra hala hangi eğitmene bağlı olduğuna, bazıları çok hafif kodlu ve biraz güzel kod ağırlığına bağlıydı. Öğretmenlerin kod hafif olmasının büyük bir cazibe olduğunu söyleyebilirsin Bu noktada, eğer kod üzerinde yoğunlaşırlarsa, iki yıl boyunca bir bilgisayar bilimi dersinde olan öğrencilere nasıl programlanacaklarını öğretmeye odaklanmaları gerekirdi.

“Kodlama birçok genç için bir hobi olduğu için, eğitim kurumlarının beklenen öğrenme eğrilerini oluşturmaya güvendiklerini, okula başka seçenek seçmeden, çılgınca hile yapmaktan, programlamayı çok az deneyime sahip olanları bırakarak bıraktığını düşünüyorum. boş zamanlarının kodlarını okumak ya da ana dallarını değiştirmek, ve deneyimimde soyut düşüncede bir eksiklik olması gerekmez, çünkü CS’den düştüğünü bilen herkes Elektrik Mühendisliği’nde kaldı. soyut cephede, hala nasıl programlandığını bilmiyorlar;

"1. Gerekli programlama dili olarak Java. Java'yı burada bash etmeyeceğim, ancak öğrencilerin kendi çöp koleksiyonlarını öğrenmeleri güzel olmaz mıydı? Ve işaretçiler öğrenmek iyi bir şey olmaz mıydı? onlarla tekrar bir dilde programlamaya karar vermesek bile mi?

“2. İşletim sistemleri teorisinde çekirdek bir sınıf almak, Java ile uğraşmak ve kampüste bir C sınıfı bile olmadan C (tabii ki) olduğunu bulmak?

"Elbette otuz yaşındayım ve ayrıca her zaman program yapan insanlardan biriyim, bu yüzden hiçbir problemim olmadı, ama soyutladığımda benden daha iyi olduğunu bildiğim birçok insan gördüm (Calculus, DiffEQ ve önceki fizik derslerinden ) ve kendilerine karşı üst üste konmuş bir programı bitirmeye çalışmak konusundaki toplam sıkıntıları ”dedi.

Sadece birkaç veri noktası var, ama diğerleri dediği gibi unutulmaz.

- Pete


Bu yorgun bakış açısından çok yoruldum.
Andres Jaan Tack

Python, var olan en iyi öğretim dillerinden biridir
Casebash

@Iplplben, Pete veya Jamaal codinghorror.com sitesinden?
Zaki

14

Öncelikle, oraya asıl!

İkincisi, burada bana yardımcı olan bazı şeyler var:

  1. İş aramanızı ilgi alanınızın ötesinde tutun. Kesinlikle yeniden bulmak için Tamam. Dışarı çıkıp yeni bir yer görmek için harika bir fırsat!
  2. Deneyim düşük olduğundan, görüşmecilerin çalışma ve problem çözme konusunda heyecanlı ve enerjik bir kişi olduğunuzdan emin olmak istediklerini düşünüyorum. Bu yüzden şirket için kodlama yapmak istediğimden emin oldum. Hangisindeydim;)
  3. Görüşmeci sorularınızı sorun. Şirketi araştırın ve görüşme sırasında bazı materyalleri hazırlayın. Hangi tasarım desenlerini kullanıyorsunuz? Neden Y teknolojisi yerine X teknolojisi? Bunun görüşme sırasında sizi bir kişi olarak dolaştırdığını ve ara vermenize olanak tanıdığını düşünüyorum.
  4. Evde eğlenmek için kod! Başarılı olmak zorunda değil, sadece okuduğunuz bir tekniği ya da veritabanı gibi bir teknolojiyi kullanan bir kod yazmanız yeterli.

Üçüncüsü, tekrar mezun olduğumda seninle benzer bir teknedeydim, orada kal ve aramaya devam et. İlk işin orada.


14

Çok az insan , sadece çalıştığı bir konuda uzman olmak için herhangi bir disiplinden mezun olur . Bilgisayar bilimi bu konuda hiçbir şekilde özel değildir. Hiçbir şey ampirik tecrübeyi geçemez ve yalnızca gerçek müşteriler için tam teşekküllü yazılım geliştirmekten, bununla ilgili tüm talepler, zaman kısıtlamaları, değişiklikler ve ekip çalışmasından faydalanırsınız.


1
Maalesef, bu doğru. Bir lisans, başarmayı başardığınız bir yaka kartı dışında, işe yaramaz. Bununla birlikte, bilgisayar bilimleri müfredatı lisans düzeyinde korkunçtur. CM'in müfredatı 5 matematik gerektirir, ancak biçimsel dili, otomatları ve hesaplanabilirliği bir derste birleştirir ve bu bir seçmelidir.
MIA

4
% 100 kabul edin. Neden az önce kalifiye olduğunuz konusunda uzman olmalısınız ?
Alex Feinman

13

Bu kötü siteyi geçen gün buldum http://99designs.com/ Web sitesi tasarımı veya başka bir tasarım altında muhtemelen yazılımla ilgili bazı projeler bulabilirsiniz.

Bu, kod almak, yeni bir beceri geliştirmek, potansiyel işveren olabilecek bazı yeni insanlarla tanışmak ve hatta biraz para kazanmak için harika bir yol olacaktır.

İşverenlerin, bir işin olmasa bile kıçına oturmadığını göstermesinde büyük değer olduğunu öğrendim. Dışarı çıktığınızı ve bazı projeler yaptığınızı, tercihen bir röportajda gösterebileceğinizleri gösterin.


Günümü 1) özgeçmiş gönderme 2) kitapları gözden geçirme arasında bölüştüm ama hiçbir projede çalışmıyorum. Bu arada çok ilginç bir site. Sanatçılara ve tasarımcılara yazılım geliştiricilere göre daha çok hedeflenmiş görünüyor, ancak daha fazla araştırma yapmak zorunda kalacağım.

Kitaplar hakkında çok fazla endişelenmem. Başka yerlerde de belirtildiği gibi, öğrenmenin tek kesin yolu yapmaktır. Bir iş bulması biraz zaman almaz. Talihsiz bir durumdur, ancak bazen doğru olanı bulmak aylar sürer. Denemeye devam edin :) Size katılıyorum, site sanat / tasarıma yönelik daha hedefli olsa da, web siteleriyle ilgileniyorsanız, bunlardan bazıları da var. Bunun avantajı, kendiniz fikrine sahip olmadan bir proje yapabilmeniz ve ödeme alabilmenizdir, aksi takdirde , diğer proje fikirleri için sourceforge.net'e bakabilirsiniz

13

Endişelenme. Roma bir günde inşa edilmedi.

For each P in PeopleYouKnow
Try
  ask/call P for a Job apply for job;
Catch Denial As Exception
  don be worry;
  //you'll get a job later
End Try

Finally
 If you haven't found a job yet
  For each programmingJobAd in internet

 Try
    apply for job;
    Follow up;
  Catch Denial As Exception
   don be worry;
  //you'll get a job later
 End Try
end
//Keep trying.
//find a bug from this code.

DÜZENLE: #! diff A B

3c3
<   ask/call P for a Job apply for job;
---
>   ask/call P for a Job job; if job is available apply for job;
9a10
>  //(sic)
14c15
<     apply for job;
---
>     apply for programmingJobAd;
20c21
< end
---
> End

12

İlk önce, google'ı kodlayamayacağınız için endişelenmeyin. Google, birkaç yıldan fazla bir süredir çok sayıda deneyimli programcı tarafından yapıldı. Bu, görsel sanatlar derecesini bitirmek ve Son Akşam Yemeği'ni nasıl yapabildiğinizi merak etmek gibidir.

İş avcılık için, gereksinimleri terleme. Sadece onları arayın ve yıllar olmadığını söyleyin, ancak yine de başvurmak istiyorsunuz. Eğer gerçekten bu deneyimi istiyorlarsa, daha genç pozisyonların mevcut olup olmadığını sorun - sadece sizin için yeni bir pozisyon yaratabilirler. Çoğu iş belirli bir kişi için oluşturulur. İK departmanına değil, proje yöneticisine başvurduğunuzdan emin olun. İK genellikle yeni işler yaratmaz, genellikle başvuru sahiplerini mevcut işler için tarar. Google bu durumda arkadaşındır;)

Yaklaşık 6 aydır yatırım yapmak istemediğiniz sürece bir web uygulamasını kodlamaya çalışmayın (google veya yığın taşması gibi). Bu büyük bir öğrenme eğrisi. Bir VCS'yi yönetmeyi, bir web sunucusu çalıştırmayı, HTML JS ve CSS kodlamasını, bir veritabanı sistemini ve web uygulama dilini öğrenmeniz gerekir. Acımasız. Eğer web işleri yapmak istemediğiniz sürece bu teknolojilerin çoğu aktarılamaz.

Web uygulamaları yapmak istiyorsanız, basit bir web uygulaması kurmaya bakabilirsiniz (ülke arama uygulamasına bu django tabanlı IP gibi - http://www.coulix.net/blog/2006/aug/17/ip- ülke bayrakları-django-yorumlar / ). 90 dolarlık bir hayalet indirim kodu için alışveriş yapabilirsiniz (böylece gerçek bir web sunucusunda çalışabilirsiniz) ve bir şeyler hazırlamaya çalışın. Güvenlik veya performansı hakkında çok fazla endişe (ama etmeyin yapmak kullanımı ssh) - bu sadece bir öğrenme proje.

Masaüstünde bir şeyler yapmak istiyorsanız, pygame'e göz atabilirsiniz.


Google'ın ilk sürümünün kısa sürede yapıldığını düşündüm? Bir yazın ya da
onun

Apache masaüstünüzde Linux altında çalışan bir "gerçek web sunucusu", para harcamanıza gerek yok. Sizce sence hosting firmaları ne yapıyor?
TMN

@TMN, web sunucusu, bir üretim donanımı ve yazılım yığını anlamına geliyordu. DH'nin Apache ve MySQL kullandığını biliyorum, ancak bir üretim sunucusunda geliştirmenin avantajları var (posta gibi zor şeyler de dahil olmak üzere her şey ayarlandı ve sizin için etki alanı kaydını yapıyorlar) ve dezavantajları (kök yok gibi) ve uzaktan geliştirme için kullanılır). Bir üretim sunucusu kullanmak sizi web çalışmalarına daldırır.

11

Programlama ile ilgili her şeyi okuyabilirsiniz, ancak iyi olana kadar gerçekten programlamayı öğrenemezsiniz. Programlamaya başlayın!

Kişisel bir projeye başlamanızı tavsiye ederim. Oluşturmak istediğiniz şey nedir? bir oyun? Bir blog? Önemli değil. Sadece bir şeyler yap!

Ardından, bir miktar gerçek kodlama yaptıktan sonra (birkaç hafta veya ay) açık kaynaklı projelere katkıda bulunmayı denemeyi öneririm. Kişisel proje, hedefin sizin için henüz hazırlanmadığı zaman nasıl programlanacağınızı belirlemenize yardımcı olur (aslında bir şeyi nasıl tasarlayacağınızı bilmek, genellikle okulda öğretilmez). Mevcut projelere katkıda bulunmak size bir takım halinde çalışmayı ve kod standartlarını takip etmeyi öğretir.

Çok fazla zaman okuyarak zamanımı boşa harcamam. En çok zamanın% 20'sini okumanız ve diğer% 80'ini kod yazmanız gerektiğini söyleyebilirim. (Tabii ki, zaman zaman, ilgili şeyleri programlamak için ayrılan zamanınızı kastediyorum)


9

Peki, işte benim iki kuruş ... diğer birkaç kaynaktan alıntılarla birleştim.

Şaşırtıcı derecede büyük bir başvuru sahibi, hatta bilgisayar bilimi alanında yüksek lisans derecesi ve doktora yapmış olanlar bile, temel programlama görevlerini yerine getirmeleri istendiğinde görüşmelerde başarısız olurlar.

- Jeff Atwood üzerinden Dan Kegel

http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html

Bu, yıllarca devam eden "basit tecrübeleri" olan kişilerin basit görevleri yerine getiremedikleri noktaya kadar, çok fazla gördüğüm bir sorundur. Kişisel olarak, eğitim kurumlarının konuyu bilmeyen ya da sadece para olmadan belirli bir paraya girmek isteyen öğrencileri yönlendirmesi gereken danışmanlara öğretemeyen öğretim üyelerinden bundan büyük oranda sorumlu olduğunu düşünüyorum. Alanın kendisine makul bir ilgi.

Sorunuzun sesinden kolejden çıkıyorsunuz, bir kâğıt almak için hayatınızın birkaç yılını mahvetmiş gibi hissediyorum. Pek çok işe alım ajansı programcılar için bugünlerde derece görüyor. Programlayabileceklerini ispatlamış insanların, sadece bir kağıda sahip birini değil, istediklerini istiyorlar. Fakat bu soruyu ilk önce sorduğunuz gerçeği, bana programlamayı gerçekten öğrenme arzusu gösteriyor.

Öğrenmek için yapabileceğiniz en iyi şeylerden biri zaten birkaç kez belirtilmiş ve bunun programlanmasıdır. Ne yazık ki, bu kesinlikle teknolojiye ilişkin bilginizi ve anlayışınızı artıracak olsa da, özgeçmişinize koyabileceğiniz bir şey olmadığı sürece iş bulmanıza yardımcı olması inanılmaz bir ihtimal değil.

Kendine belirli bir amaç için birkaç uygulama geliştirerek başlamanı, ne yapabileceğini ve seni ilerletmek için neyin zorlayacağını bulup, sonra serbest çalışmayı alabileceğin bazı yerlere gitmeni öneririm. Web üzerinden aldığınız serbest çalışma için çok fazla para almayı beklemeyin, cüzdanınıza değil özgeçmişinize eklemek istersiniz. "Bunu ben yaptım" veya "Onlar için bu işlevselliği ben tasarladım" diyebileceğiniz ve söyleyebileceğiniz 3-5 öğeyi aldıktan sonra, tüm bunları listeleyin ve bir işe alma ajansı bulun (onlar HER ŞEYDİR .. bültenleri) ve özgeçmişinizi düzene sokmak için birkaç kişiyle birlikte çalışın, böylece yapılacak iş bulma konusundaki eğitiminizi ve becerikliliğinizi vurgulayın ve deneyim eksikliğinizi en aza indirir.

Potansiyel işverenlerle konuşurken hatırlamanız gereken en büyük şey (insanların sürekli karıştığını görüyorum) ve HERHANGİ BİR ALANDA HER ŞEYE dikkat etmeniz gereken bir şey; veya yapabileceklerinizi en aza indirin, OVERSELL'i kendiniz yapmayın ve hiçbir şekilde ipucu olmayan şeyleri yapabileceğinize inanmalarını sağlayın. İşverenler, sizden bilmediğiniz şeyleri yapmanızı istemek için her zaman bir ustalığa sahipler ve bu noktada bunu çözmek sizin işinizdir, ancak onlara zaten yapabileceğinizi söylerseniz, kaçınılmaz olarak kelimelerinizi daha sonra yiyeceksiniz .

Size iyi şanslar!

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.