Dari non programmer ke programmer freelance "profesional" [ditutup]

8

Saya seorang siswa berusia 15 tahun yang ingin membeli mobil pertamanya dan berpikir saya bisa mendapatkan uang tambahan dengan belajar program karena saya suka bermain-main dengan komputer sepanjang waktu.

Saya telah membaca banyak posting di sini dan telah membuat daftar buku yang saya pikir akan bermanfaat bagi saya, namun, saya tidak tahu informasi mana yang paling penting untuk diketahui terlebih dahulu atau jika saya memiliki semua yang saya butuhkan. Inilah yang saya pikirkan:

1: Pelajari bahasa pemrograman secara mendalam. Saya kira-kira 1/2 cara selesai dengan buku Langkah-demi-Langkah 2. Pelajari tentang desain berorientasi objek dan pola desain 3. Pelajari tentang pengujian perangkat lunak 4. Lakukan latihan keterampilan ini di situs web seperti projecteuler, topcoder, dan coba dan lakukan yang sederhana proyek di situs web freelance seperti rent-a-coder.

Apakah ada hal lain yang menurut Anda perlu atau harus saya perhatikan?

Terima kasih.

Microsoft Visual C # 2010 Langkah demi Langkah

Profesional C # 4.0 dan .NET 4 (Programmer Wrox ke Programmer)

C # dalam Kedalaman

CLR via C #

Menerapkan UML DAN Pola

Kepala Analisis dan Desain Berorientasi Objek Pertama

Pola Desain: Elemen Perangkat Lunak Berorientasi Objek yang Dapat Digunakan Kembali

Pengembangan Test Driven: Dengan Contoh

Tumbuh Perangkat Lunak Berorientasi Objek, Dipandu oleh Tes

pengguna13822
sumber
6
Saya pikir Anda akan mendapatkan uang lebih cepat dengan mendapatkan pekerjaan musim panas memotong rumput (jika itu uang tunai yang Anda inginkan). Mempelajari pemrograman akan membutuhkan waktu lebih lama untuk mendapatkan yang cukup baik untuk mendapatkan uang tunai darinya (bahkan melalui sewa koder (pengembang berpengalaman dari India / Cina / Ukraina akan menawar Anda)).
Martin York
7
Tetaplah begitu. Anda akan memiliki mobil Anda dalam waktu sekitar 5 tahun.
ChaosPandion
1
Daftar buku yang bagus. Terlepas dari teori Anda memerlukan latihan, mirip dengan bagaimana Anda tidak bisa mendapatkan sabuk hitam di karate dengan membaca buku. Beli waktu untuk latihan, lihat jawaban GrandmasterB.
Joppe
1
@Rig FYI - pengguna dengan kurang dari 10 rep (ini dibuat ketika OP punya 1 rep) dibatasi hingga 2 tautan dalam sebuah pos . Hxxp adalah untuk mengatasi pembatasan itu.
@MichaelT Terima kasih telah menunjukkannya. Saya tidak tahu.
Rig

Jawaban:

19

Langkah Pertama Anda = Pelajari Kerajinan Anda

Pengalaman lebih penting daripada pembelajaran buku:

Pilih proyek dan cari tahu cara mencapai tujuan Anda.

Ini tidak diragukan lagi akan mengarahkan Anda ke pembelajaran buku dll. Tetapi akan memungkinkan Anda untuk mengukur kemajuan Anda sendiri dan untuk memilih apa yang harus dibaca dan kapan. Beberapa petunjuk:

  • Mulailah dengan sesuatu yang kecil.
  • Ambil satu per satu.
  • Lakukan hal-hal sebaik yang Anda bisa.
  • Jangan menambahkan sesuatu ke kode Anda sampai Anda membutuhkannya.
  • Jangan pernah menambahkan kode yang tidak Anda mengerti.
  • Jangan ulangi kode yang sama dua kali dalam proyek Anda.
  • Selalu bayangkan bahwa orang lain akan mengerjakan kode Anda besok - cobalah membuatnya sejelas itu kepada orang itu.

Adapun buku pilihan Anda:

Jika Anda ingin mendapatkan rute C #, daftar buku Anda luar biasa. Jika Anda tahu banyak tentang itu, Anda tidak akan sepadan dengan emas! Saya telah menjadi programmer .Net (dibayar cukup baik) sejak awal. Net, tetapi masih belum membaca yang paling canggih dari buku-buku ini (tetapi mereka ada di daftar bacaan saya). Pelajaran yang saya ambil dari ini adalah bahwa hal-hal canggih memiliki tempatnya, tetapi penguasaan dasar-dasar masih dapat memberi Anda karir yang hebat. Jadi, jangan terlalu khawatir tentang buku-buku lanjutan sampai Anda benar-benar membutuhkannya. Ada satu buku yang akan saya tambahkan ke daftar Anda - bahkan sebelum buku C # lanjutan: Kode Lengkap 2. Ini mungkin buku yang paling direkomendasikan di situs ini. Sepatutnya begitu, IMO.

Langkah Anda Berikutnya = Bangun Kepercayaan

Anda menyebutkan mendapatkan sedikit uang. Untuk menyatakan yang jelas: untuk mendapatkan uang dari pengembangan perangkat lunak, Anda perlu menemukan seseorang yang bersedia membayar Anda. Sayangnya untuk Anda, menemukan bahwa seseorang akan menjadi tantangan bagi Anda.

Mengapa?

  1. Karena usiamu .

Saya mungkin salah tentang ini, karena (tentu saja) sangat tidak masuk akal. Namun, kenyataan menyedihkannya adalah orang berprasangka tentang usia. Dalam pengalaman saya, banyak majikan potensial cenderung memalingkan Anda karena mereka menganggap orang muda tidak dapat diandalkan dan tidak dapat memenuhi janji mereka. Apa yang membuat ini sangat tidak adil adalah bahwa Anda tidak dapat melakukan apa pun tentang usia Anda kecuali menunggu.

Namun, ada beberapa hal yang dapat Anda lakukan untuk meningkatkan kemungkinan mendapatkan pekerjaan sebagai pengembang terlepas dari usia Anda:

a) Terus lakukan itu. Jika Anda tidak pergi mencari pelanggan karena Anda tidak mengharapkan mereka memalingkan Anda maka Anda tidak akan pernah menemukan orang-orang yang akan melewati usia Anda dan melihat kualitas Anda sebagai pengembang. Dengan kata lain, jangan biarkan prasangka orang lain tentang usia menjadi prasangka Anda tentang orang lain.

b) Dapatkan advokat - seseorang yang akan menjamin kemampuan Anda yang memiliki kredibilitas lebih di mata prospek yang Anda miliki dalam diri Anda. Mungkin Anda memiliki teman atau kerabat yang lebih tua yang dapat berbicara untuk Anda? Tentu saja, Anda akan membutuhkan seseorang yang dapat menjamin kualitas pribadi Anda, jadi pastikan Anda benar-benar siap secara teknis.

  1. Karena Anda tidak memiliki pengalaman industri .

Terlepas dari kenyataan bahwa Anda jelas memiliki bakat, pengetahuan, dan antusiasme, Anda tidak memiliki pengalaman 5 tahun di pekerjaan. Ini adalah masalah yang dihadapi semua orang yang baru mengenal suatu profesi terlepas dari usia mereka. Seringkali, orang tidak ingin repot mempekerjakan orang yang belum memiliki rekam jejak yang terbukti dalam melakukan pekerjaan.

Untungnya, Anda dapat melakukan banyak hal tentang ini:

a) Mengakui bahwa ini adalah masalah yang wajar

Sulit bagi seseorang untuk membenarkan membayar layanan ketika mereka tidak memiliki bukti bahwa mereka akan mendapatkan apa yang mereka bayar.

Saat Anda berbicara dengan calon klien, jujurlah tentang kurangnya pengalaman Anda, tetapi tunjukkan mengapa itu tidak menjadi masalah. Jika menunjukkan inisiatif dalam hal ini maka Anda dapat merusak keberatan mereka sebelum mereka memikirkannya dengan baik. Manfaatnya bukan untuk memanipulasi, tetapi untuk menunjukkan bahwa Anda memahami kebutuhan bisnis mereka.

b) Membangun reputasi

Lakukan paket pekerjaan yang kecil dan dapat dikelola dengan biaya yang cukup kecil sehingga Anda mengambil risiko dari transaksi untuk klien. Seringkali, ini berarti Anda melakukan pekerjaan pertama Anda secara gratis. Pilih klien ini dengan hati-hati - Anda perlu melakukan sesuatu yang akan memberi Anda kepuasan bagi seseorang yang akan menyanyikan pujian Anda saat Anda melahirkan. Saya diberitahu bahwa banyak pengembang melakukan pekerjaan amal untuk memulainya, tetapi keluarga dan teman-teman keluarga mungkin juga dapat menawarkan sesuatu kepada Anda.

c) Bangun pengalaman

Untuk menunjukkan pengalaman, Anda perlu ... pengalaman. Jika Anda tidak dapat menemukan orang lain untuk bekerja, bekerja untuk diri sendiri. Mulai proyek hobi. Pilih sesuatu yang bermanfaat bagi orang, dan mungkin (pada waktunya) bersedia membayar. Namun, jangan mengusahakannya demi uang, tetapi untuk pengalaman. Anggap ini investasi jangka panjang - Anda bisa mengharapkan pengembalian dalam jangka panjang, tidak harus dalam jangka pendek.

d) Kembangkan keterampilan non-teknis Anda

Jika hal pemrograman berbayar tidak berhasil saat ini, jangan khawatir. Pengusaha tidak benar - benar hanya membayar keterampilan di bidang tertentu, tetapi untuk paket lengkap.

Keterampilan non-teknis sama pentingnya dalam industri TI dengan keterampilan teknis: pengusaha mencari profesionalisme dan juga kemampuan pemrograman. Kualitas profesional ini dapat mencakup keterampilan orang, pengalaman keuangan, pengetahuan bisnis, dan kualitas pribadi seperti kejujuran, keandalan, dll.

Semua ini dapat dikembangkan secara terpisah dari keterampilan teknis Anda. Misalnya, jika Anda butuh uang, Anda bisa mengambil pekerjaan non-pemrograman. Atau, Anda bisa terlibat dengan kelompok komunitas atau amal atau pelabuhan atau apa pun di mana Anda dapat membangun kemampuan non-teknis Anda. Pada akhirnya, kegiatan-kegiatan ini dapat menyebabkan Anda mendapatkan kontrak pemrograman pertama yang tepat, jika tidak secara langsung (Anda tidak pernah tahu kontak apa yang akan Anda buat) kemudian secara tidak langsung karena Anda lebih bulat dan memiliki lebih banyak untuk ditawarkan daripada orang lain.

Kramii
sumber
Terima kasih banyak atas sarannya yang mendalam. Sangat dihargai.
user13822
+1, ini adalah jawaban semacam ini yang membuat saya menyukai situs ini. Jelas, to the point dan bermanfaat.
Mengapa klien tahu usianya? Saya tidak mengetahui adanya situs lepas yang memposting usia penyedia layanan. Saya berada di ujung lain dari skala - Saya berusia 66 tahun, dan satu-satunya klien yang mengetahui usia saya adalah mereka yang saya temui secara langsung. Dengan itu, karena kurangnya pengalaman, resumenya akan kurang.
tcrosley
8

Anda mungkin lebih baik fokus saat ini pada bidang pengembangan yang 'lebih lembut' - misalnya, membuat situs web dan mempelajari cara menginstal dan mengkonfigurasi sistem manajemen konten dan aplikasi open source lainnya.

Saya tidak melihat seorang anak berusia 15 tahun benar-benar bisa lepas sebagai seorang programmer - tidak kecuali mereka benar-benar luar biasa dalam pemrograman. Saya pikir Anda akan lebih mungkin mendapatkan kontrak kecil untuk membuat situs web untuk bisnis lokal, dan kemudian maju ke proyek yang lebih besar dari sana.

GrandmasterB
sumber
2
Lakukan ini - dan sementara itu, teruslah belajar hal-hal yang lebih kompleks. Apakah Anda memiliki beberapa teman dengan band dan masih situs web statis? Terapkan CMS untuk situs mereka. Anda akan mendapatkan pengalaman produksi nyata dan beberapa bukti kemampuan Anda untuk klien potensial.
cbrandolino
Dan tanpa seseorang menandatangani kontrak untuk mereka seperti di sebagian besar negara anak berusia 15 tahun tidak dapat memasukkan kontrak yang mengikat.
Rig
4

Saya pikir itu luar biasa apa yang Anda lakukan. Hal semacam ini harus didorong! Yang mengatakan, karena Anda hanya memiliki Musim Panas untuk bekerja pada proyek pembayaran, Anda mungkin ingin mengambil tumpukan teknologi lebih cepat daripada C # dan .NET. Ada banyak kontrak pendek untuk hal-hal seperti aplikasi PHP, aplikasi RoR, pengembangan iOS dan Android, penyesuaian CMS dll. Jenis-jenis peran itu juga cenderung berprasangka terhadap usia Anda (fakta yang menyedihkan tetapi benar bahwa Anda akan menjalankannya seberang).

Semoga berhasil dan jangan menyerah - pemrograman adalah salah satu hal paling kreatif, menyenangkan, dan bermanfaat yang bisa Anda lakukan, titik.

Martijn Verburg
sumber
Terima kasih atas dorongan Anda serta area lain yang mungkin bermanfaat bagi saya untuk memulai.
user13822
3

Rekomendasi saya adalah apa yang telah saya lakukan secara pribadi. Pergi bekerja ke MacDonald atau apa pun untuk menghasilkan uang. Jangan mengharapkan penghasilan apa pun dari IT sebelum Anda lulus dari Universitas.

Saya tidak ingin mengecewakan Anda, tetapi dalam beberapa tahun ke depan saya pikir Anda terutama akan menjadi konsumen dan bukan penyedia teknologi. Ini berarti bahwa Anda akan menghabiskan lebih banyak uang untuk TI yang dapat Anda hasilkan dari itu :-)

UML_GURU
sumber
Ada banyak pekerjaan lepas yang tersedia untuk mahasiswa sebelum lulus.
Norman Ramsey
Mungkin tidak lulus tetapi, sampai Anda berusia 18 tahun, akan sulit bagi siapa pun untuk setuju berbisnis dengan Anda. Menjadi dewasa & mampu menandatangani kontrak adalah bagian penting dalam melakukan bisnis.
Sean McSomething
3

Saya sarankan Anda mengambil beberapa pekerjaan musim panas daripada mencoba menghasilkan uang melalui pemrograman. Dibutuhkan cukup banyak waktu dan usaha sebelum Anda menjadi cukup mahir (rata-rata) sehingga orang akan membayar Anda untuk menulis perangkat lunak untuk mereka. Pemrograman bukan sesuatu yang bisa dipelajari selama musim panas. Karena itu, kecuali jika Anda berencana untuk melakukan ini dalam jangka panjang, saya tidak berpikir pengembangan perangkat lunak akan menghasilkan pengembalian investasi (dalam hal waktu dan usaha) yang Anda cari.

Selain itu, jika Anda benar-benar tertarik pada pemrograman, saya akan menyarankan cara yang sedikit lebih mudah daripada C # dan .Net - mengatur situs web (jangan menyinggung siapa pun). Mulailah dengan situs statis terlebih dahulu kemudian pelajari untuk mengatur situs penuh yang digerakkan CMS. Meskipun jika Anda turun jalan ini saya sarankan belajar tentang dasar-dasar desain dan desain web secara umum (tidak perlu tetapi itu benar-benar membantu, terutama jika klien Anda menginginkan situs yang dibuat khusus alih-alih menggunakan tema yang dibuat sebelumnya).

Semoga sukses di mobil Anda dan saya harap Anda dapat tumbuh untuk menikmati pemrograman alih-alih melihatnya hanya sebagai sumber penghasilan. :)

jon2512chua
sumber
1

Saya selalu merasa perlu memiliki masalah untuk dipecahkan atau permainan yang ingin saya tulis. Dengan begitu Anda selalu mencari cara untuk menyelesaikan masalah itu dan itu akan membuat Anda membaca buku dan mencari secara online. Saya tidak pernah bisa membaca buku dan kemudian tahu subjek.

Setelah Anda memutuskan 'masalah' untuk dipecahkan, pilihan buku Anda mungkin menjadi lebih jelas.

paul
sumber
0

Id menyarankan untuk menambahkan beberapa buku, format Web, atau MVC Asp.Net. Mots untuk pekerjaan lepas adalah tentang pengembangan Web. Asp.Net juga tidak terlalu populer di bidang ini.

Mungkin Ruby / Rails atau Python / Django akan lebih cocok untuk freelance. PHP juga memiliki banyak sekali pekerjaan lepas.

Anda dapat memeriksa situs freelance dan menganalisis teknologi yang paling dicari.

Alexey Anufriyev
sumber