Microsoft Development Training Classes in Columbia, Missouri
Learn Microsoft Development in Columbia, Missouri 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 Columbia, Missouri: Microsoft Development Training
Microsoft Development Training Catalog
.NET Classes
Azure Classes
BizTalk Server Classes
Cloud Classes
JavaScript Classes
Course Directory [training on all levels]
- .NET Classes
- Agile/Scrum Classes
- AI Classes
- Ajax Classes
- Android and iPhone Programming Classes
- Azure Classes
- Blaze Advisor Classes
- C Programming Classes
- C# Programming Classes
- C++ Programming Classes
- Cisco Classes
- Cloud Classes
- CompTIA Classes
- Crystal Reports Classes
- Data Classes
- Design Patterns Classes
- DevOps Classes
- Foundations of Web Design & Web Authoring Classes
- Git, Jira, Wicket, Gradle, Tableau Classes
- IBM Classes
- Java Programming Classes
- JBoss Administration Classes
- JUnit, TDD, CPTC, Web Penetration Classes
- Linux Unix Classes
- Machine Learning Classes
- Microsoft Classes
- Microsoft Development Classes
- Microsoft SQL Server Classes
- Microsoft Team Foundation Server Classes
- Microsoft Windows Server Classes
- Oracle, MySQL, Cassandra, Hadoop Database Classes
- Perl Programming Classes
- Python Programming Classes
- Ruby Programming Classes
- SAS Classes
- Security Classes
- SharePoint Classes
- SOA Classes
- Tcl, Awk, Bash, Shell Classes
- UML Classes
- VMWare Classes
- Web Development Classes
- Web Services Classes
- Weblogic Administration Classes
- XML Classes
- Docker
27 May, 2026 - 29 May, 2026 - RED HAT ENTERPRISE LINUX SYSTEMS ADMIN II
29 June, 2026 - 2 July, 2026 - KUBERNETES ADMINISTRATION
23 February, 2026 - 25 February, 2026 - ASP.NET Core MVC, Rev. 8.0
15 June, 2026 - 16 June, 2026 - RED HAT ENTERPRISE LINUX SYSTEMS ADMIN I
18 May, 2026 - 22 May, 2026 - See our complete public course listing
Blog Entries publications that: entertain, make you think, offer insight
Python and Ruby, each with roots going back into the 1990s, are two of the most popular interpreted programming languages today. Ruby is most widely known as the language in which the ubiquitous Ruby on Rails web application framework is written, but it also has legions of fans that use it for things that have nothing to do with the web. Python is a big hit in the numerical and scientific computing communities at the present time, rapidly displacing such longtime stalwarts as R when it comes to these applications. It too, however, is also put to a myriad of other uses, and the two languages probably vie for the title when it comes to how flexible their users find them.
A Matter of Personality...
That isn't to say that there aren't some major, immediately noticeable, differences between the two programming tongues. Ruby is famous for its flexibility and eagerness to please; it is seen by many as a cleaned-up continuation of Perl's "Do What I Mean" philosophy, whereby the interpreter does its best to figure out the meaning of evening non-canonical syntactic constructs. In fact, the language's creator, Yukihiro Matsumoto, chose his brainchild's name in homage to that earlier language's gemstone-inspired moniker.
Python, on the other hand, takes a very different tact. In a famous Python Enhancement Proposal called "The Zen of Python," longtime Pythonista Tim Peters declared it to be preferable that there should only be a single obvious way to do anything. Python enthusiasts and programmers, then, generally prize unanimity of style over syntactic flexibility compared to those who choose Ruby, and this shows in the code they create. Even Python's whitespace-sensitive parsing has a feel of lending clarity through syntactical enforcement that is very much at odds with the much fuzzier style of typical Ruby code.
For example, Python's much-admired list comprehension feature serves as the most obvious way to build up certain kinds of lists according to initial conditions:
a = [x**3 for x in range(10,20)]
b = [y for y in a if y % 2 == 0]
first builds up a list of the cubes of all of the numbers between 10 and 19 (yes, 19), assigning the result to 'a'. A second list of those elements in 'a' which are even is then stored in 'b'. One natural way to do this in Ruby is probably:
a = (10..19).map {|x| x ** 3}
b = a.select {|y| y.even?}
but there are a number of obvious alternatives, such as:
a = (10..19).collect do |x|
x ** 3
end
b = a.find_all do |y|
y % 2 == 0
end
It tends to be a little easier to come up with equally viable, but syntactically distinct, solutions in Ruby compared to Python, even for relatively simple tasks like the above. That is not to say that Ruby is a messy language, either; it is merely that it is somewhat freer and more forgiving than Python is, and many consider Python's relative purity in this regard a real advantage when it comes to writing clear, easily understandable code.
And Somewhat One of Performance
The name placard in your cube might not say anything about sales, but the truth is that everyone, employed as such or not, is a salesperson at some point every single day. In the traditional sense, this could mean something like pitching your company’s solutions to a client. In the less-traditional sense, it could mean convincing your child to eat their vegetables. Yet for those two drastically different examples and everything in between, there is a constant for successful sellers: unveiling the “Why.”
Spending time and energy making prospects understand why you do what you do instead of exactly what it is you do or how you do it is not a new concept. But I’m a firm believer that proven concepts, no matter how old and frequently referenced they are, can’t be repeated enough. This idea has recently and fervently been popularized by marketer, author, and thinker extraordinaire Simon Sinek via his 2009 book, Start With Why. You can learn about him here on Wikipedia or here on his site. To begin, let me suggest that you watch Sinek’s TED talk on Starting With Why here on YouTube before reading any further. I’ll let him take care of the bulk of explaining the basics, and then will offer some ideas of my own to back this up in the real world and explore the best ways to start thinking this way and apply it to your business.
First, a little on me. After all, if I were to practice what Sinek preaches, it would follow that I explain why it is I’m writing this piece so that you, the reader, not only have a good reason to pay attention but also understand what drives me on a deeper level. So, who am I? I’m an entrepreneur in the music space. I do freelance work in the realms of copywriting, business development, and marketing for artists and industry / music-tech folks, but my main project is doing all of the above for a project I’ve been on the team for since day one called Presskit.to. In short, Presskit.to builds digital portfolios that artists of all kinds can use to represent themselves professionally when pitching their projects to gatekeepers like label reps, casting directors, managers, the press, etc. This core technology is also applicable to larger entertainment industry businesses and fine arts education institutions in enterprise formats, and solves a variety of the problems they’re facing.
Not interesting? I don’t blame you for thinking so, if you did. That’s because I just gave you a bland overview of what we do, instead of why we do it. What if, instead, I told you that myself and everyone I work with is an artist of some sort and believes that the most important thing you can do in life is create; that our technology exists to make creators’ careers more easily sustainable. Or, another approach, that we think the world is a better place when artists can make more art, and that because our technology was built to help artists win more business, we’re trying our best to do our part. Only you can be the judge, but I think that sort of pitch is more compelling. It touches on the emotions responsible for decision making that Sinek outlines in his Ted Talk, rather than the practical language-based reasons like pricing, technicalities, how everything works to accomplish given goals, etc. These things are on the outside of the golden circle Sinek shows us for a reason – they only really matter if you’ve aligned your beliefs with a client’s first. Otherwise these kind of tidbits are gobbledygook, and mind-numbingly boring gobbledygook at that.
Studying a functional programming language is a good way to discover new approaches to problems and different ways of thinking. Although functional programming has much in common with logic and imperative programming, it uses unique abstractions and a different toolset for solving problems. Likewise, many current mainstream languages are beginning to pick up and integrate various techniques and features from functional programming.
Many authorities feel that Haskell is a great introductory language for learning functional programming. However, there are various other possibilities, including Scheme, F#, Scala, Clojure, Erlang and others.
Haskell is widely recognized as a beautiful, concise and high-performing programming language. It is statically typed and supports various cool features that augment language expressivity, including currying and pattern matching. In addition to monads, the language support a type-class system based on methods; this enables higher encapsulation and abstraction. Advanced Haskell will require learning about combinators, lambda calculus and category theory. Haskell allows programmers to create extremely elegant solutions.
Scheme is another good learning language -- it has an extensive history in academia and a vast body of instructional documents. Based on the oldest functional language -- Lisp -- Scheme is actually very small and elegant. Studying Scheme will allow the programmer to master iteration and recursion, lambda functions and first-class functions, closures, and bottom-up design.
Supported by Microsoft and growing in popularity, F# is a multi-paradigm, functional-first programming language that derives from ML and incorporates features from numerous languages, including OCaml, Scala, Haskell and Erlang. F# is described as a functional language that also supports object-oriented and imperative techniques. It is a .NET family member. F# allows the programmer to create succinct, type-safe, expressive and efficient solutions. It excels at parallel I/O and parallel CPU programming, data-oriented programming, and algorithmic development.
Scala is a general-purpose programming and scripting language that is both functional and object-oriented. It has strong static types and supports numerous functional language techniques such as pattern matching, lazy evaluation, currying, algebraic types, immutability and tail recursion. Scala -- from "scalable language" -- enables coders to write extremely concise source code. The code is compiled into Java bytecode and executes on the ubiquitous JVM (Java virtual machine).
Like Scala, Clojure also runs on the Java virtual machine. Because it is based on Lisp, it treats code like data and supports macros. Clojure's immutability features and time-progression constructs enable the creation of robust multithreaded programs.
Erlang is a highly concurrent language and runtime. Initially created by Ericsson to enable real-time, fault-tolerant, distributed applications, Erlang code can be altered without halting the system. The language has a functional subset with single assignment, dynamic typing, and eager evaluation. Erlang has powerful explicit support for concurrent processes.
I will begin our blog on Java Tutorial with an incredibly important aspect of java development: memory management. The importance of this topic should not be minimized as an application's performance and footprint size are at stake.
From the outset, the Java Virtual Machine (JVM) manages memory via a mechanism known as Garbage Collection (GC). The Garbage collector
- Manages the heap memory. All obects are stored on the heap; therefore, all objects are managed. The keyword, new, allocates the requisite memory to instantiate an object and places the newly allocated memory on the heap. This object is marked as live until it is no longer being reference.
- Deallocates or reclaims those objects that are no longer being referened.
- Traditionally, employs a Mark and Sweep algorithm. In the mark phase, the collector identifies which objects are still alive. The sweep phase identifies objects that are no longer alive.
- Deallocates the memory of objects that are not marked as live.
- Is automatically run by the JVM and not explicitely called by the Java developer. Unlike languages such as C++, the Java developer has no explict control over memory management.
- Does not manage the stack. Local primitive types and local object references are not managed by the GC.
So if the Java developer has no control over memory management, why even worry about the GC? It turns out that memory management is an integral part of an application's performance, all things being equal. The more memory that is required for the application to run, the greater the likelihood that computational efficiency suffers. To that end, the developer has to take into account the amount of memory being allocated when writing code. This translates into the amount of heap memory being consumed.
Memory is split into two types: stack and heap. Stack memory is memory set aside for a thread of execution e.g. a function. When a function is called, a block of memory is reserved for those variables local to the function, provided that they are either a type of Java primitive or an object reference. Upon runtime completion of the function call, the reserved memory block is now available for the next thread of execution. Heap memory, on the otherhand, is dynamically allocated. That is, there is no set pattern for allocating or deallocating this memory. Therefore, keeping track or managing this type of memory is a complicated process. In Java, such memory is allocated when instantiating an object:
String s = new String(); // new operator being employed String m = "A String"; /* object instantiated by the JVM and then being set to a value. The JVM calls the new operator */
Tech Life in Missouri
| Company Name | City | Industry | Secondary Industry |
|---|---|---|---|
| Patriot Coal Corporation | Saint Louis | Agriculture and Mining | Mining and Quarrying |
| Solutia Inc. | Saint Louis | Manufacturing | Chemicals and Petrochemicals |
| Monsanto Company | Saint Louis | Agriculture and Mining | Agriculture and Mining Other |
| Kansas City Power and Light Company | Kansas City | Energy and Utilities | Gas and Electric Utilities |
| The Laclede Group, Inc. | Saint Louis | Energy and Utilities | Gas and Electric Utilities |
| Peabody Energy Corporation | Saint Louis | Agriculture and Mining | Mining and Quarrying |
| Emerson Electric Company | Saint Louis | Manufacturing | Tools, Hardware and Light Machinery |
| Energizer Holdings, Inc. | Saint Louis | Manufacturing | Manufacturing Other |
| Centene Corporation | Saint Louis | Healthcare, Pharmaceuticals and Biotech | Healthcare, Pharmaceuticals, and Biotech Other |
| Express Scripts | Saint Louis | Healthcare, Pharmaceuticals and Biotech | Pharmaceuticals |
| Reinsurance Group of America, Incorporated | Chesterfield | Financial Services | Insurance and Risk Management |
| Ameren Corporation | Saint Louis | Energy and Utilities | Gas and Electric Utilities |
| DST Systems, Inc. | Kansas City | Computers and Electronics | Networking Equipment and Systems |
| Inergy, L.P. | Kansas City | Energy and Utilities | Alternative Energy Sources |
| Leggett and Platt, Incorporated | Carthage | Manufacturing | Furniture Manufacturing |
| Cerner Corporation | Kansas City | Software and Internet | Software |
| O'Reilly Automotive, Inc. | Springfield | Retail | Automobile Parts Stores |
| AMC Theatres | Kansas City | Media and Entertainment | Motion Picture Exhibitors |
| Sigma-Aldrich Corporation | Saint Louis | Manufacturing | Chemicals and Petrochemicals |
| HandR Block | Kansas City | Financial Services | Securities Agents and Brokers |
| Graybar Services, Inc. | Saint Louis | Wholesale and Distribution | Wholesale and Distribution Other |
| Edward Jones | Saint Louis | Financial Services | Personal Financial Planning and Private Banking |
| Arch Coal, Inc. | Saint Louis | Energy and Utilities | Alternative Energy Sources |
| Brown Shoe Company, Inc. | Saint Louis | Retail | Clothing and Shoes Stores |
| Ralcorp Holdings, Inc. | Saint Louis | Manufacturing | Food and Dairy Product Manufacturing and Packaging |
training details locations, tags and why hsg
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.
- We have provided software development and other IT related training to many major corporations in Missouri since 2002.
- 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…














