I am a seasoned application developer and application architect with multiple degrees in engineering: Aerospace Engineering (BS), Computer Engineering (BS), and Software Engineering (MS). I’m in my late 50s and have been programming and hacking since I was 13. My first time using a computer was in 1982 on an Apple 1 which instantly hooked me. My first computers were the Commodore Vic-20 and Commodore 64. In 1994, I was introduced to Unix and then Linux the following year. Just like my first computer, Linux also instantly hooked me. My first distribution was Slackware in 1995, where I installed it on an IBM 386 computer. Since the configuration was very manual back then, I managed to fry the black and white portion of my video card, trying to figure out the horizontal and vertical video timings. Yeah, fun times...
I’ve been using Linux ever since then and probably fooled around with every distribution under the sun. Today, my go-to distributions are Debian and Fedora because of their vast repositories and support from various 3rd party companies that provide specialized software and libraries.
-
Learn how to type. Seriously, take a typing class or some on-line tutorial. I learned how to type when I was 14 and can currently type 70+ words per minute. I get things done quickly, whether it’s typing up an email, writing documentation or coding. I have an edge over all of my peers, both young and old. It’s comical to watch someone who is a two-finger typists typing up an email. It’s also annoying to wait for them to finish typing.
-
College is expensive. However, that piece of paper helps substantially in getting a job versus someone who doesn’t have a degree.
-
It also depends on the type of degree. A BS degree is much more powerful than a BA degree if you’re looking for a programming job.
-
There are always exceptions to these rules. I’ve known a co-worker who didn’t have a degree, learned to program on his own and was quite good. However, he was later required to get his degree for which the company paid for it.
-
Micro degrees at accredited universities are just as good, in my opinion, and a heck of a lot cheaper. The unrelated classes are not required (history, philosophy, foreign language, etc.). Micro degrees focus on the skillset(s) you need.
-
Certifications can be hit or miss. You can be academically astute and well-rounded, but if you don’t know how to apply what you’ve learned, then that certification was pointless. I’ve seen too many people that fit that category.
-
Don’t be that fake it till you make it person. That only works with people with business degrees (snicker).
-
Don’t be an arrogant programmer. Nobody will want to work with you, and you will be one of the first people laid off, no matter how good you are, because you’ve created a toxic atmosphere around you.
-
Everyone is replaceable, no matter how good you are.
-
Emphasizing the previous point, if you’re cocky and a dick of a programmer, you will get isolated until you’re pushed out and replaced. Everyone is replaceable.
-
Oh, you’re the best out there? Bull shit. There’s always someone better than you.
-
Learn the language of business. You will have to communicate with business folks who don’t know technology.
-
You WILL encounter business folks who think they know technology but don’t. You can’t avoid these people, and they’re next to impossible to work with. Most have the fake it till you make it mentality. That’s why the previous point is very important.
-
In addition to the above, you WILL have a manager or director with no technology background other than, “I know how to work a computer.” Give them a chance. They can be a valuable asset to help navigate with business folks while learning the business language.
-
Never. Stop. Learning. You will have to compete with more capable younger people as you progress in your career.
-
For Americans, your competitions are mainly the Indians, Russians and Chinese. They are very smart and very competent. It is another reason you should “Never. Stop. Learning.”
-
Learn how to communicate effectively. You will get eaten alive by the business world if you’re not articulate and clear in your speaking (and writing).
-
Most companies aren’t loyal to their employees. Thus, don’t think you can’t be terminated because you are the “superstar” programmer in the company.
-
You are not a one person show. If you don’t enjoy working in a team setting, then become a painter. Seriously, you’re not programmer material, otherwise. Everything is about collaboration, sharing, and, especially, learning from others.
-
If you have a chance to work in or create a startup, do it. You will learn more than you ever had from your employer. And who knows, that start up may become the next Google!
-
If you’re a successful programmer, then you are getting paid more than most people. Don’t forget about the less fortunate.
-
Give back or contribute to the open-source and freebie communities that helped you.
-
Oh, you didn’t use them? Of course you did, liar! You’re lying if you didn’t use GitHub, Stackoverflow, Codecademy, W3Schools, any of the YouTube programming channels, etc.
-
Know and understand cybersecurity.
-
Learn how to write good prompts in ChatGPT, Claude, etc. Those tools will increase your productivity exponentially.
-
On the flip side, don’t rely on ChatGPT, Claude, etc. to do everything for you. There’s a human touch those tools do not have, especially for programming. You still have to understand the fundamentals to make informed decisions. This especially applies to writing enterprise applications.
-
Documentation is key not only for others, but for yourself. If you wrote code six months ago, and it had no documentation (and that also includes no comments in the code), you will waste a lot of time trying to figure out what you did.
-
Oh, your code is self-documenting? Bull shit. I’ve seen enough self-documenting code in my days to say that it’s crap. Javadocs, Doxygen, and similar weren’t invented for nothing.
-
Every programmer should learn C or Assembler. It really helps you understand how computers work at a low level.
-
Don’t attempt to hack into your friend’s or neighbor’s Wi-Fi. The consequences are huge, and the law will not be in your favor. Just don’t do it.
-
The best Linux distro is the one that you’re most comfortable using. Stop with the Linux distro wars.
-
Likewise, the best O/S is the one that you’re most comfortable using. Each O/S has their advantages and disadvantages.
-
If you’re in your 30s and 40s and still gaming every day and into the wee hours of the night, it’s time to grow up.
-
Oh, gaming passes the time, and it’s fun? Well, those Indians, Russians and Chinese will always have an edge on you, and you’ve jeopardized “Never. Stop. Learning.”
-
Never skimp out of getting a good monitor. Your eyes will thank you.
-
If you do a lot of virtualization and containerization, it’s cheaper to buy a gaming system than a server/workstation (if you’re not running a business).
-
P.S. Don’t play games on it!
-
Sleep is important. Never let your employer work you until you drop. Lack of sleep equals lots of mistakes, low quality code and burn-out. Programmers who work in areas where lives are at stake take heed.
-
Be nice, but not too nice. People will walk all over you if you are too nice.
-
When shaking hands with someone for the first time, make sure it’s a firm handshake. Unfortunately, people will judge you in the first second of that handshake. It’s an egotistical and judgemental world out there.
-
Explain, present, and speak with confidence. People, especially leaders, respect you more. Again, it’s an egotistical and judgemental world out there.
-
People networking is extremely important. Don’t burn bridges with your former good employers or former teammates. You never know when you’ll need them when finding a job.
-
Programming is fun. If you don’t think it’s fun, but you only like the paycheck, you are likely a miserable person.


