Software Engineering Career Hub

Halo, selamat datang di penerbangan mengarungi waktu bersama RevoU! ๐Ÿ‘‹

Di perjalanan ini, kita akan mengunjungi beberapa tempat di mana kamu akan belajar lebih dalam tentang Software Engineering.

Eits, sebentar!

Nyalain musiknya deh biar perjalanan kita makin seru!

Sound udah on? Yuk, meluncur! ๐Ÿš€

Apa itu Software Engineering?

Sambil menuju ke tempat pertama, kamu perlu tau tentang fundamental Software Engineering dulu nih.

Apa itu Software Engineering?

Software Engineering (Perancangan dan Rekayasa Perangkat Lunak) adalah sebuah proses menganalisis kebutuhan user, mendesain, developing, deploying, dan testing aplikasi software yang akan memenuhi kebutuhan user menggunakan bahasa pemrograman.

Gak cuma sampai launching aja, loh!

Tapi, seorang Software Engineer juga perlu untuk merawat (maintenance) software tersebut supaya bisa terus dikembangkan secara tepat dan konsisten, sesuai budget dan kebutuhan.

Karena sebuah software dinilai berdasarkan kemudahan dan manfaat saat dipakai oleh user, maka seorang Software Engineer harus memperhatikan aspek-aspek ini:

  • Operational, seberapa baik performa dan fungsional dari sebuah software
  • Transitional, kemampuan adaptasi software saat aplikasi dipindahkan ke platform lain
  • Maintenance, kemampuan fleksibilitas software khususnya pada bagian-bagian yang perlu dirawat.

Mengapa Software Engineering?

Software Engineering sangat penting karena dibutuhkan di seluruh sistem software.

Tentunya, di era digitalisasi ini, software dibutuhkan oleh hampir semua industri dan di setiap fungsi/departemen!

Melalui software-nya, Software Engineering dapat meningkatkan user experience, dan memberikan inovasi produk dan/atau fitur kepada user.

Bahkan, bisa mengintegrasi data-data secara online! ๐Ÿ’ป

Gak cuma menghemat tempat aja, tapi juga bisa meningkatkan efisiensi performa perusahaan karena mudah diakses.

Peluang Kerja Software Engineering di Indonesia

Di RevoU Full Stack Software Engineering, kamu akan dipersiapkan secara fundamental dan skill supaya kamu bisa menjalankan misi sebagai Software Engineer di berbagai perusahaan di Indonesia! ๐Ÿ‡ฎ๐Ÿ‡ฉ

Ada berapa banyak sih perusahaan yang butuh bantuan kamu?

Cek di bawah ini, ya!

Jobstreet - 897 lowongan kerja (cek di sini)

Glassdoor - 1.781 lowongan kerja (cek di sini)

Indeed - 1.341 lowongan kerja (cek di sini)

Kalibrr - 593 lowongan kerja (cek di sini)

LinkedIn - 2.889 lowongan kerja (cek di sini)

Glints - 5.866 lowongan kerja (cek di sini)

Catatan: Data diambil pada 4 November 2022

Job Title, Description & Jenjang Karir Software Engineering

Nah, kita udah sampai di destinasi pertama.

Di ruangan ini, kamu bisa liat beberapa group karir di Software Engineering yang tampak gagah ๐Ÿ’ช dan bersinar! ๐ŸŒŸ

Biasanya, pas kamu baru memulai karir di Software Engineering, kamu bisa mulai dari group Generic dan Product. Kayak gini!

Generic

  • ๐Ÿง‘โ€๐Ÿ’ป Developer
    Developer bertanggung jawab untuk menulis, manage, dan debug code di program komputer.

    Biasanya, Developer punya spesialisasi di bahasa pemrograman tertentu.

    Developer juga mengatur kegiatan lain yang berhubungan dengan software creation, modification and management, seperti dokumentasi, database, dan user experience, loh!
  • โŽ” Software Developer
    Software Developer lebih fokus kepada pembuatan software untuk operating system, network, atau platform.
  • ๐Ÿค– Programmer
    Dibandingkan Developer, Programmer lebih dilibatkan pada in-depth work dalam pemrograman dan membutuhkan kemampuan teknikal.
  • ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Software Engineer
    Software Engineer bertanggung jawab untuk mendesain, mengoptimasi, dan melakukan maintenance terhadap software system.

    Selain itu, Software Engineer juga berkonsultasi ke client dan stakeholders lainnya dalam pembuatan software.
  • ไทด Software Development Engineer
    Software Development Engineer bertanggung jawab dalam mendesain serta develop software system dan aplikasi berdasarkan kebutuhan bisnis/client.

    Software Development Engineer mengelola operating system dan menganalisis network code untuk menjaga fungsional aplikasi software.

    Mereka juga melakukan diagnostic test dan troubleshoot untuk menjaga agar software berjalan dengan baik, loh!

Product

  • ๐Ÿ“ฑ Product Engineer
    Product Engineer mengelola, mendesain, menguji dan mengevaluasi suatu produk hingga dipasarkan ke user.

    Biasanya, Product Engineer juga akan berkolaborasi dengan tim development untuk merancang pengembangan produk.
  • โš™๏ธ Full Stack Engineer
    Full Stack Engineer adalah high-level Software Engineer yang mendesain, menguji, dan mengimplementasi aplikasi software.

    Full Stack Engineer terlibat from end to end software development. Baik dari architecture design, performance evaluation, code review, hingga internal tool management.
  • ๐Ÿ›  Backend Engineer
    Backend Engineer bertanggung jawab dalam mendesain, membentuk, hingga merawat server dari sebuah software.

    Bisa dibilang, Backend Engineer ini membuat struktur/fondasi dari sebuah aplikasi software.

    Oleh karena itu, Backend Engineer perlu menuliskan logika bisnis, script server, dan API yang akan digunakan oleh developer lain dalam team.
  • โœจ Frontend Engineer
    Frontend Engineer fokus untuk mendesain aplikasi/website menjadi user-friendly dan fungsional.

    Ini dilakukan dengan cara memberikan fitur-fitur yang menarik! Misalnya, animasi, text box, games, forum, dan navigasi yang mudah.

    Dalam melakukan tugasnya, Frontend Engineer harus bisa menganalisis audience dan membuat spesifikasi desain yang sesuai dengan audience.

    Selain itu, mereka juga berkolaborasi dengan Backend Engineer dalam pemrosesan data.
  • ๐ŸŒ Web Developer
    Web Developer bertugas untuk mendesain, membuat, dan merawat website sehingga dapat menyediakan service yang user-friendly.
  • ๐Ÿ“ฒ Application Engineer
    Application Engineer akan menguji aplikasi, mengevaluasi pengujian, dan menindaklanjuti feedback dari user.

    Meskipun Application Engineer tidak terjun langsung dalam pembuatan software, tapi tentunya tetap harus memahami tentang penulisan source code untuk meningkatkan performa aplikasi yang dikembangkan!

Kalau kamu berkarir di Software Engineering, berikut kurang lebih potensi pergerakan karirmu:

Tokoh Software Engineering

Setelah menjelajahi karir di Software Engineering, tibalah kita di destinasi kedua.

Di sini, kamu akan mengenal lebih dekat para super hero di dunia Software Engineering. ๐Ÿฆธโ€โ™‚๏ธ

Kayaknya, kalau gak ada mereka... Software Engineering gak bisa kayak saat ini, deh! ๐Ÿ‘ฝ

#1 Linus Torvalds - Creator of Linux

Linus Torvalds, seorang Software Engineer asal Finlandia yang dikenal sebagai Creator of Linux!

Pas Linus masih jadi mahasiswa di tahun 1991, ia membagi-bagikan source code Linux seukuran disket via internet.

Siapa sangka, sekarang Linux bisa jadi sebuah bisnis bernilai miliaran dolar yang bisa dipakai di PC, tablet, ponsel, GPS, robot, mobil, sampai pesawat ulang alik buatan NASA!

#2 Tim Berners-Lee - Inventor of the World Wide Web

Kamu pasti udah familiar sama WWW yang biasanya diketik di browser, kan?

Nah, Tim Berners-Lee (TimBL atau TBL) inilah penemunya! Ia juga adalah ketua World Wide Web Consortium yang mengatur perkembangan World Wide Web (WWW).

Sebelum membuat WWW, TimBL sempat menciptakan prototype bernama Enquire pada tahun 1980. Lalu, pada tahun 1984, ia menggunakan ide yang mirip dengan Enquire untuk menciptakan WWW, web browser pertama di dunia!

#3 Guido van Rossum - Founder of Python

Guido van Rossum adalah programmer asal Belanda yang menciptakan bahasa pemrograman Python.

Uniknya, nama Python diambil dari seri TV komedi BBC bernama "Monty Python's Flying Circus" dan diciptakan karena "iseng", loh!

Gini, ceritanya.. di Desember 1989, Van Rossum lagi cari-cari project supaya ia sibuk selama liburan natal pas kantornya tutup.

Akhirnya, ia membuat sebuah interpreter untuk bahasa scripting baru dan berusaha memikat para pegiat Unix/C. Lalu, terciptalah Python yang terinspirasi oleh SETL!

#4 Brendan Eich - Founder of JavaScript

Brendan Eich adalah computer programmer asal Amerika. Ia menciptakan bahasa pemrograman JavaScript dan Co-Founder Mozilla project.

Pas Eich masih bekerja di Netscape pada tahun 1995, Eich membuat bahasa pemrograman dengan fungsi seperti Scheme, object-orientation seperti Self, dan syntax seperti Java.

Dalam 10 hari, ia berhasil beta release bahasa pemrograman tersebut dengan nama Mocha, kemudian diganti menjadi LiveScript. Lalu, pada Desember 1995 diganti lagi menjadi JavaScript setelah joint dengan Sun Microsystems.

#5 Yukihiro Matsumoto - Founder of Ruby

Yukihiro Matsumoto (lebih akrab dipanggil Matz), seorang Computer Scientist dan Software Programmer asal Jepang yang menciptakan bahasa pemrograman Ruby.

Menariknya, komunitas Ruby ini punya motto, loh!

"Matz is nice and so we are nice," atau disingkat MINASWAN!

#6 Anders Hejlsberg - Lead Architect of C#, Core Developer on TypeScript, Creator of Delphi and Turbo Pascal

Anders Hejlsberg adalah seorang Software Engineer asal Denmark. Saat ini, ia bekerja di Microsoft sebagai Lead Architect of C# dan Core Developer dari TypeScript.

Selain itu, ia juga membuat Turbo Pascal pada tahun 1980 saat ia masih menjadi mahasiswa Teknik Elektro.

Gaji Software Engineer

Kita udah hampir di penghujung perjalanan kita...

Inilah beberapa pintu karir industri yang bisa kamu pilih kalau kamu mau berkarir sebagai Software Engineer!

Di sini ada retail, entertainment, information technology, bank, dan healthcare. Tentunya, masih ada ruangan-ruangan industri lainnya yang bisa kamu explore sesuai minat kamu! ๐Ÿ’œ

Yuk, kita coba masuk dan liat ada petualangan seru kayak apa sih? ๐Ÿ˜ฒ

Yak! Di dalamnya, kamu bisa melihat nominal-nominal gaji Software Engineer dari Glassdoor!

Rata-rata gaji pokok Software Engineer di Jakarta, Indonesia adalah IDR 8,540,178/bulan. ๐Ÿ’ธ

Perbedaan industri, lokasi perusahaan, dan posisi akan membuat gaji yang didapat juga berbeda-beda.

So, kamu bisa coba riset dulu, ya sebelum negosiasi gaji!

Kamu bisa pakai referensi tabel gaji Software Engineer di bawah ini juga, loh.

Skill Technical & Behavioral

Eits, sebelum tergiur sama gajinya, kamu harus kuasain technical and behavioral skills ini untuk jadi Software Engineer! ๐Ÿ’ช

#1 Technical Skill

  1. Memahami tipe data, struktur data, dan algoritma. Termasuk objects, arrays, dan lainnya. Ini akan membantumu dalam problem-solving dan optimasi produk untuk user experience yang lebih baik.
  2. Menguasai bahasa pemrograman, minimal 1-2 bahasa pemrograman, disesuaikan dengan software yang mau kamu buat atau industri tempat kamu bekerja.

    Di RevoU, kamu akan belajar bahasa pemrograman JavaScript dan TypeScript yang hampir dapat digunakan di manapun. Dengan HTML dan CSS sebagai bahasa pendukung untuk mengimplementasikan frontend.
  3. Memahami penggunaan dasar Operating Systems (OS), seperti Windows, Mac, dan Linux serta Android dan iOS. Karena dalam membuat software, kamu akan bergantung pada OS tertentu.
  4. Memahami database dan berbagai konsepnya. Database Management System (DBMS) yang kamu bisa pakai selama belajar di RevoU adalah SQLite, MySQL, PostgreSQL, atau MongoDB.

    Serta berbagai konsep seperti DBMS, ACID, SQL, NoSQL, Object Relational Mapping (ORM). Lalu untuk ORM dengan Prisma, Sequelize, TypeORM, atau Mongoose.
  5. Memahami networking serta menguasai encryption dan authentication/authorization. Sebagai Software Engineer, kamu harus bisa menghubungkan antara client dan server pada software. Tentunya ini juga harus dibarengi dengan sistem keamanan yang baik.
  6. Mampu melakukan unit, integration, functional, dan end-to-end testing. Selain testing, kamu juga harus dapat menemukan masalah/bugs dan kelemahan software tersebut, serta menyelesaikan permasalahan pada software.
  7. Memahami project/product management serta Software Development Life Cycle (SDLC), agar dapat membuat software sesuai dengan kebutuhan user/customer.

#2 Behavioral Skill

Selain technical skills, kamu juga perlu behavioral skills! Apa aja tuh?

  1. Komunikasi yang baik, supaya bisa bekerja secara efektif dengan tim lain. Kamu harus punya skill membaca, menulis, dan berbicara yang oke!
  2. Mampu bekerjasama dengan orang lain. Sebagai Software Engineer, kamu gak akan kerja sendiri. Tapi, kamu bekerja dalam tim. Bahkan, gak menutup kemungkinan juga bisa berkolaborasi dengan tim di luar Software Engineer.
  3. Attention to detail dalam coding, supaya gak banyak bugs dan sesuai dengan project guidelines!
  4. Memiliki proses logis dalam menyelesaikan masalah. Berpikir terstruktur dalam mendiagnosa dan troubleshoot issues dalam code, serta mendokumentasikan action steps yang kamu lakukan untuk menyelesaikan masalah tersebut.

Sumber Belajar Software Engineering

Supaya bisa semakin mantap skill-nya, kamu bisa belajar lebih dalam dan update tentang Software Engineering dari sumber-sumber ini, loh!

๐Ÿ“ Blog

  1. MDN Web Docs, repositori dokumentasi yang open-source buat para web developer. Paling populer, informatif, dan dikurasi sama banyak developer di seluruh dunia!
  2. Abseil, koleksi C++ libraries yang open-source, bacaan paling fundamental untuk para Software Engineer. Ada buku Software Engineering at Google, yang berisi engineering best practices yang dipakai Google supaya codebasenya sustainable.
  3. A List Apart, bahas topik terkait web content design, khususnya web standards dan best practice.
  4. The Steelkiwi Blog, bahas topik terkait design, development, software support, dan regulasi.
  5. Roadmap.sh, berisi roadmap, guide, dan konten-konten edukatif untuk ngebantu developer di berbagai bidang.
  6. Martin Fowler, bahas software development dan ditulis sama Martin Fowler dan penulis lainnya.
  7. Coding Horror, blog yang ditulis oleh Jeff Atwood dengan cara yang penuh humor dan ringan untuk dibaca setelah kerja.
  8. Joel on Software, fokus pada topik bisnis dan management software.
  9. Daily JS, kasih banyak hands-on tips dan study case, khususnya untuk JavaScript coders.

๐Ÿ“ง Newsletter

  1. Changelog Weekly, info ter-update tentang tech! Dari AI sampai Java, semua tentang tech ada di newsletter ini.
  2. Status Code Newsletter, ada 11 newsletter sesuai niche yang mau kamu dalami. JavaScript, Frontend, React, Mobile Dev, Database, dan lain-lain!
  3. Github Explore, info ter-update tentang dunia open-source.

๐Ÿ“š Buku

  1. Clean Code by Robert C. Martin, fundamental guidebook untuk menulis code yang lebih clean dan melatih Software Engineer untuk menyadari buggy/sluggish code.
  2. The Clean Coder by Robert C. Martin, mengupas soft skills yang dibutuhin Software Engineer di dunia kerja. kasih tips untuk mengatasi konflik, time management, menghindari burnout.
  3. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, menunjukkan 23 design pattern yang bisa digunakan dalam problem-solving. Ditambah ada contoh implementasinya dalam bahasa C++ dan Smalltalk!
  4. Cracking the Coding Interview by Gayle Laakman McDowell, ngasih bocoran pertanyaan interview Software Engineer dan gimana cara menyelesaikan issue yang mungkin akan dites saat interview.
  5. Code Complete by Steve McConnell, ngajarin cara membuat code yang simple dan efektif, teknik refactoring, debugging, construction, dan development.

๐ŸŽง Podcast

  1. The Changelog, obrolan sama hackers, leaders, dan innovators di bidang software development.
  2. Software Engineering Radio, update 3-4x/bulan, cocok buat kamu yang mau terus up-to-date di dunia software engineering.
  3. Software Engineering Unlocked, obrolan tentang software engineering best practices dan pitfalls bareng leaders di software engineering.

๐ŸŽฌ Youtube

  1. Healthy Software Developer, ngobrolin soal tips healthy lifestyle sebagai Software Engineer. Misalnya tentang fake agile, work-life balance, anxiety, burnout, dan lain-lain.
  2. Keep on Coding, ngasih tutorial Java yang gampang, LeetCode, tips interview coding, dan kehidupan sebagai Software Engineer.
  3. Nick White, ngasih tips interview coding dan kolaborasi sama tech content creator lainnya untuk ngajarin kamu supaya bisa improve skill programming. Kombinasi edukasi dan hiburan, deh!
  4. Byte by Byte, cocok banget buat kamu yang lagi cari kerja Software Engineer! Soalnya, kamu bisa dapet cara cari kerja yang lebih strategis, tips persiapan interview coding dan interview system design.

Cara memulai karir di Software Engineering

Selesai sudah perjalanan waktu kita!

Setelah menjelajahi dunia Software Engineering, kalau kamu tertarik untuk belajar, bahkan mau berkarir juga di bidang Software Engineering...

RevoU siap membantumu!

RevoU Full Stack Software Engineering

Program ini cocok buat kamu yang mau memulai karir di Software Engineering, dimana program ini punya Job Guarantee up to 100%!

Dalam 6 bulan intensive course, kamu akan belajar tentang:

Lalu ditambah dengan 3 bulan Career Support dan 1-on-1 coaching untuk membantu kamu memulai karir sebagai Software Engineer!


Nah.. gimana?

Siap jalanin misi sebagai Software Engineer bareng RevoU?

Yuk, daftarkan dirimu di RevoU Full Stack Software Engineering dan cek jadwal course mendatang di sini! ๐Ÿš€