How to overcome the struggle of not being able to find a fix for a coding problem?
by Nedim F.

Search for a command to run...
by Nedim F.

No comments yet. Be the first to comment.
Beginning At the beginning of May I was learning how to reverse engineer mobile apps. My focus was on iOS at the moment and I was learning a lot about proxies and runtime manipulation. One morning I've got an idea to research how Twitter built Fleet ...

Flawed Logic Let's first understand how these system actually works. I'll be using Twitters Fleets for example and Instagram Stories are not way behind on this approach! From users point of view: User choose image/tweet to share on their story/fleet...

This is guide on how to contribute your first lines to Signal iOS application. It's complete walkthrough from initial build to running app

So you want to make iPhone and iPad apps, that's great. You have been using your phone for a good part of your life and you probably have some great ideas laying around. Note: This article is not walkthrough tutorial for making your first iOS app. ...

Let's face it, coding is hard. It's hard for a human brain to think like a computer. Unfortunately to understand the problem you have to think like a machine. One thing to have in mind from the very start, no one can teach you how to think. You have to do that all on your own.

You have to practice, more you practice more comfortable you are in your knowledge, by being more comfortable you are making a better foundation. Having a solid and good foundation is key.
To build a solid foundation you'll need dedication. Lots and lots of dedication. You have to start small. Learn the absolute basics of the topic. If you are learning a new programming language, usually that it is language syntax.
How did you learn to ride a bike, or drive a car? You practiced, those are skills we have to practice every day so we don't forget. The same is with basic math, as a kid, you had to do all these small problems, as homework. Even tho most of us hated our homework, it helped us to understand how basic mathematics works. Apply the same thing to coding as well, when you are teaching yourself basics, be sure to practice them.
Here is an example of what you can build, after you are comfortable enough in the syntax of the language:
This applies only to OOP programming languages

If you think you have a solid enough foundation, you can start by researching your problem. Don't be afraid to use Stack Overflow or any internet resource, there is a good chance, someone already had the same issue and found a solution for it. Especially if the error you are getting is not even your fault, many times it can be IDE just messing with your will to live. jk, ofc.
After you are positive that your problem fix is not a quick search away, then you have to start thinking logically. This part applies to most programming problems, it doesnât matter if you are a Mobile, Web, or even AI developer.
To best show this, I'm going to use the example of one of the problems I have faced years ago. When I was just starting coding, I had this cool idea for an app, I canât really remember what it did, but I know it had something to do with camera and saving photos to a phone storage. The issue was the path that I was looking for, wasnât valid.
Let say you have the same problem path data://mobile/storage/DCIM/pictures/myimage.jpg isn't valid.
The only thing that you know at this point, this path isn't valid, You donât know why, you just know that image taken does not show when you try to load it.
Let's break our issue into smaller bits: First, we have to check the whole path of that problem. Let's call it our "route to hell". So what does my code do before this issue occurs?
takePhoto() method is called. This method does this and that. Alright, let's see if an error occurs theretakePhoto() returns object TakenPhotoTakenPhoto contains few object properties, but most importantly it contains path propertyAfter checking all these little things, we have concluded that "route to hell" is working how it's supposed to.
Now it's time to think logically. We start by searching documentation for object TakenPhoto. We came across the developer page for that object and we look for property path. We read documentation about that property. Property path of the object TakenPhoto returns path as String but have in mind that string has prefix data:// in front. Now we have to figure out why the prefix data:// is added in the first place. We search for that answer as well, we find the answer being data:// is added because property path returns place in device storage. Now we have even more information about our problem.
Let's review, we have broken our problem into smaller pieces, analysis of the "route to hell" has shown that all methods are indeed working correctly. Then we have an isolated issue, and we figured that path property is causing us all this trouble.
Now we just need to fix it. Easier said than done, right?
Our investigation has confirmed that the issue is in path property. We then read documentation in loading images from device storage where we discovered that we have to convert our type String to type URL.
We approached converting part
let pathURL = URL(string: path)
After few hours of solving this problem, we have finally find a fix. Run it -> Loading ... -> Booom! -> It's working!

Being a developer is amazing, it gives you the ability to build whatever you put your mind to. But with power comes issues. Some are solvable in few minutes, some take days or even weeks, but most importantly it's to not quit. You can take few days break, even weeks of break, but solving the problem is the key. Don't quit on the problem, give your best to solve it, solving it even partially can have a huge impact on your career.
I'm Nedim, backend, and mobile app developer, who enjoys working on new stuff every day. Currently, I'm developing this cool app called Tweetly. You can find me on Twitter and be free to DM (@nedimcodes)!