What’s in a name: Basic stuff

JUGs: Beginner or rock star meet ups?
September 29, 2016 by Michael

Some days ago a tweet by Oracles Bruno Borges caught my eye:

It's a real good question and one that has been on my mind for quite some time now. I discussed the flood of emerging rock star programmers with members of my JUG as well as the question of reading a "beginners" book about programming:

Self evident – or just a filter bubble?

So, what's important regarding basic stuff? I'd expect people visiting a Java user group or any other user group having an understanding and idea of the topic discussed: A JUG may not be the right place to learn basic Java syntax and explaining the differences between a class and an object. It might however be a place to debate questions like having public class variables or having a copy constructor due to some rule. I wrote this article about creational patterns with Java 8 some weeks ago and I wasn't quite sure how that would be received: In the filter bubble I'm living in right now it may is basic stuff but judging from the feedback I got, it actually matters: Still people have a hard time understanding the difference between a factory and a builder or even understanding the need for something like this.

It's important to discuss questions like these because they will ultimately form a new software system and are the fundamentals of an architecture.

Basic or fundamentally?

Regarding the book "Weniger schlecht programmieren" ("Less bad programming") by Kathrin Passig and Johannes Jander: One might think that this book is target at absolute beginners but stating that would mean not having understood one of the first chapters about the four stages of competence: Basic stuff like how to ask the right question, listening to answers, being aware of what you don't know is not only basic but fundamentally. That stuff has hardly to do anything with knowing a certain language or framework. Learning this "basic" stuff by heart is something that will last when the latest hype has long gone.

Soft skills aren't basic but fundamentally things. If a JUG can be a safe room where those can be trained: Awesome, mission accomplished. Regardless how hard one maybe wish, creating software that is used and may even earn your money isn't about programming a computer, but listening, questioning and then programming.

A fool with a tool…

It's not enough knowing a tool and having used it once. There is a horrendous post going around titled "How Hibernate Almost Ruined My Career" at a place for "Top coders". I'm not gonna link that, you can search for it yourself. Ten years ago I might have written such a post myself: Having worked my way through tutorials, even sources maybe and still the hammer is not tighten my damn screws. A post like this is maybe good enough for letting off steam, but not for much else.

Learning how to choose the right tool for a certain task and being open for new tools is a basic stuff.

A JUG should be a place open for presenting tools and discussing them. I'm not going to user groups or conferences to come back with a bag of new tools that I have to throw like now at my current problem, but meet and hopefully discuss with people what the basic advantage of a new tool, framework or architectural pattern actually is.

Room for improvment

Looking back over the past 10 years my life as a programmer has become really "easy". Creating a microservice in 30 minutes while talking about it? Fun! Effortless integration testing with enterprise databases? Done. Making JPA / Hibernate a tool effortless to use? Throw Spring Data JPA in the mix. The list could go on…

Instead of configuring a Spring context, an application server or installing throwaway databases for testing, I now have much more time at my disposal for thinking about basic stuff: How to slice my architecture, naming things, discussing features and more.

Use a JUG to educate users about the tools that make a developers life easier. Those tools maybe advanced but when their usage is basic knowledge, there is room really fundamentally improvement.

Good is good enough

Last but not least, don't forget that not everybody wants to be a rock star programmer and lives and breaths coding the way you do. More often people just want their task get done and go home, live a life outside the bubble. And that's fine too and sometimes even healthier. There have been discussions about 10x programmers at other places but if we all would be 10x programmers, we would be at square one. So don't make your JUG a place where only top notch, highly sophisticated stuff is presented and accepted. For example, presenting things an IDE an can do which the presenter thinks are self evident may be totally new for many others. Why not spare them the hard road of finding the features?

No comments yet

One Trackback/Pingback
  1. […] published my article about “basics” in German and English on JAXEnter, have a […]

Post a Comment

Your email is never published. We need your name and email address only for verifying a legitimate comment. For more information, a copy of your saved data or a request to delete any data under this address, please send a short notice to michael@simons.ac from the address you used to comment on this entry.
By entering and submitting a comment, wether with or without name or email address, you'll agree that all data you have entered including your IP address will be checked and stored for a limited time by Automattic Inc., 60 29th Street #343, San Francisco, CA 94110-4929, USA. only for the purpose of avoiding spam. You can deny further storage of your data by sending an email to support@wordpress.com, with subject “Deletion of Data stored by Akismet”.
Required fields are marked *