The other thing that I believe is the hardest part about coding is the formulas. I'm not talking about the simple "If/then/else/end" statements. I'm talking about learning and understanding the most advanced formulas. When you have accomplished learning/understanding these...you'll be not only golden but be promoted and/or sought after. Good luck!
There are algorithms that are difficult to understand and implement. Again, most of these are available as libraries so ordinary developers wouldn't code them. There are also techniques that are difficult to wrap you head around (recursion, dynamic programming). but become familiar with practice.
The fact that programs are written by other people poses challenges. Everybody has different writing style, so it can be difficult to understand the intentions of other authors. Legacy code and systems are sometimes poorly documented, making them difficult to reverse engineer.
Working on a large software system requires project planning and coordination across teams. This can be the most challenging part of delivering software, especially if the product is complex and not rigorously defined.
Another challenge is the scope of relevant technologies used to develop software. On a daily basis, you use dozens of applications to write and run software (programming languages, frameworks, build/deployment tools, databases, etc.), and the list evolves every few years. So there is a lot to stay on top of.
There are many ways to write a program. Evaluating the trade-offs in relation to the requirements of the system and its maintenance is probably the most difficult (and exciting) part of coding.
In my opinion, the hardest part about coding is understanding AND fixing syntax errors. On the assumption that you may be new to coding languages, the definition of a syntax error is "a character or string incorrectly placed in a command or instruction that causes a fail in execution". In easier terms, a syntax error is when a coder writes a piece of code that doesn't run. Typically, there is an error message that appears that tells why the code failed. Sometimes understanding that error message is pretty easy...and then there are those other times when it is tough to figure out what is wrong ;0.
The good news though, there are countless sources that coders can use to help them understand and fix their coding/syntax errors. Rarely do coders write top notch, no-error code, the first time out. But when those errors do occur, it becomes an excellent learning tool that you can add to your skill set.
Hope you find this answer helpful and best of luck to you!
People fear about modifying legacy working code. Without knowing why they have written like that, we often leave it as it is and do hacks around it.
Writing a code in most efficient way in less time is often challenging, some time we go with working time, but won't get much time to do it in stricter timelines.
Following are the difficulties faced by coders on job usually:
1. No knowledge of the design of the existing software sometimes leads to code changes that may fix one issue and create many more.
2. No proper documentation of the software design due to which maintenance of the code is sometimes difficult.
3. Legacy code that does not have a flexible design is sometimes difficult to maintain over time.
4. Debugging of legacy code is also a challenging task.