IBM Training Classes in San Rafael, California
Learn IBM in San Rafael, California 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 IBM related training offerings in San Rafael, California: IBM Training
IBM Training Catalog
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
- Python for Scientists
8 December, 2025 - 12 December, 2025 - Fast Track to Java 17 and OO Development
8 December, 2025 - 12 December, 2025 - Introduction to Spring 6, Spring Boot 3, and Spring REST
15 December, 2025 - 19 December, 2025 - RED HAT ENTERPRISE LINUX SYSTEMS ADMIN II
8 December, 2025 - 11 December, 2025 - See our complete public course listing
Blog Entries publications that: entertain, make you think, offer insight
If you're someone who's interested in computer programming, chances are you've considered pursuing a career in it. However, being a computer programmer is definitely not for everyone, as it takes some special characteristics to succeed as a computer programmer.
Good at Math
While you don't have to be a math genius in order to be a good computer programmer, being good at math really does help. In general, as long as you know your trigonometry and advanced high school algebra, you should be set for programming.
However, in a few instances, knowledge of more advanced math ends up being necessary. For example, for shader programming, you should be familiar with integration of multiple variables, matrix algebra, and basic differentiation. You will also require considerable math skills in order to program 3D.
Excellent Problem Solver
To be a successful computer programmer, you definitely need to be an excellent problem solver. It is vital for a computer programmer to break a problem down into small parts. They must then be able to decide the best way to approach individual pieces of the problem. Computer programmers also need to know how to anticipate and prevent potential problems. While problem-solving, they also need to keep in mind things like user experience and performance.
If you're not a good problem solver, knowing a particular language and syntax will be useless if you can't even identify the problem at hand. Therefore, excellent problem solving skills are a critical foundation for computer programming.
Patience
If you are not a patient person, you will quickly become very frustrated with computer programming. Problem-solving is not always easy and fast. In fact, it may take a very long time, especially if you're either inexperienced or working on an especially hard project.
Debugging after the coding process is also very frustrating and tedious. No matter how hard you try, you will always have bugs in your coding, and these bugs, while often easy to fix, tend to be very difficult to detect. Therefore, you will end up spending a lot of your time searching for bugs that take very little time to fix.
Well-Rounded Skills
Generally, computer programmers who are very skilled in one area tend to stick around longer than jack-of-all-trades, as specialized programmers are harder to replace with outsourcing than general programmers. Therefore, it will do you well to specialize in one area of computer programming.
However, while specializing is good, you should still know at least a little about everything, especially skills that relate to the area you specialize in. For example, if you're a core Java programmer, you should know about SQL programming and ideally a scripting language or some regular expressions.
As you can see, not everyone has what it takes to pursue computer programming as a career and succeed at it. In fact, just because you love to program doesn't mean it's a good career choice for you. However, if you feel that you possess all the characteristics listed above, then you should definitely consider computer programming as a career.
I suspect that many of you are familiar with the term "hard coding a value" whereby the age of an individual or their location is written into the condition (or action) of a business rule (in this case) as shown below:
if customer.age > 21 and customer.city == 'denver'
then ...
Such coding practices are perfectly expectable provided that the conditional values, age and city, never change. They become entirely unacceptable if a need for different values could be anticipated. A classic example of where this practice occurred that caused considerable heartache in the IT industry was the Y2K issue where dates were updated using only the last 2 digits of a four digit number because the first 2 digits were hard-coded to 19 i.e. 1998, 1999. All was well provided that the date did not advance to a time beyond the 1900’s since no one could be certain of what would happen when the millennia arrived (2000). A considerably amount of work (albeit boring) and money, approximately $200 billion, went into revising systems by way of software rewrites and computer chip replacements in order to thwart any detrimental outcomes. It is obvious how a simple change or an assumption can have sweeping consequences.
You may wonder what Y2K has to do with Business Rule Management Systems (BRMS). Well, what if we considered rules themselves to be hard-coded. If we were to write 100s of rules in Java, .NET or whatever language that only worked for a given scenario or assumption, would that not constitute hard-coded logic? By hard-coded, we obviously mean compiled. For example, if a credit card company has a variety of bonus campaigns, each with their own unique list of rules that may change within a week’s time, what would be the most effective way of writing software to deal with these responsibilities?
Being treated like a twelve year old at work by a Tasmanian-devil-manager and not sure what to do about it? It is simply a well-known fact that no one likes to be micro managed. Not only do they not like to be micro managed, but tend to quit for this very reason. Unfortunately the percentage of people leaving their jobs for this reason is higher that you would imagine. Recently, an employee retention report conducted by TINYpulse, an employee engagement firm, surveyed 400 full-time U.S. employees concluded that, "supervisors can make or break employee retention."
As companies mature, their ability to manage can be significant to their bottom line as employee morale, high staff turnover and the cost of training new employees can easily reduce productivity and consequently client satisfaction. In many cases, there is a thin line between effective managing and micro managing practices. Most managers avoid micro managing their employees. However, a decent percentage of them have yet to find effective ways to get the most of their co-workers. They trap themselves by disempowering people's ability to do their work when they hover over them and create an unpleasant working environment. This behavior may come in the form of incessant emailing, everything having to be done a certain way (their way), desk hovering, and a need to control every part of an enterprise, no matter how small.
Superimpose the micro manager into the popular practice of Agile-SCRUM methodology and you can imagine the creative ways they can monitor everything in a team, situation, or place. Although, not always a bad thing, excessive control, can lead to burnout of managers and teams alike. As predicted, agile project management has become increasingly popular in the last couple of decades in project planning, particularly in software development. Agile methodology when put into practice, especially in IT, can mean releasing faster functional software than with the traditional development methods. When done right, it enables users to get some of the business benefits of the new software faster as well as enabling the software team to get rapid feedback on the software's scope and direction.
Despite its advantages, most organizations have not been able to go “all agile” at once. Rather, some experiment with their own interpretation of agile when transitioning. A purist approach for instance, can lead to an unnecessarily high agile project failure, especially for those that rely on tight controls, rigid structures and cost-benefit analysis. As an example, a premature and rather rapid replacement of traditional development without fully understating the implications of the changeover process or job roles within the project results in failure for many organizations.
This section of our beginning python training class always stumps students. Firstly, because they need to know the difference between a function and a method. Secondly, they need to understand object oriented programming concepts. Thirdly, they need to realize that python has three types of methods. Then they need to know how to use each method, which means they need to know the purpose of each method type. Then they have to understand mutable versus non-mutable types. The list goes on. As part of our python tutorial, I hope to shed some light on this confusing topic.
To begin, the difference between a function and a method in python is that a method is defined within a class. Here is an illustration:
#function def greeting(): print "Hello, I hope you're having a great day!" class HSGPrinter(object): #method def greeting(self): print "Hello, I hope you're having a great day!"
As should be obvious, the second definition of greeting is encapsulated within the HSGPrinter class and is , therefore, refered to as a method.
The astute reader will notice that the greeting method contains one parameter named self. For those who know C++ , Java or C#, self is equivalent to this i.e. it is a reference to the invoking object:
Tech Life in California
| Company Name | City | Industry | Secondary Industry |
|---|---|---|---|
| Mattel, Inc. | El Segundo | Retail | Sporting Goods, Hobby, Book, and Music Stores |
| Spectrum Group International, Inc. | Irvine | Retail | Retail Other |
| Chevron Corp | San Ramon | Energy and Utilities | Gasoline and Oil Refineries |
| Jacobs Engineering Group, Inc. | Pasadena | Real Estate and Construction | Construction and Remodeling |
| eBay Inc. | San Jose | Software and Internet | E-commerce and Internet Businesses |
| Broadcom Corporation | Irvine | Computers and Electronics | Semiconductor and Microchip Manufacturing |
| Franklin Templeton Investments | San Mateo | Financial Services | Investment Banking and Venture Capital |
| Pacific Life Insurance Company | Newport Beach | Financial Services | Insurance and Risk Management |
| Tutor Perini Corporation | Sylmar | Real Estate and Construction | Construction and Remodeling |
| SYNNEX Corporation | Fremont | Software and Internet | Data Analytics, Management and Storage |
| Core-Mark International Inc | South San Francisco | Manufacturing | Food and Dairy Product Manufacturing and Packaging |
| Occidental Petroleum Corporation | Los Angeles | Manufacturing | Chemicals and Petrochemicals |
| Yahoo!, Inc. | Sunnyvale | Software and Internet | Software and Internet Other |
| Edison International | Rosemead | Energy and Utilities | Gas and Electric Utilities |
| Ingram Micro, Inc. | Santa Ana | Computers and Electronics | Consumer Electronics, Parts and Repair |
| Safeway, Inc. | Pleasanton | Retail | Grocery and Specialty Food Stores |
| Gilead Sciences, Inc. | San Mateo | Healthcare, Pharmaceuticals and Biotech | Pharmaceuticals |
| AECOM Technology Corporation | Los Angeles | Real Estate and Construction | Architecture,Engineering and Design |
| Reliance Steel and Aluminum | Los Angeles | Manufacturing | Metals Manufacturing |
| Live Nation, Inc. | Beverly Hills | Media and Entertainment | Performing Arts |
| Advanced Micro Devices, Inc. | Sunnyvale | Computers and Electronics | Semiconductor and Microchip Manufacturing |
| Pacific Gas and Electric Corp | San Francisco | Energy and Utilities | Gas and Electric Utilities |
| Electronic Arts Inc. | Redwood City | Software and Internet | Games and Gaming |
| Oracle Corporation | Redwood City | Software and Internet | Software and Internet Other |
| Symantec Corporation | Mountain View | Software and Internet | Data Analytics, Management and Storage |
| Dole Food Company, Inc. | Thousand Oaks | Manufacturing | Food and Dairy Product Manufacturing and Packaging |
| CBRE Group, Inc. | Los Angeles | Real Estate and Construction | Real Estate Investment and Development |
| First American Financial Corporation | Santa Ana | Financial Services | Financial Services Other |
| The Gap, Inc. | San Francisco | Retail | Clothing and Shoes Stores |
| Ross Stores, Inc. | Pleasanton | Retail | Clothing and Shoes Stores |
| Qualcomm Incorporated | San Diego | Telecommunications | Wireless and Mobile |
| Charles Schwab Corporation | San Francisco | Financial Services | Securities Agents and Brokers |
| Sempra Energy | San Diego | Energy and Utilities | Gas and Electric Utilities |
| Western Digital Corporation | Irvine | Computers and Electronics | Consumer Electronics, Parts and Repair |
| Health Net, Inc. | Woodland Hills | Healthcare, Pharmaceuticals and Biotech | Healthcare, Pharmaceuticals, and Biotech Other |
| Allergan, Inc. | Irvine | Healthcare, Pharmaceuticals and Biotech | Biotechnology |
| The Walt Disney Company | Burbank | Media and Entertainment | Motion Picture and Recording Producers |
| Hewlett-Packard Company | Palo Alto | Computers and Electronics | Consumer Electronics, Parts and Repair |
| URS Corporation | San Francisco | Real Estate and Construction | Architecture,Engineering and Design |
| Cisco Systems, Inc. | San Jose | Computers and Electronics | Networking Equipment and Systems |
| Wells Fargo and Company | San Francisco | Financial Services | Banks |
| Intel Corporation | Santa Clara | Computers and Electronics | Semiconductor and Microchip Manufacturing |
| Applied Materials, Inc. | Santa Clara | Computers and Electronics | Semiconductor and Microchip Manufacturing |
| Sanmina Corporation | San Jose | Computers and Electronics | Semiconductor and Microchip Manufacturing |
| Agilent Technologies, Inc. | Santa Clara | Telecommunications | Telecommunications Equipment and Accessories |
| Avery Dennison Corporation | Pasadena | Manufacturing | Paper and Paper Products |
| The Clorox Company | Oakland | Manufacturing | Chemicals and Petrochemicals |
| Apple Inc. | Cupertino | Computers and Electronics | Consumer Electronics, Parts and Repair |
| Amgen Inc | Thousand Oaks | Healthcare, Pharmaceuticals and Biotech | Biotechnology |
| McKesson Corporation | San Francisco | Healthcare, Pharmaceuticals and Biotech | Pharmaceuticals |
| DIRECTV | El Segundo | Telecommunications | Cable Television Providers |
| Visa, Inc. | San Mateo | Financial Services | Credit Cards and Related Services |
| Google, Inc. | Mountain View | Software and Internet | E-commerce and Internet Businesses |
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 California 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 IBM programming
- Get your questions answered by easy to follow, organized IBM experts
- Get up to speed with vital IBM 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…














