Slide 1

Slide 1 text

My experiences... Secret to Mastering Any Programming Language 1

Slide 2

Slide 2 text

Michael Cheng Software Engineer, Neo Innovation Inc. http://twitter.com/coderkungfu http://github.com/miccheng http://CoderKungfu.com 2

Slide 3

Slide 3 text

About Me • Self-learned front-end / back-end / iOS developer • Building web apps since 2001 • Started Singapore PHP User Group in 2006 • Co-founded iOS Dev Scout (2012) • Worked in startups: Foound (2010) and mig33 (2012) • Joined Neo Innovation Inc. in March 2014 3

Slide 4

Slide 4 text

Hello world! 1) How do you output stuff on screen? 4

Slide 5

Slide 5 text

Strings, numbers, floats, date, datetime 2) What are the data types available & how to present them? 5

Slide 6

Slide 6 text

Variables, constants, arrays, hashes and variable scope 3) How do u pass data around? When to use which channel? 6

Slide 7

Slide 7 text

Control structures, flow control, if else, switch case 4) How to add artificial intelligence? 7

Slide 8

Slide 8 text

Functions, classes / OOP, server side includes 5) How to not repeat yourself? (too often) 8

Slide 9

Slide 9 text

Specifics… 9 “A string” “Hello, $name” 42 3.146 $variable $obj->variable Klass::$static_var SOME_CONSTANT Klass::SOME_CONST “A string” “Hello #{name}” 42 3.146 local_variable $global_var Klass.class_var SAME_CONSTANT Klass::SOME_CONST

Slide 10

Slide 10 text

Specifics… 10 if($morning == true){ echo “Hullo” } if ($morning) echo “Hullo” if morning? puts “Hullo” end puts “Hullo” if morning?

Slide 11

Slide 11 text

Specifics… 11 array(10, 20, 30) array(1, 2, 3, 4, 5) array( “a” => “Apple”, “b” => “Banana” ) [10, 20, 30] [1..5] { a: “Apple”, b: “Banana” }

Slide 12

Slide 12 text

Specifics… 12 class Tea extends Beverages{ private $water private $milk public function __construct(){ $this->water = true; $this->milk = true; } public function is_good(){ return true; } } class Tea < Beverages def initialize @water = true @milk = true end def good? true end private def secret “hello” end end

Slide 13

Slide 13 text

Language specific goodies... • Package management • Read open source code (other people’s code - learn best practices) • Tooling • IDE / text editor • TDD/BDD • Get help • Google, StackOverflow, Screencasts • Pair programming with a senior • Books 13

Slide 14

Slide 14 text

http://careers.neo.com/ We’re Hiring! 14