Slide 1

Slide 1 text

STUDENT -> SOFTWARE DEVELOPER

Slide 2

Slide 2 text

WHO AM I? ▸ Azuan @ tokwan ▸ Diploma & degree in UTeM ( BITD ) ▸ Currently working as a software developer in Suria Labs ▸ iOS and Ruby on Rails developer ▸ Sometimes I helped to organise MYCocoaHeads events in KL

Slide 3

Slide 3 text

I HOPE TO MOTIVATE YOU I'm not here to brag

Slide 4

Slide 4 text

WHAT I USED TO DO ▸ Oracle ▸ MySQL ▸ Java SE/EE ▸ SVN WHAT I'M DOING RIGHT NOW ▸ PostgreSQL ▸ Ruby / Rails ▸ Javascript ▸ Objective-C / Swift ▸ Git

Slide 5

Slide 5 text

WHAT DO YOU WANT TO BECOME IN 5 YEARS?

Slide 6

Slide 6 text

SO YOU WANT TO BECOME A DEVELOPER? ▸ Front-end developer ▸ Back-end developer ▸ Mobile developer ▸ Full stack developer ▸ DevOps ▸ Data scientist

Slide 7

Slide 7 text

WHICH LANGUAGE? ▸ Java ▸ Php ▸ Ruby ▸ JavaScript ▸ Python ▸ C++ ▸ Swift ▸ R ▸ C#

Slide 8

Slide 8 text

WHICH FRAMEWORK? ▸ Ruby on Rails ▸ Sinatra ▸ JSF ▸ Grails ▸ Laravel ▸ CodeIgniter ▸ ReactiveCocoa ▸ RxSwift

Slide 9

Slide 9 text

WHAT NOW? ▸ Learn all the things? ▸ Go back home and sleep? ▸ Watch more cat videos? ▸ Watch more 'inspirational videos'? ;)

Slide 10

Slide 10 text

THIS IS MY JOURNEY (SO FAR)

Slide 11

Slide 11 text

DIPLOMA - C++ ▸ Learned C++ in first semester ▸ First impression: Wrote so many lines of 'text', all it showed was "Hello World" ▸ I was not impressed ▸ Joined a few programming contests in 2nd year ▸ Because it looks fun ▸ And money

Slide 12

Slide 12 text

ASK When in doubt

Slide 13

Slide 13 text

DIPLOMA - JAVA ▸ Joined Infosys in 2009 ▸ Learned Java / JSF / Oracle /PL/SQL / HTML / Javascript ▸ Met lots of clever people ▸ Was ranked 33 out of 100 ▸ It was awesome

Slide 14

Slide 14 text

DIPLOMA - JAVA ▸ Back to UTeM ▸ I got bored ▸ Assignments are boring ▸ Projects are boring

Slide 15

Slide 15 text

DIPLOMA - JAVA ▸ Started to use more Java ▸ Build desktop apps, write scripts, websites with Java ▸ Use Java instead of C++ in programming contests ▸ Read about Java API, because it helps A LOT in programming contests ▸ Win == money

Slide 16

Slide 16 text

DIPLOMA ▸ What I told my friends ▸ I'm getting married ▸ An arranged marriage ▸ I'll be gone for a week, which I really did

Slide 17

Slide 17 text

DIPLOMA - OBJECTIVE-C ▸ What I really did ▸ Join MDeC iOS program ▸ Learn iOS in 5 days ▸ No place to stay, sleep at mosque

Slide 18

Slide 18 text

DIPLOMA - OBJECTIVE-C ▸ Learned Objective-C ▸ First impression: It's like C and Java just got married ▸ Chris Hong ▸ MIT graduate ▸ I look up to him ▸ Had more fun building mobile app than web application

Slide 19

Slide 19 text

DIPLOMA ▸ Applied for WWDC scholarship, because it's free anyway ▸ Turns out I got it! ▸ Only cover the ticket though ▸ Couldn't join

Slide 20

Slide 20 text

DIPLOMA - REVIEW ▸ C++ is pretty fast ▸ The syntax is a bit confusing sometimes ▸ Java got lots of cool API ▸ Can build web app too ▸ Oracle is big ▸ You can program in the database too

Slide 21

Slide 21 text

DIPLOMA - REVIEW ▸ Objective-C syntax is a bit hard to understand ▸ But learn it more on free time anyway ▸ Because building mobile apps is fun

Slide 22

Slide 22 text

WHAT I SHOULD DITCH ▸ C++ ▸ Java ▸ Oracle ▸ Objective-C WHAT I SHOULD FOCUS ON

Slide 23

Slide 23 text

DEGREE ▸ Chose BITD ▸ I want to understand more about database ▸ I can learn programming on free time

Slide 24

Slide 24 text

DEGREE ▸ Worked as a part time / freelance programmer ▸ Learned to code Php (without Dreamweaver of course) ▸ Learned about frameworks ▸ CodeIgniter (Php) ▸ JSF (Java)

Slide 25

Slide 25 text

DEGREE ▸ Php was okay ▸ But more interested in Java ▸ Shared the same house with my Infosys Java lecturer ▸ More exposure to Java frameworks, ORM, code debugging and technique

Slide 26

Slide 26 text

DEGREE - ANDROID ▸ Learned to build an Android apps ▸ Using Java ▸ Simulator was so slow I can't even ▸ Everything feels slow ▸ Slow

Slide 27

Slide 27 text

DEGREE - WINDOWS PHONE ▸ Tried building a Windows Phone apps ( a game ) ▸ Was my first hackathon ▸ Learned and build a game with 2 strangers in 3 days ▸ Used VB.NET -> C# ▸ The app performance was really great

Slide 28

Slide 28 text

DEGREE - GIT ▸ Learned about Git ▸ I can commit locally! ▸ With SVN, you need to have a centralised server

Slide 29

Slide 29 text

DEGREE ▸ My housemate got a job with a great salary because he is a certified Java developer ▸ Decided to take it as well ▸ Studied for 1 month ▸ Slept 3-5 hours a day ▸ Never studied for so hard in my whole life ▸ It's because I've paid RM300+ for the exam

Slide 30

Slide 30 text

Had to Photoshop the photo, because I rebond my hair.
 It was hilarious

Slide 31

Slide 31 text

DEGREE ▸ Joined more programming contests ▸ Went to KL to join events ▸ Went by bike at 5pm ▸ Went back to Melaka at 1am ▸ Reason? To be inspired ▸ There are lots of great people out there

Slide 32

Slide 32 text

DEGREE ▸ Java was really fun ▸ Android was not ▸ Windows phone was fun too ▸ Learn Ruby on Rails. Was not so sure what's so great about it ▸ I can do web programming, database management ▸ But, I wanted to do iOS

Slide 33

Slide 33 text

DEGREE - BEFORE INTERN ▸ I felt like there were two path ▸ Corporate tech - Java/Oracle ▸ High payment, lots of benefit ▸ More stable ▸ Startup tech - Php/Objective-C ▸ Latest tools and technology ▸ A bit unclear about the path

Slide 34

Slide 34 text

MAYBE NOT? ▸ SVN ▸ Android ▸ Windows Phone ▸ Java web app ▸ Oracle ▸ PL/SQL ▸ Database management ▸ Git ▸ Php ▸ Ruby on Rails ▸ Objective-C ▸ MySQL MAYBE THIS?

Slide 35

Slide 35 text

DEGREE - INTERN ▸ Join Taxi Monger ▸ As an iOS developer ▸ By coincidence, with help from a lecturer ▸ Impressed with startup ecosystem and community ▸ Worked in a great team

Slide 36

Slide 36 text

WORKING ▸ Tried Ruby on Rails again ▸ I was impressed when I finally understand the flow ▸ Decided not to do Php anymore ▸ Javascript is everywhere, but I don't really get it ▸ I can do it. I just don't really understand the language design

Slide 37

Slide 37 text

WHAT TO FOCUS ON ▸ Objective-C ▸ Ruby on Rails ▸ Probably Javascript somewhere in the future

Slide 38

Slide 38 text

WHERE AM I TODAY ▸ Doing Ruby on Rails on daily basis ▸ Or iOS ▸ Or Javascript ▸ Or maybe ReactNative

Slide 39

Slide 39 text

MINASWAN ▸ "Matz is nice and so we are nice" ▸ Ruby creator

Slide 40

Slide 40 text

ON LEARNING ▸ To learn is the first step ▸ Apply what you've learned ▸ Start exploring ▸ Go one step further ▸ How to go further?

Slide 41

Slide 41 text

IOS ▸ Started with Objective-C ▸ Syntax was confusing at first ▸ Mobile and web application are two different things ▸ Gained more confident when apps was live at the App Store

Slide 42

Slide 42 text

IOS ▸ WWDC 2014 ▸ Apple introduced Swift ▸ Took a gamble and just abandoned Objective-C ▸ Swift improved ▸ 1.0 => 1.1 => 1.2 => 2.0 => 2.1 ▸ It was painful

Slide 43

Slide 43 text

IOS ▸ Subscribed to weekly newsletters, join Slack groups, Facebook groups ▸ Getting better with the syntax ▸ Swift libraries are growing, which is good

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

IOS ▸ So what's next? Learn new programming language? ▸ No, please no

Slide 46

Slide 46 text

IOS ▸ Buy books, watch more advance videos about Swift ▸ Learn how the language itself works ▸ New paradigm: ▸ Functional programming in Swift ▸ Reactive programming in Swift ▸ Reactive functional programming in Swift ▸ Test Driven Development (TDD) in iOS

Slide 47

Slide 47 text

DEGREE IS NOT WORTH IT ANYMORE? ▸ If you only go to classes and do assignments/projects ▸ If you are not growing ▸ If you are not self aware of what you're doing ▸ If you don't spend some time get to know lecturers ▸ Not just the ones that teaches you ▸ There are so much things that you can learn from them

Slide 48

Slide 48 text

SO WHICH LANGUAGE / FRAMEWORK SHOULD I LEARN? ▸ Pick 1-2 as your core and be damn good at it ▸ My case: Ruby/Ruby on Rails and Swift ▸ Why? Because I'm having fun when I code in those languages ▸ Just don't try to learn everything. You can't ▸ I repeat, you CAN'T

Slide 49

Slide 49 text

SO WHICH LANGUAGE / FRAMEWORK SHOULD I LEARN? ▸ It's cool if you know 10 languages ▸ But if you've shipped zero product, none of it matters anyway ▸ Learn new ones too, or at least get to know them a little bit ▸ Because it's fun ▸ Also because it forces you to think differently

Slide 50

Slide 50 text

WHAT ELSE? ▸ Find friends, or create a team ▸ Avoid illusory superiority ▸ Can't find one? Try harder. Internet is huge

Slide 51

Slide 51 text

HAVE FUN Whatever it is,

Slide 52

Slide 52 text

LOOK TO THE MASTER, FOLLOW THE MASTER, WALK WITH THE MASTER, SEE THROUGH THE MASTER, BECOME THE MASTER

Slide 53

Slide 53 text

SLACK ▸ I've created a Slack group for FTMK ▸ Main purpose is to talk about tech, or FTMK in general ▸ Students can get to know each other more too ▸ Why not just use Facebook? Because Slack is more like a chatting room rather than a page ▸ Link to register: https://ftmkroom.herokuapp.com