php develoer training course (OO)
2016-08-23 admin

PHP Beginner Training Course 

Prerequisites

You should be at the level of Introduction to Programming or Excel VBA before starting this course. HTML knowledge will be handy, but not required as we focus on the back-end in this course. Intended Audience

This PHP Beginner training course is for web designers probably with HTML or XHTML who want to take their web pages to the next level.

After this course you should be able to

  • Use PHP to transform static HTML pages into dynamic web sites
  • Use email from your web server
  • Creating feedback forms
  • Create and populate your own MySQL database tables, and work with data stored in files
  • Perform sophisticated MySQL queries with joins, and refining your results
  • Uploading images
  • Protect your data from SQL injection attacks
  • Secure your pages with HTTP Authentication
  • Build a basic functional PHP website with management and user functionality that could be useful to a small business with basic requirements

Further Training

The next course in the series is Advanced PHP .

Course Material

Included.

Course Contents

Day 1
  • Add life to your static pages
  • PHP brings web pages to life
  • Forms are made of HTML
  • HTML acts on the CLIENT
  • PHP acts on the SERVER
  • Use PHP to access the form data
  • The server turns PHP into HTML
  • A few PHP rules to code by
  • Variables are for storing script data
  • $-POST transports form data to your script
  • Creating the email message body with PHP
  • Newlines need doublequoted strings
  • Variables store the email pieces and parts
  • Sending an email message with PHP
  • Connecting to MySQL
  • MySQL excels at storing data
  • Create a MySQL database and table
  • The INSERT statement in action
  • Use SELECT to get table data
  • Connect to your database from PHP
  • Insert data with a PHP script
  • Use PHP functions to talk to the database
  • Get connected with mysqli_connect()
  • Build the INSERT query in PHP
  • Query the MySQL database with PHP
  • Close your connection with mysqli-close()
  • $-POST provides the form data
  • Create and populate a database
  • It all starts with a table
  • Make contact with the MySQL server
  • Create a database for emails
  • Create a table inside the database
  • We need to define our data
  • MySQL data types
  • Create your table with a query
  • USE the database before you use it
  • DESCRIBE reveals the structure of tables
  • Create the Add Email script
  • The Send Email script
  • mysqli_fetch_array() fetches query results
  • Looping through data with while
  • Removing data with DELETE
  • Use WHERE to DELETE specific data
  • Minimize the risk of accidental deletions
Day 2
  • Realistic and practical application
  • Demand good form data
  • The logic behind Send Email validation
  • Your code can make decisions with IF
  • Testing for truth
  • IF checks for more than just equality
  • The logic behind Send Email validation
  • PHP functions for verifying variables
  • Test multiple conditions with AND and OR
  • Form users need feedback
  • Ease in and out of PHP as needed
  • Use a flag to avoid duplicate duplicate code
  • Code the HTML form only once
  • A form that references itself
  • Point the form action at the script
  • Check to see if the form has been submitted
  • Table rows should be uniquely identifiable
  • Primary keys enforce uniqueness
  • From checkboxes to customer IDs
  • Loop through an array with foreach
Day 3
  • Working with data stored in files
  • The application needs to store images
  • Planning for image file uploads
  • ALTER statement
  • Image uploads
  • Insert the image filename into the database
  • Find out the name of the uploaded file
  • Where did the uploaded file go?
  • Create a home for uploaded image files
  • Shared data has to be shared
  • Shared script data is required
  • Think of require_once as “insert”
  • Order Timing is everything with high scores
  • Format the top score with HTML and CSS
  • Only small images allowed
  • File validation makes the app more robust
  • Plan for an Admin page
  • Generate score removal links on the Admin page
  • Scripts can communicate with each other
  • Of GETs and POSTs
  • GET, POST, and high score removal
  • Isolate the high score for deletion
  • Control how much you delete with LIMIT
Day 4 
  • Securing your application
  • Protecting the Admin page
  • HTTP authentication requires headers
  • Header Exposed
  • Take control of headers with PHP
  • Authenticating with headers
  • Create an Authorize script
  • Subtraction by addition
  • Security requires humans
  • Plan for moderation
  • Make room for approvals with ALTER
  • Unapproved scores aren’t worthy
  • The million-point hack
  • Tricking MySQL with comments
  • The Add Score form was SQL injected
  • Protect your data from SQL injections
  • A safer INSERT (with parameters)
  • Form validation can never be too smart
Day 5
  • Using Variables in PHP
  • Understanding Data Types
  • Operators and Expressions
  • if, else Statement
  • Testing One Expression Many Times with the switch Statement
  • Compact Coding with the Ternary Operator
  • Doing Repetitive Tasks with Looping
  • Creating and Accessing Strings
  • Searching Strings
  • Replacing Text within Strings
  • Dealing with Upper- and Lowercase
  • Formatting Strings
  • The Anatomy of an Array
  • Creating Arrays
  • Accessing Array Elements
  • Looping Through Arrays with foreach
  • Working with Multidimensional Arrays
  • Manipulating Arrays

Practical project for competency certificate :

Create a website with 2 tables: Product table (id, date, description, price, picture) Members table (id, name, surname, email-address, description) and pages for:

Customers: to join the site to view the product list (will be expanded in the Advanced Course to add a shopping cart)

Pages and tables should be designed to be secure from SQL injections by hackers

Management: display the product list and add / remove and change products moderate new customer applications, delete customers the management pages must be protected with http authentication send an email newsletter to members Ensure that you use self-referencing forms that remember fields

Duration and pricing

  • Full-time over 5 days (R9995)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R11995)
  • Part-time over 8 Saturdays, 3 hour sessions (R11995)
  • Please note : For part-time courses we do not have a fixed schedule and you will be placed on a waiting list until we get a group of 4+ together. Please book with no dates on the bookings form. This will automatically put you on the waiting list. We will confirm with you as soon as we have a part-time group together.
  • Distance-learning over up to 3 months (R9995)
  • International exams are not included in the course price.
  • Prices exclude Vat for Vat-registered companies

Monthly payment options for Distance Learning / Self Study
If you want to pay the course on a monthly basis, we divide the course in 3 sections – one per month. You then have to complete a quarter of the course per month. The payments are as follows:

  • R3333 registration fee and covering the first month and section 1
  • R3333 – month 2 and section 2
  • R3333 – month 3  the last section
    • Certificate

      1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
      2. You may sit for our competency assessment test and on passing you will obtain our competency certificate.
      3. Our competency assessment can be booked and taken by someone who has not attended the course at a cost of R950.

      Bookings

      You can download the course registration form on our home page or by clicking here

      Brochure

      You may download a pdf copy of this page by clicking on the pdf icon at the top of the page.

      Questions

      Please email us

      Schedule

      On the calendar below. If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our Contact Us page.

    2015-06-01 Alta

    Prerequisites

    You should have all the knowledge of PHP at our PHP Advanced Programmer level to be able to succeed with PHP Developer

    Intended Audience

    Programmers who have mastered PHP up to our advanced level, and who are now ready to take on
    more sustainable projects used in more corporate environments.

    Further Training

    If you have not yet got a good SQL grounding, you should seriously consider our SQL Beginner course.

    PHP Zend Certification

    We align with the international Zend Certification syllabus and if you have completed our PHP Job Prep Certificate,
    you would have covered everything in this exam. We also support our PHP students who wants to write this exam
    with any questions and we refer to exam papers during the course.

    Course Contents

     Day 1

    Application Planning and Design

    • What is Web 2.0?
    • Database connectivity
    • Web Site Templates
    • Web Site Features
    • Other Aspects of Development
    • Version control and unit testing

    Setting up the Application Framework

    • Web Server Setup
    • Application Filesystem Structure
    • Installing the Zend Framework
    • Configuring the Web Server
    • Setting Up the Database
    • Using the Model-View-Controller Pattern
    • Defining Application Settings
    • Connecting to the Database
    • The Smarty Template Engine
    • Adding Logging Capabilities

    User Authentication, Authorization and Management

    • Creating the User Database Table
    • Introduction to Zend Auth
    • Introduction to Zend Acl
    • Combining Zend_Auth Zend_Acl and Zend_Controller_Front
    • Managing User Records with DatabaseObject
    • Managing User Profiles

    Day 2
    User Registration, Login and Logout

    • Creating the User Database Table
    • Introduction to Zend Auth
    • Introduction to Zend Acl
    • Combining Zend_Auth Zend_Acl and Zend_Controller_Front
    • Managing User Records with DatabaseObject
    • Managing User Profiles

    Introduction to Prototype and Scriptaculous

    • Downloading and Installing Prototype
    • Selecting Objects in the Document Object Model
    • Prototype’s Hash Object
    • Other Element Extensions
    • Ajax Operations in Prototype
    • Event Handling in Prototype
    • Creating JavaScript Classes in Prototype
    • From Prototype to Scriptaculous
    • Downloading and installing Scriptaculous
    • Combining Prototype, Scriptaculous, Ajax and PHP in a Useful Example

    Styling the Web Application

    • Adding Page Titles and Breadcrumbs
    • Integrating the Design into the Application
    • Constructing the CSS
    • Styling the Application Web Forms
    • Loading Prototype and Scriptaculous
    • Implementing Client-Side Form Validation

    Day 3
    Building the Blogging system

    • Creating the Database Tables
    • Setting up DatabaseObject and Profile Classes
    • Creating a Controller for Managing Blog Posts
    • Creating and Editing Blog Posts
    • Previewing Blog Posts
    • Updating the Status of a Blog Post

    Extending the Blog Manager

    • Listing Blog Posts on the Blog Manager Index
    • Ajaxing the Blog Monthly summary
    • Integrating a WYSIWYG Editor

    Personalized User Areas

    • Controlling user Settings
    • The UserController Class
    • Displaying the User’s Blog
    • Populating the Application Home Page

    Day 4
    Implementing Web 2.0 Features

    • Tags
    • Web Feeds
    • Microformats
    • Allowing Users to Create a Public Profile

    A Dynamic Image Gallery

    • Storing Uploaded Files
    • Uploading files
    • Sending images
    • Resizing Images
    • Managing Blog Post Images
    • Displaying Images on User Blogs

    Implementing Site Search

    • Introduction to Zend Search Lucene
    • Indexing Application Content
    • Creating the Search Tool
    • Adding Autocompletion to the Search Tool

    Day 5
    Integrating Google Maps

    • Google Maps Features
    • Planning integration
    • Adding Location Storage Capabilities
    • Creating our First Map
    • Managing Locations on the Map
    • Displaying the Map on User’s Public blogs

    Deployment and Maintenance

    • Application Logging
    • Site Error Handling
    • Web Site Administration
    • Application Deployment
    • Backup and Restore

    Duration and pricing

    • Full-time over 5 days (R8995 excl VAT)
    • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R10995 excl Vat)
    • Part-time over 8 Saturdays, 3 hour sessions (R10995 excl Vat)
    • Distance-learning over up to 3 months (R7995 excl Vat)

    Certificate

    1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
    2. You have the option to get the competency / academic certificate if you :
    hand in a project (pre-approved) covering most of the topics in the book
    The project is useful for unemployed students who want to enter the job market. This project and certificate can be used to show employers your abilities.

    Schedule

    On the calender on this page below.  This course is repeated approximately once every 6 weeks, unless a customised specific booking isrequested via email.
    If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

    Bookings

    You can download the course registration form on our home page or by clicking here

    Brochure

    To download a brochure of this page in pdf format, please click on the pdf icon at the top of this page

     

    2014-11-06 Alta
    Advanced PHP/MySQL Programmer

    Prerequisite

    You should be at the Beginner PHP course level – you might have to write the test at (cost of R500) to prove that.

    Intended Audience

    This course is for web designers probably with HTML or XHTML who want to take their web pages
    to the next level and build database-driven sites using PHP and MySQL

    Further Training

    If you do not know SQL, you should seriously consider doing the SQL course – this is a must
    for any IT professional nowadays.

    Course Material

    Included

    Day 1
    • Building personalized web apps
    • Prepping the database for log-ins
    • Constructing a log-in user interface
    • Encrypt passwords with SHA()
    • Comparing passwords
    • Authorizing users with HTTP
    • Logging In Users with HTTP Authentication
    • A form for signing up new users
    • Use cookies with PHP
    • A cookie-powered log-in
    • Logging out means deleting cookies
    • Sessions aren’t dependent on the client
    • Keeping up with session data
    • Log out with sessions
    • Complete the session transformation
    • Sessions + Cookies = Superior log-in persistence
    • Eliminate duplicate code
    • Using templates
    • Control your data, control your world
    • Model a database with a schema
    • Wire together multiple tables
    • Foreign keys in action
    • Tables can match row for row
    • One row leads to many
    • Matching rows many-to-many
    • Build a questionnaire
    • Get responses into the database
    • We can drive a form with data
    • Generate the questionnaire form
    • Strive for a bit of normalcy
    • When normalizing, think in atoms
    • Three steps to a normal database
    • Altering the database
    • A query within a query within a query…
    • Let’s all join tables
    • Connect with dots
    • Surely we can do more with inner joins
    • Nicknames for tables and columns
    • Joins to the rescue
    • Five steps to a successful mismatch
    • All we need is a FOR loop
    Day 2
    • String and custom functions
    • The search leaves no margin for error
    • SQL queries can be flexible with LIKE
    • Explode a string into individual words
    • implode() builds a string from substrings
    • Preprocess the search string
    • Replace unwanted search characters
    • The query needs legit search terms
    • Copy non-empty elements to a new array
    • Extract substrings from either end
    • Multiple queries can sort our results
    • Functions let you reuse code
    • Build a query with a custom function
    • Custom functions: how custom are they really?
    • SWITCH makes far more decisions than IF
    • Give build_query() the ability to sort
    • We can paginate our results
    • Get only the rows you need with LIMIT
    • Control page links with LIMIT
    • Keep track of the pagination data
    • Set up the pagination variables
    • Revise the query for paginated results
    • Generate the page navigation links
    • Putting together the complete Search script
    Day 3
    • Regular expressions
    • Decide what your data should look like
    • Formulate a pattern for phone numbers
    • Match patterns with regular expressions
    • Build patterns using metacharacters
    • Fine-tune patterns with character classes
    • Check for patterns with preg_match()
    • Standardize the phone number data
    • Get rid of the unwanted characters
    • Matching email addresses can be tricky
    • Domain suffixes are everywhere
    • Use PHP to check the domain
    • Email validation: putting it all together
    • Visualizing your data… and more!
    • No input form is safe
    • We need to separate man from machine
    • We can defeat automation with automation
    • Generate the CAPTCHA pass-phrase text
    • Visualizing the CAPTCHA image
    • Inside the GD graphics functions
    • Drawing text with a font
    • Generate a random CAPTCHA image
    • Add CAPTCHA to the Add Score script
    • Five degrees of opposability
    • Storing bar graph data
    • From one array to another
    • Formulating a bar graphing plan
    • Crunching categories
    • Doing the category math
    • Bar graphing basics
    • Draw and display the bar graph image
    • Individual bar graph images for all
    • Leftovers, Set up a Development Environment, Extend your PHP
    Day 4
    • Syndication and web services
    • RSS pushes web content to the people
    • RSS is really XML
    • From database to newsreader
    • Visualizing RSS
    • Dynamically generate an RSS feed
    • Link to the RSS feed
    • A video is worth a million words
    • Pulling web content from others
    • Syndicating YouTube videos
    • Make a YouTube video request
    • REST request
    • YouTube speaks XML
    • Deconstruct a YouTube XML response
    • Visualize the XML video data
    • Access XML data with objects
    • From XML elements to PHP objects
    • Drill intoXML data with objects
    • Not without a namespace!
    • Lay out videos for viewing
    • Format video data for display
    Day 5
    • What Is a Function?
    • Why Functions Are Useful
    • Calling Functions
    • Working with Variable Functions
    • Writing Your Own Functions
    • Working with References
    • What Is Object-Oriented Programming?
    • Advantages of OOP
    • Understanding Basic OOP Concepts
    • Creating Classes and Objects in PHP
    • Creating and Using Properties
    • Working with Methods
    • Object Overloading with _get(), _set(),
    • and _call()
    • Using Inheritance to Extend the Power of Objects
    • Constructors and Destructors
    • Automatically Loading Class Files
    • Storing Objects as Strings
    • Determining an Object’s Class
    • Handling HTML Forms with PHP
    • Preserving State With Query Strings, Cookies, and Sessions
    • Making Your Job Easier with PEAR
    • String Matching with Regular Expressions

     

    Duration and pricing

      • Full-time over 5 days (R7995 excl VAT)
      • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R9995 excl Vat)
      • Part-time over 8 Saturdays, 3 hour sessions (R9995 excl Vat)
      • Distance-learning over up to 3 months (R6995 excl Vat)

    Certificate

    1. Upon completion of this course we will issue you with attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
    2. You have the option to get the competency / academic certificate if you :
    hand in a project (pre-approved) covering most of the topics in the book
    The project is useful for unemployed students who want to enter the job market. This project and certificate can be used to show employers your abilities.

    Schedule

    On the calender on this page below.  This course is repeated approximately once every 6 weeks, unless a customised specific booking is requested via email.
    If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.

    2014-05-17 Alta

    Advanced PHP

    Prerequisite 

    You should be at the Beginner PHP course level

    Intended Audience
    This course is for beginner PHP programmers who want to take their skills   to the next level of building database-driven sites using PHP and MySQL.
    Further Training
    If you do not know SQL, you should seriously consider doing the SQL course – this is a must  for any IT professional nowadays.

    Course Material
    If you had done our PHP Beginner, we gave you an original copy of the book: Head First PHP & MySQL (by O’Reilly Press)
    as we use this mainly, but we also give additional examples where it falls short. If you had not done it with us,  you will have to purchase the book separately.

    Course Info

    Day 1
    • Building personalized web apps
    • Prepping the database for log-ins
    • Constructing a log-in user interface
    • Encrypt passwords with SHA()
    • Comparing passwords
    • Authorizing users with HTTP
    • Logging In Users with HTTP Authentication
    • A form for signing up new users
    • Use cookies with PHP
    • A cookie-powered log-in
    • Logging out means deleting cookies
    • Sessions aren’t dependent on the client
    • Keeping up with session data
    • Log out with sessions
    • Complete the session transformation
    • Sessions + Cookies = Superior log-in persistence
    • Eliminate duplicate code
    • Using templates
    • Control your data, control your world
    • Model a database with a schema
    • Wire together multiple tables
    • Foreign keys in action
    • Tables can match row for row
    • One row leads to many
    • Matching rows many-to-many
    • Build a questionnaire
    • Get responses into the database
    • We can drive a form with data
    • Generate the questionnaire form
    • Strive for a bit of normalcy
    • When normalizing, think in atoms
    • Three steps to a normal database
    • Altering the database
    • A query within a query within a query…
    • Let’s all join tables
    • Connect with dots
    • Surely we can do more with inner joins
    • Nicknames for tables and columns
    • Joins to the rescue
    • Five steps to a successful mismatch
    • All we need is a FOR loop
    Day 2
    • String and custom functions
    • The search leaves no margin for error
    • SQL queries can be flexible with LIKE
    • Explode a string into individual words
    • implode() builds a string from substrings
    • Preprocess the search string
    • Replace unwanted search characters
    • The query needs legit search terms
    • Copy non-empty elements to a new array
    • Extract substrings from either end
    • Multiple queries can sort our results
    • Functions let you reuse code
    • Build a query with a custom function
    • Custom functions: how custom are they really?
    • SWITCH makes far more decisions than IF
    • Give build_query() the ability to sort
    • We can paginate our results
    • Get only the rows you need with LIMIT
    • Control page links with LIMIT
    • Keep track of the pagination data
    • Set up the pagination variables
    • Revise the query for paginated results
    • Generate the page navigation links
    • Putting together the complete Search script
    Day 3
    • Regular expressions
    • Decide what your data should look like
    • Formulate a pattern for phone numbers
    • Match patterns with regular expressions
    • Build patterns using metacharacters
    • Fine-tune patterns with character classes
    • Check for patterns with preg_match()
    • Standardize the phone number data
    • Get rid of the unwanted characters
    • Matching email addresses can be tricky
    • Domain suffixes are everywhere
    • Use PHP to check the domain
    • Email validation: putting it all together
    • Visualizing your data… and more!
    • No input form is safe
    • We need to separate man from machine
    • We can defeat automation with automation
    • Generate the CAPTCHA pass-phrase text
    • Visualizing the CAPTCHA image
    • Inside the GD graphics functions
    • Drawing text with a font
    • Generate a random CAPTCHA image
    • Add CAPTCHA to the Add Score script
    • Five degrees of opposability
    • Storing bar graph data
    • From one array to another
    • Formulating a bar graphing plan
    • Crunching categories
    • Doing the category math
    • Bar graphing basics
    • Draw and display the bar graph image
    • Individual bar graph images for all
    • Leftovers, Set up a Development Environment, Extend your PHP
    Day 4
    • Syndication and web services
    • RSS pushes web content to the people
    • RSS is really XML
    • From database to newsreader
    • Visualizing RSS
    • Dynamically generate an RSS feed
    • Link to the RSS feed
    • A video is worth a million words
    • Pulling web content from others
    • Syndicating YouTube videos
    • Make a YouTube video request
    • REST request
    • YouTube speaks XML
    • Deconstruct a YouTube XML response
    • Visualize the XML video data
    • Access XML data with objects
    • From XML elements to PHP objects
    • Drill intoXML data with objects
    • Not without a namespace!
    • Lay out videos for viewing
    • Format video data for display
    Day 5
    • What Is a Function?
    • Why Functions Are Useful
    • Calling Functions
    • Working with Variable Functions
    • Writing Your Own Functions
    • Working with References
    • What Is Object-Oriented Programming?
    • Advantages of OOP
    • Understanding Basic OOP Concepts
    • Creating Classes and Objects in PHP
    • Creating and Using Properties
    • Working with Methods
    • Object Overloading with _get(), _set(),
    • and _call()
    • Using Inheritance to Extend the Power of Objects
    • Constructors and Destructors
    • Automatically Loading Class Files
    • Storing Objects as Strings
    • Determining an Object’s Class
    • Handling HTML Forms with PHP
    • Preserving State With Query Strings, Cookies, and Sessions
    • Making Your Job Easier with PEAR
    • String Matching with Regular Expressions
    Duration and pricing
    • Full-time over 5 days (R7995 excl VAT)
    • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R9995 excl Vat) or 8 Saturdays, 3 hour sessions) (R9995 excl Vat)
    • Distance-learning over up to 6 months (R6995 excl Vat)

    Certificate

    1. Upon completion of this course we will issue you with an attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
    2. You have the option to get the competency  / academic certificate if you :
    hand in a project (pre-approved) covering most of the topics in the book
    The project is useful for unemployed students who want to enter the job market. This project and certificate can be used to show employers your abilities.

     

     

    2013-05-12 getcertarn

    Due to the fast-pace of the IT Industry,  senior software developers hardly have time to re-visit fundamental topics. Our courses are designed to teach the fundamentals in-depth and practical so that the juniors entering the job market, can refer back to their fundamentals throughout their career.

    In my 30 years in the software industry, I have seen many excellent, senior developers that missed crucial elementary topics of a software language. This could have saved them significant time on certain projects in their careers. I was one of those that learned Object Orientation only later in my career, as a lot of systems in the IT industry was developed before Object Orientated languages became widely used. Theoretical knowledge only does not sink in, therefore our training courses are designed to instil the crucial fundamental topics in a practical way.

    If you have any junior software interns in your company, I would like to bring to your attention that our next

    5 month programme for junior developers is due to start in July 2013:

    1. Application development with Java – (this is also applicable to C#.NET juniors as it is a fundamental course and conversion to .NET can be done easily after the course)
    2. Web Development with PHP

    Group discounts

    If you have more than one intern to send, please enquire about our discounted group rates.

    Customisation

    There is room for customisation to the courses, if you feel that you need a certain topic covered more extensively for your students.

    Need more interns?

    We have visited over 75 schools in Gauteng so far this year and interviewed many matriculants who wish to study software development  in 2014. We have partnered with a psychometric institution to perform aptitude tests on them to identify their natural aptitude for software development and recommend training accordingly. We will have quite a few junior entrants available in 2014 if you would like to consider to invest in juniors.