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
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