Penafian (Harap baca sebelum melompat untuk menjawab):
Saya telah melihat sejumlah pertanyaan yang mirip dengan yang ingin saya tanyakan, jadi inilah beberapa pertanyaan serupa .
IMHO Mereka tidak sepenuhnya apa yang saya minta, juga tidak selengkap yang saya harapkan (saya tidak bermaksud menepis jawaban untuk pertanyaan di bawah ini, juga saya tidak mendiskreditkan para penanya, saya hanya ingin menjadi sedikit lebih teliti):
Biar saya perjelas, saya tidak menanyakan yang berikut:
- Cara mengajar diri saya pemrograman dari awal (tanpa gelar CS)
- Bagaimana memasarkan diri saya sebagai pengembang perangkat lunak yang baik (tanpa gelar CS)
- Cara mendapatkan pekerjaan bergaji tinggi yang bagus sebagai pengembang perangkat lunak (tanpa gelar CS)
Sedikit konteks:
Sekarang setelah saya menyangkal, biarkan saya menyempurnakan pertanyaan saya, dimulai dengan sejarah singkat pengalaman saya sebagai pengembang perangkat lunak.
Pertama, saya sangat beruntung. Saya telah diberikan beberapa kesempatan kerja (beberapa proyek PHP / MySQL backend berat, dan beberapa aplikasi WP7 di XAML / C #) di mana saya benar-benar belajar semua yang saya ketahui tentang pengembangan perangkat lunak. Hampir semua pekerjaan pengembangan perangkat lunak yang saya miliki adalah pekerjaan yang saya tidak memenuhi syarat untuk dimiliki (dan saya menjelaskan kepada majikan saya sebelum mereka mempekerjakan saya). Saya tidak ingin memberi diri saya penghargaan di mana itu bukan karena jatuh tempo, tetapi saya akan mengatakan bahwa kerendahan hati yang sempurna membuang kesederhanaan .
Di hampir setiap pekerjaan pengembangan yang pernah saya miliki, saya telah melampaui harapan majikan saya, dan terbukti menjadi aset yang berharga. Tentu saja ada pengecualian 1 . Tetapi poin saya adalah saya cukup cerdas dan mampu mengajari diri sendiri apa yang perlu saya ketahui agar bisa sukses di pekerjaan saya. Dengan setiap pekerjaan yang saya miliki, saya semakin tertarik.
Saya menghadiri kampus Seattle di University of Washington , dan saat ini berada di tahun keempat saya dengan dua tahun tersisa, bekerja pada gelar Matematika. Selama berbagai pekerjaan yang saya miliki (lihat resume saya jika Anda menginginkan daftar itu) saya juga pernah bersekolah sebagai siswa penuh waktu.
Seperti yang saya pikir sebagian besar pengembang akan setuju, mempelajari kursus sarjana umum ed umum, termasuk kursus pemrograman pengantar PALSU PALSU dibandingkan dengan menulis kode nyata, membangun 2 produk nyata , bekerja dengan orang - orang hebat , dan secara positif mempengaruhi kehidupan pengguna 3 .
Jadi ... seiring berjalannya waktu ... Saya menghabiskan lebih banyak waktu dan energi saya untuk bekerja daripada berfokus pada studi saya. Pada saat saya tampil sangat mengerikan , tetapi untuk sebagian besar saya mampu untuk tetap bertahan dengan nilai saya.
Namun program ilmu komputer di UW sangat , sangat , sangat , sangat kompetitif.
Jadi, tidak mengherankan bagi saya ketika saya ditolak oleh program. Dua kali. Ironisnya, jendela setengah jam yang sama di mana saya menerima pemberitahuan penolakan yang selalu sopan, meskipun mengecewakan melalui email, saya mendapat telepon dari Amazon yang menawarkan saya magang musim panas 4 sebagai SDE.
Ketika saya melihat-lihat pria lain seusia saya (21), yang memiliki tujuan yang sama seperti saya dalam pengembangan perangkat lunak, saya merasa cukup baik tentang di mana saya berada, apa yang saya pelajari, siapa saya, dan apa Dapat saya lakukan. Tentu saja ada jauh lebih banyak, jauh, jauh lebih cemerlang dari 21 tahun di luar sana daripada saya sendiri, saya tidak bermaksud mengatakan saya menonjol di tengah orang banyak, hanya karena saya merasa seperti saya tidak berada di belakang kemajuan rekan rata-rata saya .
Saya merasa yakin dengan kemampuan saya untuk menjadi sukses di dunia perangkat lunak. Lebih penting lagi saya merasa yakin dengan kemampuan dan keinginan saya untuk terus tumbuh, belajar, dan merasa rendah hati ketika saya benar-benar membutuhkannya.
Gelar Matematika
Saya menemukan diri saya mengejar gelar Matematika dengan satu-satunya tujuan memiliki gelar. Ada yang mengatakan saya harus keluar dan mulai bekerja sekarang (karena saya memiliki kesempatan untuk melakukannya), dan ada yang mengatakan saya harus benar-benar menyelesaikan gelar saya. Saya sudah memutuskan untuk melanjutkan dengan gelar saya karena alasan yang sama sekali berbeda dari yang cenderung diangkat oleh salah satu kamp, jadi tolong jangan mendorong saya satu atau lain cara dalam hal ini. Pertimbangkan masalah "ditutup" :)
* DEEP BREATH * ... maaf ini lebih lama dari yang saya perkirakan.
Ini pada dasarnya, adalah pertanyaan saya:
- Bagaimana saya menentukan secara objektif bidang studi apa, pengetahuan umum, dan keterampilan lain yang akan saya peroleh melalui gelar CS yang mungkin belum atau belum saya miliki saat ini?
Bagaimana cara saya mengurutkan keterampilan ini agar paling penting?
Apa cara terbaik (selama dua tahun ke depan) untuk melengkapi pendidikan saya untuk mendapatkan atribut-atribut tersebut sedemikian rupa untuk menyamai atau bahkan melampaui tingkat sarjana S1 dari universitas top?
Inilah langkah-langkah yang sudah saya ambil:
- Tanyakan komunitas pengembangan (posting ini)
- Kejar mentorhip dengan pengembang berpengalaman yang berbagi jalur karier yang sama dengan saya
- Tetapkan tujuan "belajar" jangka pendek dan panjang dan silabus berikutnya yang menguraikan topik studi
- Terus menulis kode dan mengerjakan proyek yang saya sukai
Jika Anda sudah sejauh ini, Anda layak mendapatkan kue :) Saya menghargai Anda mendukung saya.
Jadi ... komunitas pengembangan, pengembang berpengalaman, sesama siswa yang berada di kapal yang sama dengan saya, saran apa yang akan Anda miliki?
Juga ... harap ingat sanggahan saya di bagian atas posting ini tentang apa yang saya TIDAK minta.
Memperbarui:
Saya menyadari bahwa saya tidak memberikan parameter yang sangat konkret untuk apa yang saya anggap sebagai "jawaban" yang berhasil untuk pertanyaan saya. Saya pikir pertanyaannya sangat kabur, dan dapat menjamin sejumlah jawaban "benar".
Setelah jangka waktu yang wajar saya akan memilih jawaban yang sesuai dengan atribut berikut:
- Jelaskan alasan di balik jawaban mereka
- Dapat berbicara dari beberapa tingkat pengalaman (baik itu mempekerjakan / berinteraksi dengan atau menjadi seseorang yang memiliki / berada di posisi saya)
- Ringkas tetapi teliti, memberikan prinsip luas lebih disukai digabungkan dengan contoh-contoh spesifik
- Terakhir, mengingat panjang yang cocok dengan yang di atas tampaknya perlu, harap jadikan itu jawaban yang dikomunikasikan dengan baik dan menyenangkan untuk dibaca. Orang lain yang mungkin tertarik dengan hal ini di masa depan saya harap akan dihibur serta dididik oleh tanggapan.
Jadi ada beberapa parameter untuk "benar". Mereka sangat tinggi, saya pikir, tetapi saya telah merancang mereka sebagai semacam garis besar untuk apa yang saya bayangkan sebagai jawaban "terbaik". Tentunya diberi waktu yang cukup saya akan memilih respons pencocokan terdekat sebagai "jawaban".
(1) - Saya mengerjakan versi sebelumnya dari situs web ini, dan sementara kami tidak memiliki yang eksplisit berbicara tentang hal itu, saya merasa bahwa saya tidak dapat melakukannya dengan baik sama sekali (ini bisa terjadi dibuktikan oleh fakta bahwa mereka telah mengubah situs web mereka sepenuhnya) (2) - Pertama, ya, ini produk nyata (walaupun saya menulis posting ini di Chrome ...), dan itu menendang pantat. Kedua, saya adalah pengembang magang sekolah menengah dalam ujian, menulis bukti kode konsep untuk beberapa fitur baru untuk IE8 ... jadi beberapa waktu yang lalu. (3) - Pada saat posting ini saya adalah pengembang yang menulis aplikasi ini, saya tidak lagi bertanggung jawab untuk basis kode itu (4) - Magang saya akan dimulai pada Juni 2012, dan saya akan bekerja di Web Store tim.