Limit of a programmer

  • #1
13
0

Main Question or Discussion Point

Can a programmer "for example a web developer" understand the code and algorithm of a program which is out of his profession for example an office program stopped working or a menu/function of that office program does not work, can a web developer estimate the problem and fix it or only he can do is report bug to original developer of that office program?
 

Answers and Replies

  • #2
anorlunda
Staff Emeritus
Insights Author
8,645
5,535
It might not be easy, but the answer is obviously "Yes."

Once, I and many others were consultants helping companies with Y2K remediation. That involved many fields, and many programming languages with which we had no experience. Yet we succeeded so well that on January 1, 2000 almost nothing bad happened anywhere.
 
  • Like
Likes sysprog
  • #3
QuantumQuest
Science Advisor
Insights Author
Gold Member
926
485
Can a programmer "for example a web developer" understand the code and algorithm of a program which is out of his profession for example an office program stopped working or a menu/function of that office program does not work, can a web developer estimate the problem and fix it or only he can do is report bug to original developer of that office program?
The question is very general because it depends on a number of factors, the most important being the knowledge / expertise of the web developer and if being subject to some company or other policy or not. As you don't mention about these, I can't give you a specific answer although I am a web developer.

In general, a good web developer should be familiar with the development / set up of other software applications beyond web apps and have some CS knowledge formal or not, the first being preferable in my opinion. That does not mean that he / she can code anything and everything but on the other hand it really makes no sense in today's world of software development for any web developer to be limited only in web programming. Then, company or other policies under which he / she works, come into play.
 
Last edited:
  • #4
33,722
5,418
To elaborate on what @QuantumQuest said, if a web developer has little or no formal CS training, and has only written code in a fairly high level scripting language, I think it might be difficult at best for this programming to understand code written in, say, C++, let alone find the problem and fix it.

Both QuantumQuest and anorlunda are assuming some knowledge on the part of the developer that may or may not be present.
 
  • Like
Likes QuantumQuest
  • #5
anorlunda
Staff Emeritus
Insights Author
8,645
5,535
Both QuantumQuest and anorlunda are assuming some knowledge on the part of the developer that may or may not be present.
I would phrase it differently. Rather than knowledge, the ability to learn and analyze by observation.

For example, the OP mentioned office programs and problem fixing. It is quite common for office program users to suspect a bug, then to analyze it, confirm it, determine its properties via some experiments, then report it. They don't even know what the language is, nor have they seen source code.
 
  • Like
Likes hmmm27
  • #6
33,722
5,418
For example, the OP mentioned office programs and problem fixing. It is quite common for office program users to suspect a bug, then to analyze it, confirm it, determine its properties via some experiments, then report it.
Right, but the OP also asked whether such a user might be able to fix the bug, and that's what I was addressing in my comment.
 
  • #7
DaveC426913
Gold Member
18,853
2,330
Right, but the OP also asked whether such a user might be able to fix the bug, and that's what I was addressing in my comment.
True. Although it was a compound question, so an equivocal answer is appropriate.

While a web developer may not have the chops to fix the bug in that specific language, generally, they will have the broad skillset of analysis that will allow them to pinpoint the problem. And that's 80% of the battle.
 
  • #8
jtbell
Mentor
15,584
3,561
an office program
If you mean commercial software like Microsoft Office, in order to fix it, you need access to the source code which is highly unlikely. If you do have access to the source code, it will probably be in some language or combination of languages like C, C++, C# or even assembly language, so you would need some fluency in that language.

In principle, it's possible to "patch" the compiled machine-language code, i.e. replace faulty sections of machine-language code directly with corrected code, but this is a very advanced skill.
 
  • Like
Likes sysprog and QuantumQuest
  • #9
DaveC426913
Gold Member
18,853
2,330
...an office program..
Oh. I missed that.

Unlikely.

However, that is not to say that a software dev of any sort does not have a host of adjunct skills that will give her a deeper insight into how programs work - and how they stop working - than your average Josephine.
 
  • #10
Tom.G
Science Advisor
3,296
2,048
Basic Troubleshooting: (works for software, hardware, mechanics, hydraulics, and...)
  • Find out what it is Supposed to do
  • See what it Is doing
  • Find Where in the construct the process is occuring
  • Figure out How it is supposed to do it
  • Follow the operation thru the Where till you find a Difference with the supposed to
  • Conjure up a Change to the How to generate the Supposed to

Cross you fingers, try it. Repeat as needed. (Have a beer.)

Cheers,
Tom
 
  • Like
Likes sysprog and anorlunda
  • #11
1,632
976
This has limits, but the answer is still 'yes'. Most programming languages are made so that they are based on human language/logic, and also: usually, there are comments in the code. So it can be guessed what and how it is doing, where it is stopping working.

But further it is from the 'first language' of the programmer, the higher the chance is that the programmer will just make a fool of himself...
 
  • Like
Likes sysprog, anorlunda and FactChecker
  • #12
FactChecker
Science Advisor
Gold Member
5,703
2,110
For most problems, I think that the person debugging a problem will need to have (or develop) knowledge of the specific language of the program. I would not give a web developer the task of debugging an office program unless he already had that knowledge or was willing to learn it. (The Y2K problem is not a typical example by any means. You could tell someone things to look for ahead of time and he could do the tedious work of finding and fixing all that he found.)
 
  • #13
anorlunda
Staff Emeritus
Insights Author
8,645
5,535
I risk being off-topic, but in the larger sense, it is on topic.

The most amusing Y2K cases I found involved legacy code. Over years, legacy code tends to get wrapped in layers of newer code, like an onion. What we found in some Y2K cases was that the functions and methods of the innermost layers had been completely forgotten. More amusing, we found that the innermost layers could be discarded with no effect because outer layers had assumed 100% of the function. Without Y2K, nobody would have ever noticed because, "if it ain't broke, don't fix it."

That's an example of fixing a vulnerability (not a bug but a problem) without any knowledge of the language.

The most lasting benefit of Y2K was not bugs fixed, but rather the house-cleaning and modernization of countless facilities.
 
  • Like
Likes FactChecker
  • #14
FactChecker
Science Advisor
Gold Member
5,703
2,110
One overlooked problem of the Y2K bug was that all the backup data and code tapes had file dates that would make them unusable without modification. My job was to go through all the backups and change the file dates so that they could be identified as having been modified earlier than new versions and retrieved if necessary. Luckily, the task could be automated (except for mounting and unmounting tapes). It still required many nights and weekends of processing.
 
Last edited:
  • Like
Likes anorlunda
  • #15
QuantumQuest
Science Advisor
Insights Author
Gold Member
926
485
Both QuantumQuest and anorlunda are assuming some knowledge on the part of the developer that may or may not be present.
I agree. This is something pertaining to the very definition of web development and I think that it is an apt observation. In my view and based on the theoretical and practical education / training I had in order to get certified as a professional, there is no sense of calling someone "web developer" if he / she does not possess certain skills and qualities. Unfortunately, as web development - and software development in general, gradually became something of a more or less mix and match skill, many people got into web development by just learning to use IDEs, libraries, frameworks and tools and leave the burden of how all these really work and are maintained, including an ocean of things and details, to their creators or in general to "other people". This is just another manifestation of the saying "the easy way turns out to be the longest" as sooner or later, all these people, will find themselves in a situation where debugging or modifications will simply be far beyond their reach.

Also, a web developer that is interested in software development at the professional (i.e. mostly technical) level, has to get trained for this, beyond his / her theoretical background / education, as creating a software application start-to-finish is not just a matter of knowing some programming languages, algorithms, data structures etc.- which, no doubt, is absolutely necessary and extremely important in and of itself, but there is a multitude of other things, skills and qualities required. For me, this cost me three more semesters including exams beyond the typical four I had for web development but the key point is that I really wanted to do it.
 
  • Like
Likes Mark44
  • #16
33,722
5,418
From post #1, with emphasis added:
Can a programmer "for example a web developer" understand the code and algorithm of a program which is out of his profession for example an office program stopped working or a menu/function of that office program does not work
I'm going to assume that the above is shorthand for the Microsoft Office suite of applications such as Word, Excel, etc.
This has limits, but the answer is still 'yes'. Most programming languages are made so that they are based on human language/logic, and also: usually, there are comments in the code. So it can be guessed what and how it is doing, where it is stopping working.
As @jtbell pointed out in post #8, Microsoft Office is closed source, so there would be no access to the code (and comments) to anyone outside of Microsoft.
 
  • #17
1,632
976
I really did not thought that OP is about debugging MS Office itself.
Seemed to be far more realistic that he is about finding a problem in a 'program' written in a macro, script or whatever gizmo-language MS put together for MS Office power userso_O
 
  • #18
anorlunda
Staff Emeritus
Insights Author
8,645
5,535
Now we have 16 replies guessing what the OP meant, but no clarifications by the OP.
 
  • Like
Likes jtbell, DaveC426913 and QuantumQuest

Related Threads on Limit of a programmer

  • Last Post
Replies
2
Views
2K
  • Last Post
Replies
11
Views
3K
  • Last Post
Replies
21
Views
1K
  • Last Post
Replies
7
Views
2K
  • Last Post
Replies
6
Views
2K
  • Last Post
Replies
12
Views
5K
  • Last Post
Replies
5
Views
2K
Replies
13
Views
1K
  • Poll
  • Last Post
3
Replies
54
Views
6K
Replies
6
Views
3K
Top