As a programmer, do you think beginners are getting obsessed with data structures and algorithms?
While knowing algorithms and data structures is very good to you, at least some jobs require it mostly on the interviews. What really matters in those jobs is code cleanliness and maintainability, discipline, execution, delivery in time, reading other’s code, finding and fixing bugs etc.
LOL. I was a “coder” by name. That meant I got the job done with the Least Instruction to accomplish the Result.
Back in 1966 in the Pentagon. I wrote my first CARDS in and Out and Printer Only. To handle the Force Strengths in the US and Continental Commands of the US Army. IT and IS matured to Tape in/out. Later at Universities, Fortune 500’s and all Government Disk in/out, Monitors. So my poor writing skills could be copied just like Routines, Programs and code.
I always like relating and communicating with Machines. They don’t lie or lay like people. Real strange behavior among humans. I know and found my place.
Language is just like speaking: In German, French, English or East Indian.
Logic on the other hand has 3 simple constructs. Sequence, Condition and Branch and Return or repetition. Only structures I needed, later Systems, Data, Manual or Machine Processes too and networks do that Too. What else can you do with any Programming Language. Of course there are the higher level languages. Mark V, RPG, etc. I once found I could writ a program to convert Data from one system to another. With 5 logical instructions in COBOL. Using a Table Entry of the Length and Positions of the Data Mapping of From to TO. Never got paid to make a Table Entry for any algorithm. But I was interested.
It is not a NAME GAME of Politics or Sell Job in an office. Just don’t try to eliminate them they are people. Get the job done 1st and make it Pretty Later. Speaking to the name game does not work either. Yet Practice makes perfect. Classes are great because they can be performed, executed, because they are fully tested with the same results every time. Whether the code is imbedded or performed externally.
But then that is how I code. One piece at a time tested and verified. A small test of a function or 2 allow all the Context: User, System, Data, links to be tested in the start, ASAP. This interaction can be more important than the code. While you were developing other routines and code as time management allowed you to accomplish. Do what you know and have available right away and fill in the blanks. Like a System and not just a program or Project within the Purpose, Scope, Context with Change Management. So you notify immediately if cost, purpose, scope and context change to those who are effected by Project, System, Data, and process changes manual or automated.
So language to me is secondary and always has been. Like a flow chart Warrnier-Orr allows you to lay out the structure Algorithms before you code. Ironic I see no different with System Design, Project Management and Process Analysis manual or Machine Language. Computer make process steps in the right order of need of Results. Wh Warier Ord lays out the issue Top to Bottom. Allows for additions and changes to the Algorithm of the Purpose, Scope, Data, Systems context.
Once you practice you don’t need Warnier-Orr structures or Algorithms. It is just reality. You don’t need flow charts. It does not hurt to know how to do a flow chart and not a bad way to layout logic. But that is a program too. You cannot balance a bank account w/o getting the needed data 1st. Warnier Orr was good to place logic of a program, data, system in the right place and where to add the changes if necessary. but programmers learn to see that in the simple structure of coding anyway in time. No need to chart it.
Remind me of bottom up problem solving. Once you know the answer you can make the Perfect Process manual or machine. Reuse of code is what C++ and .Net try to create by forcing compliance that restrict for commonality. Like a Database does vs. real data files for a specific need that flat files could do anyway for any specific need. Without common needs.
That is reality. No different than a space flight or trip to the moon. You repeat what has worked with the perfect logic without repetition or duplication of effort and code. Depending on the need, speed and understanding. You don’t re-invent the wheel. You use it. When I was a contractor and there was a Paid Expert on board. I used that expertise that was already paid by the company. Other programmer Analyst would Howled like Cayote’s. Me I got the job done and out the door to the next Job or contract. Why I made the highest pay and did the most projects. And no one wanted me around as a permanent employee. I got paid more and left to fulfill the greatest needs most companies did not want to pay.
I learned Autocoder, Assembly, Cobol, PL/1, Basic, RPG,C,. C+, Script Language and the list goes on be it a Mainframe, IBM, CDC, Mini Computer or a PC. Constructs of Language are but a simple reference of the Language specs.
The Result is important most of all. How you get there is secondary, but to use the Mind and repeat you always become perfect over time or the first time. Practice makes perfect in all we do.
The mind need to be use be repetitive. Otherwise it looses what it knows. Dumping the brain, brain dump for the next GIG. Of course it it comes bank with repeated use faster than the 1st time. But carry a database does that w/o re-figuring.
Sorry I did this for 50 years. Principle Consultant the Last 40 years of 50. If you can program you can do it all. It does not work that way from the Top to the Bottom. But I have seen that on occasion. The Comptroller using Mark 4 because he could do it faster than IT Department. He just lost track of his Comptroller responsibilities. Had to stop coding, even in Mar VI.
I taught myself programming in C (back in the dark ages). I have a reasonable understanding of what lies under the hood but I couldn’t write a sort algorithm to save my life.
It hasn’t stopped me having a fulfilling career. Programming needs us journeymen. We are happy to sit at the feet of Leonardo and paint in the cherubs while he does the main portrait.