Microsoft Development Training Classes in Kitchener, Canada

Learn Microsoft Development in Kitchener, Canada and surrounding areas via our hands-on, expert led courses. All of our classes either are offered on an onsite, online or public instructor led basis. Here is a list of our current Microsoft Development related training offerings in Kitchener, Canada: Microsoft Development Training

We offer private customized training for groups of 3 or more attendees.

Microsoft Development Training Catalog

Agile/Scrum Classes

Azure Classes

BizTalk Server Classes

Cloud Classes

Dynamics Classes

Foundations of Web Design & Web Authoring Classes

JavaScript Classes

Skype Classes

System Center Classes

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

Blog Entries publications that: entertain, make you think, offer insight

Microsoft has now come up with a surface tablet to compete with the Apple iPad. The Surface is the known as the ‘iPad killer’ and ‘Microsoft iPad’. Microsoft has stuck to production of software till date but this is one of its latest hardware devices that is expected to take over the Apple iPad. This is a new challenge posed by Microsoft to Apple.

            The Microsoft Surface saw its official release on 19th June in the city of Los Angeles. It has made a great first impression and seems to be beginning a new start in the competition between the best tablets in the international market. It has 10.6’’ screen and a magnetic cover that can be used as a keyboard and also as a kickstand in order to place the device upright on tables. There has been a paradigm shift in Microsoft’s policy when it decided to do away with the tile-based Metro theme for its Desktop that is almost a trademark with it.

            There are many features that make the Surface more like a laptop than like a tablet- the most prominent one being the built- in keyboard that will be useful for business customers. As Microsoft Surface employs Windows 8 as an operating system, which is also used in its computers and laptops, it will be a lot easier for customers to switch among their devices.

            The tablet was announced by Microsoft’s CEO, Steve Ballmer, in Los Angeles at a special press conference. It was hailed to be the first of an entirely new family of a number of devices being created and developed by the company. The Surface has a thickness of 9.3mm and weighs 1.5 pounds. It has a kickstand and keyboard for its cover. It is 0.1 mm thinner than the iPad 3, which is the latest iPad from Apple.

 
Technology is changing all the time, and the jobs that are associated with technology are changing as well. People that are looking at careers in technology will see some jobs that are being phased out as others increase in popularity. This means that people that are interested in tech jobs should be vigilant in researching those opportunities that are growing in demand.
 
A Dying Breed of Legacy Systems
 
The mainframe programmers i.e., COBOL, have been getting phased out for years, and are reaching retirement age. The demand for these skills are at an end of an era as more technology surfaces with needs for app development and cloud migration. These jobs will be phased out and are being replaced with developers that are knowledgeable in more object-oriented programming positions such as Java, C#, and etc. 
 
Programmers / Analysts
 
Professionals that work in software development, can find work in a number of different tech careers. People that know how to program, particularly in object oriented programming, can expect to be employed and in demand for some time to come. The salaries for programmers range from $50k – millions, depending on the skillsets one has mastered. Like any other profession, one can opt to learn just enough to get by or hone in on a discipline currently in demand and master it, such as data analysts, machine learning analyst and cloud migration specialists.  
 
 
Tech Support for Portable Devices
 
The healthcare industry is seeing a rise in jobs in Information Technology because more hospitals are going paperless. There is a great demand for people that have the ability to work with portable devices because this is what many doctors and nurses will be using as they move away from the long paper trail that has been created from patients. People that have the ability to configure and troubleshoot portable devices like tablets and phones are able to support the applications for these devices will be in high demand. In this case, learning programming languages such a C++ is the perfect route to go in. 
 
 
Technology Trainers 
 
There will always be a need for someone that can learn, utilize and teach proprietary programs to others. Internal proprietary technology will need to be updated which means that technology trainers are expected to be current in the knowledge base for  companies that are utilizing this software. People that are in the training field, will need to stay updated with new technology, grasp new concepts quickly and be able to teach it efficiently. As more companies take hold of proprietary programs, it becomes important for software application trainers to be put in place to teach this technology. 
 
Printer Support Jobs Dwindle
 
People that are working in the technology field of printer support will need to consider looking at other opportunities because some of these printer support jobs will be phased out.  There is a reason for this. More jobs are becoming phased out in the world of printer technology because fewer people are using printers. It has become easier to read the documents and transfer these documents to other workers inside an organization. This means that less money is being spent on printers. Even less money is being spent on printer support. People that have acquired jobs where their primary role is to work in printer repair will see a decline in the number of people that are needed for these types of positions. It becomes a lot less feasible to have printer repair people in place when there is no printer in the office.
 
 
Graphic Design
 
Technology also holds a special place for those that have the experience in graphic design. Websites and social media really engage people in visual art and people that know how to display it on web pages have a plethora of jobs. This leaves this field wide open for those that know about design structures and editing images that can result in eye catching imagery.
 
Wan/ Lan Management
 
One big area that offers an array of different jobs is the area of wide and local network router and switch management. People that are proficient in programming switches and building networks can get themselves a number of jobs dealing with the network topology. Tech careers are booming when it comes to this type of field because many people do not have this experience. They may know how to set up computers, but they may not have any idea about what to do if the network connection is no longer working properly.
 
People that know how to configure switches for networks and troubleshoot these issues with network connectivity will have a wide range of geographical locations that they connect together to build one network for a business.

Evolving technologies become fun due to the immense advantages and features they bring with them. Fighting change though is human and while we may initially resist such changes, it is always better to accept them to our advantage.

Switching to HTML 5 is one such change we need to be ready for and there are at least 8 reasons why we should be doing so which are explained later in the article.

Earlier HTML was mainly used only for Web content development. But with the arrival of HTML 5, there would be a radical shift in that it would be used more and more for the development of many of the client side applications as well. The advantages straight away are that CSS as well as JavaScript become free due to the open architecture environment. HTML 5 is also pretty light and has a much easier code to read, making it convenient for devices like smart phones and tablets running on batteries to use the applications.

The 8 reasons mentioned above are as under:

The original article was posted by Michael Veksler on Quora

A very well known fact is that code is written once, but it is read many times. This means that a good developer, in any language, writes understandable code. Writing understandable code is not always easy, and takes practice. The difficult part, is that you read what you have just written and it makes perfect sense to you, but a year later you curse the idiot who wrote that code, without realizing it was you.

The best way to learn how to write readable code, is to collaborate with others. Other people will spot badly written code, faster than the author. There are plenty of open source projects, which you can start working on and learn from more experienced programmers.

Readability is a tricky thing, and involves several aspects:

  1. Never surprise the reader of your code, even if it will be you a year from now. For example, don’t call a function max() when sometimes it returns the minimum().
  2. Be consistent, and use the same conventions throughout your code. Not only the same naming conventions, and the same indentation, but also the same semantics. If, for example, most of your functions return a negative value for failure and a positive for success, then avoid writing functions that return false on failure.
  3. Write short functions, so that they fit your screen. I hate strict rules, since there are always exceptions, but from my experience you can almost always write functions short enough to fit your screen. Throughout my carrier I had only a few cases when writing short function was either impossible, or resulted in much worse code.
  4. Use descriptive names, unless this is one of those standard names, such as i or it in a loop. Don’t make the name too long, on one hand, but don’t make it cryptic on the other.
  5. Define function names by what they do, not by what they are used for or how they are implemented. If you name functions by what they do, then code will be much more readable, and much more reusable.
  6. Avoid global state as much as you can. Global variables, and sometimes attributes in an object, are difficult to reason about. It is difficult to understand why such global state changes, when it does, and requires a lot of debugging.
  7. As Donald Knuth wrote in one of his papers: “Early optimization is the root of all evil”. Meaning, write for readability first, optimize later.
  8. The opposite of the previous rule: if you have an alternative which has similar readability, but lower complexity, use it. Also, if you have a polynomial alternative to your exponential algorithm (when N > 10), you should use that.

Use standard library whenever it makes your code shorter; don’t implement everything yourself. External libraries are more problematic, and are both good and bad. With external libraries, such as boost, you can save a lot of work. You should really learn boost, with the added benefit that the c++ standard gets more and more form boost. The negative with boost is that it changes over time, and code that works today may break tomorrow. Also, if you try to combine a third-party library, which uses a specific version of boost, it may break with your current version of boost. This does not happen often, but it may.

Don’t blindly use C++ standard library without understanding what it does - learn it. You look at std::vector::push_back() documentation at it tells you that its complexity is O(1), amortized. What does that mean? How does it work? What are benefits and what are the costs? Same with std::map, and with std::unordered_map. Knowing the difference between these two maps, you’d know when to use each one of them.

Never call new or delete directly, use std::make_unique and [cost c++]std::make_shared[/code] instead. Try to implement usique_ptr, shared_ptr, weak_ptr yourself, in order to understand what they actually do. People do dumb things with these types, since they don’t understand what these pointers are.

Every time you look at a new class or function, in boost or in std, ask yourself “why is it done this way and not another?”. It will help you understand trade-offs in software development, and will help you use the right tool for your job. Don’t be afraid to peek into the source of boost and the std, and try to understand how it works. It will not be easy, at first, but you will learn a lot.

Know what complexity is, and how to calculate it. Avoid exponential and cubic complexity, unless you know your N is very low, and will always stay low.

Learn data-structures and algorithms, and know them. Many people think that it is simply a wasted time, since all data-structures are implemented in standard libraries, but this is not as simple as that. By understanding data-structures, you’d find it easier to pick the right library. Also, believe it or now, after 25 years since I learned data-structures, I still use this knowledge. Half a year ago I had to implemented a hash table, since I needed fast serialization capability which the available libraries did not provide. Now I am writing some sort of interval-btree, since using std::map, for the same purpose, turned up to be very very slow, and the performance bottleneck of my code.

Notice that you can’t just find interval-btree on Wikipedia, or stack-overflow. The closest thing you can find is Interval tree, but it has some performance drawbacks. So how can you implement an interval-btree, unless you know what a btree is and what an interval-tree is? I strongly suggest, again, that you learn and remember data-structures.

These are the most important things, which will make you a better programmer. The other things will follow.

training details locations, tags and why hsg

A successful career as a software developer or other IT professional requires a solid understanding of software development processes, design patterns, enterprise application architectures, web services, security, networking and much more. The progression from novice to expert can be a daunting endeavor; this is especially true when traversing the learning curve without expert guidance. A common experience is that too much time and money is wasted on a career plan or application due to misinformation.

The Hartmann Software Group understands these issues and addresses them and others during any training engagement. Although no IT educational institution can guarantee career or application development success, HSG can get you closer to your goals at a far faster rate than self paced learning and, arguably, than the competition. Here are the reasons why we are so successful at teaching:

  • Learn from the experts.
    1. We have provided software development and other IT related training to many major corporations in Canada since 2002.
    2. Our educators have years of consulting and training experience; moreover, we require each trainer to have cross-discipline expertise i.e. be Java and .NET experts so that you get a broad understanding of how industry wide experts work and think.
  • Discover tips and tricks about Microsoft Development programming
  • Get your questions answered by easy to follow, organized Microsoft Development experts
  • Get up to speed with vital Microsoft Development programming tools
  • Save on travel expenses by learning right from your desk or home office. Enroll in an online instructor led class. Nearly all of our classes are offered in this way.
  • Prepare to hit the ground running for a new job or a new position
  • See the big picture and have the instructor fill in the gaps
  • We teach with sophisticated learning tools and provide excellent supporting course material
  • Books and course material are provided in advance
  • Get a book of your choice from the HSG Store as a gift from us when you register for a class
  • Gain a lot of practical skills in a short amount of time
  • We teach what we know…software
  • We care…
learn more
page tags
what brought you to visit us
Kitchener, Canada Microsoft Development Training , Kitchener, Canada Microsoft Development Training Classes, Kitchener, Canada Microsoft Development Training Courses, Kitchener, Canada Microsoft Development Training Course, Kitchener, Canada Microsoft Development Training Seminar
training locations
Canada cities where we offer Microsoft Development Training Classes

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.