Learning to code can be extremely rewarding, but also extremely frustrating. As you learn, you may see others excel in concepts that you are struggling to grasp. That can be incredibly deflating. Or maybe, you pick up concepts well and find solutions to problems early, but later you see others coming up with solutions that blow yours out of the water. That can be equally deflating. No matter which camp you may find yourself in, it is easy to feel out of place in the dev world. But you are no alone, and you are definitely not out of place.
Let's take a step away from coding for a second and talk about art. If you have studied art, in any of its many forms, or have been an artist yourself, you know that each and every artist has their own process of creativity. While many artists may work in similar art styles or structures, like directors of horror movies or expressionist painters, each of those artists still has their own method. But can those methods be similar?
David Galenson, currently a Professor in Economics at the University of Chicago, postulated a theory in his book Artistic Capital about two categories that artists fall into. The categories are based on the approach that each artist takes to creating their art. More specifically, the amount of time it takes for that artist to complete their final product.
The first category, Conceptualists, are artists who are able to quickly map out a goal of their finished work in their head, and work with great precision to accomplish their goals efficiently. These are the kinds of artists that will often produce their best work early in their lives, because they know exactly what ideas they want to express, and exactly what steps it will take to express them. A perfect example of a Conceptualist is Orson Welles, who wrote, directed, and starred in Citizen Kane at the young age of 26.
In contrast, Experimentalists are artists who take a more tentative approach to their art. They have some perception of what they want to express, but know that the real expression of their ideas won't come until they are able to meticulously whittle down to it. These artists use much more of a trial-and-error approach. Not necessarily taking a start-to-finish approach like Conceptualists, Experimentalists will start somewhere in the middle, adding or subtracting to their work until it is perfect. These artists will often not produce their best work until late in their lives, and even leave some work unfinished. A perfect example of an Experimentalist is Mark Twain, who didn't publish Huckleberry Finn until he was 50, after rewriting the ending over and over.
I am a firm believer that Galenson's theory applies to much more than just artistic creativity. There are Conceptualists and Experimentalists in every aspect of life, especially coding. As you probably already know, in many problem-solving situations in coding, there is no one perfect answer. There is a lot of creativity that comes with problem solving that some people may not realize. The best thing you can do is try to identify your method, and play to your strengths.
For the Conceptualist: sometimes it may feel like you run out of your best ideas early, and have less to offer later on. The best advice I could give you is not to waste time on a problem you have already solved or a concept you have already grasped. Move on. Your strength is that you have the ability to clearly see a solution quickly, so apply yourself to more. Learn new coding languages, find new problems to solve. The more challenges you take on, the less out of place you will feel.
For the Experimentalist: maybe you feel like you are falling behind. Maybe you are in a class with some Conceptualists who really seem to be miles ahead of you in learning, and faster than you at solving problems. The advice I would give you is don't panic. Keep putting the time in. Trial and error is your best tool to building on your skills. Eventually the material will click, and that perfect solution will come. The satisfaction you will feel upon finding that perfect solution will be so much greater for you than finding a passable solution quickly.