Java Programming Training Classes in Gaithersburg, Maryland
Training Suggestions from the Experts

An Experienced Java developer must know
... everything or so it can seem. A solid grasp and knowledge of Object Oriented Programming constructs such as inheritance, polymorphism, interfaces and reflection are essential. Next in line is the knowldge to be able to import/export file data, running SQL queries, using regular expressions and, possibly, knowing how to write multi-threaded code and make socket connections. A class that addresses most of these topics is: Fast Track to Java 11 and OO Development.
For the more daring Java enthusiast and especially for those looking to become professional Java developers, knowledge of the Spring Framework is expected. A perfect class for this is: Fast Track to Spring Framework and Spring MVC/Rest. Not only does this course provide students with a great introduction to spring, it goes beyond the basics with a solid delve into Spring and web development.
Another consideration is learning JBoss aka Wildfly, the free Application Server from RedHat. JBoss has become the workhorse of most Java EE applications. Add to that a class on Tomcat, the defacto servlet engine, and the student can be considered 'ready' for employment.
Call for Details: 303.377.6176
Learn Java Programming in Gaithersburg, Maryland 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 Java Programming related training offerings in Gaithersburg, Maryland: Java Programming Training
Java Programming Training Catalog
subcategories
JBoss Administration Classes
JUnit, TDD, CPTC, Web Penetration Classes
Java Enterprise Edition Classes
Java Programming Classes
Spring Classes
Course Directory [training on all levels]
- .NET Classes
- Agile/Scrum Classes
- AI Classes
- Ajax Classes
- Android and iPhone Programming Classes
- Blaze Advisor Classes
- C Programming Classes
- C# Programming Classes
- C++ Programming Classes
- Cisco Classes
- Cloud Classes
- CompTIA Classes
- Crystal Reports 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
- 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
- Object Oriented Analysis and Design Using UML
20 October, 2025 - 24 October, 2025 - RHCSA EXAM PREP
17 November, 2025 - 21 November, 2025 - Introduction to Spring 6, Spring Boot 3, and Spring REST
25 August, 2025 - 29 August, 2025 - ASP.NET Core MVC (VS2022)
6 October, 2025 - 7 October, 2025 - Object-Oriented Programming in C# Rev. 6.1
15 September, 2025 - 19 September, 2025 - See our complete public course listing
Blog Entries publications that: entertain, make you think, offer insight
Facebook has recently released a collection of C++ software modules that it uses to run the popular website. With Facebook releasing Folly (the name it designated for the collection), more of the internal programs could become open source since they need different parts of the collection.
Jordan DeLong, a Facebook software engineer, said one concerning holdup to releasing additional work is that any open source project had to cut away from the dependencies on non-released internal collection code.
When it comes to running a start up, leaders need to make sure that their key players are motivated. This has been seen with many companies. Back in the 1970's it was found with the inspiration and diligence of the late Daniel Nigro when he formed Kleer-Fax. More recently it was seen in David Khasidy, the founder and recently retired president of SunRay Power Management, the most dynamic green energy leader in the US today.
The question is, what is it that great leaders like David Khasidy and Daniel Nigro do that make the difference? How do the most vulnerable companies (start ups) break the mold and become a part of our everyday lives?
It starts with their mission and vision.
Create a Strong Mission and Vision
There are many reasons why start ups fail. For one, they usually lack the capital to last through the lean times. Secondly, they often don't have the tolerance for setbacks that occur. Lastly, they do not have a long-term plan, also called a mission.
When a business has a strong mission, the team knows it and their focus toward their work and service to others within and without the company reflects that. To complement that, the shorter term vision of the company needs to be present as well.
This can even be seen in sole proprietorships with no employees, such as when Brian Pascale started his law practice. His vision was to find justice for his clients while his mission was to build upon a career that had already set precedents in the area of tort law.
As his practice has grown, new staff members can sense the vision and mission he exudes.
Encourage Ownership of Projects and Processes
Start ups need to inspire and motivate their employees because they need to know that they are not only a part of something important, but that their contributions mean something.
What won't happen if they are not there? What contribution do they make, and what are the consequences of them not fulfilling their part of the work?
By encouraging ownership in projects, team members can find that the work they are doing is not only important for the organization, but that they are going to be a big part of what makes it happen. The alternative is that they feel replaceable.
Offer Incentives That Keep the Company Competitive
When team members embrace the mission and vision of the company, and then take ownership for the company's success, they are going to need to be justly rewarded.
This could include flexible schedules (for those who don't need a stringent one), use of an account at a nearby takeout place, or even the potential for ownership as a result of a vesting program.
The incentive everyone is looking for more immediately, though, is cash. When the company takes in more revenue as a result of the efforts of those on the team, rewarding them can go a long way not only in making them feel appreciated, but in encouraging them to bring in more business.
Members of a start up team are usually very talented, and commonly underpaid. However, if they believe they are going somewhere, it will make a big difference.
Related:
Good non-programmer jobs for people with software developer experience
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:
- 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().
- 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.
- 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.
- 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.
- 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.
- 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.
- As Donald Knuth wrote in one of his papers: “Early optimization is the root of all evil”. Meaning, write for readability first, optimize later.
- 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
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::vector::push_back()
, and with std::map
. Knowing the difference between these two maps, you’d know when to use each one of them.std::unordered_map
Never call
or new
directly, use delete
and [cost c++]std::make_shared[/code] instead. Try to implement std::make_unique
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.usique_ptr, shared_ptr, weak_ptr
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.
Java still has its place in the world of software development, but is it quickly becoming obsolete by the more dynamically enabled Python programming language? The issue is hotly contested by both sides of the debate. Java experts point out that Java is still being developed with more programmer friendly updates. Python users swear that Java can take up to ten times longer to develop. Managers that need to make the best decision for a company need concrete information so that an informed and rational decision can be made.
First, Java is a static typed language while Python is dynamically typed. Static typed languages require that each variable name must be tied to both a type and an object. Dynamically typed languages only require that a variable name only gets bound to an object. Immediately, this puts Python ahead of the game in terms of productivity since a static typed language requires several elements and can make errors in coding more likely.
Python uses a concise language while Java uses verbose language. Concise language, as the name suggests, gets straight to the point without extra words. Removing additional syntax can greatly reduce the amount of time required to program. A simple call in Java, such as the ever notorious "Hello, World" requires three several lines of coding while Python requires a single sentence. Java requires the use of checked exceptions. If the exceptions are not caught or thrown out then the code fails to compile. In terms of language, Python certainly has surpassed Java in terms of brevity.
Additionally, while Java's string handling capabilities have improved they haven't yet matched the sophistication of Python's. Web applications rely upon fast load times and extraneous code can increase user wait time. Python optimizes code in ways that Java doesn't, and this can make Python a more efficient language. However, Java does run faster than Python and this can be a significant advantage for programmers using Java. When you factor in the need for a compiler for Java applications the speed factor cancels itself out leaving Python and Java at an impasse.
While a programmer will continue to argue for the language that makes it easiest based on the programmer's current level of knowledge, new software compiled with Python takes less time and provides a simplified coding language that reduces the chance for errors. When things go right, Java works well and there are no problems. However, when errors get introduced into the code, it can become extremely time consuming to locate and correct those errors. Python generally uses less code to begin with and makes it easier and more efficient to work with.
Ultimately, both languages have their own strengths and weaknesses. For creating simple applications, Python provides a simpler and more effective application. Larger applications can benefit from Java and the verbosity of the code actually makes it more compatible with future versions. Python code has been known to break with new releases. Ultimately, Python works best as a type of connecting language to conduct quick and dirty work that would be too intensive when using Java alone. In this sense, Java is a low-level implementation language. While both languages are continuing to develop, it's unlikely that one language will surpass the other for all programming needs in the near future.
Tech Life in Maryland
Company Name | City | Industry | Secondary Industry |
---|---|---|---|
McCormick and Company, Incorporated | Sparks | Wholesale and Distribution | Grocery and Food Wholesalers |
USEC Inc. | Bethesda | Manufacturing | Manufacturing Other |
Coventry Health Care, Inc. | Bethesda | Healthcare, Pharmaceuticals and Biotech | Healthcare, Pharmaceuticals, and Biotech Other |
Host Hotels and Resorts, Inc. | Bethesda | Travel, Recreation and Leisure | Hotels, Motels and Lodging |
W.R. Grace and Co. | Columbia | Agriculture and Mining | Farming and Ranching |
Discovery Communications, Inc. | Silver Spring | Media and Entertainment | Radio and Television Broadcasting |
Legg Mason, Inc. | Baltimore | Financial Services | Financial Services Other |
Marriott International Inc. | Bethesda | Travel, Recreation and Leisure | Hotels, Motels and Lodging |
Constellation Energy Resources, LLC | Baltimore | Energy and Utilities | Gas and Electric Utilities |
Lockheed Martin Corporation | Bethesda | Manufacturing | Aerospace and Defense |
T. Rowe Price | Baltimore | Financial Services | Investment Banking and Venture Capital |
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 Maryland 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 Java Programming programming
- Get your questions answered by easy to follow, organized Java Programming experts
- Get up to speed with vital Java Programming 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…