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

Learn how to be a developer: StepOne - KeyTerms

Learn how to be a developer: StepOne - KeyTerms

The first part on my A Journey Of A Thousand Miles talks on how to become a Software Developer. This course is aimed for people who know absolutely nothing about developing but are eager to learn. The talks are aimed at giving people a no nonsese approach to learning.


Ricky Clegg

June 07, 2012

More Decks by Ricky Clegg

Other Decks in Technology


  1. {AJourneyOfAThousandMiles } Learn  how  to  be  a  So#ware  Engineer  from

     day  zero     This  series  assumes  you  know  nothing  about  programming  and   starts  from  the  very  beginning   me@rickyclegg.com          twi<er.com/ricky_clegg
  2. {StepOne: KeyTerms } This  is  the  first  part  in  the

     ‘A  Journey  Of  A  Thousand  Miles’  Series     It  is  Cme  to  understand  what  all  the  acronyms  actually  mean  with   no  nonsense  you  do  not  understand   me@rickyclegg.com          twi<er.com/ricky_clegg
  3. In this lesson we will learn the basic key terms

    used in computer programming. We will learn only the bits you need to know to get started. Nothing more.
  4. {WhereToStart?} So  what  are  the  very  first  things  you  need

     to  know  to  start  your   journey  as  a  so#ware  engineer?     •   PlaHorms   •   Languages   •   Syntax   •   Camel  Casing   •   Integrated  Development  Environment  (IDE)   •   Object  Orientated  Programming  (OOP)   •   ApplicaCon  Programming  Interface  (API)   •   SoQware  Development  Kit  (SDK)   •   Hello  World   The  purpose  of  this  lesson  is  not  to  explain  everything  in  full.  But  give   you  enough  informaAon  to  aid  in  your  learning.   me@rickyclegg.com          twi<er.com/ricky_clegg
  5. {ComputerPlatforms} A  computer  plaCorm  is  a  hardware  and  soQware  architecture.

        Different  plaHorms  limit  what  you  can  achieve.     iOS  is  a  plaHorm.  You  write  applicaCons  in  a  computer  language   called   ObjecAve   C.   The   language   is   powerful   as   you   can   manipulate  a  device  in  many  ways.     A  web  browser  is  a  plaHorm.  You  manipulate  the  browser  using   JavaScript.   This   language   is   restricAve.   For   example   you   are   unable  to  read  or  write  files  on  a  users  machine.   me@rickyclegg.com          twi<er.com/ricky_clegg
  6. Each platform has a different target audience, you may be

    restricted to a specific language. Knowing what languages are cross-platform is important. What if you want an application on Mac OS and Windows?
  7. The   interesCng   stuff   for   you  

    all   started   in   1969   with   a   gentleman   called   Ken   Thompson.  He  created  a  language  called  B.     In   1972   Dennis   Ritchie   improved   on   B   and   created   C.   C   is   the   most   used   language  of  all  Cme.  It  is  the  basis  of  most  modern  languages  today.     Jumping   several   years   to   1980   C++   hit   the   scene.   Originally   called   C   with   Classes.   C++   is   very   popular   with   computer   games   developers   as   it   runs   extremely  fast.     The   internet   boom   of   the   90’s   saw   an   explosion   of   new   languages.   In   1995   James   Gosling   created   Java.   Java   is   a   great   plaHorm   independent   soluCon.   It   soared  in  popularity  due  to  its  ability  to  integrate  with  Netscape.     Internet  languages  were  now  cropping  up.  1995  saw  the  birth  of  JavaScript  and   PHP.     The   last   of   the   major   players   was   C#.   Created   by   Microso#   for   its   .NET   framework.  C#  was  designed  to  be  a  simple  programming  language.     me@rickyclegg.com          twi<er.com/ricky_clegg {WhereDidItAllStart?}
  8. Coding languages were man made to instruct a machine what

    to do. You can split a coding language into 2 components, syntax and semantics.
  9. The  syntax  of  all  the  languages  that  will  be  covered

     in  the  course   will  be  very  similar.  They  all  follow  very  similar  convenCons.     Here  is  an  example  of  creaCng  a  number  in  different  languages.     JavaScript   var  myNum  =  10;     AcAonScript   var  myNum:int  =  10;     Java   int  myNum  =  10;     me@rickyclegg.com          twi<er.com/ricky_clegg {Syntax}
  10. The syntax of a language describes the form of a

    valid program, but does not provide any information about the meaning of the program or the results of executing that program.
  11. AnExampleOfCamelCasingIsThisSentenceYouAreReading     You   will   hear   this

      term   when   you   are   developing.   Later   we   will   talk   about   classes,   variables   and   naming   and   you   will   need   to   be   armed   with   this   informaCon.   me@rickyclegg.com          twi<er.com/ricky_clegg {CamelCasing} Take  a  look  at  the  Atle  of  this  slide...     It  is  wri<en  in  camel  casing.  This  style  is   also  known  as  medial  capitals.  It  is  the   technique   of   compounding   all   words   with  no  spaces.     We   indicate   each   new   word   with   a   capital  le<er  to  make  it  easier  to  read.    
  12. An  IDE  or  Integrated  Development  Environment  is  your  workshop  

    for  creaCng  soQware  soluCons.     They  provide  powerful  tooling  for  creaCng  applicaCons,  which  is   what  makes  them  different  from  text  editors.     Think  of  a  carpenters  workshop.  It  contains  benches,  saws,  files,   vices,  etc.  A  text  editor  like  TextMate  or  Note  Pad++  would  be  a   carpenters   workshop   with   only   a   saw.   You   can   sCll   manipulate   wood.  But  not  with  the  same  outcome  as  having  all  the  right  tools.     Each  framework  will  have  a  specialised  IDE  for  creaCng  soluCons   on  them.   me@rickyclegg.com          twi<er.com/ricky_clegg {IDE}
  13. Here   is   a   list   of  

    some   of   the   more   popular   development   environments.     •   .Net,  C#,  C++  -­‐  Visual  Studio   •   Java  –  IntelliJ  and  Eclipse   •   AcAonScript  –  FlashBuilder  and  FDT   •   JavaScript,  HTML  –  Web  Storm  and  Aptana   •   PHP  –  PHP  Storm   me@rickyclegg.com          twi<er.com/ricky_clegg {WhichIDEIsForMe}
  14. Visual Studio can create software solutions in most languages. It

    is often thought of as the best IDE on the planet. But it is EXPEN $IVE. Whereas Eclipse is FREE.
  15. Object-oriented programming (OOP) is a programming paradigm using ‘objects’ consisting

    of variables and methods to design applications. Programming techniques may include features such as data abstraction, encapsulation, polymorphism, and inheritance.
  16. Nearly  all  modern  languages  support  some  form  of  OOP.  

      The  first  and  main  benefits  are  reusability  and  organisaCon.     A   non   OOP   language   would   be   a   list   of   instrucCons   one   aQer   another.   OOP   helps   us   to   break   complex   soluCons   into   manageable  pieces.     This  is  a  very  large  subject  which  we  will  come  back  to  when  we   know  a  bit  more  about  data  types.   me@rickyclegg.com          twi<er.com/ricky_clegg {OOP}
  17. So you are sitting at your computer. You have chosen

    a platform, a language and an IDE. How on earth do you know what you can do with the language?
  18. Use  your  ApplicaAon  Programming  Interface  (API)  that’s  how.    

    An   API   is   a   specificaCon,   informing   you   of   the   capabiliCes   of   the   language  or  classes  that  you  are  trying  to  use.     In  most  cases  this  is  simply  a  website  with  web  pages  giving  you  the   informaCon.     One  of  the  clearest  implementaCons  of  this  I  have  seen  is  the   Flash  PlaCorm  API.     h<p://help.adobe.com/en_US/FlashPlaHorm/reference/acConscript/ 3/index.html     API’s  will  be  explained  further  when  we  know  more  about  coding  and   what  properAes,  methods  and  classes  are.       me@rickyclegg.com          twi<er.com/ricky_clegg {API}
  19. It   is   your   gateway   into  

    coding   on   a   new   plaHorm.   It   stands   for   So#ware   Development   Kit   and   is   generally   a   bungle   of   tools   to   aid   development.     A  great  SDK  provides  everything  you  need.     The  iOS  SDK  contains:   •   XCode  (IDE)   •   Cocoa  Touch  and  other  Apple  libraries  (ObjecAve-­‐C  Language)   •   DocumentaCon  (API)   •   Simulator  -­‐  To  test  with   •   Instruments  -­‐  To  profile  your  device   •   Examples   Nearly  all  SDK’s  come  with  a  ge]ng  started  guide.     me@rickyclegg.com          twi<er.com/ricky_clegg {SDK}
  20. A   "Hello   world"   program   is  

    a   computer   program   that   outputs   "Hello,   world"   on   a  display  device.     Because  it  is  typically  one  of  the  simplest   programs   possible   to   create   in   most   programming  languages.     PlaHorms,   Frameworks   and   Languages   use   this   to   illustrate   to   beginners   the   most   basic   syntax   of   a   programming   language,  or  to  verify  that  a  language  or   system  is  operaCng  correctly.       me@rickyclegg.com          twi<er.com/ricky_clegg {HelloWorld}
  21. This is the end of lesson one. This session has

    armed you with the very basic knowledge needed about key words you will hear while getting started with computer programming.