Magazine Article | May 31, 2019

You Call That Programming?

Source: Software Executive magazine

By Derek Peterson

A seasoned software executive explains why today’s software developers have no idea how good they have it.

Without trying to date myself, when I first started programming it was at the very end of the punch card era. Using punch cards was certainly not for the faint at heart. If you were going to program, you had to really like it. In today’s world of programming, new developers do not realize how good they have it. Oh my, how times have changed.

I really try not to sound like my father, but at times I cannot help it. He would always compare how hard it was for him as a child to what I may have been going through. A very common example my father would share would be how he had to walk to school. He would say, “Derek, when I was your age, I would have to walk to school two miles in the snow with holes in my shoes, and I loved it.” Meanwhile, I would complain because I had to take a bus, and I wanted him to drive me to school. My father was full of countless exaggerated stories like that, but his point was always made very clear: I simply did not realize how good I had it.

How does this relate to software programming? It is very simple: Today’s developers have no idea how good they have it! With the internet, modern computing, dozens of languages, open source, and Github, it is a great time to be a new developer.

I was very fortunate to be able to play college basketball for one season. The reason I could only play for one season was simply because laptops and the internet had yet to be invented. I would spend an entire Saturday programming trying to get one assignment done. To do this meant I had to be practically chained to the Vax 11/780 for the entire day. Oh, what fun that Vax was. If too many students logged in to the server, it would crash or become so slow you would rather watch paint dry.

I will not bore you with the history of computers and programming. There are enough articles on the internet that can fill in the gaps. By the time I graduated college, there were two main programming languages (C and Assembly). There were other languages like BASIC or QuickBasic, but you were sort of looked down upon if you used those languages. Regardless of what language you used, you had so many computing hardware constraints to worry about. Two of the biggest constraints were memory and CPU speed. You really had to write efficient code; otherwise your app just would not compile and work. Not only did you have to write efficient code, the tools and resources to do so were very limited. There was no sample code/open source you could cut and paste from. There were no snippets of code you could download out of GitHub. All code was original, and it was fun writing it.

"As a seasoned software executive, how can you help your young, talented dev team? The answer is very simple. No matter the language, and no matter the development environment, the programming fundamentals and concepts have not changed."

Millennial software developers have no idea how good they have it. With so many tools available to developers, I would not say it is easier, but times have changed. There are tons of development environments and programming languages to choose from. With the internet and open source, you can almost find a code sample for anything you have to write. In my earlier days, the only code snippet I had was “Hello World.” When I hear a young developer complaining how hard it is to program, I just shake my head.

MANAGING YOUNG DEVELOPERS

Now with all that said, as a senior software executive, how do you manage a young group of millennial developers who have more three letter acronyms than you know how to compile? At Soter Technologies we have a very young staff of developers who are always working the latest and greatest software technology. Not that I want to date myself, but sometimes when they talk, I feel like I do not have a clue. They talk about new dev tools like everyone is supposed to know them. In order not to appear foolish, I just keep my mouth closed and do my research later.

So, as a seasoned software executive, how can you help your young, talented dev team? The answer is very simple. No matter the language, and no matter the development environment, the programming fundamentals and concepts have not changed. Data structures, loops, if/then statements, and memory management are still the same. You may not know the exact syntax of a programming language or where a semicolon may belong, but you can still be relevant to your young programming team. In a typical code review session, as long as you can understand programming concepts and logic, you can still have valuable input.

HOW CAN YOU HELP?

As a senior executive, it is typically not your job to also write code, but nevertheless you still need to help your staff. Knowing that you have to help your staff and also appear relevant, how do you help? What value could you possibly add at crunch time? You have a deadline, and customers are screaming. Knowing that your team is using tools you cannot even spell, where you do you help? There are at least three areas in which you can help.

  1. High-Level Debugging — In most cases an extra pair of eyes goes a long way. With “high-level debugging” you are not expected to know syntax of the development language, but could be able to understand the logic of the code.
  2. Flowcharting — Flowcharts are very useful for documenting the logic in a program.
  3. Leadership — Every software team needs a strong leader.

When I was a young engineer, I remember supplying the senior director of engineering a cheat sheet of the latest technology. Oh, how times have now changed — I am now that senior person trying to keep up with the fast-changing times of technology! With that said, here are some software development tools you may not have heard of:

  1. TypeScript — An open-source programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript and adds optional static typing to the language. TypeScript is designed for development of large applications and transcompiles to JavaScript.
  2. npm — A package manager for the JavaScript programming language. It is the default package manager for the JavaScript runtime environment Node.js. It consists of a command line client, also called npm, and an online database of public and paid-for private packages, called the npm registry.
  3. Bootstrap — A free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS-and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.
  4. React Native — A JavaScript framework for writing real, natively rendering mobile applications for iOS and Android.
  5. Vue.Js — An open-source JavaScript framework for building user interfaces and single-page applications.

Software development has evolved so much — it is awesome. I am jealous that I do not have more time to learn about the new tools and develop more code. When I compare what I had to do as a young developer to what young developers have to do today, I am still amazed at how good they have it.

DEREK PETERSON is an experienced entrepreneur and technology executive who has served in leadership positions at Intelligent Product Solutions (IPS) and Symbol Technologies. During his career, he has founded two successful companies and created software products that are deployed on millions of devices worldwide. An accomplished triathlete (Ironman finisher), Peterson holds degrees in both computer science and applied math from Stony Brook University in New York.