Bir lise programcısının çalışmalarını fark ettirmesi için en iyi yer neresidir? [kapalı]


52

Bilgisayar programlama tutkusu olan 16 yaşında bir lise öğrencisiyim. 11. sınıftayım ve okul müfredatının bir parçası olarak yaklaşık 8 aydır öğreniyorum. Okulda öğretilenin ötesine geçtim ve birkaç (oldukça iyi) uygulama yazdım. Programladığım dil Windows platformunda C ++. Sonunda iyi bir kolejde CS'ye girmek ve ardından programcı olarak çalışmak istiyorum.

Sahip olduğum özel sorular:

  • Çalışmamın farkına varmam için iyi bir yer nedir?
  • Özellikle genç programcılar için dergi veya yayın var mı?
  • Eğer yayınlar değilse, o zaman iyi bir blog var mı, yoksa kendi blogunuzu başlatmak daha mı iyi?
  • Programcı olarak fark edilmeme yardımcı olacak başka bir şey var mı?

Mümkün olduğunca nesnel olmaya çalıştım.

Bütün bunlar tl ise: dr: Genç bir programcı olarak fark edilmenin en iyi yolu nedir?

Düzenleme: Doğrudan liseden işe alınmak istemiyorum Amaç, toplumu profesyonel bir programcı olarak etkilemek değil. Bu, çalışmalarınızı başkalarının görüp eleştirdiği kolej uygulamalarına yönelik olarak başvurunuzu iyileştirecektir. Şu ana kadar yazdıklarımdan para kazanmaya çalışmıyorum.


12
Başkalarının 16 yaşındaki bir greenhorn ;-) fark edilmek istediğini düşündüren nedir?
Doktor Brown,

27
Yığın Taşması harika bir yer! İyi, faydalı cevaplar verin (ve iyi, yardımcı sorular sorun!), Ardından potansiyel işverenlerinizi profilinize yönlendirin.
Cody Gray

24
@viraj Ben coşku ve burada iyi cevaplar alkışlıyorum. Ancak size önerim, erken yaşamınızı tüketmesine izin vermemek. Diğer hobileri ve ilgi alanlarını alın, sosyalleşin ve eğlenin; hayatınızda yalnızca bir kez çocuk olabilir, şeyleri mahvedebilir ve zarar görmeden geri dönebilirsiniz. Büyüdüğünüzde ve bir kariyeriniz olduğunda, hayatınızın geri kalanında muhtemelen sahip olacaksınız . Bu, böyle bir yaşta yapmak için oldukça ciddi bir taahhüt. Genç yaşta kariyere taktıkları ve daha sonra hayatlarından nefret ettikleri ve korkunç bir orta yaş krizi geçirdikleri o kadar çok olmak istemezsiniz.
maple_shaft

4
@FrustratedWithFormsDesigner Top Money olmadan Top School'a girmek istiyorsanız, o zaman
girmeniz

10
@maple_shaft Amacınız iyi ancak programlama konusunda gerçekten tutkuluysa, onu ondan uzaklaştırmak istemezsiniz - genç Bill Gates / Mark Zuckerberg'e gençliğinizin programlama için çok fazla harcamadığını söyleyin. hayatının geri kalanını kutla ". Tavsiye , kariyerinize değil ilgi alanlarınıza ve tutkularınıza odaklanmalıdır .
Kirk Broadhurst

Yanıtlar:


61

Size bazı uyarılar ve önerilerde bulunmak istiyorum.

Uyarılar:

  • Bilginizi fazla tahmin etmeyin: şu anda basit bir uygulama yazmak için yeterince bilginiz olduğunu ve sınıfta öğretilenden daha fazlasını bildiğinizi varsayabilirim. Ancak bu sizi "profesyonel bir programcı" yapmaz; Seni en fazla bir "serbest meslek sahibi" yapabilir.

  • Okulda öğretilenlerin değerini tahmin etmeyin. Bir şey sizin için açık görünse bile, onu da inceleyin: ilerleyeceğiniz gibi "yeni yönler" (daha sonra daha net olacağım) göreceksiniz.

Öneriler:

  • Profesyonel uygulamalar 3-5 yıllık tipik yaşam süresine sahiptir ve binlerce (milyona kadar) adam-saat çalışmasını gerektirir. Yalnızca bir geliştirici tarafından konuşlandırılamazlar. Profesyonel programcılar başkalarıyla çalışmak zorundadır. Bu sadece araçlar (diller, IDE'ler vb.) Hakkında iyi bir bilgi birikimi değil, aynı zamanda teknikler, yöntemler ve deyimler hakkında da önemlidir.

  • Araçlar resmi örnekler ve egzersizle öğretilebilirken, teknikler ve deyimler sadece "tanımlanabilir". Onları “öğrenmek” için, tecrübeyi başkalarıyla paylaşmak ve paylaşmak zorundasınız. Sürekli icat edilir ve geliştirilirler.

  • Şirketler, okuldan işe alım yaparken, araç anlayışınızı ve temel teknikler konusundaki kabiliyetinizi kontrol eder, ancak - en önemlisi - yeni şeyleri hızlıca öğrenme ve ihtiyaç duyduğunuzda "işi yakalama" yeteneğinizi test edin.

  • Deneyimli insanları işe alırken, kaç şey yaptıklarını ve bu şeylerden ne gibi deneyimler edindiklerini araştırırlar.

Ahlaki:

  • Eğer "değerlendirdi" daha olmasını istiyorsanız (olduğu gibi diğer sorunların katılarak, başkalarıyla çalışmayı öğrenmek stackoverflow ) veya açık projeler (gibi üzerinde sourceforge )

  • Ayrıca, para istemek için çok hızlı olmayın; "kod üretiminizi" "paylaşılacak bir şey" ve "satılacak bir şey" olarak ayırın. Paylaşabilecekleriniz başkaları tarafından da kullanılabilir, ancak ilk projeyi genişletmek için başkalarının katılımını da etkileyebilir. Satabileceğiniz şey, uygulamanızı benzer projelere göre "benzersiz" yapan ve gerçek bir ticari ürün haline getirecek olan şeydir.
    Kodu başkalarıyla paylaşmak için, site kod projesine veya sourceforge sitesine başvurabilirsiniz . Notları ayrıca, yaptığınız şeylerin diğer insanlar için ne kadar ilginç olduğu konusunda bir fikir veriyor.


30
Bilgilerinizi fazla tahmin etmekten bahsettiğiniz için +1. Lisedeyken harika şeyler yazıyordum ve iyi bir programcı olduğumu düşünüyordum. Sonra üniversiteye gitmeye başladım ve profesyonel seviyede olmaya bile yakın olmadığımı fark ettim.
Mike L.,

1
1 OTOH olsa, ben bundan Lisesi'nde şeyler yazmış insanları (değil bizzat) biliyorum hala çözemiyorum
BlueRaja - Dany Pflughoeft

+1, İlk üniversiteye giderken, edindiğim becerilerimin bir sertifikasyonunu almanın daha fazla olduğunu düşündüm. Bazı alanlarda diğer öğrencilerden kilometrelerce ilerideyken, hâlâ profesyonel seviyeye yakın değildim.
user606723

4
Bilginizi fazla tahmin etmek için +1. Size listelenen her beceride "uzman" olduklarını belirten haftada kaç özgeçmişim olduğunu söyleyemem. Bunu yapmak sadece senin saflığını gösterir.
Jesse Bunch,

6
Komik bir şey, bilgisayar mühendisliği alanında 3-5 yıllık bir derece ile kod yazarak programlayamayan, profesyonelce çalışan birkaç kişi biliyorum. Sadece evde iyi uygulamaları öğrenmek için motivasyonu olan birinin Profesyonelce çalışan birçok insanın çoğu zaman kilometresi önünde.
Maksimum

35

Yazmış olduğunuz uygulamalar için açık kaynak kodlu projeler yaratmayı ve çevrimiçi olarak barındırmayı düşündünüz mü? SourceForge.net veya GitHub.com iyi açık kaynaklı proje ana bilgisayarlarıdır. Bu, uygulamalarınız için görünürlük kazanmanıza yardımcı olacaktır.


11
Bu sitelerdeki geri bildirimler doğrudan, acımasız olabilir veya belki projeleriniz göz ardı edilebilir. Ne olduğu konusunda geri bildirim almak ve iyileştirmeler yapmak için önemli olan şey. Toplumu, size yardımcı olacak ve olacak olan bir şey olarak düşündüğünüzden emin olun.
Aralık'ta

26

Öncelikle açık olalım: 16 YO programlayıcısının çoğu topluluğu gerçekten etkilemeyecek.

Bence bunun bir nedeni var. İyi bir programcı olmak sadece programlama becerilerine dayanmaz. CS ana dalınız sırasında umutla gördüğünüz gibi, programlama sadece bilgisayar biliminin bir alt kümesidir ve ödülleri kazanan insanların (en azından akademik ödüller) çoğu, bunu yaptılar çünkü yeni bir şey (örneğin yeni bir teorem) kanıtladılar ya da keşfedildiler. bir çeşit görevin başarılması için yeni bir yol (tasarım desenleri). Bunu yapmak için yapmanız gerekenler (en azından):

  • Matematikte iyi bir geçmişe sahip olmak, algoritmaları anlamak ve dolayısıyla farklı veri yapılarına hakim olmak gerekir.
  • İyi bir programcının önce "somut" bir dille ilgilenmeden önce paradigmaları (nesne yönelimli, işlevsel, ...) anladığını anlayın.
  • İyi programlamanın sıklıkla kod modelleme için geldiğini anlayın ve mevcut tasarım kalıplarını öğrenin.

Bunların hepsine hakim olduğunuzu düşünüyorsanız, o zaman evet, muhtemelen toplumu etkileyeceksiniz.

Açık kaynaklı bir projeye her zaman katkıda bulunmayı deneyebilirsiniz, ancak gerçekten katkıda bulunmadan önce ne kadar para kazanmanız gerektiğine de oldukça şaşırmış olabilirsiniz.

Sonunda, StackOverflow'a bir göz atın ve en sevdiğiniz dilde orada ne kadar cevap verebileceğinizi görün ... seviyenizin iyi bir proxy'sine sahip olacaksınız.


2
+1: Deneyimin yerini hiçbir şey tutamaz. İşe alırken genellikle birisinin kemerinin altında çok fazla deneme hatası olduğunu görmek isterim.
JohnFx

3
+1: Çalıştığım birçok programcı matematiğin onlar için önemli olmadığını düşünüyor. Sonra geri dönecekler ve aynı nefeste algoritma verimliliği hakkında tartışacaklar.
kojiro

+1: Matematik, Bilgisayar Bilimleri alanındaki en temel unsurlardan biridir. Alan olarak Bilgisayar Bilimi, Matematik olmadan olamazdı. Biri matematiksiz olarak bir bayt grubunu başka bir bayt grubuna alamazdı. Ek olarak, bir bilgisayarın nasıl çalıştığını bilmiyorsanız, iki byte kaydının nasıl eklendiğini (basit bir işlem değil) anlamıyorsanız, bu alanda bunu yapmak zor olacaktır. Bilim. Programlamanın kendisi problem çözme becerisi gerektirir, bir programlama dili öğrenir ve altı çizili çerçeve bilgisayar bilimlerinde kolay olan kısımdır.
Ramhound

1
Bilgisayar bilimi alanında profesyonel olmanın en zor kısmı, bir sorunu çözmenin en iyi yolunu belirleyebilmektir. Yeni bir programlama dili öğrenmek, kolay bir bölümdür, belirli bir dilde güçlü yönlerden nasıl yararlanılacağını ve zayıf noktalardan nasıl kaçınacağını öğrenmek oldukça zordur, bunu yapabilmek "kod maymunlarını" "profesyonellerden" ayırır.
Ramhound

13

Yığın Taşması konusunda gerçekten yüksek bir itibar kazanmaya çalışın. Neredeyse aynı konu burada tartışıldı:

Yığın Taşması konusundaki yüksek itibar, iyi bir iş edinmenize yardımcı olur mu?


5
Ek olarak, SO'da yüksek itibar kazanmak çok eğlenceli ve soruları okumaktan, göndermekten ve cevaplamaktan çok şey öğreniyorsunuz.
Paul Hiemstra

1
Benim düşünceme göre, SO'da yüksek itibar, "Her programcının ilgili olabileceği tonlarca temel soruyu cevaplamak için sitede çok fazla zaman geçiriyorum" anlamına geliyor. Bunun için fazla düşünmedim. (Not: hala uzman olabilirsiniz ve
SO'da

8

Denemek isteyebileceğiniz birkaç şey:

  • Gerçek sorunları çözen, daha önce çözülmemiş (veya en azından tatmin edici olmayan) sorunları çözen bir yazılım yazın. Yazılımınızı, en iyi tanıtım çabalarınıza rağmen kimse kullanmazsa, olasılıkları umutsuzca ihtiyaç duymadıklarıdır.
  • Çalışmanızı ilgili posta listeleri, IRC kanalları ve internet forumları ile paylaşın. Programınız bazı kütüphaneleri kullanıyorsa, kütüphanenin topluluğuna posta göndermeyi düşünün; mevcut diğer yazılım parçalarını tamamlarsa, topluluklarına duyurun, vb.
  • Yeterince ciddi bir proje ise, bunun için özel bir web sitesi oluşturun. Web sitesi bir özellik özeti, indirmelere ve belgelere bağlantılar ve (varsa) birkaç ekran görüntüsü sağlamalıdır. Uygun bir web sitesi olduğundan emin olun, bazıları zorlanmadan ucuz cheapo geocities tarzı kötüye kullanma - ciddiye alınmak istediğinizden, bu yüzden hareket edin. Bir haber bölümü, bir wiki ve / veya bir hata takipçisi eklemek, potansiyel kullanıcıya, projenin ne kadar aktif olduğunu, sizin için veya aleyhinize çalışabileceğini (eğer sonuçta çok aktif değilse) gösterir.
  • Açık kaynak kodlu bir proje ise, popüler FOSS merkezlerinden birinde (github, bitbucket, eğer gerekirse kaynak kaynak) barındırın ve (yukarıya bakın) wiki ve hata izleyiciyi gösterin (ancak bunları düzenli kullanıyorsanız).
  • Ne yaparsan yap, iyi belgeler sağla. Hem kısa bir "başlangıç" hem de tam referansa ihtiyacınız var. İlki yoksa, insanlar programınızı kullanması çok zor bulacaktır. İkinciniz yoksa, insanlar kullanmayı bırakacaklar çünkü ihtiyaç duydukları bilgiyi bulamıyorlar.

7

Bernard'ın cevabını takip edip biraz daha ekleyeceğim. O kadar çok OSS projesi var ki, popüler bir proje oluşturmadığınız sürece farkedilmesi zor olabilir, ki bu yeni başlayan bir programcı için kolay olmayacak.

Programlama topluluğunda fark edilmeye çalıştığınızı varsayarak, programcıların kullandığı araçlar için yayınlama (OSS veya kapalı kaynak) eklentileri öneririm. Bir iş görüşmesine girdiğinizi ve şirketin zaten yazdığınız yazılımı kullandığını söyleyebildiğinizi hayal edin. Geliştirici araçlarının birçoğunda, eklentiler oluşturmak için API'ler bulunur ve hatta birkaç tane "App Stores" barındırır, bu sayede pazarlama konusunda çok fazla endişe duymadan aracınız için biraz poz elde edebilirsiniz.

İşte başımın üstündeki bazı örnekler:

Seçtiğiniz araca bağlı olarak, fark edilmek istediğiniz programlama topluluğunun belirli yerleşim bölgesini hedefleyebilirsiniz.


4
  1. Gibi yarışmalarda git Imagine Cup , en azından, okulunuzun yarışmalar (varsa) veya
  2. Başvurularınızı çevrimiçi duruma getirin, kaynak kodunu verin ve sorunuzla ilgili olmasa da , diğerlerinden gelen geri bildirimleri dinleyin ve ondan öğrenin.
  3. Farklı topluluklara katkıda bulunmaya çalışın

4

Burada biraz farklı bir bakış açım var.

Yazılımınızın fark edilmesini istiyorsanız, en iyi yol insanların onu kullanmasıdır. Her ne kadar Bill Gates ve Mark Zuckerberg harika genç programcılar olsalar da, birçok daha iyi programcı vardı. Ancak bu iki beyefendi ürünlerini kullanacak çok sayıda insan aldı ve bu yüzden çalışmaları için daha iyi biliniyorlar.

İnsanların kodunuzu kullanmalarını sağlamak için şunları yapabilirsiniz:

  • Ürününüzü birçok kişiye satabilirsiniz. Örneğin, bir uygulama mağazasına bir mobil uygulama yerleştirin ve indirmeleri, satın alımları ve sürekli kullanımı takip edin.
  • Ürününüzü kullanacak çok sayıda insan alın ve reklam geliri elde edin.
  • Ürününüzle çalışan ürünler geliştirmek için birçok geliştirici edinin. Bu zor.
  • Popüler bir açık kaynaklı projeye katkıda bulunun, böylece katkılarınız birçok kişi tarafından kullanılacaktır.

Bana göre yazılım, kullanıcılara fayda sağlamadan neredeyse hiç alakasız. Ve insanların umursadığı sorunları çözdüğünüzde fark edilirsiniz ve bu çok nadir bir beceridir.


3

Henüz cevap okumadığım bir cevap: Google Summer of Code.

Gönderen web :

Google Summer of Code, öğrenci geliştiricilere çeşitli açık kaynaklı yazılım projeleri için kod yazma zorunluluğunu sunan küresel bir programdır. [...] Google Yaz Kodu ile kabul edilen öğrenci adayları, katılımcı projelerden bir mentor veya danışmanlarla eşleştirilerek gerçek dünyadaki yazılım geliştirme senaryolarına maruz kalmaları sağlanır.

Katılmak için 18 yaşında olmalısın, ama bu çok uzak değil. Katılan ve çok iyi bir deneyime sahip bazı insanları tanıyorum. Tüm katkılarınız açık kaynaklı programlara verildiğinden, bunlar herkese açık, farkedilecekler.

18 yaşından küçük olduğunuzdan, Google’ın ayrıca üniversite öncesi öğrenciler için (13-17 yaşları) Google Code IN adlı GSOC benzeri bir programı vardır .


3

Benim açımdan, program yapan insanlar var.

  1. "Programcılar" - Bunlar arasında 16 yaşında, kendi kendini öğreten ve Çin'deki mevcut "yazılım geliştirici" iş gücünün% 99'u yer alıyor. İşi halledebilirler ... en azından bir anlamda ... ancak tasarım bildiri, bakım, sağlam / savunucu kodlama, algoritmalar / veri yapıları ve kaynağın verimli kullanımı gibi diğer kavramlar hakkında çok az fikirleri var. kontrol yazılımı. Belgeleri etkili bir şekilde okuma ve çoğu API'yi kullanma becerisine sahiptir.
  2. "Ortalama Elektrik Mühendisi" -% 80 Elektrik,% 10 bilgisayar bilimi,% 10 yazılım mühendisi. Elektronik ile yeterlilik, ancak sadece tipik "programcı" kadar programlama. Mantık ve eleştirel düşünme ve elektriksel yönden yönetim becerileri olsa da yardımcı olacaktır.
  3. "Ortalama Bilgisayar bilimi BS mezunu" -% 25 programcı,% 25 yazılım mühendisi,% 25 bilgisayar bilimcisi,% 25 uygulamalı elektronik (mantık dahil).
  4. "Ortalama Bilgisayar Mühendisi" - Bu insanlar% 50 elektrik mühendisi,% 50 bilgisayar bilimi mezunu.

Tanımlar:

  1. "Bilgisayar Bilimi" - Dijkstra bir keresinde şöyle dedi: "Bilgisayar Bilimi, astronomi ile ilgili değil, bilgisayarlarla ilgili değildir." Bilgisayar Bilimleri, matematikten, bilgisayarlardan daha fazladır. Bu, karmaşık algoritmaları ve veri yapılarını geliştirme, anlama ve sınıflandırma yeteneğini de içerir.
  2. "Yazılım Mühendisliği" - Tasarım Deseni, programları temsil eden diyagramlar (bunlara ne dendiğini hatırlayamıyorum). onun gibi şeyler. Savunma kodlaması. Kaynak kontrolü kullanımı,

Dikkat, yukarıdaki "Ortalama" kelimesini kullandım. Kişisel çıkarlara ve iş tecrübesine bağlı olarak, bu yüzdeler büyük ölçüde değişebilir. Bunlar sadece aşırı genelleştirilmiş klişelerdir. Bir kitabı kapağına göre yargılama. Ben de sadece deneyimlerime göre yüzde bing.


1
Farklı programcı türleriniz tamamen saçma. Yazılım mühendisliği olmadan etkili bir programcı olamazsınız. Computer Scientists her zaman yazılım mühendisliğini kullanır. “Elektrik mühendisi” ayrılığınız tamamen saçmalıktır, bir bilgisayar mühendisi ve bir bilgisayar bilimcisi arasında çok az fark vardır.
Ramhound

Bunu biraz tuhaf yazdım. Bir miktar yeniden birleştirerek düzelttim. Yine de tam olarak doğru değil. Cevaplar: a) Listemdeki bir "programcı" meselesi hiç etkili bir program değil. b) Bilgisayar Bilimi yazılım geliştirme ile ilgili değildir ve bu nedenle yazılım mühendisliği kullanmazlar. c) Bilgisayar Mühendisliği, bilgisayar ve elektrik mühendisliği arasındaki karma alandır. en.wikipedia.org/wiki/Computer_engineering
user606723

1

Ben serbest çalışan bir programcıyım. Programlama, 9 yıl önce liseden mezun olduğumdan beri temel gelirim. Hala diplomamı almak niyetindeyim, fakat şu anda zaman hala benim için uygun değil.

Kendini süren tanıma yolum şöyle oldu. Bu adımların sizi programlama topluluğu tarafından tanımanızı sağlayacağını söylemiyorum, ancak görüşme zamanı geldiğinde kredibilitenizi artırmanıza yardımcı olacak.

O zamanlar IMO'nun programlanmasında oldukça ustalaştıktan sonra bile, temel konulara geri döndüm, derslerime girdim ve kendimden ilham alan çalışmalara dayanan bir portföy oluşturdum. Ayrıca kodumu JavaDoc-esque tarzında yorum yapmaya kendimi zorladım. Portföy şu anda pırıltı ve çekicilikle dolu olmayabilir, ancak o zaman içinde sahip olabileceğiniz ve sonunda sahip olabileceğinizin yerini alabileceğiniz bir temel sağlar. Sonra potansiyel müşterilere göstermek için bir dizi demo ve kod örnekleri vardı. İlk işinizi almanız için bu şarttır. Kimse deneyimi olmayan bir kişiyi işe almak istemez, ancak, profesyonel deneyimi olmayan gelecek vaat eden bir görünüme programlayıcıya şans verecek bazı kişiler vardır.

Daha sonra bu programları analiz ettim ve sık kullanılan görevlerime dayanarak kütüphaneler yazmaya başladım. Yeni kütüphanelerimle İnternet'teki CompSci problemlerine bakmaya başladım ve kütüphanelerimle bir çözüm oluşturmamın ne kadar zaman alacağı konusunda kendimi zamanlamaya başladım. Bu, gelecekte belirli bir görev için ne kadar ücret almam gerektiğine dair temel bir fikir verecek.

O zamana kadar açık bir kaynak keşfettiğim değildi. Sourceforge'daki projeleri ilgi duyduğum dilde araştırdım ve kullanabileceğim uygulamalar buldum. Bu uygulamaları kurdum ve her gün bilgisayar deneyimimin bir parçası olarak kullanmaya başladım. Bu uygulamaların güçlü ve zayıf yönlerini her gün etkileşime gelince görebildim ve ihtiyaçlarımı karşılayacak şekilde genişletmeye başladım. Yamalarımı incelenmek üzere gelişmekte olan topluma gönderirdim ve bir kaçından sonra projeye üye olmak için başvuracağım. Burası benim zamanımda düşündüğüm gibi “engin deneyimim” alan bir ekipte çalışırken kullanılan farklı araçları kullanmayı öğrendim ve bir sonraki seviyeye taşıdı.

Açık kaynaklı projeler üzerinde çalışarak edindiğim tüm uygulamalarımı uyarladım ve bireysel olarak çalışırken uygun çözümler ürettim. Serbest çalışan bir geliştirici olarak kariyer yapmaya ciddi olarak başladım ve birçok serbest işe alım sitesine katıldım. Popüler işlerin neler olduğuna baktım ve uygulamaya başladım. Geri çevrilebileceğim her iş için, bilgimi genişletme görevini almışım gibi hala kendim için tamamlarım. Bu, portföyümü oluşturmamda ve beni bazı gerçek dünya zorluklarıyla tanıştırmada yardımcı olacak. Sonunda ilk röportajı aldığımda basit olduğumu, hiçbir mesleki deneyimim olmadığını söyledi. Onlara üzerinde çalıştığım açık kaynak projelerini ve orada neler yaptığımı anlatmaya başladım. Karşılaştığım bazı önemli engeller ve onlara nasıl hitap ettiğimi.


0
  1. Mümkün olduğu kadar çok şey öğrenin. Bu, kitaplar, forumlar, sınıflar tarafından yapılabilir, fakat en önemlisi aslında programlama (ve eleştirilme) ile yapılabilir. Lisenizdeki programlama derslerini aştıysanız, yerel (topluluk) bir kolejde alabileceğiniz iyi bir CS dersi olup olmadığına bakın (belki bir yaz boyunca veya bir gece sınıfı olarak); veya MIT / Stanford tiplerinden açık ders malı almaya çalışın.
  2. İnisiyatif göster. C ++ bildiğini söylemek kesinlikle göz ardı edilecek. Açık kaynak projeleri listesine bir düzinelerce taahhütte bulunduğunuzu söylemek, bir şey bildiğinizi gösterir, vb. Kendi açık kaynaklı projelerinizi başlatın. Bu öğleden sonra yapacağın bir şey olmayacak; fakat aylar boyunca bebeğiniz olacak bir şey. Yararlı bir şeyler yapan ve insanların indirmesini sağlayan bir android / iphone uygulaması yazın ve yayınlayın.

Not: Koleje başladığımdan bu yana çok zaman geçti - hala böyle şeyleri listeleme fırsatı veriyorlar, değil mi? (Örneğin, hobiler hakkında bir bölüm veya çıkarlarınızla ilgili bir deneme sorusu).


0

JohnFX'in bu soruya harika bir cevap verdiğini düşünüyorum.

Birkaç düşünce:

  • Bence jQueryUI başlamak için en iyi yer olabilir. Eğlenceli ve görsel. Böylece, jQuery sitesindeki jQueryUI geliştirici forumuna gidebilir ve katkıda bulunabilirsiniz.

  • Bence büyük yetenekler göstereceğinizden daha fazla programlama için büyük bir tutku ve özveri göstereceksiniz. Ama bunun seni durdurmasına izin verme! Katılmanızı şiddetle tavsiye ediyorum.

  • Bu noktada KG yapmak için razı olmanız gerekebilir. KG sıkıcıdır ancak kabul edip özveri gösterebilirsiniz. Ancak oradan bir parça koda katkıda bulunabilir ve belki de eklentiler yapabilirsiniz.

  • Eğer bir şeye dahil olmak istersen ve bunu zorlaştırırsa, bunun nedeni pislik olduklarıdır. İnsanların cesaretlendirici ve hoş olduğu bir proje arayın.

  • Teşvik edici, hoş insanlarla bir proje bulduktan ve katkıda bulunduktan sonra, yetişkinlere katkıda bulunanlardan birine veya umarım projeden sorumlu kişilere kısa bir öneri mektubu yazmasını isteyebilirsiniz.


0

"Kendini fazla büyütme" diye cevap verenlere saygıyla katılmıyorum!

Yaşınızda programlama yapmak için bir sevginiz varsa, devam edin, muhtemelen sizin yaşınızdaki diğer çocuklardan daha büyük ve daha büyüksünüzdür ve emektar olduğunuzda, bir sonraki Brian Kernighan, Edsger Dijkstra veya Doug Lea olabilirsiniz!

IPhone veya Android geliştirmeyi öğrenmenizi ve bazı gerçek uygulamalar geliştirmenizi öneririm.

Bir şeylerde harika olun; oraya gelirken, konferanslarda konuşun ve dikkatinizi çekecek ve becerilerinizi parlatacak makaleler yazın.

70'lerin sonundan beri ve 1996'dan beri Java'da programlama yapıyorum. Size okuduğum en önemli Java kitabının, Java'nın icat edilmesinden on yıl önce yazılmış olan Dört Tasarım Desenleri Çetesi olduğunu söyleyebilirim. Oku ve harika ol!

Bugün en yüksek ücret alan sektör finansal, ancak bu hızla değişiyor. Geri döneceğine inanıyorum, ama asla bilemezsin!

Bir programcı olun ve yüksek istihdam ve iş tatminin tadını çıkarın!

İyi şanslar, önünüzde harika bir kariyer var!


0

İPhone ve Android'de iyi çalışan bir web uygulaması oluşturun (şimdilik standart tarayıcıları yok sayın) ve gecikme süresi, sivilceli ağın üstesinden gelmek için HTML5'in genişletilmiş özelliklerinden (https://developer.mozilla.org/en/HTML/HTML5) yararlanın, ve telefon tarayıcılarının sınırlandırılması. Bu en olası, sunucu tabanlı bir api'ye bağlanan bir javascript + html5 tarayıcı uygulaması sunmak anlamına gelir. (xmlrpc / json / yaml, SOAP değil) seçin. hızlı çığlık at. Sunucuda, ucuz VPS'de linux (debian) içinde cherrypy kullanmanızı öneririm. 123systems.com adresinden bir miktar elde edebilirsiniz, buyvm.net (tercih edilen ancak genellikle mevcut değildir) ayda 4 doların altındadır. Python'u kullanmayı ve öğelerinizi sunucularınıza dağıtmak için Yapı'yı kullanın. Yılda 2.99 dolara namecheap.com adresinden bir .info alan adı alın ve DNS için dnsmadeasy.com kullanın (daha pahalı, ama buna değer-- yıllardır onları kullanıyor, hiçbir zaman tek bir sorun yaşamadım) burada DNS üzerinden yük dengesi yapabilirsiniz. Ayrıca, veritabanları tarafından ertelenmeyin. Sqlite kullanın ve tablolarınızı sql ifadeleriyle manuel olarak tasarlamayı öğrenin. Son olarak, bir makine ile muhtemelen 30.000 kullanıcıyı idare edebilirsiniz. (Her 3 saniyede bir, aynı anda sunucuya aynı anda 2.000). HTML5'in depolama alanında olabildiğince önbelleğe almayı unutmayın.

Bunu yaparsanız ve bununla ilgili blog yazıyorsanız ve blog girişleri ve ilerleme durumunuz hakkında titriyorsanız, kesinlikle fark edilirsiniz. Öğrenecek çok şey var, ama yapabilirsin!


-1

Çalışmamın farkına varmam için iyi bir yer nedir?

İnternetin hemen her yerinde - temiz ya da benzersiz bir şey yapan, çok sayıda insanın kullanacağı / indireceği bir yardımcı program gibi, bahsetmeye değer bir şeyler yazarsanız - o zaman bu işin büyük bölümünü zaten başardınız. Harika, kullanışlı ve mevcut uygulamalar, kendilerini tanıtır.

Özellikle genç programcılar için dergi veya yayın var mı?

Eğer yayınlar değilse, o zaman iyi bir blog var mı, yoksa kendi blogunuzu başlatmak daha mı iyi?

Sen zaten buradasın - bu sadece bir tane, topluluklardan sadece biri, paylaşma ve tanıma arzusundan çıkma arzusundan - diğer insanlar haklı konuları tartışmaktan çok mutlular.

Programcı olarak fark edilmeme yardımcı olacak başka bir şey var mı?

Sadece programlama için programlayın - üretken, yaratıcı ve kullanışlı olduğu sürece - bildirim alınacaktır.

Beklemekte olduğum diğer cevaplarda da bahsettiğim bir nokta açık kaynak projelere yapılan katkılardır. Kodlamada daha iyi olmanın tek yolu, kodlamaktır - ve bunu yapmanın daha iyi yolu, mevcut sorunları çözmekten daha iyidir. Çünkü, çözmek için bir sorun olmadan, boşuna kodlarsınız ... ah, bir şey daha, huysuz yaşlı adamlara sakıncası yok, şişirilmiş ve kasıtlı olarak cesaret kırıcı, "genç kırbaç snapper" yorumlarıyla - genç ve hevesli, ihtiyacınız olan tek şey bu.


-1

Senin yerinde olsam, bildiğim ckadarıyla çalışmamı bildiğimden emin olurdum, programladığınızı söylüyorsunuz, bu yüzden günlük kullanıcılara yönelik Pc programları hazırlamaya başlıyorsunuz, Pc deneyimini yaşatıyor, youtube downloaderkendi gibi şeyler yaratıyor ve dev teamsadece 19 yıldır kendi işinize başlıyorsunuz ve 4 yıl programlamaya başladım. önce ve bunu kaputtan genç bir siyah adamla yakala .... böylece programlama için sahip olabileceğin tutkuyu anlayabiliyorum, ama aynı zamanda programlama da zamanın ve çabaların çok yaşayabilir. Tüm bu zaman boyunca bir bilgisayara oturup genç bir çocukta stresli olabilir.


-1

Çalışmanızın tanınması için tonlarca yer var, ancak çalışmanızın üst çentiğini göz önünde bulundurabilirsiniz, ancak bazıları için basit bir iş günü olabilir. 16 yaşındayken çalışmamın harika olduğunu düşündüm, harika şeyler yapıyordum, ama aslında şu anda bu alanlarda çalışıyorum ve o zamanlar nerede olduğum ile şu an bulunduğum yerle karşılaştırıldığında hiçbir şey yok ve hala çok uzun bir yoldayım olmak istediğim yerden ayrıldım.


-2

Oyun oynuyorsanız, Ludum Dare'e katılmayı deneyin. Orada iyi bir oyun bazı ünlü alacak.


-3

Farkedilmek VE biraz para kazanmak istiyorsanız, iPhone veya Android'de mobil geliştirme öneririm. Zaten çok iyi bir başlangıç ​​olan C ++ 'ı biliyorsunuz. İPhone'da yerel gelişim için Objective C'ye ihtiyacınız olacak ve Android için Java'ya ihtiyacınız olacak. Her ikisi de C ++ 'a benzemektedir (Java, bellek yönetimi olmadığı için kolaydır) ve öğrenilmesi zor olmayacaktır. Dolayısıyla, yalnızca sizi fark edecek ve size biraz para kazandıracak uygulamalar yazmaz, aynı zamanda süreçte yeni diller ve sıcak platformlar öğrenirsiniz.

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.