23 Apr Curiosity
It all begins with saying hello, greeting your new challenge head-on. Writing a simple hello world statement is the first step most developers use to begin a new programming language. This process requires a basic instruction to get you started in the new language. You are telling the computer to display a message, giving feedback. Once you understand how to display information, you can then start to use data and provide better feedback.
Combining basic instructions, using smaller pieces of code, you can process larger tasks. Your goal is to take something complex and build a system that automates it for you and your users. This can take a lot of upfront investment, but when done correctly, you can save enormous amounts of time. Additionally, if done correctly you will be able to re-use what you developed again and again to save time.
Just like in programming, you want to begin your new client relationship with a “hello” statement. You need to deliver a clear and concise message so that you are understood. Once a relationship has been established, you are providing feedback, and knowing how to provide feedback that will be understood is essential. You have to provide good feedback, otherwise, the message will never be understood regardless of whether or not it was received.
As with all things that are new to us, you need to digest them in small pieces so as to learn as much as you can effectively. Building a fundamental understanding of a system provides a path to more complex areas of learning. Progress can feel small and far between when you are learning to program. This only goes away with experience as you become more fluent. An effective approach to learning a programming language is to be pragmatic. Setting a goal to achieve gives you a target. You have to take things apart and look at what needs to be done step by step.
One example of how you begin to solve a problem is to look at how someone would start using a database. You need to break that process down into the required parts. I want to be able to connect to the database first and foremost. Once connected I need to be able to query the data. After you have your data, you need to iterate through the records. And finally, you want to display the data from the record. Along the way, you will come across obstacles that will force you to explore the programming language for solutions. Sometimes examples will be your guide, learning from other’s experience is essential. Asking questions when you are stuck is also extremely helpful.
Understanding what a goal is the first place you need to focus on. What is the client trying to accomplish, do you understand what they need? Until you fully understand what is going on, you can’t begin to provide a solution. Sometimes just speaking with someone and talking it out will help you get to the root of the problem. You may find that an easier solution is going to be more effective than what is being placed in front of you. At the end of the day, we want to provide the right solution to a problem, one that will continue to solve problems. We don’t want to implement something that will plague us with issues a year from now.
The usability of a website is paramount to providing great feedback for a website or application. Collecting the right data from a user and having automated systems frees up a lot of time for everyone involved. The more accurate the data collected, the fewer issues you have along the way. The better feedback the users receive, the more comfortable they feel giving you that data.
If you’ve ever filled out a form on a website have you considered what is happening? As you fill out that form, a website may check it for errors and autoformat it as needed. When you hit submit, that data is sent from your browser to a server. The submitted data is then sanitized, checked for errors. If something was entered incorrectly, like an email address or phone number, a helpful message should be served to the user. “Please enter a valid email address.” (oops, you forgot to add .com to your email address.) If everything is correct, then the server collects the data and stores it. Finally, a record is created with your attached data provided. If you submitted an email address then you will most likely be receiving an email, automatically, as the programming of the website has determined. And if you have given permission, of course.
Taking all this into account, it shows that learning to program and managing relationships come from the same place, curiosity. Curiosity to learn as much as you can to better handle problems as well as give good feedback. Trying to figure something out, questioning things, and never being able to just accept something. It’s essential to want to know and to further understand what is happening to better engage and benefit from what is in front of us.
Being curious has helped drive my career forward, being a programmer has helped me solve problems. Brené Brown’s advice in her book Dare To Lead is to “Make learning curiosity skills a priority.” And, I’ve definitely taken that advice.
So take things apart, build something new, and above all – be curious.