I have been in the web development space for about 5 or 6 months now and it's true what they say: "In coding you are the victim to a crime you committed and must be the detective to it". Even though it seems daunting with all the different coding languages, tools, technologies and more it is still a great adventure to be engaged in. For me the reasons I got into this field was the flexibility it offers and being able to create a digital product that one might have an idea about. So with this blog the idea is to teach-as-I-learn and perhaps the content might be somewhat helpful to others. So what is coding?
What is Coding?
Coding simply means writing a set of instructions for the computer in order to execute a certain task. It can be likened to a human language in that like a human language a coding language has grammar(syntax) and vocabulary of words with specific meaning to it. The difference is that a coding language's syntax is very strict. This means if don't write according to the rules you will get an error and your code will not compile. Whereas in our daily communication we don't stick to the rules of grammar but we are still able to understand each other. This is because we are designed to grasp the concept of what is being said rather than the quotation of the words. That is why if you were to tell someone a story and have it related to ten other people, by the third person the wording would have changed but the gist of what you said will be kept. So let's look at what is needed when learning coding?
Before the technicality
Before we delving into the technical aspects of learning to code let's look at the soft skills or personality traits needed in coding. Why is this important? Say for instance you work with someone who is highly skilled but is very arrogant and pushy, will you enjoy working in that environment?. Of-course not because it is his or her way or the highway. Now suppose you work with an individual who is also skilled but humble, the will be relative peace in that space. The reason is that the individual's disposition fosters a collaborative environment rather than a "me-me" one. So what are some of the soft skills we all need to improve upon?
Some Soft Skills
Thinking About The Next Person - As a developer the skill you are acquiring is ultimately a service to your clients and teammates. You learning to improve someone's life. This outlook is important because what we think about others influence greatly how we treat them. How we interact with others generally has a more lasting effect than a physical or digital product. When money becomes the sole end goal of our job our morale takes a nose dive and we are not motivated to upscale our skills. Money should be the by-product of a good job not the motivation behind our skills. When you think about the next person this will raise the quality of your skill, service and end product.
Get Organized - When you walk into a store you'll notice that goods are categorized and labeled accordingly and this helps improve your shopping experience. Likewise take a similar approach when learning to code. Schedule your learning to include a learn-build project. This means you are using the concepts you are learning to build your own project. Say for instance your learn-build project is a blog about your coding journey and in HTML you are learning about headings, paragraph and lists, take those concepts and build them in your project. Afterwards take that project online even though it's not finished yet. This will hold you accountable and motivate you to finish that product. Also keep your old code with comments. This is helpful in gauging the progress and the level of efficiency of your projects. Another aspect of getting organized is listening to a podcast or an audio book in a particular coding topic. You can do this when your schedule is packed, or just on the road. It will build the vocabulary of what you are learning so that when you sit down to study you'll grasp quickly the concepts. Resist the urge to procrastinate. Even when you are really busy make sure to schedule 10 to 15 minutes to learn one concept and apply it to your learn-build project. This will foster the importance of what you are doing.
Be in The Moment - Have you ever seen how someone would be watching the game on TV and he or she would be yelling and giving instructions as if the players or the referee can hear them? That's called "being in the moment". They are using their senses to heighten their enjoyment of the moment. In coding it is called a "rubber ducky method", were you have a conversation with a rubber duck or something similar in order to solve a coding related problem. When you are doing this you're immersing yourself for a better coding experience. Being in the moment involves asking questions pertaining to the logic of the code.You don't just ask 'why is this code not working'?, but you look at the meaning of what is actually written. You remind yourself of the "rules" or "syntax" of the properties of the language. Remember coding is a strict language, the behavior of the code below is depended on the code above it.
Be Teachable - Someone who is teachable acknowledges that they don't know everything there is about a subject and this in-turn helps them in not being narrow-minded. Being teachable means one is actively seeking opportunities to improve oneself and the service to others. This means you don't just focus on the specs of the job but also to get your clients and teammates the best experience possible. You see yourself as a student with a knack for learning. Remember learning is not just about what you are being told but also what you can observe from afar. When you are teachable you are also willing to teach someone what you know and understand. Learning is different from teaching in that when you learn something you have to analyze your own thought-process whereas with teaching, to a greater degree you have to think about someone's learning ability. The material you present has to be simple for the next person.
Do Not Compare Yourself With Others - Competition for fun is OK because it' about relaxation and getting some laughs. But sometimes we as humans we tend to take comparison to the point of our demise. I have seen fans fight because someone said one team is better than the other. They missed the point of a game and the competition involved. Now with coding when you start comparing yourself with others this will affect you negatively and will breed the imposter syndrome were you see yourself as never being good enough or as a fraud. The healthy way to compare yourself to someone is asking questions like "how can I get to that level of understanding or way of doing things"?, "what did the other person do to achieve their success in that endeavor"? Ask them personally what tips they can give you in you coding journey? This will help you see the common threads in your way of doing things and also improve upon them as need be. It will boost the quality of productivity for yourself, the company, your teammates, the client and the community at large.
Be Patient With Yourself - This means you have the ability to remain joyful amidst the problems you face. In programming this quality is needed especially when your code is not running as it should. To work on this soft skill recognize that two things are needed. The first is that time is involved in learning anything. Second you have to be active in your coding journey. Think of a farmer who is depended on the seasonal rain. He does have to wait but in the meantime he prepares the soil, plants his seeds so that when it rains he is ready. Another farmer erects an irrigation system so that he is not solely depended on the rain. Both are active while waiting for the desired outcome. Likewise to reach a level of being a good coder you have to be active in the process of learning and not be constantly looking at the clock or the problems in front of you.
Persevere In Your Journey - Persistence is doing something despite difficulty or delays in achieving its purpose. When it comes to coding you have to spend a certain amount of time every weekday in applying what you are learning. You should understand that not knowing something means initially it will be difficult in implementing it. So identify potential obstacles in your environment and look for ways around them if it's something within your control. Build a wealth of resources which include people around you, the community, productivity tools, motivational stories and these may be in a text, audio or video format. Focus on the effort you are making as this will build resilience in your journey.
When you think about the next person this helps you to be organized, live in the moment, to be teachable and have a positive and active journey in coding. See you on the next one...