Adik-adik yang berminat nak jadi Software Developer, kos yang korang perlu ambil di universiti adalah Software Engineering.

Tapi sebelum buat keputusan untuk ambil kos ni, mohon baca bebenang ini sampai habis dulu. Ada beberapa benda yg aku rasa korang perlu tahu.

[Bebenang 🧶] https://twitter.com/chiccbi/status/1390154998856650754
Software Engineering (SE) adalah salah satu cabang daripada Computer Science. Korang akan grad sebagai Bachelor of Computer Science (Software Engineering).

Di kebanyakan uni, SE terletak di bawah Fakulti Sains Komputer & Teknologi Maklumat (FSKTM), bukan Fakulti Kejuruteraan ye.
Di bawah Computer Science ni ada banyak cabang:

- Software Engineering
- Artificial Intelligence
- Data Science
- Multimedia
- Network
- Information Systems
- dll.

Walaupun korang ambil kos selain SE, korang masih boleh ceburi kerjaya sebagai Software Engineer. Tiada masalah.
Cumanya kos SE ni memang "tailored" secara spesifik untuk mereka yang bebetul nak jadi Software Engineer. Dalam kos ni biasanya ada subjek-subjek yang korang tak dapat dalam kos lain.

Tapi lain universiti, lain silibus – yang ini korang kena tengok stuktur kos kat universiti tu.
Software Engineer ni pun ada banyak jenis juga – ada Developer/Programmer, ada Requirements Engineer, Architect dan macam-macam lagi. Kalau tanya aku, aku Full Stack Developer.

Full Stack ini seorang developer yang lengkap, maksudnya dia boleh buat software dari awal ke akhir.
Nak cerita tentang kerjaya Full Stack Developer ni panjang berjela. Kalau korang berminat nak tahu lebih lanjut korang boleh folo aku ⁽ˢʰᵃᵐᵉˡᵉˢˢ ᵖˡᵘᵍ ᵏᵃʰᵏᵃʰ⁾. Nanti ada masa aku kongsi lebih lanjut pasal ni.

Btw aku ada tulis ebook #KitabFullStack kalau korang …
… nak belajar programming dari awal. Dalam ebook ni aku tulis benda-benda penting untuk korang get started nak jadi seorang Software Developer. Daripada teori asas kepada HTML, CSS, SQL, PHP & tutorial Git.

Buku ni aku tulis dalam bahasa yang saaangat mudah untuk difahami 👇🏻
Korang boleh dapatkan #KitabFullStack dari http://www.kitabfullstack.dev . Jangan lupa guna kod promo 'CODENEWBIES', ada diskaun 34% tau! Sebelum masuk universiti tu korang boleh la baca dan praktikkan buku ni dulu.

OK selesai dah mukadimah. Sekarang jom kita ke point pertama.
1. BELAJAR APA DALAM SE?

Kos ini belajar segala-galanya berkaitan software — dari programming, modelling, architecture, algorithm, data structure, maintenance, evolution, real-time systems, project management, documentation, requirements engineering, UI/UX, CBSE, …
… software testing, database dan lain-lain lagi. Tapi macam aku cakap lah, silibus kat setiap universiti tak sama.

Masa korang belajar benda-benda ni dalam kelas, korang mungkin akan terdetik rasa "kenapa aku kena belajar benda ni?", "penting ke semua ni?".
Bagi aku semua ni penting. Sebab tu aku masih simpan semua lecture notes dari tahun pertama sampai akhir. Bila dah bertahun tinggal universiti, kita akan lupa-lupa dan adakalanya kita perlu rujuk kembali semua tu nanti.

Mind you, lecture notes ni biasanya tak berapa terperinci.
Tapi maklumat dalam nota-nota tu boleh jadi pointer berharga untuk kita rujuk sumber-sumber lain (seperti buku & Internet) untuk dapatkan perincian lebih lanjut tentang sesuatu perkara.

Jadi aku pesan kat korang, organise semua lecture notes tu elok-elok. Mulakannya dari awal.
2. SUSAH TAK BELAJAR SE?

Belajar apa pun susah bro. SE tak terlepas juga dari kesusahan tersebut. Stres! Sebab ada sesetengah benda kita tak boleh nak gambarkan atau faham on the spot apabila pensyarah sedang mengajar.

Teori-teori software ni kadang kita susah nak visualise.
Most theories you learn are applied to programming. Jadi kalau korang benci programming, lupakan je la haha.

Kadang kita susah nak faham sesuatu teori tu selagi kita belum apply dalam software sebenar. Sebabtu aku selalu cakap, kalau nak terer software ni kau kena bina sesuatu.
Nak jadi seorang developer, kau wajib terer programming. Semua teori yang kau belajar dalam kelas itu akan mengkukuhkan lagi cara kau menulis kod secara amnya.

Kalau rasa nak hadap satu file programming esaimen pun dah azab, bayangkanlah developer sebenar hadap ribuan baris …
… kod setiap hari.

Itu belum lagi hadap kod tak efisyen (lembab), bugs dan change requests (CR) yang merepek-repek. Nak kena refactor semula kod tersebut dan buat regression testing (selalunya software testers buat). Kerja mudah boleh jadi kompleks; kerja sehari jadi berminggu.
Kalau kau tak minat benda-benda ni dan kau masuk sebab trend atau hype pasal gaji je, percayalah hari-hari kau akan stres. Di tengah-tengah jalan kau akan mula fikir "apa aku buat ni?" dan "apa aku nak buat lepas grad nanti?".

Sepatutnya kau dah kena ada halatuju yang jelas!
3. FOKUS CGPA ATAU KEMAHIRAN (SKILLS)?

In case kalau korang tak tahu, bidang ni memang sangat biased kepada kemahiran. Ada orang hanya fokus nak score exam saja, tapi kemahiran langsung takde. Buat macamni, lepas grad nanti biasanya kena mula balik dari zero.
Aku nak bagitahu kau, kalau pandai atas kertas tak semestinya pandai develop software sebenar. Begitu juga orang yang terer develop software tak semestinya pandai atas kertas.

Aku nampak exam dan actual software development ni seperti dua kutub yang berbeza. Dia tak sama.
Sebaiknya dalam bidang ni korang guna dua pendekatan ini je:

- pastikan pointer dan kemahiran bergerak seiring, atau;
- lebihkan sikit fokus korang pada kemahiran.

Aku tahu yang kedua tu bunyinya agak melawan arus tapi itulah realiti industri ni. Kalau boleh buat yang pertama.
Kalau kau nak lebihkan kemahiran berbanding pointer, pastikan kau boleh showcase kemahiran kau tu. Buat freelance dan projek tepi yang berkualiti, himpun dalam satu portfolio.

Pada masa sama, kau jangan pula biar pointer teruk sangat. Sebab pointer ni impression.. kena jaga!
Portfolio adalah experience – bila kau grad dengan experience macamni, starting kau awal lagi inshaAllah lumayan.

Kalau rasa tak mampu nak buat macamtu, pilih jalan selamat je – iaitu fokus dekan setiap sem, hold dulu asah skills. Dah kerja nanti pastikan kau bebetul perform.
Graduan bidang CSIT saban tahun semakin ramai ya. So you need to do something to distinguish yourself from the others. This means having an outstanding portfolio and vast experiences right before you graduated.

Aku pernah kongsi dah macamana nak buat, korang boleh baca kat sini: https://twitter.com/omarqe/status/1279303273904844807
4. SKILLS APA LAGI YANG PENTING?

Selain programming, skills lain yang korang kena kuasai adalah self-learning dan adaptability. Korang pun tahu yang industri IT ni berkembang dengan tersangat cepat. Jadi, akan ada masa-masa tertentu korang kena adopt teknologi baru.
Contohnya, katakanlah korang belajar Java je di universiti, tapi language yang trending dan banyak demand sekarang adalah JavaScript. Jadi, korang kena adopt JavaScript tu cepat.

Selalunya nak adopt benda baru ni takde siapa ajar, maka korang kena cari inisiatif belajar sendiri.
Sepatutnya korang dah kena ajar diri korang untuk explore sendiri dunia software development ni sejak dari zaman belajar lagi. Jangan bergantung kepada pensyarah dan kawan-kawan sangat.

Dah kerja nanti memang kena berdikari cari ilmu. Oh ya bidang ini lifelong learning ya!
Korang jangan terkejut kalau tengok developer profesional boleh belajar language baru dalam masa 2-3 minggu je dah boleh develop sistem. Korang pun boleh buat benda ni dengan syarat fundamental kena kuat.

Language macam C++, Java dan PHP sangat bagus untuk kukuhkan fundamental. https://twitter.com/omarqe/status/1243768825733984258
Sebab kebanyakan programming languages ni lebih kurang je paradigm dia, cuma sintaks dan environment je berbeza. Takpe kalau korang tak faham ayat ni, bila dah belajar banyak language nanti korang akan faham.

Cara belajar yang bagus adalah belajar satu language, kemudian …
… develop sesuatu dengan language tu. Ambil masa setahun dua untuk mahirkan diri dengan language tu. Kemudian bila dah boring atau memerlukan language baru, baru kau adopt language baru tu.

Kau tak perlu pulun belajar semua languages hanya sebab nak nampak 'cool' dalam resumé.
Kau perlu pengalaman develop sesuatu guna sesuatu language tu, then baru kau boleh mengaku kau terer language tersebut, faham?

Jangan kau sekadar belajar je tapi tak buat pape. Kalau buat macamni, tunggulah 6 bulan kau tinggal language tu, kau akan lupa semua. Merugikan masa je.
5. BETUL KE PENDAPATAN LUMAYAN?

Ya dan tidak. Bergantung kepada diri sendiri juga sebenarnya. Kalau tersangat perform memang orang sanggup bayar mahal. Kalau kau biasa-biasa je maka biasa-biasa je lah.
Cuma kau jangan masuk bidang ni sebab nak kejar gaji mahal, mungkin kau hanya dapat stres je. Kau masuklah sebab minat (passion), nanti gaji yang akan kejar kau.

Kau tahu tak, dalam dunia ni, kalau kau passionate dalam apa jua bidang pun kau akan cemerlang gila dalam bidang tu.
Sebab tu kau tak boleh ikut-ikut orang, ikut-ikut trend je. Kau sendiri yang kena ada minat dalam bidang tu. Itulah ciri orang-orang berjaya.. acewah 🤣.

Tapi aku bagitahu awal-awal, kerja Software Engineer ni penat dan stres. Penat ni ada dua jenis tau, kalau buat kerja …
… fizikal, kita akan penat badan. Tapi Software Engineer ni kerja pakai otak, jadi kau akan penat otak. Kalau terlalu pressure sangat, akan sampai satu tahap kau burnout 🔥 dan langsung jadi tak produktif.

Satu lagi stres nak menghadap kod. Aku dah cerita sebelum-sebelum ni.
Melayan kerenah manusia amat memenatkan. Bila korang deliver sesuatu software, korang jangan anggap kerja korang habis sampai situ saja. Software ni sentiasa berevolusi, sentiasa ada update.

Cabarannya bila nak deliver CR yang pelik-pelik kat software tu, memang betul letih beb.
Letih otak ni lain macam beb impak dia. Kalau otak letih sangat dia membawa kepada mudarat secara fizikal jugak. Rasa nak tidur sepanjang hari, tak aktif, tak produktif dan tak sihat.

Gaji mahal datang dengan side effect dia juga. Korang boleh baca bebenang aku yang ni: https://twitter.com/omarqe/status/1174534597935157248
So aku cadang developer kena cari hobi lain selain coding. Pergi la angkat besi ke, basikal ke, jogging ke, shopping ke.. apa-apa jelah yang berfaedah. Yang penting kena riadah juga bagi badan aktif dan berpeluh.

Banyak lagi la side effects yang kita kena fikir.
Aku rasa setakat itu jelah yang aku nak kongsi. Kalau korang ada apa-apa soalan, feel free to reply or DM. InshaAllah aku akan cuba jawab soalan korang.

Ada banyak lagi bebenang yang aku tulis pasal CSIT ni, kalau rasa nak baca dan cari inspirasi baru, baca kat sini: https://twitter.com/omarqe/status/1155346037013221377
Kalau korang rasa bebenang ni bermanfaat, tolong RT dan like banyak-banyak! Jangan lupa juga kongsi bebenang ni kat kawan-kawan, adik-adik, sedara-mara korang yang tengah fikir nak lompat ke bidang IT ni ha.

Manalah tahu diorang lebih bersemangat lepas baca hoho.
Akhir sekali, klik la button Follow kat profile aku tu. Percuma je bukan kena bayar pun hahaha 🤣.
You can follow @omarqe.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: