Quote:
Originally Posted by
bakunin
"CODE, CODE, CODE", as Neo suggested is very sound advice. Not because the world needs more code but because the world needs more good coders - especially to replace all the bad code that is already in place. The more you learn and exercise the application of the rules the faster your eye will develop that hard to describe "understanding of good versus bad" code.
Actually, coding is great for the human mind. Coding teaches people to think logically and is beneficial for human development in many ways and here are just a few examples:
- Coding teaches people to think logically in a step-by-step way.
- Coding teaches people to break large problems down into smaller components.
- Coding teaches people how to organization large complex problems.
- Coding teaches and reinforces math and language skills.
- Coding facilitates creative thought.
Of course there are more benefits for coders than in the small bullet list above. I am talking about writing code to solve a real world problem, not just small exercises and theory. The skills developed by coding real-world projects are skills which can be used in every walk of life and in most all careers. Coding is just digital art, not very different than any art or literature. Coding is something to feel good about. Coders are modern day artists.
I want to push back strongly on any negative view of "coders" with a somewhat relevant (but maybe not, LOL) story from my past on Wall Street.
In and around 1997, I worked as a very senior cybersecurity consultant for many clients including banks on Wall Street. I lived in the Northern Virginia area and flew up and back from NY to the DC area a few times a week, sometimes in very scary seasonal weather.
One spring day as I recall, I was called to immediately fly up to NY because a major bank (one of my clients) was in the newspaper for a "fat client crypto breach" and I was called into the bank to help the bank address and fix the problem.
When I arrived, many people were yelling and the stress level was very high. The managers had assembled many department heads and team members into a smallish room and they were waiting for me around the table; and of course there were the normal "
what took you so long to get here" comments from bank vice presidents so familiar when doing business in NYC.
At the whiteboard, I asked people around the table to describe the problem and I white-boarded the system architecture, step-by-step, as they all chimed in, some shy to speak up.
This brainstorming and analysis went on and on, with me at the whiteboard, for about 3 hours as I recall as we detailed the code and the various crypto algos on the board. There was some debate about how to proceed because of "the bad code" (as some people like to say), and so I asked the bank
"Do you have the phone number of the original coder? If so, let's call and talk to him right now".
We got him on the speaker phone (he was no longer with the bank as I recall) and I asked him if he was under pressure to get the code out quickly and what was the process at that time and what would he do different if he had to do it over again. He told us he was under great pressure by management to get the code out and it was certainly far from perfect and could (and should) be better and he agreed with me that a new set of underlying crypto libs were the best solution. Everyone in the room was happy, understood the problem, their roles in the solution, and the tension and stress level went from a 10++ to a 3 and everyone then knew what they had to do.
After the meeting, one of the bank VPs pulled me aside in the hallway outside the meeting room door, and I thought he was going to compliment me on my great team building and problem solving skills. Wow! Surprise! I was wrong!
The VP told me that is was obvious that I knew early on what the solution was and he was very unhappy I wasted the banks precious time and money "team building" and "getting buy-in" and
ripped me a new one.
However, I knew in my heart that they would call me back often, and they did, and they paid us big bucks. The bank quickly solved the crypto issue and all was good on Wall Street, at least for a few hours. The bank issued a press release, the fix was done by the next day. When they are yelling at you in NYC, that means they like you. It's when they don't talk to you or yell at you is when you should worry.
My point is, if there is a point to my word in a forum, as I mentioned in my earlier post, is that commercial code is generally written under heavy constraints. Sometimes it is a time constraint or a money constraint. Sometimes people are being yelled at by managers to get the app out ASAP and are being threatened to be fired if they don't get the code done yesterday. (I can tell stories about game programmers in Japan I knew personally living under their desks for months at a time because they could not go home or they would lose their job. They were not permitted to even shower.).
I learned a long, long time ago to never look at code before me and judge it as "bad code" because we generally do not know the constraints the prior coder was working under. In Japan, game programmers live under their desks for months to meet deadlines. They are exceptions of course, but few people create "bad code" on purpose with malicious intent (except the bad actors who write malicious code, of course).
Code is code and real commercial code is written for real applications in real commercial production systems where time and money rule, generally speaking. Very few coders have the luxury to write 'elegant code' which is 'pretty' and 'nice' or 'meeting perfect standards' and nor is most commercially code 'perfectly optimized' because businesses have time and resource constraints, and after getting one app out the door, they are directed or required to write another app, and have it done yesterday. Businesses do not code for the sake of coding
I have never considered myself a great coder but I have a lot of commercial code running over the years that solves real-world problems and some might call it all "bad code" but I could care less. I do not write code for theory or to please others, or to meet some standard set by others, I write code to solve real world problems and to create real applications. I don't write code for the sake of writing code.
If anyone wants to code, I have a lot of great project to work on but they all require modern software tools and libs like Vue. js and Javascript, GitHub and Postman, and even though I use VI every day of my life, most of my code is written in an IDE like Visual Studio Code (actually in VSC) and I test all API calls using tools like Postman; and tend to use modern tools because they make us very productive and very fast developers.
For everyone who writes web-based code and apps, I recommend you download and install, at least:
- Visual Studio Code
- Postman
Most mornings I open the following workspaces with my fresh brewed coffee:
- Virtual Desktop 1: Four command line terminals in a single screen in a 2 x 2 matrix.
- Virtual Desktop 2: One large terminal window, full screen size.
- Virtual Desktop 3: Visual Studio Code
- Virtual Desktop 4: Postman
- Virtual Desktop 5: Chrome (browser)
- Virtual Desktop 6. GitHub
Well, I'm done talking for now...
.
I might guess everything I just wrote is not very useful, but at least I remembered and told a story Wall Street story from 22 years ago.
Cheers.