Mungkin karena suatu alasan Anda tiba-tiba ingin menjadi seorang programmer. Kabar baiknya adalah setelah Anda memahami sistemnya, Anda dapat mempelajari cara melakukan wawancara dengan baik dan bertahan dalam beberapa bulan pertama pekerjaan Anda.
Kabar buruknya adalah masih belum ada jalan keluar dari pemrograman ABC, dan untuk merasa nyaman dengan posisi baru Anda, Anda harus segera menyelesaikan pembelajaran segala sesuatu yang seharusnya sudah Anda ketahui dengan mudah.
Tentu saja artikel ini hanya akan membahas tentang saya pengalaman pribadi, yang memungkinkan saya mendapatkan wawancara bahkan untuk perusahaan ternama seperti Luxoft.
Bagaimana saya menjadi seorang programmer
Saya pertama kali mengenal komputer pada usia 6 tahun. Pada usia 13 tahun, saya sudah memiliki website pribadi. Prestasiku buruk di sekolah dan di universitas juga. Di tahun kedua saya, teman saya mendapatkan pekerjaan sebagai programmer Java dan sangat menyarankan saya melakukan hal yang sama. Ide itu membuat saya penasaran. Diperlukan sebuah rencana.
Langkah pertama adalah melanjutkan
Masalah pertama dan utama yang dihadapi pemula adalah resume mereka. Tanpa resume yang memadai dan menarik, Anda tidak akan diundang untuk wawancara. Namun bagaimana dengan mereka yang tidak memiliki pengalaman kerja sama sekali? Agar tidak pergi ke HR dengan tangan kosong, saya dan teman saya menulis ke dalam resume saya pengalaman setahun penuh mengerjakan proyeknya, yang seharusnya kami kerjakan bersama.
Kebijakan gaji
Berikutnya poin penting dalam resume setelah teknologi yang banyak diminati dan dalam bahasa Inggris adalah gaji yang diinginkan. Tanpa berpikir dua kali, saya dan teman saya memutuskan untuk bermain besar dan menulis sejumlah seribu dolar pada saat itu, yang seharusnya menyingkirkan “perusahaan nakal”.
Malu dan malu
Wawancara pertama gagal. Mereka benar-benar menertawakan saya. Pada wawancara teknis pertama, di mana saya diberi beberapa masalah di atas kertas, saya langsung menemukan jawabannya. Bahkan ada yang unutk memberikan rekomendasi buku Berpikir di Jawa.
Pekerjaan pertama
Pada akhirnya, saya diundang untuk wawancara di salah satu cabang perusahaan Denmark, di mana saya menjawab pertanyaan mendasar dan mengejutkan semua orang dengan bahasa Inggris saya. Saya dipekerjakan sebagai pengembang Java Junior dengan satu syarat - selama tiga bulan pertama saya akan mengambil kursus SCJP (Sun Certified Java Programmer), yang akan mengisi kekosongan saya dan menjadikan saya spesialis yang lebih siap. Apa yang lebih baik daripada magang berbayar tanpa harus bekerja (mengkhianati ketidakmampuan Anda)? Saya bekerja di perusahaan ini selama enam bulan, sehingga dalam beberapa bulan saya bisa dipromosikan ke perusahaan yang lebih besar.
Berdasarkan pengalaman saya yang pahit namun tetap tak ternilai harganya, saya akan memberikan daftar rekomendasi yang akan membantu rekan-rekan petualang mendapatkan pekerjaan sebagai programmer dengan relatif cepat.
- Ringkasan. Itu harus diformat dengan benar dan ditulis secara eksklusif dalam bahasa Inggris. Jika Anda tidak memiliki cukup pengalaman, maka Anda dapat (dan harus) menciptakannya, namun Anda harus bersiap untuk bertanggung jawab atas setiap kata yang tertulis di resume Anda. Misalnya, jika Anda memiliki JMS (Java Message Service) yang tertulis di sana, maka setidaknya Anda harus membaca setidaknya satu tutorial dan bermain-main dengan JMS, membuat beberapa contoh, meskipun itu hanya ucapan “Halo, dunia!” Sekarang akan lebih mudah untuk pamer, Anda benar-benar “bekerja dengan JMS”.
- Pelajari ABC pemrograman. Jika Anda masih mampu untuk “berenang” pada tingkat mendalam dari beberapa teknologi kompleks seperti Struts dan Spring, maka jawaban yang salah terhadap pertanyaan dasar tidak akan pernah dimaafkan. Jika saya membangunkan Anda di malam hari, Anda harus bisa berbicara tentang OOP, pewarisan, enkapsulasi, polimorfisme dan konsep dasar lainnya, dan juga bisa menjelaskan semuanya dengan contoh.
- Praktik. Anda dapat belajar memprogram hanya dengan pemrograman. Ini menyakitkan dan tidak menyenangkan (jika Anda bukan seorang programmer), tetapi tidak ada cara lain. Satu-satunya cara untuk berhenti merasa takut dengan masalah wawancara adalah dengan menyelesaikannya sendiri di rumah.
- Baca buku dan ikuti tutorial tentang Java hanya dalam bahasa Inggris Tentu saja semua istilah pemrograman lebih mudah dipahami dalam bahasa aslinya, yakni bahasa Inggris. Membaca literatur teknis tentang Java dalam bahasa Rusia berarti tidak menghargai diri sendiri. Mengapa? Karena untuk memahami sesuatu seperti “... modul tabel dalam banyak hal merupakan opsi perantara, kompromi sehubungan dengan skenario transaksi dan modelnya. bidang subjek“, Anda harus benar-benar menjadi seorang jenius, yang kemungkinan besar tidak akan Anda lakukan.
- Akhirnya belajar bahasa Inggris! Pertama-tama, ini menyangkut bahasa Inggris lisan. Sulit untuk menghitungnya jumlah yang banyak pemrogram cerdas yang, sejauh yang saya ingat, ditolak karena satu alasan - tingkat bahasa Inggris lisan yang tidak memuaskan. Tidak, jika Anda, tentu saja, akan bekerja sebagai programmer di suatu tempat di perusahaan domestik, maka tingkat bahasa Anda tidak akan memainkan peran penting. Namun jika Anda ingin mendapatkan pekerjaan di perusahaan internasional, maka Tuhan sendiri yang memerintahkan Anda untuk belajar bahasa tersebut. Tingkat bahasa Inggris Anda akan menghasilkan kenaikan gaji ratusan dolar tambahan.
- Ketahui pasarnya. Cari-cari lowongan, baca persyaratannya, tanyakan kepada teman programmer Anda berapa penghasilan mereka. Gunakan layanan yang memungkinkan Anda mendapatkan gambaran lebih lengkap tentang pasar TI. Anda akan terkejut mengetahui betapa besarnya jumlah programmer berbakat yang berpenghasilan setengah dari penghasilan mereka, hanya karena kemalasan dan keengganan mereka untuk terus mengikuti perkembangan.
- Tawar-menawar. Tidak ada salahnya menawar gaji Anda. Argumen Anda dalam suatu perselisihan bisa berupa bahasa Inggris yang baik atau tawaran pekerjaan di perusahaan lain. Argumen terakhir sangat berhasil: “Ya, tetapi Luxoft menawarkan saya $300 lebih, mengapa saya harus menyetujui persyaratan Anda? Mungkin kita bisa menemukan kompromi?” Pada suatu waktu, saya berhasil menegosiasikan tambahan seratus dolar untuk gaji saya beberapa kali, dan setelah satu tahun, seratus dolar ini tiba-tiba memberi saya penghasilan tambahan sebesar $1.800. Anda harus memahami bahwa bahkan bagi perusahaan IT kecil asing, tambahan seratus dolar bagaikan setetes air di lautan.
- Temukan diri Anda seorang mentor. Ada baiknya jika Anda memiliki teman yang lebih berpengalaman yang dapat membantu dengan memberikan nasihat dan menjawab pertanyaan paling bodoh sekalipun. Berkat pengalaman dan dukungan moralnya, Anda akan maju dalam pemrograman lebih cepat daripada Anda sendiri. Jika Anda tidak memiliki mentor, ada baiknya Anda mengikuti kursus pemrograman yang tidak hanya memberikan gambaran lebih lengkap tentang apa yang dilakukan seorang programmer, namun juga memungkinkan Anda bertemu dengan orang-orang yang lebih berpengalaman. Siapa tahu ada di antara mereka yang mau menjadi mentor Anda.
- Mulai proyek Anda. Meskipun ini adalah contoh praktik pengkodean terburuk dan Anda tidak pernah menyelesaikannya, setidaknya Anda memiliki sesuatu untuk dilakukan yang akan membuat Anda ingin memahami pemrograman dan mempelajari teknologi baru. Selain itu, Anda akan memiliki topik tambahan untuk percakapan intim selama wawancara.
- Carilah pekerjaan di musim panas. Pertama, ketika semua orang sedang berlibur, perusahaan cenderung kekurangan staf dan lebih mungkin dipanggil untuk wawancara. Kedua, karena pelamar pesaing Anda juga sedang berlibur, peluang Anda untuk diperhatikan lagi oleh HR meningkat.
- Jangan pernah menyerah. Bahkan jika Anda merasa gagal dalam wawancara, penting untuk bertahan dan terus berusaha menyelesaikan masalah, tidak peduli betapa sulitnya masalah tersebut. Siapa tahu, mungkin saat ini Anda sedang diuji ketekunannya dalam bekerja!
- Hindari tugas di komputer. Tidak ada cara untuk mengetahui seorang non-profesional lebih cepat daripada segera melemparkannya ke dalam panas pemrograman. Tugas Anda adalah mencoba menerjemahkan semua percakapan ke dalam level tinggi, di mana pendekatan dan konsep umum dibahas, tetapi bukan implementasi khusus dalam memecahkan masalah tertentu. Jika Anda diberikan kertas dan pulpen dan diminta menuliskan penyelesaiannya, maka mintalah kesempatan untuk menggambarnya secara diagram. Jadi, dengan menjauh dari sintaksis bahasa tertentu, Anda tidak hanya akan menyelamatkan diri dari beberapa kesalahan yang mengganggu, tetapi juga menunjukkan bahwa Anda mampu berpikir secara abstrak tanpa terlalu mendetail.
- Jadilah orang pertama yang berbicara. Hindari situasi di mana ada jeda, di mana pertanyaan berbahaya lainnya mungkin muncul di benak pewawancara. Begitu ada hambatan, mulailah menceritakan sesuatu yang Anda ketahui dengan baik. Cobalah untuk memaksakan permainan Anda pada pewawancara.
- Cobalah untuk mengatakan yang sebenarnya. Jika Anda belum pernah menulis prosedur PL/SQL, lebih baik mengatakannya secara langsung. Ini mungkin merugikan Anda, tetapi Anda akan terhindar dari keharusan melakukan hal yang tidak Anda inginkan dengan menjawab pertanyaan yang tidak Anda pahami sama sekali. Pewawancara yang berpengalaman akan merasakan kesenjangan pengetahuan Anda dari jarak yang sangat jauh.
- Waspadalah terhadap perusahaan kecil. Perusahaan kecil cenderung memiliki tim kecil. Semakin sedikit orang dalam tim, semakin cepat mereka mengetahui Anda. Tujuan Anda adalah perusahaan besar dan kikuk, tempat Anda dapat mengulur waktu.
- Ikuti aturan berpakaian. Jika Anda datang ke wawancara untuk posisi programmer dengan mengenakan setelan jas yang cerdas, hal itu akan menimbulkan lebih banyak kecurigaan dibandingkan jika Anda muncul dengan celana pendek atau sweter tipis. Sebaiknya Anda juga mengenakan kacamata sambil berkata, “Saya kutu buku.”
- Tentu saja, seseorang yang mengetahuinya mungkin akan menunjukkan bahwa resep di atas lebih merupakan cara untuk menjadi seorang pembuat kode daripada seorang pemrogram, dan dia mungkin benar. Namun, masalahnya Anda tidak akan pernah menemukan lowongan dengan judul “Bad Coder Wanted.” Setiap orang membutuhkan programmer. Lebih disukai senior. Mereka yang memiliki pengalaman lebih dari lima tahun mengerjakan proyek perusahaan dan sama-sama fasih dalam beberapa bahasa pemrograman, sekaligus memiliki pemahaman menyeluruh tentang DBMS, dapat menulis skrip bash, prosedur tersimpan, fasih dalam Linux, TCP/IP , memiliki kualitas kepemimpinan, dan ketahanan terhadap stres, keterampilan komunikasi, dan sejumlah keterampilan lainnya, “tanpanya hal ini tidak mungkin terjadi.”
Orang-orang seperti itu ada, saya sendiri pernah melihatnya. Namun jumlahnya terlalu sedikit untuk sepenuhnya memenuhi kebutuhan pasar spesialis TI yang selalu lapar. Dan ini berarti Anda selalu memiliki kesempatan, Anda adalah seorang petualang.
Saya tidak belajar untuk menjadi seorang programmer, meskipun saya selalu ingin menjadi seorang programmer. Awalnya saya biasanya masuk jurusan yang berhubungan dengan hardware komputer, tapi ternyata kurang menarik, jadi saya pindah ke optoelektronik.
Penelitian ini terkait dengan pemrosesan gambar: ini bukan pemrograman sama sekali, tetapi masih mendekati apa yang saya inginkan. Ini adalah spesialisasi yang berhubungan dengan komputer.
Saya selalu ingat bahwa saya akan bekerja sebagai programmer. Itulah yang terjadi pada akhirnya.
Saya menemukan iklan pekerjaan di
Saya mulai aktif mencari pekerjaan sebagai programmer Java di tahun kelima saya, namun pertama-tama saya memutuskan untuk magang di suatu perusahaan. Saya melihat iklan magang di halaman publik MAI di VK. Sejujurnya, ini pertama kalinya saya mendengar tentang Jet Infosystems. Saya menemukan informasi tentang perusahaan di Internet, semuanya tampak menarik bagi saya, dan saya meninggalkan permintaan di situs web mereka.
Ternyata, ada banyak pelamar—seratus setengah pelamar. Mereka membutuhkan waktu yang cukup lama untuk memilih. Pertama kami diundang ke rapat umum, kemudian kami lulus ujian teori dan menyelesaikan beberapa tugas praktek.
Kemudian, bagi mereka yang berhasil melakukannya, wawancara lain diatur. Baru setelah itu kami semua masuk ke dalam kelompok pelatihan, dan kemudian saya mendapat undangan untuk bekerja sebagai Java developer. Tapi, seperti yang mereka katakan, itu adalah cerita yang sangat berbeda, dan bukan itu yang ingin saya ceritakan kepada Anda.
Saya hanya membaca satu buku tentang pemrograman
Bisa dibilang saya otodidak.
Saya yakin bahwa pemrograman adalah bidang yang dapat Anda pahami sendiri tanpa harus mengikuti kuliah teori yang panjang di universitas.
Sebelum saya serius belajar pemrograman di Java, saya hanya membaca satu buku tentang pemrograman. Itu adalah kursus “C++ dalam 21 hari”.
Saya tidak akan mengatakan bahwa saya tidak menyukainya atau bahwa segala sesuatunya tampak terlalu rumit dan tidak perlu, tetapi saya tetap memilih Java. Ngomong-ngomong, sekarang di tempat kerja saya harus memprogram tidak hanya di Java, tapi juga di “plus”, jadi tidak ada ilmu yang sia-sia.
Mengapa saya memilih Jawa?
- Menurut saya, Java mungkin satu-satunya bahasa pemrograman yang tidak membutuhkan banyak waktu dari awal mempelajarinya hingga mendapatkan produk akhir. Mungkin saya termasuk orang yang ingin cepat “merasakan” hasilnya. Teori murni tidak terlalu menarik bagi saya.
- Saya memiliki tujuan tertentu di depan saya. Saya memahami bahwa akan sangat sulit bagi saya untuk mendapatkan pekerjaan sebagai programmer; pada wawancara berikutnya saya harus menunjukkan setidaknya sesuatu dan berkata: “Saya tidak memiliki pengalaman kerja, ijazah bukanlah yang saya butuhkan, tapi Saya punya ini – lihat.” Tapi untungnya saya mendapat pekerjaan melalui magang.
- Sekarang ada banyak sekali panduan berbeda untuk mengembangkan aplikasi untuk OS. Jadi di sini semuanya benar-benar cocok bagi saya: ada cukup materi untuk pelatihan, dan ada kemungkinan untuk mendapatkan hasil nyata dengan relatif cepat.
Singkatnya, setelah kursus singkat C++, saya mengikuti semacam tutorial Java untuk pemula. Saya tidak ingat apa judulnya, saya hanya ingat bahwa saya berhenti membacanya bahkan sebelum saya sampai ke tengahnya. Saya ingin "pergi" secepat mungkin.
Kemudian saya melihat banyak panduan untuk pemula dan saya dapat mengatakan dengan pasti: tidak ada perbedaan mendasar di antara keduanya. Mereka hampir sama. Untuk menemukan sesuatu, Anda hanya perlu mengetikkan "book for java starter" ke dalam kueri dan berangkat.
Saya menemukan banyak jawaban atas pertanyaan saya di saluran telegram ini.
Ada beberapa sumber pemrograman berbahasa Rusia di Internet. Tangani itu
Ya, dan satu hal lagi yang penting. Anda harus menerima kenyataan bahwa di segmen jaringan berbahasa Rusia terdapat cukup banyak buku dan sumber daya tentang pemrograman jika dibandingkan dengan jumlah sumber berbahasa Inggris.
Tentu saja, dalam pemrograman tanpa pengetahuan bahasa Inggris pada tingkat yang baik, tidak mungkin. Jadi bagi yang sudah familiar dengan bahasa Inggris di level Google Translator, saya hanya bisa menyarankan satu hal: tingkatkan bahasa Inggris Anda terlebih dahulu. Segala sesuatu yang lain datang kemudian.
Tentu saja, tidak semuanya menyedihkan: ada “Alat Pengembang Google” dalam bahasa Rusia. Namun bagaimanapun juga, Anda tidak perlu memulai dari sini.
Saya tahu bahwa ada berbagai kursus pemrograman online - berbayar dan gratis - tetapi ternyata saya dapat melakukannya tanpa kursus tersebut. Yang sekali lagi mendukung argumen awal saya bahwa pemrograman dapat dipelajari tanpa bantuan siapa pun.
Di mana saya mulai "gagal"
Setelah memahami sedikit tentang Java untuk Android, saya mulai sedikit demi sedikit dengan contoh aplikasi umum - dari yang sederhana hingga yang lebih kompleks. Saat itu, saya sudah tahu aplikasi seperti apa yang ingin saya buat.
Saya dibantu oleh seorang teman yang menyarankan untuk menulis aplikasi pendidikan untuk anak sekolah. Saya memikirkan dan memupuk ide itu sejak lama. Saya memeriksa daftar aplikasi yang sudah ada dan memastikan hanya ada sedikit aplikasi serupa, setelah itu saya mulai mengembangkannya.
Mungkin hal yang paling sulit bagi saya adalah menemukannya topik yang bagus untuk proyek penuh. Saya tidak tahu apakah ini kekurangannya atau tidak, tapi saya dibangun sedemikian rupa sehingga jika topiknya bagus, jika saya menyukai idenya dan saya bersemangat, saya tidak punya masalah dengan motivasi. . Tidak ada masalah dengan motivasi - tidak ada kesulitan yang tidak dapat diatasi sama sekali.
Sumber daya apa yang dapat membantu pemula?
Di sana, dengan probabilitas hingga 90%, Anda bisa mendapatkan jawaban komprehensif atas pertanyaan yang Anda temui dalam pengembangan.
- Repositori dengan sumber Github.com.
Dia sangat membantu saya belajar dari contoh orang lain.
Ada banyak screencast di sana yang dengan cepat memungkinkan Anda memahami teknologi tertentu.
Saya mengembangkan aplikasi pertama saya dalam sebulan
Singkatnya, saya membuat aplikasi hanya dalam waktu sebulan. Sumber pengetahuan yang paling berguna adalah Developer.android.com dan Stackoverflow.com yang sama. Yang paling menarik adalah proses rutin upload aplikasi ke Google Play memakan waktu dua bulan penuh. Meski mungkin semuanya berlangsung lama karena setelah berkembang, gairah saya sedikit mereda. Beberapa saat kemudian, saya mengembangkan aplikasi versi web setelah membaca buku Beginning Java EE 7.
Saya tidak ingin mengakhiri cerita saya dengan ungkapan dangkal tentang fakta bahwa "semuanya ada di tangan kita" dan "Anda hanya perlu menginginkannya". Tentu saja, tidak semua orang, dan saya memahami bahwa saya masih mendapat pekerjaan sebagai programmer berkat sedikit keberuntungan: apa yang akan terjadi jika saya tidak menemukan postingan ini di VK?
Selain itu, saya tidak ingin meremehkan pentingnya pendidikan universitas dan berkata: “Mengapa semua ini perlu? Lihat, semuanya berjalan begitu saja.” Perlu. Universitas sebenarnya memberi Anda banyak hal dan, mungkin yang paling penting, menanamkan kebiasaan belajar.
Dan satu hal lagi: Anda bisa belajar memprogram sendiri. Sekarang saya tahu pasti hal ini.
Artikel ini bukan tutorial coding. Dan bukan postingan tentang “bahasa pemrograman mana yang harus dipilih”. Jika Anda ingin memahami seberapa tertariknya Anda mempelajari dunia kode, maka pertanyaan yang lebih penting adalah: apa itu pemrograman? Seperti apa pemrograman dari dalam? Apakah saya dan pemrograman kompatibel?
Prinsip “logika, bukan matematika”
Salah satu kesalahpahaman terbesar yang dimiliki programmer baru adalah bahwa pemrograman itu penuh dengan matematika. Jika Anda berpikir bahwa pemrograman akan membuat Anda mengingat pengetahuan sekolah Anda tentang trigonometri, aljabar, dll, maka Anda salah. Matematika seperti ini jarang ditemukan dalam pemrograman.
Dari pengalaman, hal-hal yang “murni matematis” mencakup, misalnya, urutan operasi dalam suatu ekspresi dan sistem koordinat. Tidak ada yang terlalu rumit. Sebaliknya, ada banyak logika. Kebutuhan untuk berpikir ke depan, memahami urutan melakukan sesuatu dan bagaimana mengendalikan aliran itu, meresapi setiap aspek pemrograman. Jika Anda memiliki kemampuan logika, maka akan mudah bagi Anda untuk mulai menangani tugas-tugas pemrograman.
Prinsip “menangkap bintang jatuh”
Pemrograman dapat dilihat sebagai menjalankan banyak “proses”—seolah-olah memaksa komputer untuk “melakukan pekerjaan untuk Anda”—dan mengelola proses tersebut. Dalam pemrograman, suatu proses sering kali membuahkan hasil. Hasilnya bisa berupa file, namun bisa juga berupa sesuatu yang lebih sederhana, seperti string, atau angka.
Masalah dalam bekerja dengan proses adalah jika Anda tidak melakukan apa pun terhadap hasilnya, maka hasilnya akan hilang begitu saja. Secara harfiah, mereka “terlupakan”, tidak pernah diciptakan kembali, sangat mirip dengan bintang yang berkilauan di langit dan menghilang. Dengan kata lain, Anda perlu “menangkap mereka”.
Jika Anda menciptakan sesuatu dengan sebuah proses, Anda harus meraihnya atau Anda akan kehilangannya. Di sinilah variabel berperan - sebagai cara untuk "menangkap" hasil dari suatu proses. Prinsip ini sangat membantu untuk memahami apa itu pemrograman pada tahap awal pembelajaran. Dan jika Anda mengetahuinya lebih awal, Anda akan merasakan manfaatnya.
Prinsip "kamus".
Ada banyak "tipe" dalam pemrograman. Bayangkan tipe sebagai blok penyusun bahasa pemrograman. Salah satu jenisnya adalah string, atau kumpulan karakter di dalam tanda kutip. Baik "apel" dan "oranye" adalah string. Mereka dapat, misalnya, digabungkan dan dijadikan “apel-oranye”. Angka adalah tipe yang berbeda. Angka dapat ditambah, dikurangi, dikalikan (di antara operasi lainnya). Lalu ada "array" - sekumpulan objek dalam urutan tertentu. ["Pertama", "pergi", "sebelum", "kedua"], misalnya, adalah array dengan elemen pertama "Pertama" dan elemen terakhir "kedua".
Namun mungkin salah satu tipe yang paling kuat adalah hash, atau pasangan nilai kunci. Hash memiliki banyak nama. Di Ruby ini adalah "hash". Dalam JavaScript disebut "objek". Mungkin Python memberinya nama yang lebih baik: “kamus.” Jika dipikir-pikir sedikit, kamus adalah sekumpulan kunci (kata) yang menunjukkan maknanya.
Tapi mengapa ini penting? Ternyata struktur seperti itu seringkali dibutuhkan untuk menyimpan data. Misalnya, Anda dapat mengemas informasi tentang seseorang dengan cara ini:
("nama_depan" => "Jonathan", "nama_belakang" => "Richards", "kebangsaan" => "Inggris" )
Ada kunci “first_name” (nama depan), “last_name” (nama belakang), dll. Ini seperti properti atau atribut seseorang. Anda juga dapat menambahkan “hair_colour” (warna rambut), “age” (usia), atau “gender” (gender). Dan masing-masing kunci tersebut mempunyai arti. Bagian penting dari pemrograman melibatkan penentuan format struktur data. Dan pasangan nilai kunci menjadi senjata paling berharga di gudang senjata Anda, jadi memahami cara kerjanya sedini mungkin akan berguna.
Prinsip “matryoshka”.
Pemrograman penuh dengan objek yang berada di dalam objek di dalam objek lainnya. Saat memprogram, Anda sering kali mencoba menyusun data, dan sering kali struktur tersebut berisi struktur lain di dalamnya.
Mari tambahkan properti “saudara” ke contoh sebelumnya:
("first_name" => "Jonathan", "last_name" => "Richards", "nationality" => "Inggris", "siblings" => ( "brothers" => , "sisters" => ["Fiona", "Maria"] ) )
Anda akan melihat prinsip ini di seluruh pemrograman Anda. Dalam HTML, beberapa elemen mengandung elemen lain:
Dalam komputasi, objek utamanya adalah program atau file. Ini adalah prinsip yang sangat berguna. Dalam pemrograman, Anda pasti sering mendengar istilah "in" dan "out" - input dan output. Alasannya, tugas seringkali adalah menerima masukan (input), mengolahnya (process), dan melakukan perubahan (output). Pemrosesan dilakukan oleh proses (bit aktif) yang dikontrol oleh kode Anda. Bit pasif adalah data tempat proses beroperasi. Ini semua seperti mengubah daging cincang menjadi sosis.
Prinsip "anjing, kucing dan ikan".
(atau prinsip sebab dan akibat)
Bayangkan Anda memiliki sebuah ruangan. Di ruangan ini ada seekor kucing dan seekor ikan di dalam mangkuk. Ikan itu berperilaku seperti biasa. Pada saat tertentu terjadi 2 hal: anjing masuk kamar, dan kucing keluar kamar. Pada saat yang sama, ikan mulai bernyanyi. Pertanyaan: Apa yang membuat ikan itu bernyanyi?
Ada banyak kemungkinan untuk dipertimbangkan. Kita bisa berasumsi ini terjadi karena ada anjing yang masuk. Dan kita dapat berasumsi bahwa alasannya adalah kucing itu keluar. Atau mungkin alasannya adalah kombinasi dari kedua kejadian tersebut. Mungkin kedua peristiwa tersebut tidak ada hubungannya dengan itu. Namun faktanya 18:17 adalah saat dimana seekor ikan berubah menjadi penyihir. Mungkin semua ikan bernyanyi. Beberapa pilihan ini mungkin ada benarnya.
Yang paling penting bagi seorang programmer adalah mampu mengisolasi penyebab perubahan. Anda akan menghadapi situasi seperti ini selama Anda membuat kode. Dalam situasi seperti ini, kita mungkin ingin bertanya pada diri sendiri: dapatkah kita menyimulasikan anjing masuk tanpa kucing keluar (ini mungkin akan menjelaskan banyak hal); bisakah kita mensimulasikan kucing yang pergi tanpa ada anjing yang masuk; bisakah kita meniru lingkungan secara menyeluruh (misalnya waktu 18:17) untuk melihat apakah lingkungan tersebut memengaruhi kicauan ikan, terlepas dari anjing dan kucing? Dan seterusnya. Penting untuk menggunakan metodologi untuk menentukan alasan perubahan. Kemampuan ini akan membantu Anda berulang kali selama Anda membuat kode.
Abstraksi, atau prinsip “pizza”.
Ini adalah salah satu prinsip yang paling sulit. Bayangkan sebuah restoran pizza. Setiap hari sang chef menyiapkan pizza dengan topping berbeda-beda. Setiap pizza disiapkan dengan urutan tertentu: pertama Anda menyiapkan adonan, lalu membiarkannya, lalu memasukkannya ke dalam wajan, menambahkan saus tomat, topping, keju, dan terakhir memanggangnya.
Namun tentu saja, koki tidak menyiapkan setiap pizza dari awal sesuai urutan yang dijelaskan di sini. Ini akan memakan waktu bertahun-tahun. Sebaliknya, dia menyiapkan semuanya terlebih dahulu, dan jika menyangkut Neapolitan, yang harus dia lakukan hanyalah mengambil alasnya (yang sudah terbentuk), menambahkan saus tomat, ikan teri, dan keju, lalu memanggangnya dalam oven.
Hal penting yang harus dipahami di sini adalah juru masak hanya perlu mengetahui bahan-bahan untuk setiap pizza tertentu, tetapi sebaliknya semua pizza serupa satu sama lain. Pemrogramannya terlihat sangat mirip, Anda menggunakan "abstraksi" untuk menyimpan data yang lebih umum (seperti kulit pizza) sambil memisahkannya dari data yang lebih spesifik (topping).
Mari kita ubah pembuatan pizza menjadi kode. Pertama mari kita mulai melakukan kesalahan. Yuk buat metode make_a_napoletana_pizza (membuat pizza Neapolitana):
Buat_a_napoletana_pizza
Ada 5 langkah (buat alasnya, tambahkan saus tomat, tambahkan ikan teri, tambahkan keju, panggang):
Buat_the_base tambahkan_the_tomato_sauce add_anchovy add_cheese panggang
Besar. Namun bagaimana jika kita ingin membuat pizza salami? Kita akan dipaksa untuk menulis metode yang benar-benar baru make_a_salami_pizza (membuat pizza salami), yang memiliki banyak kesamaan dengan metode saat ini, kecuali metode ini akan menambahkan salami, bukan ikan teri. Ini agak mahal. Pendekatan pemrogram adalah dengan "mengabstraksi" bagian-bagian umum dari teknik pembuatan pizza dan memperhitungkan bahan-bahan spesifik yang berbeda. Kita bisa melakukan ini dengan "argumen" yang "diteruskan" ke metode tersebut.
Itulah maksudnya. Bayangkan metode make_a_pizza kita dipanggil dengan argumen "topping". Metodenya akan terlihat seperti ini:
Buat_a_pizza(topping)
Dan itu akan berfungsi seperti ini:
Make_the_base add_the_tomato_sauce add_toppings(topping) add_cheese panggang
Di baris 3 kita mengambil topping yang ditentukan sebelumnya dan menambahkannya ke pizza.
Sekarang kita telah menentukan metode umum untuk membuat pizza, kita cukup memanggilnya dan menentukan bahan yang kita inginkan. Semuanya terjadi secara otomatis. Dengan kata lain kita memanggil make_pizza(salami), dan saat metode dijalankan, salami akan menjadi topping dan akan ditambahkan ke pizza saat metode mencapai baris ke-3. Hanya dengan mengganti topping, Anda bisa membuat 2 pizza berbeda dalam satu cara. Ini sama ekonomisnya dengan ketika pelayan hanya menulis "1 x salami, 1 x vegetarian" di formulir pemesanan dan juru masak mengetahui semua yang dia butuhkan. Dalam pemrograman ini disebut "abstraksi".
Jadi begitulah: tujuh prinsip yang biasanya dipelajari dalam 3 tahun pertama pemrograman dan memberikan kontribusi signifikan dalam memahami seni coding. Jika Anda memulai perjalanan Anda, prinsip-prinsip ini juga dapat membantu Anda.
Irina Davydova
Waktu membaca: 13 menit
A A
Setiap orang memilih profesi “programmer” karena alasan spesifiknya masing-masing. Yang satu memutuskan untuk sekadar mengubah keahliannya, yang kedua terpaksa mempelajari profesi lain, yang ketiga tidak memahami dirinya sendiri tanpa kode, dan seseorang terjun ke profesi itu hanya karena penasaran.
Dengan satu atau lain cara, setiap orang memulai dari awal. Dan sebelum memulai dari awal, tanyakan pada diri Anda, apakah Anda benar-benar membutuhkan profesi ini?
Inti dari pekerjaan seorang programmer – spesialisasi utama, pro dan kontra dari pekerjaan tersebut
Hakikat pekerjaan seorang programmer tergantung pada spesialisasi dan perusahaannya.
Namun, terkadang seorang programmer adalah “orang Swedia, penuai, dan pemain terompet.” Tapi ini biasanya terjadi di perusahaan kecil yang bosnya menghemat spesialis.
Kategori utama di mana semua programmer dapat dibagi secara kasar menurut aktivitasnya:
- Spesialis aplikasi.
Tugas: pengembangan perangkat lunak untuk permainan, editor, akuntansi/program, pengirim pesan instan, dll.; pengembangan perangkat lunak untuk sistem pengawasan audio/video, sistem alarm, dll.; mengadaptasi program agar sesuai dengan kebutuhan spesifik seseorang.
- Spesialis sistem.
Tugas: mengembangkan sistem operasi, membuat antarmuka ke database, mengelola sistem komputer, bekerja dengan jaringan, memantau pengoperasian sistem yang dibuat, dll. Spesialis ini memperoleh penghasilan lebih banyak daripada siapa pun di bidangnya, karena kelangkaan dan kekhususan profesinya.
- Spesialis web.
Tugas: bekerja dengan Internet, membuat situs web dan halaman web, mengembangkan antarmuka web.
Keunggulan profesi ini antara lain sebagai berikut:
- Gaji yang sangat layak.
- Tingginya permintaan akan spesialis yang baik.
- Kesempatan mendapatkan pekerjaan bergengsi tanpa pendidikan.
- Kesempatan mendapatkan uang dari jarak jauh sambil duduk di sofa di rumah.
- Peluang bekerja jarak jauh untuk perusahaan asing.
- Profesi kreatif (namun, kreativitas seringkali bergantung pada keinginan pelanggan).
- Kondisi nyaman yang diberikan perusahaan besar kepada spesialisnya (minuman/roti gratis, tempat khusus untuk rekreasi dan olah raga, dll).
- Kemungkinan memperoleh “pilihan”. Artinya, satu blok saham di perusahaan tersebut. Benar, hanya setelah mengabdi dalam jangka waktu tertentu di perusahaan tersebut.
- Memperluas wawasan Anda. Saat Anda berkembang dalam profesi Anda, Anda harus mengenal berbagai bidang kehidupan dan mempelajari berbagai sistem - mulai dari pekerjaan kantor dan akuntansi, dll.
Minus:
- Bekerja “sepanjang hari” adalah hal biasa dalam profesi ini.
- Pekerjaan ini akan membosankan dan monoton bagi banyak orang.
- Kepentingan spesialis dan pelanggan tidak selalu bersamaan, dan apa yang jelas bagi programmer, biasanya, tidak dapat dijelaskan sama sekali kepada klien. Hal ini menyebabkan konflik dan stres.
- Mode pengoperasian darurat tidak jarang terjadi.
- Kebutuhan untuk terus berkembang, mempelajari hal-hal baru, dan memiliki waktu untuk berkembang bersama bidang IT. Hanya dalam beberapa tahun, program menjadi ketinggalan jaman, dan program baru harus dibuat.
Video: Bagaimana cara menjadi seorang programmer?
Kualitas pribadi dan bisnis yang diperlukan, keterampilan dan kemampuan profesional untuk bekerja sebagai programmer - apa yang perlu Anda ketahui dan mampu lakukan?
Kualitas utama seorang programmer yang baik
Seorang programmer yang baik harus...
- Cintai pekerjaan Anda. Dan bukan hanya untuk mencintai - menjadi muak karenanya.
- Senang belajar dan mengajar dari awal.
- Jadilah pekerja keras, rajin dan sabar.
- Bersiaplah untuk pekerjaan rutin yang konstan.
- Mampu bekerja dalam tim.
Pengetahuan apa yang dibutuhkan programmer masa depan?
Anda harus mulai dengan belajar...
- Dalam bahasa Inggris.
- Perangkat komputer dan fisika dari semua proses.
- Bahasa pemrograman.
- Metodologi pengembangan perangkat lunak.
- Metodologi pengujian perangkat lunak.
- Sistem kontrol versi.
Bahasa pemrograman – harus mulai menggunakan yang mana?
Anda juga perlu belajar...
- Jawa. Lebih populer daripada Python dan merupakan pilihan bagus untuk pemula. Namun lebih kompleks dari Python.
- PHP. Dirancang untuk web, namun akan berguna bagi pemula mana pun.
- C dan C#. Bahasa yang sangat rumit, Anda dapat membiarkannya nanti.
- Rubi. Pilihan yang bagus untuk bahasa kedua.
- Django. Dia akan mengajari Anda cara memprogram dengan benar. Kompleksitasnya mirip dengan Python.
Banyak hal tergantung pada arah yang dipilih.
Misalnya…
- Seorang programmer web akan mendapatkan keuntungan dari pengetahuan tentang HTML, CSS dan JavaScript.
- Untuk pemrogram desktop - API dan kerangka kerja.
- Untuk pengembang aplikasi seluler - Android, iOS atau Windows Phone.
![](https://i2.wp.com/colady.ru/wp-content/uploads/2017/12/kak-stat-programmistom-s-nulya-2.jpg)
Di mana belajar menjadi programmer dari awal - lembaga pendidikan di Rusia, kursus, pembelajaran jarak jauh, pembelajaran online?
Jika Anda tidak memiliki teman yang bisa mengajari Anda profesi programmer dari awal, maka Anda memiliki beberapa pilihan pelatihan:
- Pendidikan mandiri.
Jalur tersulit menuju pemrograman, yaitu melalui mempelajari situs, aplikasi, buku, dll.
- Universitas.
Jika Anda baru saja lulus sekolah dan bermimpi mendapatkan profesi bergengsi sebagai programmer, daftarlah di fakultas yang sesuai. Anda masih akan memperoleh pengetahuan dasar melalui pendidikan mandiri, tetapi “kerak” akan membantu Anda lebih cepat mendekati tujuan yang Anda hargai. Pilih universitas teknik, setelah mempelajari program pelatihan terlebih dahulu.
- Guru pribadi
. Jika Anda dapat menemukan mentor di kalangan programmer, belajar mandiri akan lebih cepat dan efektif. Carilah mentor di forum online, di pesta IT, konferensi tematik, dll.
- Kursus. Mereka dapat mengajari Anda bahasa pemrograman ini atau itu dalam kursus sederhana yang dapat ditemukan bahkan di kota-kota kecil. Misalnya, " Portal TI pendidikan GeekBrains", «
Spesialis" di MSTU Bauman,
« LANGKAH Akademi Komputer",
MASPC.
Anda bisa mendapatkan pendidikan tinggi sebagai programmer di…
- MEPHI.
- Universitas Ekonomi Plekhanov Rusia.
- Universitas Teknik Sipil Negeri Moskow.
- MSTU Bauman.
- Universitas Negeri Manajemen.
Video: 7 kesalahan yang dilakukan programmer pemula
Sumber daya dan buku online yang berguna untuk belajar menjadi seorang programmer
- habrahabr.ru (artikel tentang topik IT, informasi tentang berbagai topik). Sumber daya ini diketahui oleh setiap programmer.
- rsdn.org (buku, terbitan terkini, forum bermanfaat, mengisi kesenjangan pengetahuan, materi dalam bahasa Rusia).
- sql.ru (forum nyaman yang luar biasa, literatur bermanfaat, dan bahkan tawaran pekerjaan).
- Theregister.co.uk (berita dari sektor IT).
- opennet.ru (berita, artikel bermanfaat, forum, dll.). Sumber daya untuk para profesional.
- driver.ru (perpustakaan driver). Situs yang berguna untuk pemula.
Sumber Belajar:
- ocw.mit.edu/courses (lebih dari 2000 kursus tentang berbagai topik).
- coursera.org (lebih dari 200 kursus, gratis).
- thecodeplayer.com (panduan langkah demi langkah untuk pemula).
- eloquentjavascript.net (sumber daya untuk pengenalan Java Script).
- rubykoans.com (bagi siapa pun yang mempelajari Ruby).
- learncodethehardway.org (belajar Python, Ruby, C, dll.).
- udemy.com (kursus berbayar dan gratis).
- teamtreehouse.com (lebih dari 600 pelajaran).
- webref.ru/layout/learn-html-css (untuk menguasai HTML dan CSS).
- getbootstrap.com (menjelajahi fitur-fitur Bootstrap).
- learn.javascript.ru (pembelajaran frontend dan Javascript).
- backbonejs.org (untuk pengembang front-end).
- itman.in/uroki-django (untuk mempelajari Django).
Situs pembelajaran gratis untuk membantu pemula:
- ru.hexlet.io (8 kursus gratis dalam C dan PHP, JavaScript dan Bash).
- htmlacademy.ru (18 kursus gratis untuk desainer tata letak).
- codecademy.com (kursus populer tentang bahasa, alat, dll.).
- codeschool.com (lebih dari 60 kursus (13 gratis) tentang HTML/CSS dan JavaScript, Ruby dan Python, iOS dan Git, dll.).
- checkio.org (untuk mempelajari Python dan JavaScript).
- codingame.com (belajar melalui video game, 23 bahasa pemrograman).
- codecombat.com (pelajari JavaScript, Python, dll.). Sebuah game edukasi yang juga dapat diakses oleh mereka yang belum bisa berbahasa Inggris.
- codehunt.com (pelatihan untuk menemukan kesalahan dalam kode).
- codefights.com (platform pelatihan melalui turnamen tempat Anda bisa mendapatkan wawancara di perusahaan IT yang layak).
- blok.io/ruby-warrior# (mempelajari Ruby dan seni/kecerdasan).
- theaigames.com (pengembangan keterampilan pemrograman - simulator game online yang menarik untuk seorang programmer).
- codewars.com (kumpulan tugas interaktif pendidikan bagi mereka yang memiliki pengetahuan minimal).
Biasanya diperlukan waktu enam hingga 12 bulan untuk mempelajari dasar-dasar pemrograman Anda sendiri.
Cara cepat mencari pekerjaan sebagai programmer dan mulai menghasilkan uang - saran dari orang yang berpengalaman
Tentu saja, Anda tidak akan bisa mendapatkan pekerjaan di perusahaan biasa tanpa pengalaman kerja.
Itu sebabnya…
- Baca buku, pelajari situs web, dan didik diri Anda sendiri, tetapi sekarang mulailah menulis baris kode pertama Anda.
- Buat dan rumitkan tugas Anda sendiri berdasarkan materi yang telah Anda bahas.
- Carilah proyek pertama Anda, bahkan untuk “uang lucu”, tuliskan di “resume” Anda.
- Carilah pekerjaan di bursa freelance berbahasa Rusia (ru) dan di bursa berbahasa Inggris (upwork.com) juga - ada lebih banyak peluang untuk mendapatkannya di sana.
- Mulailah dengan proyek kecil yang dapat Anda tangani.
- Jangan lewatkan opsi open source (proyek seperti itu selalu kekurangan orang).
- Bantuan “dengan harga yang cukup mahal” (atau bahkan gratis, untuk pengalaman) kepada programmer yang Anda kenal. Biarkan mereka memberi Anda tugas sederhana.
- Pastikan untuk menulis: pengalaman kerja Anda, daftar bahasa dan teknologi yang Anda gunakan, pendidikan dan kontak.
- Kami tidak menjejalkan seluruh daftar kualitas dan bakat kami ke dalam resume kami. Meskipun Anda ahli memainkan tombol akordeon, Anda tidak boleh menuliskannya di resume Anda.
- Rancang resume Anda menjadi kreatif namun relevan.
- Anda tidak boleh mengisi item seperti “tujuan dan ambisi Anda” atau “di mana saya melihat diri saya dalam 5 tahun.” Cukup menulis apa yang Anda lakukan sebelumnya dan apa yang ingin Anda lakukan sekarang.
- Jangan menulis tentang bahasa dan teknologi yang hanya Anda ketahui namanya saja. Anda sebaiknya hanya menulis di resume Anda yang membuat Anda berenang seperti ikan di air. Untuk semua hal lainnya, ada ungkapan ajaib - “ada sedikit pengalaman.”
- Jika Anda mahir dalam Delphi, jangan lupa untuk menyebutkan bahwa Anda juga tahu C#, Jave atau bahasa lain, karena tidak ada yang benar-benar membutuhkan “programmer Delphi” (Delphi adalah dasar-dasar yang setiap lulusan sudah familiar).
- Jangan menyebutkan pekerjaan yang bukan keahlian Anda. Tidak ada yang tertarik dengan hal ini. Selain itu, tidak ada yang peduli apakah Anda memiliki SIM atau mobil. Anda tidak akan mendapatkan pekerjaan sebagai kurir.
Prospek karir programmer dan gaji programmer
Gaji rata-rata seorang programmer di kota-kota besar di tanah air adalah: dari 50.000 hingga 200.000 rubel.
Untuk Rusia secara keseluruhan - dari 35 ribu menjadi 120000.
Profesi ini termasuk dalam daftar yang paling diminati dan dibayar paling mahal. Bahkan seorang spesialis sederhana pun dapat memperoleh penghasilan yang cukup untuk membeli sandwich dengan kaviar, tetapi seorang profesional pasti tidak membutuhkan uang.
Dari pekerja magang hingga kepala departemen TI, jalurnya tidak terlalu panjang, dan gaji paling atas bisa mencapai $4,000 per bulan. Nah, kemudian Anda dapat beralih ke kepemimpinan proyek besar (kira-kira - pengembangan perangkat lunak), dan di sini gajinya sudah melebihi $5.000.
Saat ini sulit membayangkan hidup kita tanpa benda-benda yang sudah menjadi benda sehari-hari seperti laptop dan komputer pribadi, ponsel pintar dan konsol, terminal di supermarket, sistem perbankan otomatis, dll. Daftar ini dapat dilanjutkan untuk waktu yang lama, tetapi semuanya memiliki satu kesamaan - pemrogramlah yang memasukkan "otak" ke dalam perangkat pintar modern ini.
Namun, sebelum memilih profesi ini, Anda perlu memahami dengan jelas harus mulai dari mana agar bisa meraih kesuksesan di bidang yang sulit ini.
Siapapun yang memiliki keterampilan dasar, pengetahuan dan keinginan yang besar dapat menjadi seorang programmer. Selain itu, Anda perlu memutuskan arah pemrograman mana yang paling ingin Anda gunakan. Dalam hal ini, ada tiga arah utama.
1. Pemrogram web adalah pekerjaan paling sederhana. Termasuk:
- Perancang tata letak membuat templat (desain situs web);
- Pemrogram server membuat skrip situs web.
2. Perangkat Lunak Pemrogram (tingkat kompleksitas sedang) dibagi menjadi :
- Pengembang perangkat lunak;
- Pengembang program sistem.
3. Pemrogram yang mengembangkan game untuk PC, ponsel, konsol - bidang pekerjaan yang paling sulit.
Berapa lama Anda perlu belajar?
Itu semua tergantung keinginan dan intensitas memperoleh pengetahuan teoritis dan keterampilan praktis. Namun, ada aturan tidak tertulis bahwa segala sesuatu bisa dipelajari dalam satu tahun. Yang utama adalah memiliki keinginan untuk belajar dan terus memperoleh keterampilan baru. Adapun pada usia berapa seseorang dapat menguasai profesi ini, ada juga soal tekad. Ada yang pada usia 18-20 tahun tidak memiliki keinginan dan energi vital, ada pula yang sudah memasuki usia pensiun dengan mudah mencapai tujuan yang telah ditetapkannya sendiri.
Pengetahuan dan kualitas apa yang dibutuhkan?
Kaum muda yang ingin menghubungkan hidupnya dengan pemrograman di usia sekolah harus memahami bahwa pendidikan yang mereka terima sambil duduk di meja akan sangat memudahkan tugas mereka dalam menguasai profesi ini.
Dari kurikulum sekolah, perhatian khusus harus diberikan pada mata pelajaran berikut:
- Matematika yang lebih tinggi. Selain kemampuan melakukan perhitungan biasa, ini adalah salah satu dari sedikit mata pelajaran sekolah yang memaksa Anda untuk berpikir, menganalisis, mengembangkan pemikiran abstrak, dan membangun kesimpulan pribadi. Ini adalah keterampilan yang harus dimiliki seseorang;
- Bahasa Inggris. Dalam hal ini, setidaknya diperlukan “kamus tingkat menengah”. Idealnya, ini berarti pengetahuan yang baik tentang bahasa teknis dan kemampuan menerjemahkan teks khusus. Lagi pula, sebagian besar, Anda harus mempelajari dan menggunakan dokumentasi, membeli berbagai perangkat lunak, dan juga bernegosiasi dengan rekanan asing dengan penguasaan bahasa Inggris yang percaya diri;
- Ilmu komputer (teori pemrograman). Perlu adanya pemahaman tentang tipe data dan dasar-dasar bekerja dengan database, operator dasar dan bahasa pemrograman (dalam kurikulum sekolah adalah Pascal dan C++), serta dasar-dasar pemrograman berorientasi objek;
- Fisika. Banyak orang yang percaya bahwa pengetahuan tentang mata pelajaran ini sama sekali tidak berguna untuk menguasai profesi seorang programmer. Namun pendapat ini bisa disebut keliru. Bagaimanapun, bidang pekerjaan ini mungkin berkaitan erat dengan fisika. Misalnya membuat simulator pesawat luar angkasa atau kapal laut, serta permainan komputer yang sedekat mungkin dengan kenyataan. Pengetahuan tentang kejadian dan pembiasan cahaya, penciptaan pergerakan nyata dan penyimpangan mobil dalam berbagai kondisi cuaca, tampilan air, asap atau api yang realistis, dll. mungkin diperlukan.
Kualitas yang diperlukan untuk bekerja:
- Memiliki pemikiran yang luar biasa dan logis;
- Pemikiran matematis;
- Kemampuan mengatur waktu (tidak melupakan belajar mandiri terus-menerus);
- Kemampuan untuk membagi satu tugas besar menjadi subtugas;
- Kemampuan memilih tujuan yang tepat dan mempunyai keinginan untuk mencapainya;
- Kemampuan untuk bekerja dalam tim besar. Anda tidak dapat menangani proyek besar sendirian, dan proyek kecil tidak terlalu diminati. Penting untuk mendiskusikan masalah-masalah yang tidak jelas dengan rekan-rekan yang lebih berpengalaman dan mengisi kesenjangan pengetahuan;
- Kemampuan untuk belajar dengan cepat. Teknologi tidak tinggal diam. Oleh karena itu, selain pekerjaan yang ada pada proyek Anda, Anda perlu terus memantau dan mengetahui perubahan terkini di bidang teknologi informasi.
Pengetahuan dan keterampilan minimal
Menurut para insinyur dan pemrogram di Google, setiap spesialis yang menghargai diri sendiri di bidang pemrograman harus memiliki sejumlah pengetahuan dan keterampilan minimal untuk menjadi seorang profesional di masa depan. Jadi, apa yang perlu Anda ketahui untuk menjadi spesialis tingkat tinggi:
- Pelajari dasar-dasar literasi komputer menggunakan kursus pembelajaran jarak jauh dari Coursera atau Udacity;
- Dapatkan pengetahuan pemrograman dalam setidaknya satu bahasa (Python, C++, Java);
- Pelajari bahasa lain (PHP, Java Script, HTML, CSS);
- Belajar menguji kode;
- Belajar memahami algoritma dan struktur data;
- Memperoleh pengetahuan dalam matematika diskrit;
- Pelajari fitur-fitur sistem operasi;
- Dapatkan pengetahuan tentang kecerdasan buatan;
- Belajar membuat kompiler;
- Dapatkan pengetahuan tentang kriptografi dan pemrograman paralel.
Saat memulai kerja praktek, para ahli di atas menyarankan:
- Buat situs web, server, atau robot Anda sendiri;
- Mengembangkan bagian dari sistem yang besar, memahami dokumentasi dan kode, dan men-debug program;
- Mulailah mengerjakan proyek besar sebagai sebuah tim. Ini akan memungkinkan Anda belajar lebih cepat dan terbiasa dengan interaksi tim;
- Terus tingkatkan pengetahuan dan keterampilan Anda;
- Mulailah pekerjaan mengajar orang lain.
Di mana saya bisa mendapatkan pengetahuan yang diperlukan?
Anda dapat memperoleh sendiri pengetahuan teoretis dan praktis yang diperlukan di bidang pemrograman dengan beberapa cara:
- Belajar dari buku dan majalah. Opsi ini bisa disebut standar dan terbukti selama bertahun-tahun. Namun, untuk menghemat pembelian “media kertas”, Anda dapat mengunduh informasi paling relevan tentang masalah pemrograman dari sumber Internet. Banyak praktisi berpendapat bahwa persepsi materi yang dipelajari lebih baik dari sumber kertas. Dan kebutuhan untuk menulis banyak kode berbeda secara manual akan membuat Anda lebih percaya diri dan menghilangkan cara pasif menulis kode program seperti "salin dan tempel";
- Kursus video pelatihan. Mereka adalah alternatif yang baik untuk buku dan majalah. Buku-buku tersebut sebagian besar ditulis dalam bahasa yang membosankan dan tidak selalu dapat dimengerti, tanpa kesempatan untuk mengajukan pertanyaan yang menarik kepada penulisnya. Jika Anda menonton video pelajaran, semuanya jauh lebih mudah. Hal utama yang diperlukan adalah mengulangi semua tindakan yang ditampilkan di monitor. Dan jika timbul kesulitan atau momen yang tidak dapat dipahami, Anda selalu dapat mengajukan pertanyaan Anda kepada penulis di forum. Aspek positif lainnya dari pelatihan tersebut adalah implementasi mandiri dari sejumlah tindakan yang dijelaskan dalam pelajaran. Ya, ini terjadi dalam bentuk pengulangan yang jelas dari operasi yang dilakukan dalam video. Namun prosedur inilah yang secara bertahap mengembangkan kemampuan untuk membuat skrip, aplikasi, dan program secara mandiri.
Setelah memperoleh tingkat pengetahuan yang memadai, Anda dapat mengevaluasi kekuatan Anda dan bersaing di berbagai situs khusus untuk programmer. Selain itu, untuk memperoleh informasi baru dan berguna, serta berkomunikasi dengan “rekan kerja”, disarankan untuk mengunjungi forum Internet.
Kesimpulan
Perubahan teknologi IT, termasuk bahasa pemrograman, terjadi setiap saat. Kita perlu mencoba mengikuti perkembangan zaman, mempelajari berbagai literatur yang ditujukan untuk bidang pekerjaan tertentu. Terus-menerus mencari berbagai cara untuk memecahkan masalah akan membantu meningkatkan pengetahuan profesional. Komunikasi dengan kolega atau sekadar orang yang terkait dengan pemrograman akan memungkinkan Anda dengan cepat menemukan cara yang tepat untuk menyelesaikan tugas yang diberikan.
Tidak ada salahnya untuk selalu menggunakan buku referensi tentang bahasa pemrograman, karena Anda tidak bisa mengingat semuanya, dan ada hal-hal yang tidak perlu Anda simpan. Solusi dari masalah apa pun (bahkan yang paling sederhana sekalipun pada pandangan pertama) harus didekati secara menyeluruh dan perlahan. Saat pertama kali menerapkan pengetahuan teoretis yang diperoleh dalam praktik, Anda perlu mempelajari cara mengembangkan algoritme solusi Anda sendiri. Penting untuk mengatasi masalah pemrograman kecil sesering mungkin dan secara bertahap mengasah keterampilan Anda. Nantinya, dengan pengalaman yang didapat, programmer akan mampu, selain pekerjaan utamanya, untuk mengadakan seminar dan konsultasi berbayar tambahan, serta merekrut mahasiswa. Saya harap kesulitan seperti itu tidak membuat Anda takut, dan Anda akan terus bergerak menuju tujuan Anda.