Categories
Dev Bootcamp

How To Ask Questions That Get Good Answers

Have you ever asked a question and received zero response?

I have done a lot of coding-related research, which brings me to Stack Overflow very often. After a while, I started to notice a lot questions that aren’t answered or are even locked because it is not specific enough or does not follow the question guidelines.

Asking a good question doesn’t strike me as being that hard, but it seems like bad questions pop up quite often.

Here are some tips on how to write a good question. This article is specific to coding-related questions, but can also be applied to any type of questions.

Research

Before you post your question, do your own research. Take a look at other people’s questions that are similar to yours. Chances are, there are other people before you that ran across the same problem and received the necessary answers. When you do post your question, cite related questions, even if it does not answer your question. This helps others identify how your question is different.

Title

Be specific with your title. Describe what your problem is in one line. Ask in the form of a question if possible (and it often is possible). People are busy and respond to questions out of their good will. When looking at postings, they will see a long list of questions. If your title is generic, it will not stand out and will get overlooked. Specific questions that state exactly what the problem is will stand out and catch their attention. Also, use tags to label your questions.

Content

Explain your question. It should include all of these pieces:

  • What you are trying to accomplish. What should your code do?
  • What is happening? What is it doing instead?
  • What you have already tried. What came up in your research? This shows others that you’ve put in time and effort into trying to resolve the problem yourself and are not just leeching for information, which will make them more willing to help you.
  • What your environment is like. Be as informative as possible (language, platform, operating system, or anything that is relevant).
  • Steps to reproduce your problem. Include the specific part of the code that is causing the problem or not doing what you want it to do. Only include enough code for them to reproduce the problem. Anything else is irrelevant. Big pieces of code will make people not want to look at it.
  • Also include what you are trying to achieve in the grand scheme of things. Others may have insight on how to better accomplish what you’re trying to do in an easier and more efficient way, which may even render your problem or question irrelevant.

Proofread

Make sure that your post has correct spelling, grammar, and punctuations. It doesn’t have to be perfect, but it should sound like you are educated. Format your question so that it is easy to read. Break it down into paragraphs if it is long and section off your code. Reread or have a friend read over your post and see if it makes sense to someone with no prior knowledge on what you are doing. Last, but certainly not least, make sure you actually state the question in your post. A lot of posts I see online are just long explanations or statements of what they’re doing with no real questions to be answered.

Feedback

Monitor your question and respond to feedback. Be opened to it. Provide clarification or more information when something is unclear to others. Do not take responses personally. Most people that respond to your questions are there to help.

That’s All, Folks

Hopefully, these tips will assist those in need write better questions that will generate good answers.

Do you have other tips on how to write good questions? Let me know!

 

This blog has been initially published on tonymai.github.io.

Categories
Dev Bootcamp

Reflecting on Conflicts and Emotions

This week for DBC, I had to think and write about a conflict I previously had and the basic emotions I felt during that conflict. This should be an easy and straightforward task, but for some reason, it wasn’t. I am usually very calm and collected, and it takes a lot to get me angry or upset. In the rare case I do get upset, I usually get upset at myself (whether for feeling helpless or for putting my faith in the wrong people), learn from it, and then either give them another chance or move on.

I am a very analytical person and don’t usually let my emotions affect my thought process and decisions. Whenever I do feel my emotions run, though, I usually hold off any decision making until I have a clearer mind. I do this because I don’t want to make the wrong decision at the moment and because I want time to analyze the possibilities and outcome. Because of this, I usually don’t regret what I do. Sometimes I make mistakes, though. But mistakes happen, and I don’t regret it because it was something that I’ve given thorough thought.

When I am faced with a problem, I am usually very direct, which may not always be a good idea. There were times when the opposing party felt attacked because of my directness and went on the defensive, even if that wasn’t my intention. I just wanted to get everything on the table, determine how we can correct those problems, and move forward from there (some people call it too much business/too professional?).

Thinking back, if I had a second chance to go back to the problem and solve it again, I would still be direct. It is better to make sure everyone is on the same page and understands the situation at hand. What I would do differently, though, is to address those problems in person, or at the very least, over the phone. Words and text can be misinterpreted and usually comes off as strong when you’re being direct. Body language and tone is very important when discussing problems and helping each other understand that we (or I) just want to resolve the problem.

This blog has been initially published on tonymai.github.io.

Categories
Dev Bootcamp

What Are Your Values? Use It To Affirm Your Self-Worth

There were so many moments in my life where I was happy and proud: winning 1st place in a national Macy’s marketing challenge, partying and making mistakes, making life-long friends and family, graduating from college, receiving a high GMAT score, running 10-miles within one month of training, completing the Spartan Race Beast, traveling around the world, etc.

While looking at the list of values provided from my latest Dev Bootcamp challenge, when I think of the times in my life where I’ve been the happiest, the proudest, or the most satisfied, these are the ones that come to my mind:

  • Accomplishment
  • Achievement
  • Ambition
  • Challenge
  • Competition
  • Excitement
  • Friendships
  • Growth
  • Inspiration
  • Knowledge
  • Leadership
  • Meaningful work
  • Personal develpmnt
  • Physical challenge
  • Pleasure
  • Will-power

It’s quite a long list, but each one of these values is very meaningful to me.

If I had to rank them by whether or not I try to live up to these values in general, here is what it would be:

values

As you can see, I generally try to live up to all of the values that I find important to me.

One very important value to me from this already trimmed-down list is growth. For me personally, all of the values on the list are secondary values that support the primary value: growth. Everything is ever-changing and you need to continuously learn and grow. Friendship, ambition, inspiration, knowledge, will-power, etc., are all there to support my growth.

The last time someone asked for my advice, it was from a soon-to-be graduate (at the time) in regards to post-college life, jobs, careers, and the future. We discussed various topics, from networking to applying what you learn (to trying many things and doing what you love). Most, if not all, of the topics that I advised on relates to a lot of the values that I find important to myself.

So why am I thinking about my values? Why is it important?

Because thinking about my values helps me remind myself of everything that I hold important to me. They can also help me mediate stereotype threat if I recognize that I feel it. When I think about my core values and how they help create my happiest, proudest, and or more satisfied moments, I realize what is important; and performance based on my gender, race, or ethnicity is not one of them. My values and actions are what create my self-worth; not stereotypes. Studies have also shown that students who have been led to self-affirm are less likely to be susceptible to stereotype threats and perform better than those who have not been [source].

Another way that can help when you feel that your performance is being hindered because of stereotype threat is to look up to a role model with the same social identity. If they can achieve success, then so can you. Furthermore, intelligence is not fixed. It grows as you learn, which goes back to my highly-regarded value. Challenges, problems, and difficulties will only help you grow, learn, increase your intelligence, and eventually overcome those challenges.

This blog has been initially published on tonymai.github.io.

Categories
Dev Bootcamp

Learn More Effectively – Maximize on Your Personal Thinking Style

The Concrete Sequential Thinker’s Journey

If you are unfamiliar with Anthony Gregorc’s Mind Styles Model, it is an organized way that aims to show how our minds think. The model breaks down the way we think into two perceptual qualities (concrete and abstract) and two ordering abilities (sequential and random), totaling to four different combinations of thinking styles:

  1. Concrete Sequential (CS)
  2. Abstract Random (AR)
  3. Abstract Sequential (AS)
  4. Concrete Random (CR)

My own personal thinking style is concrete sequential. Concrete sequential thinkers tend to be “based in reality. They process information in an ordered, sequential, linear way.” (If you want to find out what your thinking style is, you can take the test at The Learning Web.) It is important to note that no one is purely one style; everyone has a unique combination of each of these qualities. Furthermore, not one thinking style is better than another; they are just different. It is interesting to note that when I took the test two months again, my results were slightly different, so the way you think can change over time.

thinking-style

As a concrete sequential thinker, I process information in an “ordered, sequential, linear way.” I detect information and what is around me through my five senses (sight, touch, sound, taste, and smell). Concrete sequential thinkers tend to notice and recall details and facts-specific information easily (such as rules, formulas, and logic).

I plan on maximizing my thinking style while I am learning at DBC. As a concrete sequential thinker, I have very strong organizational skills. Since I absorb information through my physical senses, I plan to learn with a “hands on” approach. I will also provide myself with details and break down my projects into concrete, sequential steps that I can follow. Focusing on the strengths of my thinking style will allow me put what I need in place to learn more effectively. (To read more about the other types of thinking styles, check out this article from Boise State. You can also learn more about what works and what do not work for each thinking style in this article from SUNY Cortland.)

Again, I want to stress that just because you have one thinking style doesn’t mean that you can’t think in any other style. No one is purely one style and thinking/learning styles can change. Your brain is not static. It can grow and evolve if you allow it to, as shown by Carol Dweck‘s research on fixed and growth mindsets.

mindsetsIn short, a “fixed mindset” assumes that ones intelligence and abilities are inherited and cannot change. You are born with how much intelligence you have. These people will do things that they are good at to display their intelligence and avoid doing things that they may fail at. They avoid risks and challenges. A “growth mindset”, on the other hand, thrives on challenges and is not afraid of failure. They welcome failure and use it as a springboard for growth. They learn from their mistakes and use it to increase their knowledge. (To read more about fixed and growth mindsets, click here.)

Similarly to thinking style, your mindset isn’t one or the other either. You can have a growth mindset in some areas and a fixed mindset in other areas. I make an effort to always have a growth mindset on everything, but I still fall back into a fixed mindset sometimes (i.e. I will never learn how to swim…).

Nevertheless, keep this in mind and don’t let failure deter you. In fact, embrace it. If you have never failed at what you’re doing, then you aren’t challenging yourself enough. If one thing isn’t working, learn from your failures and try again another way. Some see failure as the opposite of success. I see it as necessary milestones on the way to success.

This blog has been initially published on tonymai.github.io.