Sepanjang tahun lalu, saya menghabiskan keseluruhan kurikulum freeCodeCamp sambil bekerja sepenuh masa sebagai seorang guru. Dalam artikel ini, saya akan menggariskan bagaimana saya berjaya melakukan ini. Terutama bagaimana saya mengatur masa saya dan bahan tambahan apa yang saya gunakan.
Latar belakang
Pertama, kisah belakang. Saya tidak baru dalam pengekodan. Saya dibesarkan di sebuah syarikat teknologi kecil.
Ayah saya mengasaskan syarikatnya sendiri sebelum saya dilahirkan, di mana mereka menjalankan pelbagai aktiviti dalam bidang teknologi, seperti memperbaiki komputer, membuat sambungan Internet dan rangkaian untuk syarikat lain, mengajar kursus komputer, dan membina aplikasi pentadbiran untuk syarikat. Ia adalah sebuah bandar kecil, jadi pada dasarnya mereka adalah "orang teknologi" untuk seluruh bandar.
Pejabat syarikat ada di rumah kami, jadi saya benar-benar tumbuh di antara komputer dan orang yang menyukainya. Saya mula bermain-main dengan Visual Basic semasa kecil (salah seorang lelaki di syarikat itu mengajar saya cara menggunakannya) dan saya menghabiskan semua masa lapang saya dalam talian, berbual dengan rakan-rakan kutu buku.
Ketika saya berusia 12 tahun, salah seorang penjahat menghantar e-mel kepada saya buku panduan pengembangan web (fail .txt besar yang pada dasarnya berurusan dengan HTML) dan saya menggunakannya untuk membina laman peminat saya sendiri. Ia juga mempunyai salah satu kaunter lawatan keren.
Saya menghoskannya di Geocities, mendapatkan URL pendek percuma, dan menyenaraikannya di Yahoo dan AltaVista (ini adalah yang terbesar pada masa itu).
Selepas itu, kehidupan berlaku dan saya benar-benar menyerah untuk menjadi pengaturcara, kerana keadaan menuntut pendekatan yang lebih "realistik". Saya tidak akan membahas perinciannya sekarang, tetapi pada dasarnya saya harus berhenti belajar dan mendapatkan pekerjaan.
Saya meneruskan kehidupan saya. Saya membina laman web sesekali untuk pelanggan ayah saya, dan akhirnya memutuskan untuk mula mengajar bahasa Inggeris, yang merupakan sesuatu yang mudah bagi saya, dan pada dasarnya melupakan semua tentang pembangunan web. Sehingga 2016 iaitu.
Bagaimana saya memutuskan untuk menukar kerjaya
Saya suka mengajar. Ini adalah profesi yang bermanfaat, menarik dan menyeronokkan. Tetapi ia mempunyai kelemahan. Pada mulanya, semuanya terasa seperti cabaran, tetapi setelah bertahun-tahun melakukannya, saya mulai merasakan bahawa saya tidak mempunyai tujuan. Saya tidak berkembang atau belajar lagi.
Saya berasa buntu. Seperti pekerjaan saya sama tahun dan tahun yang sama. Saya baru sahaja bergerak. Ia juga tidak menawarkan banyak peluang untuk berpindah, yang merupakan sesuatu yang sangat penting bagi saya di kemudian hari.
Pada tahun 2013, saya bertemu dengan suami saya, dan tahun berikutnya kami melakukan perjalanan backpacking selama tiga bulan ke Eropah, yang merupakan catatan blog yang berbeza, tetapi pada dasarnya ia adalah anggaran yang sangat rendah dan kami mempunyai pengalaman yang luar biasa. Kami mencintai Eropah dan kami memutuskan akan kembali untuk perjalanan jauh yang lain.
Masa berlalu, kami melakukan perkara lain, dan kemudian saya menjumpai Codecademy dan mula bermain-main dengannya, dan bermain dengan idea untuk menjadi pemaju sepenuh masa. Saya sudah mempunyai beberapa pengalaman membina laman web dengan hanya HTML dan CSS, tetapi tidak mempunyai JavaScript. Saya membaca banyak kisah kejayaan dalam talian, tetapi saya masih tidak menganggapnya sebagai kerjaya sebenar, bukan dengan jangka panjang.
Sementara itu kami merancang perjalanan jauh seterusnya, menjimatkan wang, merancang dan sebagainya. Saya bekerja sebagai penterjemah bebas lebih-lebih lagi, sangat terlibat dengan karier saya, menerjemahkan perkara-perkara menarik seperti novel dan puisi. 2017 datang dan kami pergi ke Eropah sekali lagi selama dua bulan.
Di sana kami bertemu dengan sekumpulan pemaju. Ia gila. Setiap surfer sofa yang kami temui nampaknya berada dalam IT entah bagaimana, sama ada sebagai pengurus produk perisian, pembangun, penguji, dan sebagainya. Mereka semua mendorong kita untuk masuk ke dalam teknologi. Pada masa itu kami sudah memutuskan kami ingin pindah ke Eropah sehingga banyak dari mereka mengatakan kepada kami: “Anda dapat mencari pekerjaan di sini. Pembangun sangat diminati di sini, kami memerlukan banyak daripadanya. "
Sebelum perjalanan berakhir, kami membuat keputusan untuk mendaftar sijil teknikal 2 tahun di universiti teknikal yang baru ditubuhkan berhampiran kampung halaman kami. Program ini terutama Java sehingga ketika kami kembali, kami memulai kursus Java di Cousera. Modul pertama sebenarnya adalah kursus JavaScript, jadi kami benar-benar terpikat dengan JavaScript dengan segera.
Semasa kami mempelajari JavaScript, kami menunggu permulaan tahun persekolahan pada bulan Mac 2018. Hanya ada 50 tempat untuk Uni, jadi kami mendapat dedikasi dan belajar terlebih dahulu. Kami pergi, mengambil ujian, lulus kursus, dan kemudian kami harus menunggu sehingga mereka memutuskan. Kami mendapat markah tertinggi di antara semua calon, tetapi markah tersebut tidak memberi perbezaan. Tempat tersebut akan diberikan melalui sistem undian. Suami saya masuk dan saya ketinggalan.
Dia memutuskan bahawa dia lebih suka belajar sendiri, dia tidak lagi berminat dengan Java kerana dia terpikat dengan JavaScript, jadi kami mulai belajar sendiri.
Kami bermula dengan Codecademy, tetapi terlalu mudah untuk kami (kami tidak mempunyai akaun Premium). Di suatu tempat kita membaca mengenai freeCodeCamp. Dan kami memulakannya, dengan perlahan pada awalnya (sijil pertama memerlukan saya berbulan-bulan untuk mendapatkannya, memang di tengah kurikulumnya telah diubah dan saya meletakkan komputer riba saya dan harus membaikinya). Setelah cuti musim panas berakhir dan saya kembali bekerja sepenuh masa, semuanya menjadi sukar.
Bekerja sepenuh masa dan melakukan FreeCodeCamp pada kelajuan penuh
Ia tidak mudah, saya tidak akan berbohong. Ini membantu bahawa kebanyakan rakan dan kenalan saya tidak tinggal di dekat saya, dan saya tinggal di sebuah bandar kecil yang tidak menawarkan banyak peluang hiburan. Dalam pengertian itu, pengaturcaraan adalah penyelamat kehidupan. Saya mempunyai sesuatu yang menyeronokkan untuk dilakukan, dan itu mengasyikkan sehingga saya dapat membunuh berjam-jam kebosanan dengannya.
Jadi itu banyak membantu ketika berurusan dengan jumlah jam yang saya habiskan untuk melakukan kerja mental (mengajar dan belajar).
Sijil pertama mengambil masa berbulan-bulan, sebahagiannya kerana saya menunggu untuk masuk ke Uni dan sebahagiannya kerana saya bekerja 10 jam sehari untuk 3 bulan pertama tahun persekolahan.
Malangnya saya tidak dapat berhenti kerja dan belajar sepenuh masa, kerana saya perlu membayar bil, jadi saya mesti betul-betul mahir dalam 3 perkara:
- Pengurusan masa
- Disiplin
- Pertubuhan
Pengurusan masa
Saya mula bekerja pada pukul 7 pagi, jadi saya mula bangun pada jam 4:30 pagi pada kebanyakan hari. Saya memulakan hari dengan cabaran dan kopi percumaCodeCamp. Kadang-kadang saya juga membaca dari buku atau melakukan tutorial lain, bergantung pada apa yang saya kerjakan ketika ini. Saya juga belajar semasa rehat makan tengah hari dan selepas bekerja, tetapi saya memahami bahawa saya tidak begitu produktif sepanjang minggu kerana bekerja. Oleh itu, selama seminggu saya melakukan banyak cabaran pendek, membaca, dan sebagainya. Dan saya mengusahakan projek pada hujung minggu, cuti, dan masa lapang.
Sekiranya saya mempunyai masa 30 minit, saya akan membaca 30 minit. Sekiranya saya mempunyai 15 tahun, saya melakukan kajian selama 15 minit. Saya menggunakan setiap masa lapang untuk belajar.
Pada hari Ahad, saya akan makan sebahagian besar makanan saya selama seminggu sehingga saya tidak perlu menghabiskan masa untuk memasak dan saya tidak perlu makan makanan yang tidak sihat. Saya juga merancang dan mengumpulkan semua yang saya perlukan untuk bekerja selama seminggu, jadi saya tidak perlu menghabiskan masa tambahan selain waktu kerja biasa.
Nasib baik selepas bulan Jun, waktu kerja saya dikurangkan dari 10-12 hingga 8, jadi saya sekarang menjalankan jadual biasa dan di sana saya mula mengambil langkah.
Disiplin
Anda harus belajar walaupun pada hari-hari anda tidak merasa seperti itu. Di sinilah motivasi juga memainkan peranan besar, tetapi disiplin adalah penting - terutamanya jika anda seperti saya dan banyak terganggu dengan media sosial dan video kucing.
Petua terbaik yang dapat saya berikan untuk melawan godaan membaca artikel dalam talian ialah: jika anda mengemukakan soalan di kepala anda seperti "bagaimana pesawat terbang?" (yang biasanya merupakan jenis soalan yang membuat saya terbawa dan menghisap saya selama 30 minit), tuliskan di suatu tempat dan berjanji pada diri anda bahawa anda dapat membaca semua itu setelah anda menyelesaikan apa yang anda lakukan.
99% masa anda tidak akan peduli lagi, kerana soalan-soalan itu hanya muncul di otak anda kerana ingin terganggu. Tolak dan anda akan mengalahkannya.
Aspek lain dari disiplin ialah memilih belajar daripada perkara lain. Ini adalah bahagian yang tidak begitu menyeronokkan. Saya terpaksa menyerah banyak, banyak perkara yang saya gemari untuk belajar, dan saya tidak sabar untuk kembali kepada mereka. Saya melakukannya hanya kerana saya mahu menjadi pembangun secepat mungkin (lihat Motivasi di bawah), tetapi walaupun anda tidak terburu-buru seperti saya, anda mungkin mendapati bahawa anda menghabiskan banyak masa untuk melakukan perkara-perkara yang, walaupun walaupun mereka menyeronokkan dan menyenangkan, luangkan terlalu banyak masa anda.
Anda harus mengutamakan dan membuat pilihan yang sukar.Motivasi
Saya mempunyai motivator yang sangat kuat yang menjadi pemaju dan berpindah ke Eropah. Ini adalah tujuan saya untuk masa yang lama, dan saya sampai pada tahap di mana saya merasa kecewa kerana tidak mendapatnya. Semua rakan saya meninggalkan bandar, saya hampir tidak mempunyai keluarga di sini, saya merasa terpencil dan mahu pergi.
Itulah yang mendorong saya. Rasanya seperti api di bawah kaki saya, saya merasakan saya tidak mempunyai pilihan. Anda memerlukan motivasi yang kuat untuk melakukan perubahan radikal. Saya tidak tahu tentang anda, tetapi saya seorang "jangan perbaiki apa yang tidak patah", jadi sangat sukar untuk membuat saya melakukan sesuatu hanya demi melakukannya.
Hobi saya semuanya sangat praktikal dan produktif: berkebun, yoga, memasak. Saya perlu mempunyai alasan untuk melakukannya (saya mahu sayur-sayuran bebas, punggung saya sakit, saya lapar). Sekiranya anda seperti saya, anda perlu mencari lobak merah untuk memastikan anda terus berjalan.
Luangkan sedikit masa untuk memikirkan perkara ini, apa sebenarnya yang ingin anda capai dengan menyelesaikan freeCodeCamp? Apa yang anda mahu ubah atau dapatkan dalam kehidupan peribadi anda melaluinya?
Kurikulum + Sumber tambahan
Berikut adalah beberapa sumber tambahan yang saya gunakan dalam perjalanan freeCodeCamp saya. Ingatlah bahawa ini bukan senarai lengkap kerana saya melakukan banyak Googling, dan beberapa kursus ini tidak percuma.
Reka Bentuk Web Responsif: Ini adalah bahagian yang pernah saya alami, jadi senang dan menyeronokkan. Saya menggunakan beberapa sumber tambahan, terutamanya untuk Flexbox. Tempat kegemaran saya untuk ini adalah Internet sukar.
Algoritma JavaScript dan struktur Data: Setelah saya memasuki modul JavaScript, saya terpikat. Segala-galanya sangat menyeronokkan, saya belajar banyak dan saya sangat ingin menerapkannya.
Untuk bahagian ini saya sering menggunakan buku. Saya sudah cukup melakukan latihan dengan freeCodeCamp, tetapi saya memerlukan lebih banyak kaedah penjelasan. Permulaan JS mempunyai banyak latihan juga.
- Permulaan edisi ke-5 JavaScript
- Anda Tidak Tahu JS
- Pengaturcaraan Yayasan dengan JavaScript, HTML dan CSS
- Dokumentasi JavaScript
Pada masa saya mencapai bahagian ini, saya juga menyertai program Summer of Code 1 juta Women to Tech's (1MWTT). Saya belajar Python asas dan JavaScript asas hingga lanjutan yang banyak membantu, terutamanya dengan Janji.
Belajar Python juga membantu saya mengukuhkan beberapa konsep pengaturcaraan asas. Saya sangat mengesyorkan agar apabila anda yakin dengan JavaScript, anda mencuba bahasa baru, hanya konsep asasnya. Anda akan menjadi lebih selesa selepas itu setelah mengetahui cara melakukan perkara yang sama dengan alat yang berbeza.
Kerangka JavaScript: Bahagian ini juga hebat kerana memberi saya asas dalam React dan Redux. Saya telah mengikuti kursus React on Udemy, React 16.6 - Panduan Lengkap (termasuk React Router & Redux).
Saya sangat mengesyorkan kursus ini dan yang lain oleh pengarang yang sama. Dia sangat teliti dan penjelasannya sangat mengagumkan. Ini adalah salah satu dari beberapa kursus Udemy di mana saya benar-benar mengikuti projek yang dibuatnya: Saya biasanya menonton video dan menerapkan prinsip-prinsip untuk apa sahaja yang saya kerjakan.
Pada 1jutawomentotech, kami mempunyai minggu React yang kebanyakannya asli React dan kemudian saya mula bermain dengannya. Pada masa itu saya juga mula mengerjakan projek sampingan dengan suami saya, yang kami putuskan akan menjadi PWA dengan React.
Saya tidak dapat menekankan betapa pentingnya membina sesuatu dari awal. Saya telah belajar lebih banyak dalam beberapa minggu untuk membina aplikasi kami daripada yang saya pelajari dengan kursus atau tutorial apa pun.
API dan Perkhidmatan Mikro: Bahagian ini merupakan wahyu besar bagi saya dan mengubah segalanya. Sehingga modul itu saya pasti mahu menjadi pembangun depan, tetapi setelah belajar Node.js saya mula berfikir untuk menjadi pembangun back-end atau Full Stack. Membina API sangat menyeronokkan dan anda melihat hasilnya dengan cepat. Saya mula membina projek Full Stack kecil pertama saya dan saya sangat teruja.
Beberapa sumber yang saya gunakan:
- Kursus Pembangun Node.js Lengkap (Edisi ke-2)
- Node Girls Intro to Backend Development with Express
- Dokumen Node
- Dokumen Ekspres
- NodeSchool
- Pengenalan kepada Node.js
- REST & Reka Bentuk API GraphQL di Node.js, v2 (menggunakan Express & MongoDB)
Selama ini saya juga menjadi sukarelawan untuk "1MWTT" dan saya diminta untuk membuat aplikasi Probot untuk sukarelawan on-board dengan Node. Ini juga memberi saya latihan dengan Node, yang sangat menyeronokkan.
QA dan Keselamatan Maklumat: Modul ini juga membuka mata. Sehingga saya tidak pernah menulis satu ujian dalam hidup saya. Sekarang saya gemar menulis ujian, dan saya sangat berminat dengan Uji Coba Berdasarkan Pembangunan.
Saya kebanyakan menggunakan dokumen untuk bahagian ini tetapi kemudian saya memutuskan untuk menguji bahagian depan saya juga, dan saya dapati kursus Udemy yang menakjubkan ini yang tidak dapat saya cadangkan. Pengajar adalah pengajar terbaik yang pernah saya lihat di Udemy. Saya tidak sabar untuk mengikuti kursus lain yang akan dikeluarkannya pada masa akan datang.
- Dokumen Chai
- Ujian Reaksi dengan Jest dan Enzim
Visualisasi Data dengan D3: Ini adalah sijil paling sukar, tangan ke bawah. Penjelasannya bagus, tetapi setelah anda sampai ke projek, anda akan mengetahui bahawa cabarannya hanya merangkumi projek pertama, dan anda sendiri yang selebihnya. Dan tidak ada banyak sumber dalam talian. Saya terutamanya membaca dokumen dan menggunakan tutorial. Berikut adalah sumber yang akhirnya berjaya melalui pensijilan ini:
- Tutorial D3.js oleh d3Vienno
- Dokumentasi D3
Petua untuk menyelesaikan kurikulum
Kesimpulannya, ini adalah perkara-perkara yang paling membantu saya dalam mencapai matlamat saya untuk menyelesaikan kurikulum:
- Gunakan kurikulum sebagai peta jalan, tetapi tambah dengan sumber lain
- Jangan terjebak lama: tanya soalan, Google, pasangkan program.
- Tetapkan matlamat yang realistik untuk setiap hari dan minggu. Jangan mengalahkan diri sendiri sekiranya satu minggu anda lebih perlahan: hidup berlaku. Jangan biarkan ia membuang anda.
- Ingatlah motivasi anda: inilah yang akan mendorong anda melalui hari-hari yang sukar.
- Utamakan: anda harus mengurangkan masa yang anda habiskan untuk melakukan perkara lain.
- Jangan lupa cuti. Mereka sangat penting untuk proses pembelajaran. Dan cukup tidur!
Selepas freeCodeCamp, saya berasa sedikit hilang. Ini adalah peta jalan yang membimbing saya melalui perjalanan saya dari guru ke pemaju.
Setelah beberapa hari merenung dan merancang, saya mengabdikan diri untuk projek sampingan saya yang sedang saya bina bersama suami. Kami belajar dan bersenang-senang, dan kami sangat gembira mengenainya.
Dan ya, saya mendapat tawaran kerja sebaik sahaja menyelesaikan kurikulum , tetapi lebih banyak lagi mengenai artikel yang akan datang.
Secara keseluruhannya, saya tidak dapat mempelajari semua yang saya pelajari dengan begitu cepat sekiranya bukan percumaCodeCamp dan saya sangat berterima kasih kepada semua orang yang membuat projek yang begitu indah itu dapat dilaksanakan.
Sekiranya anda merasakan perkara yang sama dan dapat memberi balik, pertimbangkan untuk menyumbang kepada freeCodeCamp di sini.