jonbiro / swei-career-prep-developer-mindset

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Developer Mindset: Now + Later

Objectives

  • Become aware of the ‘developer mindset’ and how to further develop it throughout your journey
  • Learn about the qualities identified to become a well-rounded professional

Overview

Transitioning careers to become a Web Developer can be challenging, but you will be developing technical and soft skills while at Flatiron School to help you throughout your education, job search, and career. It’s important to remember that many of the skills and experiences from past work and life experiences are transferable (you’re NOT starting from square one!) At the same time, many things will be new and it will require focus and dedication to learn. You’ll need to cultivate and activate a particular mindset and positive attitude to power through the process.

Several qualities have been identified that set great developers, and great students, apart. Adopting and practicing these qualities early on in your journey can prepare you to be successful in your education and career.

Principles and Qualities

First Principle: Act Like an Owner

Ownership means being aware of your surroundings and the people around you and being mindful of your interactions with the environment that you’re in. Ownership is also about being proactive and taking initiative. In a personal setting, for example, acting like an owner means brewing more coffee for others when you have poured the last cup, throwing out the trash when you notice it’s full, or asking someone if they are doing ok when you notice they are struggling. It's recognizing that you have the power to contribute to a situation, for better or for worse.

As a student and developer, acting like an owner means taking responsibility for your own education and being aware of your part on a team. Ask questions when you don’t understand. Take responsibility for your own development - put in extra time, volunteer your time, if you don’t like something ...what can you do about it? Be engaged in lecture. Speak up and be present. Seek out the information you need to be a good student. Find ways to add value outside the scope of your immediate tasks. This is what will set you apart as a student and, later, as a candidate.

Professionalism

Show up for yourself and others. Be on time. Honor your commitments. Communicate. How you show up in your studies and in your job search is a reflection of what it is like to work with you. Your peers in this cohort will be your colleagues in the workforce. You may even end up working with an instructor from Flatiron. You’re certainly going to rely on the contacts you make here to give recommendations, make connections, and potentially hire you one day. Treat this space and time as if your attitude, behavior and work ethic are being assessed as part of your job-readiness (because they are!).

Resourcefulness/Self-Reliance

Flatiron School has colorful walls, but the most valuable piece of art that adorns our space is the Personal Empowerment Protocol. It states these steps for student success:

  • Read the Error Message
  • Google Your Problem
  • Ask a Neighbor
  • Ask a Teacher or TA

Being a developer means constantly searching for answers to problems you’ve never seen before. Often times, it may seem easiest to immediately ask for help when you run into these problems, but you’d be denying yourself the chance to learn. It is important to remember that failure is instructive - you are learning from each error you encounter. We ask our students to treat their experience here with the same focus they would have in a workplace. You wouldn’t bring a problem to your boss without attempting a solution on your own, likewise, don’t involve an instructor until you’ve used several other resources. Being able to tolerate frustration and use it as fuel is part of what makes for a great developer. In this case, discomfort is your friend. Hold the mindset that workable solutions exist for every problem. Visualize yourself being successful every day.

When/How to Ask for Help

Flatiron School will teach you how to learn quickly and efficiently. Your education is going to be a balance of taking risks and asking for help when needed. It is okay to be nervous or less than 100% clear, but if you have an idea of how to approach a problem, try it, especially when there are resources available (like Google!) to provide support along the way. Along with this is knowing when and how to ask for help. At some point, even the best of us needs assistance. Knowing when to ask for help and understanding why you need it is ultimately the most important thing. When asking for help, be prepared to clearly articulate the problem, identify what you have done up until this point to solve it, and present possible strategies. This is how you will learn most effectively and get the guidance you need.

Active Listening

An important aspect of being a great owner is empowering the people around you. One of the most effective ways to accomplish this is through active listening. “Be quick to listen, slow to speak” - listen and take a moment to absorb the thoughts and perspectives of the other person, whether it be in lecture or during pair programming. Ask questions until a mutual understanding is reached. Not only will you have better understanding of an issue or topic, the sender will feel “heard,” creating a real connection through communication. The most important and impactful component of effective communication is listening, not speaking. Life is happening all around as you scroll through Instagram, Tinder, and the New York Times. Do yourself a favor; today and everyday moving forward - choose to fully engage, and give your undivided attention to those you are speaking with. Rarely do exceptional ideas come from being checked out.

Understanding Your Learning Style

A learning style is defined as ‘an individual’s approach to learning based on strengths, weaknesses, and preferences.’ Throughout this program and your career, you must know yourself as a learner, and be aware of what you need to succeed. Knowing your learning style will not limit you, but expand you because you’ll know how to set yourself up for success. Are you an auditory or visual learner? Do you digest content through reading words or through diagrams? Does talking through something make it easier to understand or do you need time alone to focus on the problem? While your instructors and the curriculum may not teach to your specific learning style, it’s your responsibility to adapt the raw materials into what you need.

Second Principle: Maintain Perspective

Each lab is an opportunity to learn. You’re not expected to know all of the answers ahead of time but you will be equipped with tools to figure them out. By maintaining perspective and being patient with yourself (and others!), you can preserve your confidence even when tackling the most difficult problems. Remind yourself that you know more than you did a month ago, and probably a week ago. As a programmer, it’s important to be comfortable with not knowing an answer and instead approach each problem by breaking it down into smaller, more digestible pieces. There often isn’t a “right” answer. Your role is to develop a process for solving all types of problems and not just the one in front of you.

Generosity

Be generous and develop a culture of giving - giving of your attention, time, and your authentic self. It’s easy to get lost in your work and feel the stress of deadlines and exams but in order to learn, you have to first acknowledge the things you don’t know. Giving yourself and others the space and time to learn is the ultimate form of respect and creates an environment that encourages discovery, growth, and collaboration. During your time here, Flatiron is your community. Use this opportunity to foster meaningful connections with others. We are all in this together.

Stress Management

“It’s not the load that breaks you down, it’s the way you carry it.”

- Lou Holtz

Work hard, but don’t forget to take breaks. Pay attention to when you are reaching the point of being overstressed - and why. Give yourself what you need in that moment. Whether it’s sleep, a good meal, getting some exercise, calling a friend, or something else, do what shifts your perspective back to where it needs to be to be: your best self. This will undoubtedly have a long-lasting, positive impact on your success at Flatiron School and beyond.

Time Management

Be intentional. Define your goals - discipline comes from remembering what you want. Then insist upon and persist in giving yourself time to achieve those goals. “Good time management allows you to accomplish more in a shorter period of time, which leads to more free time, which lets you take advantage of learning opportunities, lowers your stress, and helps you focus, which leads to more career success. Each benefit of time management improves another aspect of your life.” Figure out how to work smarter, not harder. Great developers look for, and find, the most efficient ways to achieve their goal.

Positive Expression of Emotion

Throughout your time at Flatiron School, there will undoubtedly be moments where you have an intense emotional reaction, especially in response to a stressful situation. Before you instinctively act on those emotions, think of the effect it may have on others around you who may be feeling equally as stressed. Take a moment to consider how to convey your feelings in a way that would provoke a more positive outcome. This is a community where you can grab anyone - whether it is a friend, a classmate, or an instructor - and just let them know in the simplest terms, “Hey, I’m feeling really overwhelmed and I need a moment to just talk to you.” By opening up in a positive and respectful way, you are helping foster a culture that upholds the emotional and physical safety of everyone involved, including yourself.

Third Principle: Agile Thinking

An essential part of being a developer is to be resilient to change. Whether it’s a new industry standard, a shift in roles/leadership, or joining a team with foreign best practices and routines, the best developers are separated from the rest by their willingness to change and embrace new paradigms into their existing processes. The landscape is constantly changing, and you will be more successful if you are willing to be as adaptable as you are steadfast.

“Always a Beginner” Attitude and Outlook

Effective beginners allow themselves to be shamelessly bad at something for long enough to learn from their mistakes and get better. Those with an “always a beginner” attitude absorb the ebbs and flows of a changing environment and have an open attitude. They understand that the second you start shutting down conversations or building up a wall, you start to lose. Perfectionists aren’t good learners; beginners are. No matter how much we already know, a beginner’s mindset gives us the curiosity and sense of adventure to learn more. Throughout this journey, remember to ‘always be a beginner,’ and approach each new task as a new opportunity to enhance your skills and grow.

Be Deliberate

The best developers can be described as highly deliberate. At any moment, they know and could articulate what their next step is. They have passion for what they are doing, have done their research, believe it is worth pursuing, and have committed to seeing it through. In programming, when exploring something new or debugging, this looks like having a clear hypothesis and plan to test it. Be inspired and energized by the anticipation of the outcome, and no matter what, just keep going. Often times, the people who are most patient win the battle.

Creating Your Own Structure to Work Effectively

On tech teams, requirements and business needs are always changing, meaning your job is changing constantly, too. This shows up in the education environment, as well, where instructors are tailoring the pace and delivery of content to classes and need to make last-minute changes. We do our best to have a framework in place with communication channels, defined deliverables, and due dates, as well as setting up meetings with stakeholders, so that everyone’s on the same page about what needs to / will be done and when. Students benefit from using these resources (calendar, Slack, email, etc.) to better plan their time and to stay up-to-date with the changes that will happen last-minute. Be scrappy, radiate positivity, and roll with the resistance. Figure out what works for you to be successful, and stick with it!

Fourth Principle: Effective Communication

Building amazing things means sharing a vision with others. The best developers have enough familiarity with the other roles on a product team (and the jargon they use) to communicate effectively with their teammates. Effective communication can increase productivity (across teams and companies) by reducing barriers and promoting cohesion.

Provide Meaningful Feedback

Meaningful feedback can be one of the most powerful tools to evoke learning and growth. However, it can also be incredibly challenging to give and receive feedback in a thoughtful way. Here are some tips when providing feedback to others.

Meaningful feedback is...

  • Specific - “The lecture was hard to understand!” or “This code looks good to me” is vague and unhelpful. Although it conveys a general sense of guidance, it is unclear where the individual needs to improve, or how they can grow in their understanding. Instead, feedback should be linked to a “specific observable or demonstrable skill, outcome or behavior. This enables you to describe what the individual did well, or what s/he can do to improve the area that needs work in order to reach the desired outcome.” (i.e. “The lecture was hard to understand because you spoke incredibly fast, and ran through your slides quickly” or “this code looks good, I like the way you used X to do Y thing.”)
  • Timely - Imagine a teacher approached you and provided feedback on a coding challenge you did last week. It may take some time for you to remember the event, but even so, the details won’t be clear and material won’t be fresh. Data suggests that providing feedback in a timely manner allows the receiver to process effectively.
  • Understandable - It is critical that the feedback we deliver is in a language that is easily digestable to the targeted audience. This is particularly important at Flatiron School as we are engaging in technical and personal growth trajectories. Before giving feedback, make sure that your points are clear, and will be understood.
  • Fosters Growth - Like most things in life, feedback should be balanced. Providing too much negative feedback can hurt a person’s confidence; while too much positive feedback can decrease a person’s drive to continuously be challenged and improve. It is important that feedback focuses on what the person is doing well, as well as areas they can improve. The goal of feedback is to help the recipient increase their performance, and further develop personally and professionally.

Conclusion

We know this is A LOT of information, and we don’t expect you to master all of these at once. Instead, we want to educate and inspire you to begin to think about programming, including Flatiron and your career journey, in a more holistic way. Programming is not only about writing great code, it’s about being a meaningful contributor and valuable asset to any community. Start to think about these qualities individually, and as a whole. Specifically how these qualities will positively impact your mindset, now and beyond!

About