Profesi: Programmer. Tidak semuanya jelas

Kami menulis tentang front-end dan back-end , tentang pengembangan dan pengujian ponseltetapi ini adalah kasus khusus. Ketika seseorang mendekati profesi pertama atau selanjutnya, ia jarang mengatakan bahwa ia akan menjadi pengembang untuk iOS atau proktologis, karena ini kedengarannya seperti "programmer" dan "dokter". Spesialisasi datang kemudian, dengan pengalaman. Tetapi untuk menyatakan dengan tegas bahwa Anda ingin menjadi seorang programmer, dokter, arsitek, ahli geologi, dll., Anda perlu menyingkirkan romantisasi profesi dan mendekatinya dengan bijaksana dan bermakna. Bahkan jika Anda tiba-tiba memutuskan untuk menjadi seorang programmer untuk "memasuki TI setelah 35". Jika kita berbicara tentang programmer dari sudut pandang romansa, maka ini adalah orang-orang yang mengubah ide kita menjadi kode dan membuat hidup lebih baik, lebih mudah, lebih nyaman. Terus terang, pekerjaan seorang programmer adalah pekerjaan yang tegang, sering rutin dengan banyak pro dan kontra. Kami akan membicarakan ini.

Artis - Nadezhda Kotkina, berpose - cyber_roach

Siapa ini?


Istilah "pemrogram" mungkin menyembunyikan pemrogram profil sempit, pengembang perangkat lunak, insinyur, analis sistem, dll. Namun demikian, semua programmer memiliki satu kesamaan - kemampuan untuk memasukkan kebutuhan manusia ke dalam kode mesin untuk membuat pekerjaan atau hiburan menjadi otomatis, nyaman, sederhana. Programmer menciptakan instruksi untuk komputer, sebagai hasil dari pelaksanaan instruksi ini, beberapa jenis hasil target diperoleh. 

Anda harus berpikir tentang apakah Anda seorang programmer masa depan, jika ...

... motivasi Anda berasal dari dalam, Anda menyukai proses mengendalikan komputer, Anda ingin tidak hanya menggunakan program (permainan, aplikasi), tetapi juga tahu cara kerjanya, memodifikasinya.

... Anda tidak mengharapkan pemasukan yang gila dan tidak berpikir bahwa pemrograman adalah musik baru, terutama keinginan untuk menciptakan keajaiban: untuk mengubah ide menjadi kode.

... Anda tahu cara memperbaiki program, situs, dan aplikasi seluler apa pun. Anda tahu persis apa yang Anda inginkan dari program dan ingin belajar cara membuat kode yang sempurna.

Di mana itu dibutuhkan?


Hari ini, programmer dibutuhkan di mana-mana dan saya tidak berpikir bahwa tren ini akan berubah dalam 10-15 tahun ke depan. Programmer diperlukan dalam industri, ilmu pengetahuan, ruang, bisnis, kedokteran, transportasi, dan bahkan tidak di perusahaan IT (bercanda dengan lelucon, apakah Anda tahu betapa sulitnya menemukan programmer 1C yang hebat atau pengembang untuk toko online di 1C-Bitrix?!). Secara umum, bahkan di lembaga gereja dan amal ada permintaan untuk programmer. Dan ini hebat, karena Anda tidak hanya dapat memilih profesi seorang programmer, tetapi juga menghubungkannya dengan hobi Anda: kimia, biologi, mekanika, komunikasi, dan bahkan sejarah dan linguistik. Selain itu, jika Anda menggabungkan keterampilan pengembangan perangkat lunak dan dasar-dasar bisnis inti, harga pasar Anda akan meningkat pesat dan persaingan akan berubah.

Oleh karena itu, Anda perlu memahami tidak begitu banyak ke mana harus bekerja, tetapi seberapa banyak perkembangan Anda lebih dekat.

  • — (, , , , IoT ..). .
  • - ( ) — - , , - . WEB, .
  • — , . , , .
  • — , , — (, , ..). .
  • , — , . , , . , COVID-19, :-)
  • ( ) — , . , . 
  • DevOps/DevSecOps — , . « , », DevOps , .
  • Pengembangan aplikasi dan bisnis perangkat lunak adalah dunia pengembangan terpisah di mana Anda dapat menulis desktop di Delphi dan menghasilkan jutaan, mengenal COBOL dan menjadi spesialis yang paling memikat di pasar, menelusuri Jawa dan berada dalam peran utama dalam komunitas, dll. Ini adalah jalur pengembangan yang berisiko, terutama untuk pengembang yang berpengalaman, tetapi jika Anda jatuh cinta dengan C / C ++ / Java atau semacam "Latin from programming" - mengapa tidak? 

Sekali lagi, saya membuat daftar area utama, tetapi pada kenyataannya, pada antarmuka mereka, area baru yang menjanjikan terbentuk, misalnya, pemrosesan bahasa alami (NLP), AR / VR, pengembangan game, otomatisasi pengujian, dan sebagainya. 

Penting untuk memahami divisi lain.

  1. - , , , , UI/UX .. , ( ?:-))
  2. -- , : , CRM, ERP, , , , -, 1 .. , , - , , . 

Dalam program pengajaran pemrograman, Anda pasti akan memahami semua bidang dan tugas sedikit, oleh karena itu, secara harfiah enam bulan setelah dimulainya pelatihan, Anda akan memiliki gagasan tentang sisi mana Anda akan pindah. Misalnya, saya punya teman yang tidak ingin melakukan apa pun selain yang terkait dengan perangkat lunak isian pembaca. Akibatnya, ia melewati Barnes & Noble, bekerja dengan proyek Google dan sekarang bekerja di China (puas, sehat, penggemar kehidupan di negara). Setiap orang memiliki jalannya sendiri.

Persyaratan Profesional Dasar


Menulis kode itu sendiri bukanlah tugas yang paling sulit, jauh lebih sulit untuk memahami persyaratan, menafsirkannya dan menerjemahkannya ke dalam bahasa yang ramah mesin. Bekerja dengan pelanggan kode (di sini kami maksudkan klien, kolega, majikan, dll.) Selalu gugup dan bertualang, karena mereka sendiri tidak tahu apa yang mereka inginkan, mereka berpikir secara sederhana dan menganggap teknologi mahakuasa. Tetapi jika Anda berpura-pura menjadi programmer profesional, Anda tidak hanya perlu mengerutkan kuncinya, tetapi juga secara aktif bekerja dengan orang-orang, dengan tugas teknis, persyaratan, dll. Ini membedakan programmer dari encoder sederhana. 

  • Berpikir kritis - kemampuan untuk menyoroti hal utama dalam persyaratan, untuk mendekati kode Anda sendiri dan kode orang lain dalam hal optimasi dan peningkatan konstan; keterampilan untuk menemukan cara terbaik untuk menyelesaikan masalah.
  • — . , , . — .

  • , , — , . , « », .
  • — , . , ?! , ! , , , , , . , , - . , , 00:09, + ;-)
  • — , . , , . 

  • — , , code style .
  • — . , , SDK, API, . — 6-12 .
  • — , , , . , -, ( , ). , , . 

Saya mendorong Anda untuk tidak percaya pada dongeng tentang programmer introvert. Jika Anda ingin tumbuh dalam pemrograman, maka tetap introvert Anda. Jika Anda ingin menjadi seorang introvert, Anda akan dengan cepat berlari ke langit-langit pengembangan profesional, karena komunikasi masih diperlukan dalam kegiatan pengembang. Bahkan di situs terpencil Anda harus berkomunikasi dengan kolega, berpartisipasi dalam aksi unjuk rasa, retrospektif dan diskusi. 

Kebutuhan akan pengetahuan bahasa asing


Apakah mungkin dilakukan tanpa pengembangan pengetahuan bahasa asing (khususnya bahasa Inggris)? Bisa. Sudah cukup untuk mempelajari sintaks dan kata-kata dari bahasa pemrograman, Anda dapat berpikir dan berkomunikasi secara eksklusif dalam bahasa Rusia. Ketidaktahuan bahasa tidak akan menjadi hambatan bagi pertumbuhan karir, pengembangan, komunikasi di banyak perusahaan. 

Namun - apa yang memberi pengetahuan tentang bahasa asing?

  • . , ( ).
  • .
  • , , , .. , .
  • .
  • -.
  • .

Ada banyak diskusi tentang Habré tentang tingkat kemahiran berbahasa Inggris yang cukup nyaman untuk bekerja di industri TI. Menurut pendapat saya, agar tidak tuli dan bisu, Anda memerlukan minimal Menengah-Menengah atau Menengah dengan berbicara aktif (misalnya, Anda baik dalam tata bahasa, tetapi memiliki tingkat bahasa yang baik pada kurikulum, dalam komunikasi pribadi atau magang).

Tempat belajar


Di universitas Rusia modern ada banyak spesialisasi programmer, ada program sarjana dan pascasarjana, ada format pendidikan tambahan. Jika Anda masih memilih universitas Anda, maka tentu saja, ada baiknya pergi ke fakultas khusus, atau ke fisika, matematika dan spesialisasi teknis lainnya.

Jika Anda memerlukan pemrograman sebagai alat bantu untuk spesialisasi utama Anda, maka cari opsi yang berdekatan (seperti cybernetics medis dan ilmu komputer), atau belajar secara paralel dengan spesialisasi utama.

Jika Anda sudah memiliki pendidikan, maka bagi Anda ada pendidikan mandiri, berbagai kursus, sekolah online, universitas perusahaan, dll. Anda dapat mempelajari pemrograman dengan alat-alat pembelajaran ini, baik secara mandiri atau bahkan dengan seorang mentor.Anda dapat membaca tentang pendidikan lebih lanjut di sini .


Saya menarik perhatian khusus Anda: pendidikan tinggi masih penting, karena itu penting bagi majikan, perlu ketika pindah ke negara lain, dan itu juga memberikan dasar, yayasan, yang akan memungkinkan kita untuk dengan cepat berkembang ke arah baru apa pun.

Selain itu, tidak begitu penting bahasa pemrograman apa yang Anda pelajari, seberapa penting Anda tahu tentang matematika, algoritma, komputasi, administrasi jaringan dan server, prinsip-prinsip jaringan, tumpukan, dan sebagainya. Dan yayasan ini tidak buruk di universitas. 

Buku dan Alat Belajar Teratas


Setiap spesialisasi memiliki set buku dan sumber daya sendiri untuk pelatihan, tetapi ada hal-hal yang harus dibaca setiap orang.

  • Seni Pemrograman, Donald Knuth
  • Mutiara Pemrograman, John Bentley
  • « »,
  • « . , », .
  • «. », .
  • « . Ebay?»,
  • « », .
  • « . »,
  • «. »,
  • « »,
  • « . »,
  • « -»,
  • «-. », ,

Buku-buku ini tidak hanya berisi pengetahuan praktis yang berguna, tetapi juga memotivasi, membentuk pemikiran dan pandangan dunia programmer. Dan saya mendesak Anda: membaca, membaca mengembangkan pemikiran Anda, ingatan dan membuat Anda tak terkalahkan dalam wawancara apa pun.

Dari sumber daya favorit Anda:

  • Codecademy adalah platform interaktif universal untuk pengajaran bahasa pemrograman. Menjilat, prestasi, gamifikasi semua adalah motivasi.
  • Udacity adalah sumber berbahasa Inggris untuk belajar pemrograman.
  • Codewars adalah sekumpulan besar tugas tes untuk keterampilan pelatihan dalam bahasa pemrograman apa pun.
  • Coursera - tidak ada komentar, hanya kuliah terbaik "gado-gado".
  • MIT OpenCourseware adalah lautan kursus dari Massachusetts Institute of Technology.

Berikut ini adalah ikhtisar yang baik dari kursus , disusun oleh penulis lain, lebih spesifik tentang kursus bahasa Rusia. 

Pilihan lain yang sangat besar dan segar untuk daring yang berguna bagi programmer

Saran: meskipun Anda kadang-kadang terlalu malas untuk belajar, dengarkan ceramah setidaknya di latar belakang, sehingga Anda akan membenamkan diri dalam terminologi, perhatikan beberapa saat yang tak terlihat selama studi intensif.


Mitos tentang profesi


Ada banyak mitos dan rumor tentang programmer: tentang karakter, kekasaran, ketidakmampuan untuk membangun kehidupan pribadi, dll. Tetapi ini adalah kasus khusus yang dapat ditemukan dalam profesi. Sebagai contoh, pada suatu waktu saya dekat dengan bidang kedokteran dan saya dapat mengatakan bahwa ada juga banyak wanita menikah di tempat kerja dan menikah di tempat kerja, banyak introvert yang keras dan kasar, tetapi orang-orang profesional (lebih tepatnya dirajam). Dan secara umum sulit membayangkan "kantong" kebahagiaan di bidang tertentu.


Dan jika programmer juga seorang gamer ... Anda selalu dapat menemukan pasangan ;-)

Oleh karena itu, saya akan menganalisis empat mitos paling populer.

  1. . . , - , , , . , , — , , . 500 . , . « » «» , . , : . 
  2. . , . , , , , , , , - , . , . , , ( !), , , , , , — , , , .
  3. . , . , , CTO, CIO .. . 
  4. . . ? ;-)


Jika Anda belajar menjadi seorang programmer, suatu hari Anda pasti ingin berhenti semuanya, karena jalannya akan terlihat terlalu panjang. Anda akan bosan dengan tugas-tugas pelatihan yang monoton, setiap kompilasi yang tidak berhasil akan menyebabkan keputusasaan yang tumpul dan menyakitkan, Anda akan memimpikan pointer, rekursi dan prinsip-prinsip OOP (panggilan fungsi yang baik atau tidak berhasil). Semua keributan ini akan terlihat gila tidak hanya dari proyek independen pertama Anda, tetapi juga dari penggabungan perusahaan pertama ... 

Keinginan untuk berhenti adalah tanda pertama bahwa Anda berjalan dengan benar, bahwa Anda benar-benar tegang, dan tidak mengejek beberapa kode menggunakan metode salin-tempel dari Google (bahkan dengan GitHub!). Hanya ketika Anda begitu terlatih dalam tugas-tugas sederhana sehingga mereka menjadi membosankan bagi Anda, Anda dapat dengan percaya diri pindah ke tahap baru dengan basis pengetahuan yang sangat baik. 

Tipnya sederhana: jangan dijatuhkan. Beristirahatlah, tidurlah dengan pikiran-pikiran ini, berhenti berlatih selama seminggu dan kembali. Anda sendiri tidak akan memperhatikan bagaimana sesuatu "klik" di kepala Anda dan semuanya jatuh pada tempatnya dan ini dia, penggabungan pertama, kode ulasan pertama, komit open source pertama, kinerja pertama pada rapat, proyek hewan peliharaan Anda, tugas pertama pada Pos tengah. Jangan berhenti - semuanya akan terjadi!


All Articles