Upgrade to Pro — share decks privately, control downloads, hide ads and more …

From a student to a developer

alienxp03
November 27, 2015

From a student to a developer

A talk that I gave at FTMK that basically give a general idea about my journey to from a student until I chose to become a software developer.

alienxp03

November 27, 2015
Tweet

More Decks by alienxp03

Other Decks in Education

Transcript

  1. 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
  2. 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
  3. SO YOU WANT TO BECOME A DEVELOPER? ▸ Front-end developer

    ▸ Back-end developer ▸ Mobile developer ▸ Full stack developer ▸ DevOps ▸ Data scientist
  4. WHICH LANGUAGE? ▸ Java ▸ Php ▸ Ruby ▸ JavaScript

    ▸ Python ▸ C++ ▸ Swift ▸ R ▸ C#
  5. WHICH FRAMEWORK? ▸ Ruby on Rails ▸ Sinatra ▸ JSF

    ▸ Grails ▸ Laravel ▸ CodeIgniter ▸ ReactiveCocoa ▸ RxSwift
  6. WHAT NOW? ▸ Learn all the things? ▸ Go back

    home and sleep? ▸ Watch more cat videos? ▸ Watch more 'inspirational videos'? ;)
  7. 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
  8. 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
  9. DIPLOMA - JAVA ▸ Back to UTeM ▸ I got

    bored ▸ Assignments are boring ▸ Projects are boring
  10. 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
  11. DIPLOMA ▸ What I told my friends ▸ I'm getting

    married ▸ An arranged marriage ▸ I'll be gone for a week, which I really did
  12. DIPLOMA - OBJECTIVE-C ▸ What I really did ▸ Join

    MDeC iOS program ▸ Learn iOS in 5 days ▸ No place to stay, sleep at mosque
  13. 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
  14. DIPLOMA ▸ Applied for WWDC scholarship, because it's free anyway

    ▸ Turns out I got it! ▸ Only cover the ticket though ▸ Couldn't join
  15. 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
  16. 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
  17. WHAT I SHOULD DITCH ▸ C++ ▸ Java ▸ Oracle

    ▸ Objective-C WHAT I SHOULD FOCUS ON
  18. DEGREE ▸ Chose BITD ▸ I want to understand more

    about database ▸ I can learn programming on free time
  19. DEGREE ▸ Worked as a part time / freelance programmer

    ▸ Learned to code Php (without Dreamweaver of course) ▸ Learned about frameworks ▸ CodeIgniter (Php) ▸ JSF (Java)
  20. 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
  21. DEGREE - ANDROID ▸ Learned to build an Android apps

    ▸ Using Java ▸ Simulator was so slow I can't even ▸ Everything feels slow ▸ Slow
  22. 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
  23. DEGREE - GIT ▸ Learned about Git ▸ I can

    commit locally! ▸ With SVN, you need to have a centralised server
  24. 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
  25. 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
  26. 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
  27. 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
  28. MAYBE NOT? ▸ SVN ▸ Android ▸ Windows Phone ▸

    Java web app ▸ Oracle ▸ PL/SQL ▸ Database management ▸ Git ▸ Php ▸ Ruby on Rails ▸ Objective-C ▸ MySQL MAYBE THIS?
  29. 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
  30. 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
  31. WHAT TO FOCUS ON ▸ Objective-C ▸ Ruby on Rails

    ▸ Probably Javascript somewhere in the future
  32. WHERE AM I TODAY ▸ Doing Ruby on Rails on

    daily basis ▸ Or iOS ▸ Or Javascript ▸ Or maybe ReactNative
  33. ON LEARNING ▸ To learn is the first step ▸

    Apply what you've learned ▸ Start exploring ▸ Go one step further ▸ How to go further?
  34. 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
  35. 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
  36. IOS ▸ Subscribed to weekly newsletters, join Slack groups, Facebook

    groups ▸ Getting better with the syntax ▸ Swift libraries are growing, which is good
  37. 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
  38. 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
  39. 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
  40. 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
  41. WHAT ELSE? ▸ Find friends, or create a team ▸

    Avoid illusory superiority ▸ Can't find one? Try harder. Internet is huge
  42. LOOK TO THE MASTER, FOLLOW THE MASTER, WALK WITH THE

    MASTER, SEE THROUGH THE MASTER, BECOME THE MASTER
  43. 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