Saya seorang siswa sekolah menengah 16 tahun, dengan hasrat untuk pemrograman komputer. Saya di kelas 11, dan saya sudah mempelajarinya sebagai bagian dari silabus sekolah selama sekitar 8 bulan. Saya telah melampaui apa yang diajarkan di sekolah, dan menulis beberapa aplikasi (yang cukup bagus). Bahasa tempat saya memprogram adalah C ++, pada platform windows. Akhirnya saya ingin mengambil jurusan CS di perguruan tinggi yang baik dan kemudian bekerja sebagai programmer.
Pertanyaan spesifik yang saya miliki adalah:
- Apa tempat yang baik bagi saya untuk membuat pekerjaan saya diperhatikan?
- Apakah ada jurnal, atau publikasi khusus untuk programmer muda?
- Jika bukan publikasi, apakah ada blog yang bagus, atau lebih baik memulai sendiri?
- Apakah ada hal lain, yang akan membantu saya diperhatikan sebagai seorang programmer?
Saya sudah berusaha seobjektif mungkin.
Jika semua ini tl; dr: Apa cara terbaik untuk diperhatikan sebagai seorang programmer muda?
Sunting: Saya tidak ingin langsung direkrut dari sekolah menengah. Tujuannya bukan untuk mengesankan komunitas sebagai programmer profesional. Ini dengan maksud untuk aplikasi perguruan tinggi di mana memiliki pekerjaan Anda dilihat dan dikritik oleh orang lain akan meningkatkan aplikasi Anda. Saya tidak mencari untuk mendapatkan uang dari apa yang saya tulis (sejauh ini).
Jawaban:
Saya ingin memberi Anda beberapa peringatan dan beberapa saran.
Peringatan:
Jangan terlalu mengira-ngira pengetahuan Anda: saat ini saya dapat menganggap Anda cukup tahu untuk menulis aplikasi sederhana dan lebih dari apa yang sebenarnya diajarkan di kelas. Tetapi itu tidak membuat Anda seorang "programmer profesional"; itu bisa membuat Anda menjadi "freelancer" paling banyak.
Jangan meremehkan nilai dari apa yang diajarkan di sekolah. Bahkan jika sesuatu tampak jelas bagi Anda, pelajarilah juga: Anda akan melihat "aspek-aspek baru" (saya akan lebih jelas nanti) ketika Anda akan melanjutkan.
Saran:
Aplikasi profesional memiliki siklus hidup khas 3-5 tahun dan membutuhkan ribuan (hingga jutaan) jam kerja manusia. Mereka tidak dapat digunakan oleh pengembang saja. Pemrogram profesional harus bekerja dengan orang lain. Ini bukan hanya masalah pengetahuan yang baik tentang alat (seperti bahasa, IDE, dll.) Tetapi juga teknik, metode, dan idiom.
Sementara alat dapat diajarkan oleh sampel formal dan latihan, teknik dan idiom hanya dapat "dijelaskan". Untuk "mempelajari" mereka, Anda harus mengalami dan berbagi pengalaman dengan orang lain. Mereka terus-menerus ditemukan dan ditingkatkan.
Perusahaan, ketika mempekerjakan dari sekolah, periksa pemahaman Anda tentang alat dan kemampuan Anda dengan teknik dasar, tetapi - yang paling penting - menguji kemampuan Anda dalam mempelajari hal-hal baru secara cepat dan "menangkap pekerjaan" sesuai kebutuhan.
Ketika merekrut orang yang berpengalaman, mereka melihat berapa banyak hal yang telah mereka lakukan dan pengalaman apa yang mereka dapatkan dari hal-hal itu.
Moral:
Jika Anda ingin lebih "dievaluasi" belajarlah bekerja dengan orang lain, dengan berpartisipasi dalam masalah orang lain (seperti pada stackoverflow ) atau membuka proyek (seperti pada sourceforge )
Juga, jangan terlalu cepat untuk meminta uang; pisahkan "produksi kode" Anda menjadi "sesuatu untuk dibagikan" dan "sesuatu untuk dijual". Apa yang dapat Anda bagikan dapat digunakan oleh orang lain tetapi juga dapat menarik partisipasi orang lain untuk memperluas proyek awal. Apa yang dapat Anda jual adalah apa yang membuat aplikasi Anda "unik" sehubungan dengan proyek-proyek serupa lainnya, yang membuatnya menjadi produk komersial yang nyata.
Untuk berbagi kode dengan orang lain, Anda dapat merujuk ke proyek codeproyek atau sourceforge . Peringkat mereka juga memberi gambaran betapa menariknya apa yang Anda lakukan bagi orang lain.
sumber
Pernahkah Anda berpikir untuk membuat proyek sumber terbuka untuk aplikasi yang Anda tulis dan hostingnya secara online? SourceForge.net atau GitHub.com adalah host proyek open source yang bagus. Ini akan membantu mendapatkan visibilitas untuk aplikasi Anda.
sumber
Pertama-tama, mari kita perjelas: sebagian besar dari 16 programmer YO tidak akan benar-benar mengesankan komunitas.
Ada alasan untuk itu menurut saya. Menjadi programmer yang baik tidak hanya mengandalkan keterampilan pemrograman. Seperti yang mudah-mudahan Anda lihat selama jurusan CS Anda, pemrograman hanya sebagian dari ilmu komputer, dan sebagian besar orang yang memenangkan hadiah (setidaknya hadiah akademik) akan melakukannya karena mereka membuktikan sesuatu yang baru (teorema baru misalnya), atau ditemukan cara baru untuk mencapai semacam tugas (pola desain). Untuk melakukannya, Anda perlu (setidaknya):
Jika Anda merasa sudah menguasai semua itu, maka ya, Anda mungkin akan mengesankan komunitas.
Anda selalu dapat mencoba berkontribusi pada proyek open-source, tetapi Anda mungkin juga cukup terkejut betapa Anda harus mengejar ketinggalan sebelum benar-benar dapat berkontribusi.
Terakhir, lihat di sekitar StackOverflow dan lihat seberapa banyak Anda dapat menjawab di sana dalam bahasa favorit Anda ... Anda akan memiliki proxy yang bagus untuk level Anda.
sumber
Cobalah untuk mendapatkan reputasi yang sangat tinggi di Stack Overflow. Hampir topik yang sama dibahas di sini:
Akankah reputasi tinggi di Stack Overflow membantu mendapatkan pekerjaan yang baik?
sumber
Beberapa hal yang mungkin ingin Anda coba:
sumber
Saya akan mengikuti jawaban Bernard dan menambahkan sedikit lagi. Ada begitu banyak proyek OSS di luar sana yang masih sulit untuk diperhatikan kecuali Anda membuat proyek yang populer, yang tidak akan mudah bagi seorang programmer yang baru memulai.
Dengan asumsi Anda mencoba untuk mendapatkan perhatian di komunitas pemrograman, saya sarankan untuk menerbitkan (baik OSS atau sumber tertutup) add-ons untuk alat yang digunakan programmer. Bayangkan pergi ke wawancara kerja dan bisa mengatakan bahwa perusahaan sudah menggunakan perangkat lunak yang Anda tulis. Banyak alat pengembang memiliki API untuk membuat add-ons dan bahkan beberapa host "App Store" di mana Anda bisa mendapatkan beberapa paparan untuk alat Anda tanpa terlalu khawatir tentang memasarkannya.
Berikut adalah beberapa contoh di atas kepala saya:
Bergantung pada alat yang Anda pilih, Anda dapat menargetkan kantong khusus komunitas pemrograman yang ingin Anda perhatikan.
sumber
sumber
Saya memiliki sudut pandang yang sedikit berbeda di sini.
Jika Anda ingin perangkat lunak Anda diperhatikan, cara terbaik adalah membuat orang menggunakannya. Meskipun Bill Gates dan Mark Zuckerberg adalah programmer muda yang hebat, ada banyak programmer yang lebih baik. Tetapi kedua pria ini mendapatkan banyak orang untuk menggunakan produk mereka dan oleh karena itu lebih dikenal karena pekerjaan mereka.
Untuk membuat orang menggunakan kode Anda, Anda bisa:
Menurut pendapat saya, perangkat lunak hampir tidak relevan tanpa memberikan manfaat kepada pengguna. Dan Anda akan diperhatikan untuk memecahkan masalah yang orang pedulikan, dan itu adalah keterampilan yang sangat langka.
sumber
Satu jawaban yang belum saya baca: Google Summer of Code.
Dari situs web :
Anda harus berusia 18 tahun untuk berpartisipasi, tetapi itu tidak jauh. Saya kenal beberapa orang yang berpartisipasi dan memiliki pengalaman hebat. Karena semua kontribusi Anda adalah untuk program sumber terbuka, mereka bersifat publik, sehingga mereka akan diperhatikan.
Karena Anda berusia di bawah 18 tahun, Google juga memiliki program seperti GSOC untuk siswa pra-universitas (berusia 13-17 tahun) yang disebut Google Code IN .
sumber
Dari sudut pandang saya, ada beberapa tipe orang yang memprogram.
Definisi:
Perhatikan, saya menggunakan kata "Rata-rata" di atas. Bergantung pada minat pribadi dan pengalaman kerja, persentase ini dapat berubah secara drastis. Ini hanya stereotip yang terlalu umum. Jangan menilai buku dari sampulnya. Saya juga hanya mendapatkan persentase dari pengalaman saya.
sumber
Saya seorang programmer freelance. Pemrograman telah menjadi penghasilan utama saya sejak saya lulus SMA 9 tahun yang lalu. Saya masih berniat untuk mendapatkan gelar saya, tetapi saat ini masih belum tepat bagi saya.
Jalan saya menuju pengakuan yang didorong oleh diri sendiri adalah sebagai berikut. Saya tidak mengatakan bahwa langkah-langkah ini akan membuat Anda dikenal oleh komunitas pemrograman, tetapi itu akan membantu meningkatkan kredibilitas Anda ketika tiba saatnya untuk wawancara.
Bahkan setelah saya cukup berpengalaman dalam pemrograman IMO pada saat itu, saya kembali ke dasar-dasar dan pergi melalui tutorial dan membangun sendiri portofolio berdasarkan karya terinspirasi dari mereka. Saya juga mulai memaksa diri untuk berkomentar kode saya dalam mode JavaDoc-esque. Portofolio mungkin tidak diisi dengan kemewahan dan kemewahan saat ini, tetapi memberi Anda garis dasar yang dapat Anda bangun dan akhirnya mengganti apa yang Anda miliki di sana. Saya kemudian memiliki satu set demo dan sampel kode untuk ditampilkan kepada calon klien. Ini penting untuk mendapatkan pekerjaan pertama Anda. Tidak ada yang ingin mempekerjakan seseorang yang tidak memiliki pengalaman, namun, ada beberapa orang yang akan memberikan kesempatan kepada programmer yang tampak menjanjikan yang tidak memiliki pengalaman profesional.
Saya kemudian menganalisis program-program ini dan mulai menulis perpustakaan berdasarkan tugas-tugas saya yang biasa digunakan. Dengan perpustakaan baru saya, saya mulai melihat masalah CompSci di internet dan mulai menentukan sendiri berapa lama waktu yang saya perlukan untuk membangun solusi dengan perpustakaan saya. Ini akan memberi saya garis dasar di masa depan tentang apa yang harus saya bayar untuk tugas tertentu.
Baru pada saat itulah saya menemukan open source. Saya melihat-lihat proyek di sourceforge dalam bahasa yang saya minati dan menemukan aplikasi yang bisa saya manfaatkan. Saya menginstal aplikasi ini dan mulai menggunakannya sebagai bagian dari pengalaman komputasi saya setiap hari. Saya dapat melihat kekuatan dan kelemahan aplikasi ini sejauh interaksi saya setiap hari dan saya mulai mengembangkannya sesuai dengan kebutuhan saya. Saya akan mengirimkan tambalan saya kepada komunitas yang sedang dikembangkan untuk ditinjau, dan setelah beberapa kali saya akan mendaftar untuk menjadi anggota proyek. Di sinilah saya belajar menggunakan berbagai alat yang digunakan ketika bekerja dalam tim yang membawa "pengalaman luas" saya, seperti yang saya pertimbangkan pada saat itu, dan membawanya ke tingkat berikutnya.
Saya mengadaptasi semua praktik saya yang saya ambil ketika bekerja pada proyek-proyek open source dan mengimplementasikan solusi yang dapat dipercaya ketika saya bekerja sebagai individu. Saya mulai serius mengejar karir sebagai pengembang freelance dan bergabung dengan sejumlah situs rekrutmen freelance. Saya melihat apa pekerjaan populer itu, dan mulai melamar. Untuk setiap pekerjaan yang akan saya tolak, saya masih akan menyelesaikannya untuk diri saya sendiri seolah-olah saya telah mendapatkan pekerjaan untuk memperluas pengetahuan saya. Ini akan membantu membangun portofolio saya dan memperkenalkan saya pada beberapa tantangan dunia nyata. Ketika saya akhirnya mendapatkan wawancara pertama itu, saya langsung mengatakan kepada mereka bahwa saya tidak memiliki pengalaman profesional. Saya kemudian mulai memberi tahu mereka proyek-proyek open source yang telah saya kerjakan, apa yang telah saya capai di sana. Beberapa rintangan besar yang saya temui, dan bagaimana saya mengatasinya.
sumber
PS: Sudah lama sejak saya melamar ke perguruan tinggi - mereka masih memberi Anda kesempatan untuk mendaftar hal-hal seperti ini kan? (Misalnya, bagian tentang hobi, atau pertanyaan esai tentang minat Anda).
sumber
Saya pikir JohnFX memberikan jawaban yang bagus untuk pertanyaan ini.
Beberapa pemikiran:
Saya pikir jQueryUI mungkin tempat terbaik untuk memulai. Ini menyenangkan dan visual. Jadi Anda bisa masuk ke forum pengembang jQueryUI di situs jQuery dan meminta untuk menjadi kontributor.
Saya pikir Anda akan menunjukkan semangat yang besar dan dedikasi untuk pemrograman lebih dari Anda akan menunjukkan keahlian yang hebat. Tapi jangan biarkan itu menghentikanmu! Saya sangat menganjurkan Anda untuk terlibat.
Pada titik ini Anda mungkin harus puas melakukan QA. QA membosankan tetapi Anda dapat menerimanya dan menunjukkan dedikasi. Tetapi dari sana Anda dapat berkontribusi sedikit kode dan mungkin membuat plugin.
Jika Anda meminta untuk terlibat dalam sesuatu dan mereka membuatnya sulit, itu karena mereka brengsek. Carilah proyek di mana orang-orang memberi semangat dan menyenangkan.
Setelah Anda menemukan sebuah proyek dengan orang-orang baik yang menyemangati dan Anda berkontribusi, Anda dapat meminta salah satu kontributor dewasa atau semoga salah satu orang yang bertanggung jawab atas proyek tersebut untuk menulis surat rekomendasi singkat kepada Anda.
sumber
Saya dengan hormat tidak setuju dengan mereka yang menjawab "jangan melebih-lebihkan diri Anda sendiri"!
Jika Anda menyukai pemrograman pada usia Anda, lakukanlah, Anda mungkin hebat dan lebih besar daripada anak-anak seusia Anda, dan pada saat Anda seorang veteran, Anda mungkin akan menjadi Brian Kernighan berikutnya, Edsger Dijkstra atau Doug Lea!
Saya akan menyarankan mempelajari pengembangan iPhone atau Android, dan membangun beberapa aplikasi nyata.
Menjadi ahli dalam sesuatu dan saat Anda berada di sana, berbicara di konferensi dan menulis artikel, yang akan membuat Anda diperhatikan, dan akan memoles keterampilan Anda.
Saya telah memprogram sejak akhir 70-an, dan di Jawa sejak 1996. Saya dapat memberi tahu Anda buku Jawa paling penting yang pernah saya baca adalah Geng Empat Pola Desain, yang ditulis satu dekade sebelum Jawa ditemukan. Baca dan jadilah hebat!
Industri dengan bayaran tertinggi saat ini adalah keuangan, tetapi itu berubah dengan cepat. Saya percaya itu akan kembali, tetapi Anda tidak pernah tahu!
Jadilah seorang programmer dan nikmati pekerjaan yang tinggi serta kepuasan kerja!
Semoga beruntung, Anda memiliki karir yang hebat di depan Anda!
sumber
Bangun aplikasi web yang berfungsi baik di iPhone dan Android (abaikan browser standar untuk saat ini) dan manfaatkan fitur-fitur tambahan HTML5 (https://developer.mozilla.org/en/HTML/HTML5) untuk mengatasi latensi, jaringan jerawatan, dan keterbatasan browser ponsel. Ini kemungkinan besar berarti mengirimkan aplikasi peramban javascript + html5 yang terhubung ke api berbasis server. (pilih xmlrpc / json / yaml, bukan SOAP). membuatnya berteriak cepat. Di server, saya sarankan menggunakan cherrypy di linux (debian) pada VPS murah. Anda bisa mendapatkannya di 123systems.com, buyvm.net (lebih disukai tetapi sering tidak tersedia) dengan harga di bawah $ 4 sebulan. Belajar menggunakan Python, dan gunakan Fabric untuk menyebarkan barang-barang Anda ke server Anda. Dapatkan domain .info di namecheap.com dengan harga $ 2,99 per tahun, dan gunakan dnsmadeasy.com untuk DNS (lebih mahal, tapi sepadan - telah menggunakannya selama bertahun-tahun, tidak pernah memiliki satu masalah) di mana Anda dapat melakukan load-balance melalui DNS. Juga, jangan ditunda oleh database. Gunakan sqlite dan belajar mendesain tabel Anda secara manual dengan pernyataan sql. Akhirnya, dengan satu mesin Anda mungkin dapat menangani 30.000 pengguna. (2.000 sekaligus pada satu hit ke server setiap 3 detik). Ingatlah untuk cache sebanyak mungkin di penyimpanan HTML5.
Jika Anda melakukan ini, dan Anda blog tentang hal itu dan twit tentang entri blog dan kemajuan Anda, Anda pasti akan diperhatikan. Memang ada banyak yang harus dipelajari, tetapi Anda bisa melakukannya!
sumber
Hampir di mana saja di internet - jika Anda menulis sesuatu yang layak disebut, seperti utilitas yang melakukan sesuatu yang rapi atau unik, bahwa banyak orang akan menggunakan / mengunduh - maka Anda telah menyelesaikan sebagian besar tugas ini. Aplikasi keren, bermanfaat, dan tersedia, beriklan sendiri.
Anda sudah berada di sini - ini hanya satu, dari banyak komunitas, yang keluar dari keinginan geser untuk berbagi, dan dikenal karena mengetahui - orang lain lebih dari senang untuk menghubungkan topik jasa, dengan diskusi saat ini.
Hanya program demi pemrograman - selama produktif, kreatif, dan berguna - pemberitahuan akan diambil.
Satu hal yang saya lihat disebutkan dalam balasan lain, yang saya juga siapkan, adalah kontribusi yang diberikan kepada proyek sumber terbuka. Satu-satunya cara untuk menjadi lebih baik dalam pengkodean, adalah dengan kode - dan cara apa yang lebih baik untuk melakukan itu, daripada menyelesaikan masalah saat ini. Karena, tanpa masalah untuk dipecahkan, Anda mengkode dengan sia-sia ... oh, satu hal lagi, jangankan orang tua pemarah, dengan kembung mereka, dan sengaja mengecilkan hati, "muda kakap kakap" komentar - Anda masih muda dan antusias, itu saja yang Anda butuhkan.
sumber
Jika saya adalah Anda, saya akan membuat pengetahuan saya diketahui melemparkan pekerjaan saya, Anda mengatakan Anda memprogram dalam
c
jadi mulai membuat program yang diarahkan untuk pengalaman sehari-hari pengguna PC, membuat hal-hal sepertiyoutube downloader
dan mulai sendiridev team
hei man im hanya 19 dan saya mulai pemrograman 4 tahun lalu dan dapatkan im ini seorang pria kulit hitam muda dari tenda .... jadi saya bisa memahami hasrat yang Anda miliki untuk pemrograman tetapi pada saat yang sama pemrograman dapat mengambil banyak waktu Anda, dan usaha, beri diri Anda waktu untuk hidup .. Artinya, sepanjang waktu itu duduk di depan komputer bisa membuat anak laki-laki stres.sumber
Ada banyak tempat untuk meningkatkan pekerjaan Anda agar diakui, tetapi sementara Anda mungkin menganggap pekerjaan Anda sebagai kedudukan tertinggi, itu mungkin hanya hari yang sederhana di tempat kerja bagi sebagian orang. Ketika saya berusia 16 tahun, saya pikir pekerjaan saya luar biasa, saya melakukan beberapa hal keren, tapi saya benar-benar bekerja di bidang ini sekarang, dan di mana saya kemudian tidak ada apa-apanya dibandingkan dengan di mana saya sekarang, dan saya masih jauh off dari tempat yang saya inginkan.
sumber
Jika Anda menyukai permainan, cobalah berpartisipasi dalam Ludum Dare. Gim yang bagus di sana akan terkenal.
sumber
Jika Anda ingin diperhatikan DAN menghasilkan uang, saya akan merekomendasikan pengembangan ponsel di iPhone atau Android. Anda sudah tahu C ++, yang merupakan awal yang baik. Untuk pengembangan asli pada iPhone Anda akan memerlukan Objective C, dan untuk Android Anda akan membutuhkan Java. Keduanya mirip dengan C ++ (Java lebih mudah karena tidak ada manajemen memori), dan tidak akan terlalu sulit untuk dipelajari. Jadi Anda tidak hanya akan menulis aplikasi yang akan membuat Anda diperhatikan, dan menghasilkan uang bagi Anda, tetapi Anda akan belajar bahasa baru dan platform panas dalam prosesnya.
sumber