Bagaimana saya beralih dari newbie ke Software Engineer dalam masa 9 bulan sambil bekerja sepenuh masa

Dalam catatan ini, saya akan berkongsi bagaimana saya pergi dari zero (ish) ke tawaran pekerjaan kejuruteraan perisian enam angka dalam sembilan bulan sambil bekerja sepenuh masa dan belajar sendiri.

Setiap kali saya mula membaca kisah kejayaan, saya akan segera mencari latar belakang pengarang, dengan harapan akan sesuai dengan kisah saya. Saya tidak pernah menemui seseorang yang mempunyai latar belakang yang sama dengan saya, dan kemungkinan besar saya tidak akan sesuai dengan anda.

Walaupun begitu, saya berharap kisah saya memberi inspirasi kepada orang lain dan bertindak sebagai titik data berharga yang dapat ditambahkan ke kumpulan data kisah kejayaan anda.

Pendedahan Penuh

Saya mengikuti kursus Visual Basic for Applications (VBA) di sekolah menengah (sembilan tahun yang lalu). Dalam kursus teknik baru saya (tujuh tahun yang lalu), saya belajar beberapa C, Python, Matlab, dan Labview. Saya lulus dari universiti yang baik dengan ijazah kejuruteraan kimia dan IPK yang baik (tiga tahun lalu). Saya tidak melakukan pengaturcaraan di luar sekolah, di sekolah menengah atau kolej, sehingga saya memutuskan untuk belajar tahun lalu.

Selepas kuliah, saya mendapat pekerjaan sebagai Jurutera Proses di kilang. Saya bekerja di sana sehingga saya menukar kerjaya menjadi Kejuruteraan Perisian.

Mengapa saya mahu menukar kerjaya

Saya suka menyelesaikan masalah teknikal, tetapi saya tahu saya ingin memasuki dunia perniagaan / permulaan pada satu ketika. Saya selalu memikirkan pemikiran MBA, tetapi setiap kali saya melihat tanda harga sekolah teratas, minat saya semakin berkurang.

Pada 27 Mei 2017, saya mendapati diri saya goog tentang MBA sekali lagi, dan entah bagaimana saya tersandung pada kejuruteraan perisian. Sepertinya sangat sesuai.

Jurutera perisian dalam permintaan meningkat, gaji besar, dan ini adalah industri yang sempurna untuk memasuki dunia permulaan tanpa memerlukan banyak modal awal. Yang anda perlukan hanyalah komputer, dan peluang anda tidak terhad (jenis).

Tidak ada disiplin kejuruteraan lain yang boleh anda buat hanya idea, mulailah membuatnya, tunjukkan kepada pengguna, dan ulangi dengan sedikit modal dan penghalang masuk yang rendah. Dalam bidang kejuruteraan kimia, anda pada dasarnya memerlukan kilang yang sedang berjalan atau banyak wang untuk merancang kilang jika anda mempunyai idea untuk produk baru.

Saya pernah mendengar orang berhenti kerja dan menghadiri bootcamp, tetapi semakin saya membacanya secara dalam talian, semakin saya menyedari bahawa anda boleh belajar semuanya sendiri sekiranya anda komited dan fokus.

Anda mungkin berpendapat bahawa anda kehilangan nasihat rangkaian dan kerjaya yang diberikan oleh bootcamp. Ini boleh berlaku, tetapi saya bernasib baik kerana saya tinggal di Bay Area yang membolehkan saya menghadiri beberapa perjumpaan, jadi saya membuat jaringan seperti itu.

Selain itu, keadaan terburuk adalah saya menyedari bahawa saya tidak dapat melakukannya sendiri, dan kemudian saya berhenti kerja untuk menghadiri bootcamp.

Matlamat

Anda perlu mempunyai matlamat. Terutama jika anda berusaha belajar sambil bekerja sepenuh masa. Adalah mudah untuk membiarkan pembelajaran anda berlanjutan dan berterusan jika anda tidak mempunyai tekanan luaran yang mendorong anda. Oleh itu, anda perlu membuat tekanan dalaman. Matlamat anda mestilah sederhana dan kuantitatif. Anda harus melakukan kajian yang mencukupi untuk mencapai tujuan yang munasabah. Milik saya adalah berikut:

Dapatkan pekerjaan kejuruteraan perisian dalam satu tahun dengan gaji yang sama atau lebih baik daripada yang saya buat sekarang.

Rancangan

Sebaik sahaja anda mempunyai matlamat, anda memerlukan rancangan untuk membantu anda sampai di sana. Di sinilah anda menggunakan sebanyak mungkin kisah kejayaan. Tiada satu pun yang sesuai dengan keadaan anda yang tepat, tetapi anda boleh mengambil nasihat dari masing-masing. Saya mengembangkan (dan mengulangi) rancangan saya menggunakan sumber seperti subreddit programprogram pembelajaran, forum freeCodeCamp, dan Medium.

Pada 27 Mei 2017, saya memutuskan bahawa saya akan membuat pengekodan, dan terlebih dahulu saya tertidur. Pada hari itu saya memutuskan untuk mula meletakkan tidak lebih dari 40 jam seminggu di tempat kerja, jadi saya mempunyai masa untuk membuat kod selepas bekerja dan pada hujung minggu. Nasib baik untuk anda, saya melakukan pekerjaan yang cukup baik untuk mendokumentasikan kemajuan saya.

Rancangan saya, melalui banyak lelaran, akhirnya kelihatan seperti ini:

  1. Ikuti kursus Pengenalan kepada CS untuk mendapatkan pemahaman asas yang kukuh mengenai konsep teras CS
  2. Ikuti freeCodeCamp sehingga saya dapat membina aplikasi web stack penuh peringkat portfolio sendiri
  3. Refactor untuk membersihkan kod, menambah ujian, memberi tumpuan kepada konsep maju
  4. Sumbang kepada sumber terbuka
  5. Bersedia untuk temu duga pekerjaan

Untuk memulakan, rancangan saya adalah mudah. Pada masa itu, saya fikir saya akan mengikuti Panduan Teknikal Google, jadi saya mulakan dengan kursus pengenalan mereka yang disarankan, Udacity CS101.

Bulan 0 - Udacity CS101, Harvard CS50

Keputusan membuat keputusan yang besar ini memberi saya banyak tenaga. Saya akan mula membuat kod sebaik sahaja pulang dari tempat kerja dan tidak akan berhenti sehingga saya tidur. Dan sekali lagi sepanjang hujung minggu. Udacity CS101 mengesan peratusan penyelesaian, yang merupakan motivator besar bagi saya. Saya mencatatkan peratusan penyelesaian saya setiap hari selepas pengekodan. Saya menyelesaikan 75% pertama dalam 10 hari. 25% yang terakhir berat untuk pengulangan, dan agak sukar bagi saya. Secara keseluruhan, saya mengambil masa 20 hari untuk menyelesaikan Udacity CS101.

Semasa saya mengambil Udacity CS101, saya telah mula membaca subreddit pembelajaran program. Saya membaca bahawa adalah penting bagi pemaju yang mengajar diri untuk membuat perubahan kerjaya agar aktif dalam talian. Saya memutuskan untuk membuat akaun Twitter, Reddit, Stack Overflow, Medium, dan Quora baru menggunakan nama penuh saya, supaya saya dapat membina kehadiran dalam talian.

Juga, saya memutuskan untuk berhenti membaca media yang mengganggu seperti Instagram, Facebook, dan subreddit bukan pengaturcaraan. Saya hanya akan memeriksa telefon saya untuk mengetahui berita dan siaran yang berkaitan dengan pengaturcaraan. Ini sangat penting untuk memastikan bahawa saya mendapat maklumat mengenai jalan belajar dan sumber pembelajaran terbaik. Oleh kerana itulah saya mendapat tahu mengenai Harvard CS50 di edX.

Pada awalnya saya puas dengan hanya mengikuti satu kursus intro, tetapi semua orang sepertinya mengesyorkan Harvard CS50, jadi saya memutuskan untuk menyelami yang seterusnya. Pelajar CS di sekolah lain telah mengikuti kursus ini dan mengatakan bahawa mereka belajar lebih banyak dalam CS50 daripada satu atau dua tahun di universiti mereka yang belajar CS. Konsensus umum adalah bahawa kursus itu sukar tetapi berbaloi. Menjelang akhir bulan 0, saya telah menyelesaikan 5 kuliah dan tugasan kerja rumah yang pertama.

Bulan 1 - Harvard CS50, Linux, 1st Meetup, freeCodeCamp

Saya menyelesaikan CS50 kira-kira separuh bulan. Saya tidak akan terlalu banyak mengulas mengenai pengalaman saya dengan CS50, kerana saya menulis catatan mendalam mengenai pengalaman saya di sini.

TLDR: Ini kursus yang bagus, saya sangat mengesyorkannya. David Malan adalah pensyarah yang sangat baik, dan terdapat banyak sumber untuk membantu anda melaluinya. Anda bermula di C, terus ke Python, dan kemudian selesaikan dengan pengembangan web. Ia sangat padat, dan terdapat banyak bahan, tetapi saya rasa ia sangat berbaloi.

Selepas CS50, saya memutuskan untuk menyediakan Windows XP dan Ubuntu XPS 15 saya untuk dual boot. Itu adalah hujung minggu yang mengecewakan. Saya merosakkan partition saya dan hampir menyusun komputer riba saya. Saya hampir menggigit komputer riba dan mendapatkan yang baru.

Saya perlahan-lahan melepaskan diri dari Windows dan akhirnya hanya menggunakan Ubuntu. Saya mahu memaksa diri untuk merasa selesa dengan barisan arahan yang saya rasa berjaya hingga tahap tertentu, tetapi saya masih mempunyai jalan yang panjang.

Saya memulakan 100 hari kod untuk memastikan saya sentiasa fokus dan berkod setiap hari.Penting untuk mendokumentasikan kemajuan anda. Sekiranya anda membuat kemajuan setiap hari, itu tidak akan terasa seperti banyak tetapi apabila anda melihat ke belakang sebulan atau beberapa bulan, anda akan menyedari bahawa anda sebenarnya telah membuat sedikit kemajuan yang mendorong anda untuk terus maju.

Saya tahu bahawa rangkaian akan membuat atau mematahkan saya, jadi saya mengumpulkan keberanian untuk pergi ke pertemuan pengkodan pertama saya. Saya tidak pernah menghadiri perjumpaan apatah lagi perjumpaan pengekodan. Saya begitu gugup sehingga setelah memandu di sana, meletak kenderaan, dan berjalan ke pintu, saya hampir menoleh dan pulang ke rumah.

Ini membantu bahawa ini adalah pertemuan pertama kumpulan. Saya dengan cepat menyedari bahawa tidak ada sebab untuk gugup. Tidak ada yang saling kenal, tidak ada yang menghakimi, dan semua orang ingin belajar. Ini adalah permulaan perjumpaan. Saya akhirnya menghadiri lebih daripada 50 perjumpaan dalam 9 bulan.

Saya gembira kerana saya mula menghadiri perjumpaan lebih awal. Sebilangan besar orang hanya mula menghadiri perjumpaan ketika mereka mencari pekerjaan, tetapi pada ketika itu hampir terlambat. Terdapat banyak sebab untuk memulakan lebih awal. Untuk menamakan beberapa:

  1. Menjalin hubungan memerlukan masa yang lama. Bermula lebih awal bermakna anda mempunyai hubungan yang dapat menjamin anda ketika mencari pekerjaan nanti
  2. Bercakap mengenai pengaturcaraan dengan orang yang tidak dikenali adalah cara terbaik untuk bersiap sedia untuk temu duga
  3. Anda dapat mempelajari kerangka kerja, alat, dan sumber pembelajaran baru dari orang yang berada di hadapan anda. Ini dapat mempengaruhi rancangan pembelajaran masa depan anda.

Terdapat beberapa ketidakpastian pada masa ini dalam perjalanan pengekodan saya. Ini mengenai ketika saya perlu memutuskan jenis pembangun perisian yang saya mahukan.

Pada akhirnya, saya memilih pembangunan web kerana nampaknya terdapat permintaan yang tinggi dan juga banyak sumber dalam talian. Setelah saya mengetahui perkara itu, saya perlu memikirkan apa yang harus dilakukan seterusnya. Beberapa orang mengesyorkan bahawa pada peringkat ini saya harus memikirkan aplikasi web yang ingin saya buat dan kemudian memulakannya. Sebilangan orang mengesyorkan The Odin Project atau freeCodeCamp.

Lelaki yang menjalankan perjumpaan mingguan yang saya hadiri mengenali Ruby dan ingin membuat projek dengan Ruby. Ini adalah alasan besar mengapa saya membuat keputusan untuk mengikuti Projek Odin.

Dan kemudian dua hari kemudian saya membuang idea itu.

Itu adalah salah satu kelemahan untuk mengikuti jalan yang diajar sendiri. Satu minit anda fikir anda tahu jalan apa yang harus anda tempuh, tetapi pada keesokan harinya anda tertanya-tanya adakah itu langkah yang betul.

Saya membaca bahawa Ruby tidak disukai, dan saya membuktikannya dengan mencari pekerjaan Ruby vs JavaScript, jadi saya akhirnya memulakan freeCodeCamp. Satu perkara yang mengganggu saya mengenai freeCodeCamp adalah mereka menghasilkan idea projek, jadi setiap kemping melakukan projek yang sama. Ini pada mulanya membimbangkan saya kerana saya ingin menonjol kepada perekrut. Walau bagaimanapun, saya akhirnya menyukai freeCodeCamp, dan sekarang saya sangat mengesyorkannya. Untuk maklumat lebih lanjut mengenai pengalaman dan cadangan saya mengenai freeCodeCamp, lihat tulisan saya di sini.

Bulan 2 - YDKJS, FreeCodeCamp Front End, React

Saya mula membaca You Don't Know JavaScript, kerana semua orang mengesyorkannya untuk menambah percumaCodeCamp. Saya terpaksa membaca semula beberapa bahagian kerana cukup padat, tetapi ini adalah sumber yang tepat untuk mempelajari skop leksikal, penutupan, janji, dan semua bahagian JavaScript yang anda dengar dan ingin pelajari tetapi tidak pernah dilakukan kerana nampaknya sukar.

Saya menyelesaikan bahagian depan percumaCodeCamp. Format senarai semak dan anggaran masa penyelesaian membantu memotivasi saya untuk menyelesaikan dengan cepat. Saya juga gatal untuk beralih ke bahagian seterusnya dan belajar React. Namun, ini juga bermaksud bahawa projek saya mempunyai gaya yang minimum. Saya melakukan apa sahaja untuk memenuhi kisah pengguna dan tidak lebih dari itu.

Jika dilihat di belakang, mungkin saya harus menumpukan perhatian untuk menjadikan projek lebih menarik. Mungkin, ini akan membantu saya mempelajari CSS dengan lebih mendalam.

Langkah seterusnya adalah belajar React, dan saya cukup pam.

Saya telah banyak mendengarnya, dan saya bersedia untuk menyesuaikan diri dengan anak-anak yang sejuk. Namun, saya agak ragu-ragu dengan masalah pelesenan ketika itu. Saya sangat gembira kerana ia tidak lagi menjadi masalah. React Pembelajaran sukar bagi saya. Saya tidak menyedari tutorial yang baik ketika itu (tetapi nampaknya sekarang ada banyak)

Saya cuba membaca dokumen dan mengikuti tutorial Tic-Tac-Toe Facebook, tetapi saya tidak memahami semuanya. Saya diberitahu jika itu tidak berfungsi untuk saya, maka itu bermakna saya tidak cukup memahami JavaScript. Oleh itu, saya kembali membaca Anda Tidak Tahu JavaScript, tetapi sekali lagi itu terlalu padat bagi saya.

Bulan 3 - freeCodeCamp React, CodeClub, Bermula freeCodeCamp Back End

Pada akhirnya, saya baru sahaja memutuskan bahawa saya akan berusaha melalui projek FreeCodeCamp React untuk melihat bagaimana ia berjalan. Kod itu jelek, tetapi ia membantu saya memahami React sedikit lebih baik.

Pertemuan itu yang saya hadiri setiap minggu memutuskan bahawa mereka akan membina projek dengan JavaScript tumpukan penuh dan bukannya Ruby, dan mereka memutuskan bahawa projek pertama adalah membina laman web untuk kumpulan pertemuan, CodeClub.Social.

Saya mengembangkan kad menggunakan React dan Meetup API yang membolehkan pengguna mendaftar untuk tiga pertemuan seterusnya dari laman web kami. Agak sukar bagi saya untuk berehat sebentar dari freeCodeCamp untuk melakukan ini, tetapi itu adalah peluang yang tidak dapat saya lalui. Saya gembira dapat mengerjakan projek dengan sekumpulan kecil orang. Ia juga membantu saya mempelajari Git dan Github.

Sebelum bulan berakhir, saya mula mengusahakan bahagian hujung belakang freeCodeCamp.

Bulan 4 - Tamat AkhirCodeCamp percuma, Yeggle

Saya mengusahakan semua projek API di freeCodeCamp, tetapi saya mula menyimpang dari freeCodeCamp pada projek Image Search Abstraction Layer.

Saya gatal untuk membuat aplikasi web tumpukan penuh, jadi sebaik sahaja saya melihat tajuk projek ini, saya mempunyai idea untuk projek saya sendiri. Saya akan membuat aplikasi simpul yang akan menyimpan URL imgur rawak dalam pangkalan data, dan kemudian membuat bahagian depan yang akan menghasilkan sejumlah gambar rawak yang ditentukan pengguna. Apa yang semua orang katakan adalah benar: anda bekerja lebih keras dan lebih berjaya apabila anda mengusahakan projek yang merupakan idea anda sendiri.

Setelah berjaya, saya sangat bangga dengan diri saya. Itu jelek dan kikuk, tetapi berjaya.

Semasa saya bekerja melalui freeCodeCamp, saya belajar mengenai projek apa yang sesuai dengan kemampuan saya. Saya berlari secara berkala pada masa itu, jadi saya akan menghasilkan idea mengenai perjalanan saya dan menuliskannya ketika saya pulang. Dengan cara itu saya akan mempunyai senarai idea projek ketika saya sudah bersedia.

Saya akhirnya berasa bersedia untuk mula membuat aplikasi web tumpukan penuh yang berguna dan digilap untuk dikongsi dengan pengguna dan meletakkan portfolio saya. Saya begitu bersedia untuk memulakan.

Semasa mencari restoran baru, saya selalu membuka Yelp untuk memeriksa ulasan, dan kemudian membuka Peta untuk memeriksa ulasan mereka. Bagaimana jika saya membuat aplikasi yang membandingkan kedua-dua belah pihak?

Oleh itu, saya membuat Yeggle. Saya menggunakan Node / Express / React bersama dengan Google Maps dan Yelp API. Terdapat beberapa halangan yang saya rasa tidak dapat saya atasi, tetapi pada akhirnya saya selesai dan saya sangat bangga dengan aplikasi saya. Kemudian saya menghantarnya ke Reddit, dan tidak ada yang peduli. Itu agak mengecewakan, tetapi saya tidak membiarkannya membuat saya kecewa.

Bulan 5 - StockIT

Saya tidak berjaya melakukannya pada bulan ini, kerana saya memulakannya dengan percutian dua minggu ke Jepun dan Thailand!

Tetapi saya memulakan dan menyiapkan projek seterusnya. Saya terus membaca tentang betapa sukarnya mendapatkan pekerjaan sebagai pemaju yang diajar sendiri, jadi saya fikir saya perlu melakukan sesuatu yang unik. Saya teringat permainan di mana grafik saham Dow Jones mula tren, dan anda mempunyai satu peluang untuk membeli dan satu peluang untuk menjual, dan tujuannya adalah untuk mengalahkan pasaran. Tujuan permainan ini adalah untuk menunjukkan kepada anda betapa sukarnya mengalahkan pasaran.

Idea saya adalah untuk membuat permainan yang serupa dengan itu, tetapi bukannya pasar, anda akan bermain dengan algoritma pembelajaran mesin. Oleh itu, saya mencipta StockIT.

Saya mengambil tutorial video mengenai Pandas dan Scikit Learn yang merangkumi pelbagai teknik pembelajaran mesin. Pada asalnya saya ingin melakukan beberapa teknik pembelajaran mendalam, tetapi saya menyedari bahawa memerlukan banyak set data dan lebih banyak masa daripada yang saya mahu habiskan.

Sebaliknya, saya berpegang pada model regresi linear sederhana. Saya fikir itu akan menjadi bahagian yang sukar, tetapi tidak. Mendapatkan D3 untuk bersaing dengan React adalah bahagian yang sukar. Kedua-dua perpustakaan ingin mengawal DOM. Terdapat beberapa perpustakaan lain yang membantu menggabungkan keduanya, tetapi saya merasakan mereka terlalu kembung. Saya akhirnya menggunakan D3 untuk menghasilkan SVG dan React untuk menangani DOM yang berjaya untuk saya.

Kali ini ketika saya berkongsi dengan Reddit, semua orang menyukainya!

Ternyata, seperti VC, redditor adalah mengenai pembelajaran mesin itu. Semua cinta dari Reddit adalah peningkatan keyakinan yang besar. Orang ramai bermain permainan saya dan menikmatinya!

Bulan 6 - JobSort (), Prep Hunt Job

Selepas StockIT, saya memasuki projek peribadi saya yang seterusnya. Saya ingin membuat papan pekerjaan yang menggabungkan laman web penyenaraian pekerjaan bertumpu pada teknologi yang lebih kecil seperti Stack Overflow, Github, dan Hacker News. Untuk menambahkan putaran unik saya sendiri, saya memutuskan untuk membuatnya berdasarkan teknologi yang pengguna mahukan dalam pekerjaan dan betapa teruknya mereka mahukan masing-masing.

Sebagai contoh, katakan saya mencari pekerjaan yang mencari seseorang yang mengetahui JavaScript, React, dan / atau Python, dan saya benar-benar mahu bekerjasama dengan JavaScript dan React tetapi saya tidak begitu mementingkan Python. Kemudian saya dapat memberikan JavaScript 3, React a 3, dan mungkin Python a 1. Penyenaraian kemudian akan disusun sesuai.

Saya menghadapi pelbagai rintangan dengan projek ini dan terpaksa menukar kursus beberapa kali, tetapi saya akhirnya menghasilkan produk yang saya gemari. Tumpukan teknologi terakhir saya ialah React / Node / Express / MySQL. Saya menyiarkan projek itu ke subreddit cscareerquestions dan mendapat 650 pandangan sebelum dihentikan kerana mereka tidak membenarkan projek peribadi.

Produk "akhir" ada di sini, dan jika anda berminat untuk mengetahui lebih lanjut mengenai perjuangan dan refaktor saya, lihatlah catatan saya di sini.

Kerana masalah saya, jobSort () mengambil bahagian yang lumayan dalam sebulan. Saya akhirnya mendapatkan kopi dengan rakan yang saya temui pada pertemuan pertama saya, dan dia menasihati saya untuk mula melamar pekerjaan sekarang. Saya membaca di semua tempat bahawa semua orang mengatakan bahawa mereka menunggu terlalu lama untuk memohon. Juga, setiap kali saya melihat siaran yang bertanya kapan harus mendaftar, komen teratas selalu "sekarang".

Dalam fikiran saya, saya akan berusaha melalui rancangan tersusun saya untuk membina portfolio saya dengan projek peribadi, dan kemudian bekerja pada sumbangan sumber terbuka, dan kemudian bersiap sedia untuk wawancara, dan akhirnya mula melamar pekerjaan. Rakan ini meyakinkan saya untuk membuang rancangan itu dan mula memohon. Jadi bulan ini saya membuat portfolio dan resume. Pada bulan berikutnya saya akan mula memohon.

Bulan 7 - Ujian, Memburu Pekerjaan

Pada bulan ini, saya memberi tumpuan untuk menyelesaikan projek dan melamar pekerjaan. Saya juga ingin belajar ujian dan Redux.

Saya menambahkan flexbox ke CodeClub.Social untuk menjadikannya responsif. Saya meningkatkan UX mudah alih di jobSort (). Saya menambahkan ujian ke jobSort () dengan mocha / chai / enzyme yang sukar disiapkan, mudah dimulakan, dan kemudian sukar mendapat liputan 100%.

Pada akhir bulan, saya telah melamar 63 pekerjaan. Saya melihat ini sebagai penilaian kendiri. Adakah portfolio / resume saya cukup baik? Sekiranya demikian, apa yang perlu saya kerjakan untuk mempersiapkan temu duga? Pada mulanya, saya melamar dengan Hacker News: Who Hire, and Indeed.

Di Hacker News, saya menggunakan jobSort () untuk menentukan senarai yang hendak dilamar. Sebenarnya, saya mencuba syarikat bukan perisian untuk melihat sama ada saya dapat panggilan atau temu ramah di mana sahaja.

Pada mulanya, saya membuat permohonan dengan cepat dan tidak memperibadikan resume / surat lamaran saya. Kemudian, saya memutuskan untuk memperibadikan surat lamaran dan resume saya, dan kemudian cuba menghantar e-mel kepada seseorang dari syarikat itu. Kaedah ini jelas lebih baik daripada pendekatan senapang.

Saya menerima lima panggilan pada bulan itu - dua dari syarikat perekrutan dan tiga dari syarikat perisian yang merangkumi:

  • peranan DevOps / pengujian kontrak di syarikat dotcom
  • syarikat analisis makanan siri B, dan
  • permulaan yang cukup besar dan berjaya yang baru-baru ini dibeli oleh syarikat besar

Saya berjaya melepasi layar HR dalam dua daripadanya, tetapi tidak ada yang menghasilkan wawancara di lokasi. Saya cukup gembira dengan ketiga-tiga panggilan itu, dan saya banyak belajar daripada mereka.

Semua orang menyebut dalam talian bahawa pemaju junior tidak semestinya tahu banyak dari awal, mereka hanya perlu bersemangat dan bersemangat untuk belajar. Jadi saya fikir, mudah. Saya bersemangat dan teruja untuk belajar. Apa yang saya pelajari dari panggilan ini, bagaimanapun, adalah bahawa tidak ada yang mencari pemaju junior. Mereka mengharapkan anda mengetahui apa yang anda lakukan dari hari pertama.

Panggilan ini mengajar saya bahawa saya perlu

  • cukup baik untuk menambah nilai dari hari pertama
  • cukup yakin untuk meyakinkan mereka bahawa saya dapat menambah nilai dari hari pertama

Bulan 8 - Pergeseran Malam, Redux, Sumber Terbuka, Temu ramah di tempat

Saya memulakan bulan ini dengan bekerja shift malam selama 40 hari sepanjang waktu bekerja - 6 hari seminggu, 12 jam sehari, 5:00 hingga 5:00. Ugh.

Saya tahu saya tidak akan dapat menyelesaikan sebanyak ini bulan ini, tetapi saya mempunyai matlamat dan saya mahu mencapainya, jadi saya tidak dapat cuti sebulan.

Saya membuat refactored jobSort untuk menggunakan Redux yang secara mengejutkan tidak sesukar yang saya sangka. Saya mendengar banyak podcast mengenainya dan membaca catatan blog mengenainya, dan tidak pernah masuk akal bagi saya sehingga saya mula menggunakannya.

Saya sangat menyukai aliran data dengan Redux. Sungguh menarik apabila melihat orang mengadu tentang Redux. Saya tidak fikir saya layak untuk mengeluarkan pendapat saya dengan kuat, tetapi saya suka corak pengurangan.

Ini sepatutnya menjadi bulan sumber terbuka bagi saya. Saya akan memberikan sumbangan sumber terbuka pertama saya, dan ini akan menjadi sumbangan besar untuk perpustakaan yang hebat. Saya akan menyumbang kepada React!

Semua orang mengatakan bahawa pangkalan data yang sukar dibaca apatah lagi menyumbang. Tetapi saya perlu menonjol, saya perlu unik. Saya tahu bahawa sumbangan saya tidak akan ketara, namun saya tetap mahu melakukannya.

Saya akan mulakan dengan membaca dokumen sepanjang masa dan kemudian menuangkan pangkalan data. Tonton setiap isu, setiap PR. Membaca dokumen React secara menyeluruh adalah latihan yang bagus, dan saya gembira kerana berjaya melakukannya. Tetapi saya dengan cepat menyedari bahawa masalah dengan memberi sumbangan kepada React adalah bahawa tidak banyak "masalah pertama yang baik", dan mereka segera diselesaikan.

Pada salah satu perjumpaan yang saya hadiri, Anthony Ng mengesyorkan agar saya mencuba Downshift, sebuah perpustakaan pelengkap automatik oleh Kent C. Dodds. Ini adalah penukar permainan. Itu betul-betul di roda kereta saya. Kesukaran yang betul, jumlah masalah yang tepat untuk dibantu, tidak terlalu banyak kolaborator, penyelenggara yang sangat membantu, kod yang teruji dengan baik. Di atas semua itu, ia adalah penyelesaian sempurna untuk beberapa masalah yang saya hadapi dengan aplikasi jobSort () saya.

Lebih kurang separuh bulan, saya menerima e-mel dari salah satu syarikat yang saya gunakan pada bulan sebelumnya. Mereka mengatur layar telefon awal, dan kemudian layar telefon teknikal. Teknologi yang mereka cari adalah apa yang telah saya pelajari - React, Redux, dan D3. Saya kebanyakan hanya membincangkan projek saya dan mengapa saya membuat keputusan tertentu. Selepas ini, mereka meminta saya datang ke lokasi untuk temu ramah. Temu ramah pertama saya!

Saya sama sekali tidak bersiap untuk temu duga, jadi saya menjayakannya dengan harapan bahawa saya tidak akan mendapat pekerjaan, tetapi saya akan memperoleh pengalaman temu ramah yang berharga. Saya juga tidur selama tiga jam kerana saya masih bekerja shift malam yang tidak membantu. Nasib baik, bahagian teknikal bukan papan putih, hanya sesi pengaturcaraan pasangan satu jam. Itu adalah cabaran yang cukup mudah, tetapi saya sangat gugup.

Pada mulanya, saya bimbang untuk memastikan saya mengetahui semua perkara tanpa mencarinya. Apabila saya menyedari bahawa saya tidak akan menyelesaikan cabaran, saya menyedari bahawa saya perlu berhenti bimbang apa yang difikirkan oleh pewawancara dan hanya melampaui google / stack untuk mencari jawapan. Saya tidak akhirnya selesai, dan saya fikir saya gagal dengan teruk.

Oleh kerana saya fikir saya gagal dalam pengaturcaraan pasangan, saya berasa santai sepanjang wawancara ini. Pada akhirnya, saya meninggalkan temu ramah dengan dagu. Kes terburuk saya mendapat pengalaman temu ramah yang berharga, dan kes terbaik saya mendapat tawaran pekerjaan pertama.

Bulan 9 - Tawaran Kerja

Saya akhirnya menerima tawaran pekerjaan pertama saya 9 bulan dan 7 hari selepas hari pertama itu ketika saya memutuskan untuk menyelami program dengan niat untuk mengubah karier. Saya merasa yakin kerana saya mendapat tawaran selepas temu ramah pertama saya, tetapi pada masa yang sama, jika saya tidak menerima tawaran itu, bagaimana jika ini satu-satunya tawaran yang akan saya terima selama beberapa bulan? Saya akhirnya menerima tawaran itu, dan saya gembira dengan keputusan saya. Saya mahu dibayar dengan kod!

Nasihat

Hingga saat ini, saya sering berkongsi kisah saya dengan beberapa nasihat yang ditaburkan. Kemungkinannya jika anda membaca ini, anda sama ada memikirkan untuk menukar kerjaya atau sedang belajar untuk membuat kod dengan tujuan mengubah kerjaya. Saya harap nasihat di bawah ini dapat membantu anda menyusun rancangan atau mengikuti rancangan semasa dan mencapai matlamat anda.

  1. Ketahui apa yang memotivasi anda dan gunakannya untuk keuntungan anda. Bagi saya, itu adalah senarai semak, mendokumentasikan kemajuan saya, dan berinteraksi dengan pelbagai komuniti pengaturcaraan. Sekiranya anda tidak termotivasi untuk mencapai matlamat anda, maka tidak ada perkara lain yang penting kerana anda tidak akan berjaya.
  2. Buat matlamat dan capai. Saya berpendapat bahawa anda harus mempunyai matlamat bulanan dan mungkin juga matlamat harian. Matlamat bulanan untuk memastikan anda berada di landasan yang betul untuk mencapai matlamat utama anda, dan tujuan harian untuk memastikan bahawa anda benar-benar membuat kemajuan harian. Salah satu strategi yang berjaya bagi saya adalah dengan menjadikan matlamat harian saya pada malam sebelumnya. Dengan cara itu, anda tidak dapat melakukan kerja yang tidak produktif sepanjang hari dan merasa seperti anda telah membuat kemajuan ketika anda sebenarnya tidak melakukannya. Ini memaksa anda untuk membandingkan pencapaian harian anda dengan tujuan harian anda.
  3. Pergi ke perjumpaan sebelum anda fikir anda sudah bersedia. Pergi ke perjumpaan boleh terasa menakutkan, tetapi seperti yang saya nyatakan di atas. Tetapi, secara amnya semua orang baik dan bersedia membantu. Anda mungkin menjumpai orang yang tidak berminat untuk bercakap dengan anda, tetapi mereka adalah golongan minoriti dan tidak ada yang akan menghakimi. Juga, semua orang suka memberi nasihat (seperti yang saya lakukan sekarang).
  4. Sumbang kepada cara sumber terbuka sebelum anda fikir anda sudah bersedia. Semasa pertama kali memulakan program, Github kelihatan seperti tempat menakutkan ini yang tidak pernah anda lawati. Sebenarnya sangat mengalu-alukan para pemula dan merupakan tempat yang bagus untuk melihat kod yang baik dan menyemak kod anda sendiri. Sekiranya anda masih tidak yakin, lihat catatan saya, Mengapa anda harus menyumbang kepada sumber terbuka sekarang.
  5. Mula menggunakan cara sebelum anda fikir anda sudah bersedia. Yang ini sukar bagi saya kerana saya fikir saya berbeza. Saya fikir saya tidak perlu menguji pasaran untuk merasakan apa yang harus diusahakan. Saya fikir saya akan tahu bila saya akan bersedia untuk memohon. Saya memberitahu anda sekarang. Anda tidak akan tahu bila hendak membuat permohonan. Oleh itu, anda juga boleh bermula sekarang. Anda tidak boleh menjadi gila dan melamar 300 syarikat sebelum anda belajar untuk mendapatkan gelung. Tetapi anda harus tahu bahawa cara terbaik untuk mengetahui apa yang perlu anda pelajari adalah dengan menerapkan dan menguji pasaran.

Sekarang kembali ke sana dan kod!