Bagaimana saya menyelesaikan seluruh kurikulum freeCodeCamp dalam 9 bulan sambil bekerja penuh waktu

Selama setahun terakhir, saya menyelesaikan seluruh kurikulum freeCodeCamp sambil bekerja penuh waktu sebagai guru. Dalam artikel ini, saya akan menjelaskan bagaimana saya berhasil melakukan ini. Terutama bagaimana saya mengatur waktu saya dan materi tambahan apa yang saya gunakan.

Latar Belakang

Pertama, cerita belakang. Saya tidak sepenuhnya baru dalam pengkodean. Saya dibesarkan di sebuah perusahaan teknologi kecil.

Ayah saya mendirikan perusahaannya sendiri sebelum saya lahir, di mana mereka melakukan berbagai aktivitas dalam bidang teknologi, seperti memperbaiki komputer, menyiapkan koneksi dan jaringan Internet untuk perusahaan lain, mengajar kursus komputer, dan membuat aplikasi administratif untuk perusahaan. Itu adalah kota kecil, jadi mereka pada dasarnya adalah "orang-orang teknologi" yang cocok untuk seluruh kota.

Kantor perusahaan ada di rumah kami, jadi saya benar-benar tumbuh di antara komputer dan orang-orang yang menyukainya. Saya mulai bermain-main dengan Visual Basic sebagai seorang anak (salah satu orang di perusahaan mengajari saya cara menggunakannya) dan saya menghabiskan seluruh waktu luang saya online, mengobrol dengan sesama kutu buku.

Ketika saya berusia sekitar 12 tahun, salah satu kutu buku itu mengirimi saya email manual pengembangan web (file .txt besar yang pada dasarnya berhubungan dengan HTML) dan saya menggunakannya untuk membangun situs penggemar saya sendiri. Bahkan memiliki salah satu loket kunjungan yang keren.

Saya menghostingnya di Geocities, mendapat URL singkat gratis, dan mendaftarkannya di Yahoo dan AltaVista (ini adalah yang terbesar saat itu).

Setelah itu, kehidupan terjadi dan saya benar-benar menyerah pada gagasan menjadi programmer, karena keadaan menuntut pendekatan yang lebih “realistis”. Saya tidak akan membahas detailnya sekarang, tetapi pada dasarnya saya harus berhenti belajar dan mendapatkan pekerjaan.

Saya terus menjalani hidup saya. Saya sesekali membangun situs web untuk klien ayah saya, dan kemudian memutuskan untuk mulai mengajar bahasa Inggris, yang merupakan sesuatu yang mudah bagi saya, dan pada dasarnya melupakan semua tentang pengembangan web. Sampai 2016 itu.

Bagaimana saya memutuskan untuk beralih karier

Saya suka mengajar. Itu adalah profesi yang bermanfaat, menarik dan menyenangkan. Tapi ada kekurangannya. Pada awalnya, semuanya terasa seperti tantangan, tetapi setelah bertahun-tahun melakukannya, saya mulai merasa bahwa saya tidak memiliki tujuan. Bahwa saya tidak lagi tumbuh atau belajar.

Saya merasa mandek. Sepertinya pekerjaan saya persis tahun demi tahun yang sama. Saya hanya melakukan gerakan saja. Itu juga tidak menawarkan banyak kesempatan untuk pindah, yang merupakan sesuatu yang menjadi sangat penting bagi saya di kemudian hari.

Pada tahun 2013, saya bertemu suami saya, dan tahun berikutnya kami melakukan perjalanan backpacking selama tiga bulan ke Eropa, yang merupakan posting blog yang sama sekali berbeda, tetapi pada dasarnya anggarannya sangat rendah dan kami memiliki pengalaman yang luar biasa. Kami menyukai Eropa dan kami memutuskan kami akan kembali untuk perjalanan panjang yang lain.

Waktu berlalu, kami melakukan hal-hal lain, dan kemudian saya menemukan Codecademy dan mulai bermain-main dengannya, dan mempermainkan gagasan untuk menjadi pengembang penuh waktu. Saya sudah memiliki pengalaman membangun situs web hanya dengan HTML dan CSS, tetapi tanpa JavaScript. Saya membaca banyak kisah sukses secara online, tetapi saya masih tidak menganggapnya sebagai karier nyata, tidak terlalu lama.

Sementara itu kami sedang merencanakan perjalanan jauh berikutnya, menghemat uang, merencanakan dan sebagainya. Saya semakin sering bekerja sebagai penerjemah lepas, sangat terlibat dengan karier saya, menerjemahkan hal-hal keren seperti novel dan puisi. 2017 datang dan kami pergi ke Eropa lagi kali ini selama dua bulan.

Di sana kami bertemu dengan banyak pengembang. Itu gila. Setiap peselancar sofa yang kami temui sepertinya ada di TI, entah sebagai manajer produk perangkat lunak, pengembang, penguji, dan sebagainya. Mereka semua mendorong kami untuk terjun ke dunia teknologi. Pada saat itu kami telah memutuskan untuk pindah ke Eropa sehingga banyak dari mereka mengatakan kepada kami: “Anda bisa mendapatkan pekerjaan di sini. Pengembang banyak diminati di sini, kami membutuhkan banyak dari mereka. ”

Sebelum perjalanan berakhir, kami membuat keputusan untuk mendaftar untuk sertifikat teknik 2 tahun di universitas teknik yang baru didirikan di dekat kota asal kami. Programnya sebagian besar adalah Java jadi ketika kami kembali, kami memulai kursus Java di Cousera. Modul pertama sebenarnya adalah kursus JavaScript, jadi kami langsung terhubung dengan JavaScript.

Sementara kami belajar JavaScript, kami menunggu awal tahun ajaran pada Maret 2018. Hanya ada 50 tempat untuk Uni, jadi kami menjadi sangat berdedikasi dan belajar sebelumnya. Kami pergi, mengikuti tes, lulus kursus, dan kemudian kami harus menunggu sampai mereka memutuskan. Kami mendapat nilai tertinggi di antara semua kandidat, tetapi nilai itu tidak membuat perbedaan. Tempat akan ditentukan melalui sistem lotere. Suamiku masuk dan aku ditinggalkan.

Dia memutuskan dia lebih suka belajar sendiri, dia tidak tertarik dengan Java lagi karena dia kecanduan JavaScript, jadi kami mulai belajar sendiri.

Kami mulai dengan Codecademy, tetapi itu terlalu mudah bagi kami (kami tidak memiliki akun Premium). Di suatu tempat kita membaca tentang freeCodeCamp. Dan kami memulainya, sangat lambat pada awalnya (sertifikat pertama butuh waktu berbulan-bulan untuk saya dapatkan, memang di tengah-tengah kurikulum diubah dan saya menjatuhkan laptop saya dan harus memperbaikinya). Setelah liburan musim panas berakhir dan saya kembali bekerja penuh waktu, segalanya menjadi sulit.

Bekerja penuh waktu dan melakukan freeCodeCamp dengan kecepatan penuh

Itu tidak mudah, saya tidak akan berbohong. Itu membantu bahwa sebagian besar teman dan kenalan saya tidak tinggal di dekat saya, dan saya tinggal di kota kecil yang tidak menawarkan banyak kesempatan hiburan. Dalam hal ini, pemrograman adalah penyelamat hidup. Aku punya sesuatu yang menyenangkan untuk dilakukan, dan itu membuat ketagihan sehingga aku bisa menghilangkan kebosanan selama berjam-jam dengannya.

Jadi itu sangat membantu ketika berhadapan dengan jumlah jam yang saya habiskan untuk melakukan pekerjaan mental (mengajar dan belajar).

Sertifikat pertama memakan waktu berbulan-bulan, sebagian karena saya menunggu untuk masuk ke Uni dan sebagian lagi karena saya bekerja 10 jam sehari selama 3 bulan pertama tahun ajaran.

Sayangnya, saya tidak bisa begitu saja berhenti dari pekerjaan dan belajar penuh waktu, karena saya harus membayar tagihan, jadi saya harus benar-benar mahir dalam 3 hal:

  1. Manajemen waktu
  2. Disiplin
  3. Organisasi

Manajemen waktu

Saya mulai bekerja jam 7 pagi, jadi saya mulai bangun jam 4:30 hampir setiap hari. Saya memulai hari dengan tantangan freeCodeCamp dan kopi. Kadang-kadang saya juga membaca dari buku atau melakukan tutorial lain, tergantung pada apa yang saya kerjakan saat ini. Saya juga belajar selama istirahat makan siang dan setelah bekerja, tetapi saya menyadari fakta bahwa saya tidak begitu produktif selama seminggu karena pekerjaan. Jadi selama minggu itu saya melakukan sebagian besar tantangan singkat, membaca, dan sebagainya. Dan saya mengerjakan proyek pada akhir pekan, hari libur, dan waktu luang.

Jika saya punya waktu 30 menit, saya akan membaca 30 menit. Jika saya punya 15, saya belajar selama 15 menit. Saya menggunakan setiap waktu luang saya untuk belajar.

Pada hari Minggu, saya akan menyiapkan sebagian besar makanan saya selama seminggu sehingga saya tidak perlu menghabiskan waktu untuk memasak dan saya tidak harus makan makanan yang tidak sehat. Saya juga merencanakan dan mengumpulkan semua yang saya butuhkan untuk bekerja selama seminggu, jadi saya tidak perlu menghabiskan waktu ekstra selain jam kerja normal.

Untungnya setelah Juni, jam kerja saya dikurangi dari 10-12 menjadi 8, jadi sekarang saya bekerja dengan jadwal normal dan di sana saya mulai meningkatkan kecepatan.

Disiplin

Anda harus belajar bahkan pada hari-hari Anda tidak menyukainya. Di sinilah motivasi juga memainkan peran besar, tetapi disiplin itu penting - terutama jika Anda seperti saya dan banyak terganggu dengan media sosial dan video kucing.

Tip terbaik yang bisa saya berikan untuk melawan godaan membaca artikel online adalah: jika Anda memiliki pertanyaan seperti "bagaimana pesawat terbang?" (yang biasanya merupakan jenis pertanyaan yang membuat saya terbawa suasana dan menyedot saya selama 30 menit), tuliskan di suatu tempat dan berjanji pada diri sendiri bahwa Anda dapat membaca semua tentangnya setelah menyelesaikan apa yang Anda lakukan.

99% dari waktu Anda tidak akan peduli lagi, karena pertanyaan-pertanyaan itu muncul begitu saja di otak Anda karena ingin mengalihkan perhatian. Dorong dan Anda akan mengalahkannya.

Aspek lain dari disiplin adalah harus memilih belajar daripada hal-hal lain. Ini bukan bagian yang menyenangkan. Saya harus menyerah pada banyak, banyak hal yang saya nikmati untuk mendukung belajar, dan saya tidak sabar untuk dapat kembali kepada mereka. Saya melakukannya hanya karena saya ingin menjadi pengembang sesegera mungkin (lihat Motivasi di bawah), tetapi bahkan jika Anda tidak terburu-buru seperti saya, Anda mungkin menemukan bahwa Anda menghabiskan banyak waktu untuk melakukan hal-hal itu, bahkan meskipun menyenangkan dan menyenangkan, menyita terlalu banyak waktu Anda.

Anda harus memprioritaskan dan membuat pilihan sulit.

Motivasi

Saya memiliki motivator yang sangat kuat yang menjadi pengembang dan pindah ke Eropa. Ini adalah tujuan saya untuk waktu yang sangat lama dan saya mencapai titik di mana saya menjadi frustrasi karena saya tidak mendapatkannya. Semua teman saya meninggalkan kota, saya hampir tidak punya keluarga di sini, saya merasa terisolasi dan ingin pergi.

Itulah yang mendorong saya. Rasanya seperti api di bawah kakiku, aku merasa tidak punya pilihan. Anda membutuhkan motivasi yang kuat untuk melakukan perubahan radikal. Saya tidak tahu tentang Anda, tapi saya adalah orang yang "jangan perbaiki apa yang tidak rusak", jadi sangat sulit untuk membuat saya melakukan sesuatu hanya demi melakukannya.

Hobi saya semuanya sangat praktis dan produktif: berkebun, yoga, memasak. Saya perlu punya alasan untuk melakukannya (saya ingin sayuran gratis, punggung saya sakit, saya lapar). Jika Anda seperti saya, Anda perlu menemukan wortel untuk membuat Anda terus maju.

Luangkan waktu untuk memikirkan hal ini, apa sebenarnya yang ingin Anda capai dengan menyelesaikan freeCodeCamp? Apa yang ingin Anda ubah atau dapatkan dalam kehidupan pribadi Anda melalui itu?

Kurikulum + Sumber daya tambahan

Berikut ini adalah beberapa sumber daya tambahan yang saya gunakan dalam perjalanan freeCodeCamp saya. Ingatlah ini bukan daftar lengkap karena saya melakukan banyak sekali Google, dan beberapa kursus ini tidak gratis.

Desain Web Responsif: Ini adalah bagian yang sudah pernah saya alami, jadi mudah dan menyenangkan. Saya menggunakan beberapa sumber tambahan, terutama untuk Flexbox. Tempat favorit saya untuk ini adalah Internet itu sulit.

Algoritma JavaScript dan Struktur Data: Setelah saya masuk ke modul JavaScript, saya ketagihan. Semuanya sangat menyenangkan, saya belajar banyak dan sangat ingin mempraktikkannya.

Untuk bagian ini saya kebanyakan menggunakan buku. Saya sudah memiliki cukup latihan dengan freeCodeCamp, tetapi saya membutuhkan lebih banyak penjelasan. JS pemula juga memiliki banyak latihan.

  • Memulai JavaScript edisi ke-5
  • Anda Tidak Tahu JS
  • Dasar Pemrograman dengan JavaScript, HTML dan CSS
  • Dokumentasi JavaScript

Pada saat saya mencapai bagian ini, saya juga bergabung dengan program Summer of Code 1 Million Women to Tech (1MWTT). Saya belajar Python dasar dan JavaScript dasar hingga lanjutan yang sangat membantu, terutama dengan Promises.

Belajar Python juga membantu saya memperkuat beberapa konsep pemrograman dasar. Saya sangat merekomendasikan bahwa ketika Anda merasa percaya diri dengan JavaScript, Anda mencoba bahasa baru, hanya konsep dasarnya. Anda akan merasa lebih nyaman setelahnya setelah mengetahui cara melakukan hal yang sama dengan alat yang berbeda.

Kerangka Kerja JavaScript: Bagian ini juga bagus karena memberi saya dasar di React dan Redux. Saya telah mengikuti kursus React di Udemy, React 16.6 - The Complete Guide (termasuk React Router & Redux).

Saya sangat merekomendasikan kursus ini dan lainnya oleh penulis yang sama. Dia sangat teliti dan penjelasannya luar biasa. Ini adalah salah satu dari sedikit kursus Udemy tempat saya benar-benar mengikuti proyek yang dia buat: Saya biasanya menonton video dan menerapkan prinsip pada apa pun yang saya kerjakan.

Pada 1millionwomentotech kami memiliki minggu React yang sebagian besar adalah React native dan kemudian saya mulai bermain-main dengannya. Pada saat itu saya juga mulai mengerjakan proyek sampingan saya dengan suami saya, yang kami putuskan akan menjadi PWA dengan React.

Saya tidak bisa menekankan betapa pentingnya membangun sesuatu sendiri dari awal. Saya telah belajar jauh lebih banyak dalam beberapa minggu membuat aplikasi kami daripada yang saya pelajari dengan kursus atau tutorial apa pun.

API dan Layanan Mikro: Bagian ini adalah wahyu besar bagi saya dan mengubah segalanya. Sampai modul itu saya yakin saya ingin menjadi pengembang front-end, tetapi setelah mempelajari Node.js saya mulai berpikir untuk menjadi pengembang back-end atau Full Stack. Membangun API sangat menyenangkan dan Anda melihat hasilnya dengan sangat cepat. Saya mulai membangun proyek Full Stack kecil pertama saya dan saya menjadi sangat bersemangat.

Beberapa sumber yang saya gunakan:

  • Kursus Pengembang Node.js Lengkap (Edisi ke-2)
  • Node Girls Pengenalan Pengembangan Backend dengan Express
  • Dokumen Node
  • Dokumen Ekspres
  • NodeSchool
  • Pengantar Node.js
  • REST & GraphQL API Design di Node.js, v2 (menggunakan Express & MongoDB)

Selama waktu ini saya juga menjadi sukarelawan untuk "1MWTT" dan saya diminta untuk membuat aplikasi Probot untuk relawan on-boarding dengan Node. Ini juga memberi saya latihan dengan Node, yang sangat menyenangkan.

Tanya Jawab dan Keamanan Informasi: Modul ini juga membuka mata. Sampai saat itu saya tidak pernah menulis satu tes pun dalam hidup saya. Sekarang saya suka menulis tes, dan saya bahkan menjadi sangat tertarik dengan Test Driven Development.

Saya sebagian besar menggunakan dokumen untuk bagian ini tetapi kemudian saya memutuskan untuk menguji front-end saya juga, dan saya menemukan kursus luar biasa ini di Udemy yang tidak cukup saya rekomendasikan. Instruktur sejauh ini adalah instruktur terbaik yang pernah saya lihat di Udemy. Saya tidak sabar untuk mengkonsumsi kursus lain apa pun yang dia rilis di masa depan.

- Chai docs

- Pengujian Reaksi dengan Jest dan Enzim

Visualisasi Data dengan D3: Ini adalah sertifikat yang paling sulit. Penjelasannya bagus, tetapi begitu Anda sampai ke proyek, Anda menemukan bahwa tantangan hanya mencakup proyek pertama, dan Anda agak sendirian untuk sisanya. Dan tidak banyak sumber daya online yang bagus. Saya terutama membaca dokumen dan menggunakan tutorial. Berikut adalah sumber daya yang akhirnya membuat saya melalui sertifikasi ini:

- D3.js Tutorials oleh d3Vienno

- Dokumentasi D3

Tips untuk menyelesaikan kurikulum

Singkatnya, ini adalah hal-hal yang paling membantu saya dalam mencapai tujuan saya menyelesaikan kurikulum:

  • Gunakan kurikulum sebagai peta jalan, tetapi lengkapi dengan sumber daya lainnya
  • Jangan terjebak terlalu lama: ajukan pertanyaan, Google, program berpasangan.
  • Tetapkan tujuan yang realistis untuk setiap hari dan minggu. Jangan menyalahkan diri sendiri jika satu minggu Anda lebih lambat: hidup terjadi. Jangan biarkan hal itu membuat Anda keluar jalur.
  • Ingatlah motivasi Anda: itulah yang akan mendorong Anda melewati hari-hari sulit.
  • Prioritaskan: Anda harus mengurangi waktu yang Anda habiskan untuk melakukan hal-hal lain.
  • Jangan lupa untuk mengambil cuti. Mereka penting untuk proses pembelajaran. Dan cukup tidur!

Setelah freeCodeCamp, saya merasa sedikit tersesat. Ini adalah peta jalan yang memandu saya melalui perjalanan saya dari guru ke pengembang.

Setelah beberapa hari refleksi dan perencanaan, saya mengabdikan diri pada proyek sampingan yang saya bangun bersama suami. Kami belajar dan bersenang-senang, dan kami sangat senang karenanya.

Dan ya, saya mendapat tawaran pekerjaan tepat setelah menyelesaikan kurikulum , tetapi lebih dari itu di artikel yang akan datang.

Secara keseluruhan, saya tidak dapat mempelajari semua yang telah saya pelajari begitu cepat seandainya tidak ada freeCodeCamp dan saya sangat berterima kasih kepada semua orang yang membuat proyek yang begitu indah menjadi mungkin.

Jika Anda merasakan hal yang sama dan dapat memberi kembali, mohon pertimbangkan untuk menyumbang ke freeCodeCamp di sini.