Ruby Programming Training Classes in Saarbrucken, Germany

Hartmann Software Group Ruby Training

Learn Ruby Programming in Saarbrucken, Germany 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 Ruby Programming related training offerings in Saarbrucken, Germany: Ruby Programming Training

We offer private customized training for groups of 3 or more attendees.
Saarbrucken  Upcoming Instructor Led Online and Public Ruby Programming Training Classes
Ruby on Rails Training/Class 2 May, 2024 - 3 May, 2024 $790
HSG Training Center instructor led online
Saarbrucken, Germany
Hartmann Software Group Training Registration
Ruby Programming Training/Class 29 April, 2024 - 1 May, 2024 $1090
HSG Training Center instructor led online
Saarbrucken, Germany
Hartmann Software Group Training Registration

Ruby Programming Training Catalog

cost: $ 1690length: 4 day(s)
cost: $ 290length: 1 day(s)
cost: $ 790length: 2 day(s)
cost: $ 1090length: 3 day(s)

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

 

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?

What are the three most important things non-programmers should know about programming?
 
Written by Brian Knapp, credit and reprint CodeCareerGenius
 
 
Since you asked for the three most important things that non-programmers should know about, and I’ve spent most of my career working with more non-programmers than programmers, I have a few interesting things that would help.
 
Number One - It Is Impossible To Accurately Estimate Software Projects
 
No matter what is tried. No matter what tool, agile approach, or magic fairy dust people try to apply to creating software… accurately predicting software project timelines is basically impossible.
 
There are many good reasons for this. Usually, requirements and feature ideas change on a daily/weekly basis. Often it is impossible to know what needs to be done without actually digging into the code itself. Debugging and QA can take an extraordinary amount of time.
 
And worst of all…
 
Project Managers are always pushing for shorter timelines. They largely have no respect for reality. So, at some point they are given estimates just to make them feel better about planning.
 
No matter how much planning and estimation you do, it will be wrong. At best it will be directionally correct +/- 300% of what you estimated. So, a one year project could actually take anywhere between 0 and 5 years, maybe even 10 years.
 
If you think I’m joking, look at how many major ERP projects that go over time and over budget by many years and many hundreds of millions of dollars. Look at the F-35 fighter jet software issues.
 
Or in the small, you can find many cases where a “simple bug fix” can take days when you thought it was hours.
 
All estimates are lies made up to make everyone feel better. I’ve never met a developer or manager who could accurately estimate software projects even as well as the local weatherman(or woman) predicts the weather.
 
Number Two - Productivity Is Unevenly Distributed
 
What if I told you that in the average eight hour work day the majority of the work will get done in a 30 minute timeframe? Sound crazy?
 
Well, for most programmers there is a 30–90 minute window where you are extraordinarily productive. We call this the flow state.
 
Being in the flow state is wonderful and amazing. It often is where the “magic” of building software happens.
 
Getting into flow can be difficult. It’s akin to meditation in that you have to have a period of uninterrupted focus of say 30 minutes to “get in” the flow, but a tiny interruption can pull you right out.
 
Now consider the modern workplace environment. Programmers work in open office environments where they are invited to distract each other constantly.
 
Most people need a 1–2 hour uninterrupted block to get 30–90 minutes of flow.
 
Take the 8 hour day and break it in half with a lunch break, and then pile in a few meetings and all of a sudden you are lucky to get one decent flow state session in place.
 
That is why I say that most of the work that gets done happens in a 30 minute timeframe. The other 7–8 hours are spent being distracted, answering email, going to meetings, hanging around the water cooler, going to the bathroom, and trying to remember what you were working on before all these distractions.
 
Ironically, writers, musicians, and other creative professionals have their own version of this problem and largely work alone and away from other people when they are creating new things.
 
Someday the programming world might catch on, but I doubt it.
 
Even if this became obvious, it doesn’t sit well with most companies to think that programmers would be paid for an 8 hour day and only be cranking out code for a few hours on a good day. Some corporate middle manager would probably get the bright idea to have mandatory flow state training where a guru came in and then there would be a corporate policy from a pointy haired boss mandating that programmers are now required to spend 8 hours a day in flow state and they must fill out forms to track their time and notify their superiors of their flow state activities, otherwise there would be more meetings about the current flow state reports not being filed correctly and that programmers were spending too much time “zoning out” instead of being in flow.
 
Thus, programmers would spent 7–8 hours a day pretending to be in flow state, reporting on their progress, and getting all their work done in 30 minutes of accidental flow state somewhere in the middle of all that flow state reporting.
 
If you think I’m joking about this, I’m not. I promise you this is what would happen to any company of more than 2 employees. (Even the ones run by programmers.)
 
Number Three - It Will Cost 10x What You Think
 
Being a programmer, I get a lot of non-programmers telling me about their brilliant app ideas. Usually they want me to build something for free and are so generous as to pay me up to 5% of the profits for doing 100% of the work.
 
Their ideas are just that good.
 
Now, I gently tell them that I’m not interested in building anything for free.
 
At that point they get angry, but a few ask how much it will cost. I give them a reasonable (and very incorrect) estimate of what it would cost to create the incredibly simple version of their app idea.
 
Let’s say it’s some number like $25,000.
 
They look at me like I’m a lunatic, and so I explain how much it costs to hire a contract programmer and how long it will actually take. For example’s sake let’s say it is $100/hr for 250 hours.
 
To be clear, these are made up numbers and bad estimates (See Number One for details…)
 
In actuality, to build the actual thing they want might cost $250,000, or even $2,500,000 when it’s all said and done.
 
Building software can be incredibly complex and expensive. What most people can’t wrap their head around is the fact that a company like Google, Apple, or Microsoft has spent BILLIONS of dollars to create something that looks so simple to the end user.
 
Somehow, the assumption is that something that looks simple is cheap and fast to build.
 
Building something simple and easy for the end user is time consuming and expensive. Most people just can’t do it.
 
So, the average person with a brilliant app idea thinks it will cost a few hundred or maybe a few thousand dollars to make and it will be done in a weekend is so off the mark it’s not worth considering their ideas.
 
And programmers are too eager to play along with these bad ideas (by making bad estimates and under charging for their time) that this notion is perpetuated to the average non-programmer.
 
So, a good rule of thumb is that software will cost 10 times as much as you think and take 10 times as long to finish.
 
And that leads to a bonus point…
 
BONUS - Software Is Never Done
 
Programmers never complete a software project, they only stop working on it. Software is never done.
 
I’ve worked at many software companies and I’ve never seen a software project “completed”.
 
Sure, software gets released and used. But, it is always changing, being updated, bugs get fixed, and there are always new customer requests for features.
 
Look at your favorite software and you’ll quickly realize how true this is. Facebook, Instagram, Google Search, Google Maps, GMail, iOS, Android, Windows, and now even most video games are never done.
 
There are small armies of developers just trying to keep all the software you use every day stable and bug free. Add on the fact that there are always feature requests, small changes, and new platforms to deal with, it’s a treadmill.
 
So, the only way out of the game is to stop working on software. At that point, the software begins to decay until it is no longer secure or supported.
 
Think about old Windows 3.1 software or maybe old Nintendo Cartridge video games. The current computers and video game consoles don’t even attempt to run that software anymore.
 
You can’t put an old video game in your new Nintendo Switch and have it “just work”. That is what happens when you think software is done.
 
When programmers stop working on software the software starts to die. The code itself is probably fine, but all the other software keeps moving forward until your software is no longer compatible with the current technology.
 
So, those are the four most important things that non-programmers should know about programming. I know you asked for only three, so I hope the bonus was valuable to you as well.

It is said that spoken languages shape thoughts by their inclusion and exclusion of concepts, and by structuring them in different ways. Similarly, programming languages shape solutions by making some tasks easier and others less aesthetic. Using F# instead of C# reshapes software projects in ways that prefer certain development styles and outcomes, changing what is possible and how it is achieved.

F# is a functional language from Microsoft's research division. While once relegated to the land of impractical academia, the principles espoused by functional programming are beginning to garner mainstream appeal.

As its name implies, functions are first-class citizens in functional programming. Blocks of code can be stored in variables, passed to other functions, and infinitely composed into higher-order functions, encouraging cleaner abstractions and easier testing. While it has long been possible to store and pass code, F#'s clean syntax for higher-order functions encourages them as a solution to any problem seeking an abstraction.

F# also encourages immutability. Instead of maintaining state in variables, functional programming with F# models programs as a series of functions converting inputs to outputs. While this introduces complications for those used to imperative styles, the benefits of immutability mesh well with many current developments best practices.

For instance, if functions are pure, handling only immutable data and exhibiting no side effects, then testing is vastly simplified. It is very easy to test that a specific block of code always returns the same value given the same inputs, and by modeling code as a series of immutable functions, it becomes possible to gain a deep and highly precise set of guarantees that software will behave exactly as written.

Further, if execution flow is exclusively a matter of routing function inputs to outputs, then concurrency is vastly simplified. By shifting away from mutable state to immutable functions, the need for locks and semaphores is vastly reduced if not entirely eliminated, and multi-processor development is almost effortless in many cases.

Type inference is another powerful feature of many functional languages. It is often unnecessary to specify argument and return types, since any modern compiler can infer them automatically. F# brings this feature to most areas of the language, making F# feel less like a statically-typed language and more like Ruby or Python. F# also eliminates noise like braces, explicit returns, and other bits of ceremony that make languages feel cumbersome.

Functional programming with F# makes it possible to write concise, easily testable code that is simpler to parallelize and reason about. However, strict functional styles often require imperative developers to learn new ways of thinking that are not as intuitive. Fortunately, F# makes it possible to incrementally change habits over time. Thanks to its hybrid object-oriented and functional nature, and its clean interoperability with the .net platform, F# developers can gradually shift to a more functional mindset while still using the algorithms and libraries with which they are most familiar.

 

Related F# Resources:

F# Programming Essentials Training

Anonymous reprint from Quora (career advice)

Occasionally we come across a unique profound perspective that makes one stop and really listen. The following advice is one such as this.

  1. Small actions compound: Reputation, career trajectory, and how others perceive you in the workplace can come down to a handful of things/moments that seem inconsequential/small at the time but compound. Random Thought: Redwood trees come from small seeds and time. With every action you're planting small seeds and these seeds can grow into something bigger (sometimes unimaginably bigger) over time. Don't let small basic mistakes sabotage your reputation because it only takes a few small snafus for people to lose confidence/trust in your ability to do more important tasks. Trust is a fragile thing and the sooner people can trust you the faster they'll give you more responsibility. Some Examples: Being on time (always) or early (better); spending an extra 10-15 minutes reviewing your work and catching basic mistakes before your boss does; structuring your work so it's easy for others to understand and leverage (good structure/footnotes/formatting); taking on unpleasant schleps/tasks (volunteer for them; don't complain; do it even when there's no apparent benefit to you)  

  2. Rising tide lifts all boats: Fact: You don't become CEO of a multi-billion dollar public company in your 30s based purely on ability/talent. Your career is a boat and it is at the mercy of tides. No matter how talented you are it's a lot harder to break out in a sluggish situation/hierarchy/economy than a go-go environment. Even if you're a superstar at Sluggish Co., your upside trajectory (more often than not) is fractional to what an average/below average employee achieves at Rocket Ship Co. There's a reason Eric Schmidt told Sheryl Sandberg to "Get on a Rocket Ship". I had colleagues accelerate their careers/income/title/responsibility simply because business demand was nose bleed high (go go economy) and they were at the right place at the right time to ride the wave. Contrast that to the 2008 bust where earnings/promotions/careers have been clamped down and people are thankful for having jobs let alone moving up. Yes talent still matters but I think people generally overweight individual talent and underweight economics when evaluating/explaining their career successes. Sheryl Sandberg Quote: When companies are growing quickly and they are having a lot of impact, careers take care of themselves. And when companies aren’t growing quickly or their missions don’t matter as much, that’s when stagnation and politics come in. If you’re offered a seat on a rocket ship, don’t ask what seat. Just get on.

  3. Seek opportunities where the outcome is success or failure. Nothing in between! You don't become a star doing your job. You become a star making things happen. I was once told early in my career that you learn the most in 1) rapidly growing organizations or 2) failing organizations.  I've been in both kinds of situations and wholeheartedly agree. Repeat. Get on a rocket ship. It'll either blow up or put you in orbit. Either way you'll learn a ton in a short amount of time. Put another way; seek jobs where you can get 5-10 years of work experience in 1-2 years.

  4. Career Tracks & Meritocracies don't exist: Your career is not a linear, clearly defined trajectory.  It will be messy and will move more like a step function.

  5. You will probably have champions and detractors on day 1: One interesting byproduct of the recruiting & hiring process of most organizations is it can create champions & detractors before you even start the job. Some folks might not like how you were brought into the organization (they might have even protested your hiring) and gun for you at every turn while others will give you the benefit of the doubt (even when you don't deserve one) because they stuck their neck out to hire you. We're all susceptible to these biases and few people truly evaluate/treat folks on a blank slate.

  6. You'll only be known for a few things. Make those labels count: People rely on labels as quick filters. Keep this in mind when you pick an industry/company/job role/school because it can serve as an anchor or elevator in the future. It's unfortunate but that's the way it is. You should always be aware of what your "labels" are.

  7. Nurture & protect your network and your network will nurture & protect you: Pay it forward and help people. Your network will be one of the biggest drivers of your success.

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 Germany 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 Ruby Programming programming
  • Get your questions answered by easy to follow, organized Ruby Programming experts
  • Get up to speed with vital Ruby 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…
learn more
page tags
what brought you to visit us
Saarbrucken, Germany Ruby Programming Training , Saarbrucken, Germany Ruby Programming Training Classes, Saarbrucken, Germany Ruby Programming Training Courses, Saarbrucken, Germany Ruby Programming Training Course, Saarbrucken, Germany Ruby Programming Training Seminar
training locations
Germany cities where we offer Ruby Programming Training Classes

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