 Thank you all so much for coming. My name is Louisa Barrett. I'm a developer at Hot CodeWorks in Longmont, Colorado. I just completed my term as the director of Colorado for Women Who Code. I'm a regular teaching assistant at Girl Develop at Workshops in Denver and I am very excited about this microphone because I feel like a Backstreet Boy. I'm also a junior. So I would just like to take one minute and talk about all that because if someone had told me a couple just even just a couple years ago that I would be here on this stage at this conference saying what I just said to a room full of people I would have said two things. One, you're crazy and two, what is a rail? How did I end up on a stage at this conference talking to a room full of people? Let's go back to the beginning-ish. So I went to art school. I have a BFA in graphic design and I also have a very distinct memory of being in the one technical class required for my degree which was a very intro to HTML and CSS course and feeling completely like a fish out of water and thinking that whatever work I ended up doing after I graduated that I did not want to be doing that sort of thing all day long but I mean like come on 20 year old self now and it took me almost seven years of working as an exhibit graphic designer before I finally had to face the fact that what I really did want to be doing was building things with code and I had to admit to myself I had to admit to myself that I had made a slight technical error in not learning to program so I switched gears and I didn't know anyone in the industry and I hadn't been doing design work that really had any web or digital components so I really wasn't sure where to start but I knew I was missing any opportunity I might have to do the work that I really wanted to do and fortunately for me right around this time a brand new spank and bootcamp six month long developer training program excuse me started up in Denver which was right in my own backyard okay it was like 30 miles from my backyard and I discovered this program when they were marketing admissions to the first class and by the time admissions opened for the second class that was starting in the fall of 2013 I was ready I applied and to my complete delight and surprise they let me in and then perhaps less surprisingly it completely kicked my butt and code crying is real you guys but aside from kicking my butt it introduced me to people who have been absolutely incredible in helping me shape and strategize the first phases of my career as a developer and these human connections have helped me feel confident about there being a place for me in this industry and their encouragement has kept me pushing forward no matter what obstacles I've hit along the way I've been really fortunate to have been on the receiving end of a lot of really great advice guidance and just good old rubber meets the road experience as a newbie and I'd like to share some of the strategies and tips that have helped me make sure I was keeping myself on track and making progress as I transitioned from a student to an apprentice to a junior developer the most powerful tool you have as a newbie working to gain traction is deceptively simple it's people and that means you are going to have to network it's not a dirty word this is something that everyone giving advice to anyone all the time says about every industry and it's really easy for it to turn into kind of an overused throwaway piece of advice you get whenever your job hunting or switching careers or just being a professional but it's extremely important and it's very worth the effort to be deliberate and focused about how you approach it building your network sounds easy enough but what does it actually mean and where do you start so you have to do a little bit of leg work to figure out this piece of the puzzle fortunately the whole point of the network is that it's very social and it wants to tell you what it's up to great places to start our meetups or other local industry gatherings or conferences and because these events usually feature some sort of activity like a talk or a workshop that means you don't just have to mingle for three hours straight and you're guaranteed to have something to chat about with the other attendees during breaks and that means that you won't have to just talk about your cat but you can if you want to not that I do that maybe sometimes one of the best things about networking is how much it's like dominoes you meet one person and then they introduce you to someone they know and then that person introduced introduces you to someone they know and then before you know it you're the one starting to introduce people who don't know each other yet plus once you know a few friendly faces three hours of mingling or cat conversations isn't so nerve-wracking or stressful it's actually pretty fun because now you are inside the network and there isn't even a secret handshake or password and there's also free pizza so password and free pizza which is maybe the most important part and then once you figured out what events you want to be a part of make sure that you keep showing up this is a really simple idea that has made a huge difference for me so I'm tend to be a little bit of an introverted workaholic and I work at a 100% remote company this is a dangerous combination when you're trying to get out and be social in the community like I really have to psych myself up to go to meetups and conferences because there will be humans there and also means that my to-do list isn't getting done but once I'm there I always love it but even knowing these benefits it can still be a struggle to get yourself out there especially when you don't know a lot of people in the community it can be tough to make these kind of events your priority but when that little voice is telling you it's okay to just skip it this one time remember showing up makes your talent and you extremely visible in the community and it can lead to doors being opened it can lead to doors being open to great opportunities that you might not have otherwise known were there so keep showing up those three words have been some of the best advice I've ever gotten it's a pep talk and a motivator and an excuse through and are all wrapped into one neat little package and when you're new to a community showing up keeps you fresh in people's minds it makes you one of those friendly faces people look forward to seeing and it shows that you're committed to and excited about being a part of this community and that matters a lot the importance of putting in face time with real people can't be stressed enough because it connects you to the community in a very positive way and at the end of the day that's really valuable when you don't have a long track record as a developer and it can also help you find a mentor this is a tough subject everyone wants one nobody really knows how to get one because it's not a cookie cutter problem in my work in the local community this topic comes up over and over again and it's hard to answer for people because there isn't a mentor store but there probably should be because it sounds kind of awesome the problem is that you can't really just go get a mentor the mentor and mentee relationship really isn't something that can be forced and while it absolutely can be jump-started by meaningful introductions with the goal of growing into a mentor and mentee connection it ultimately it has to evolve naturally it's like friendships you aren't going to be best friends with everyone you meet not everyone is going to sync well together as a mentor and a mentee and it's hard to find the people who you're not only going to work well with but who also have the time to be able to make the commitment to your learning and progress that meaningful mentoring requires and this is where those social investments that you're making with the network and showing up start coming into play casual conversations at events can easily lead to interest in new projects or problems you're working on be alert to opportunities to get input from people you enjoy chatting with at events especially the ones who are consistently there and welcoming to newbies and here are a couple of things you can do to make your mentor hunt successful and forge a solid relationship once you've established a connection if you're having trouble finding a mentor broaden your search criteria a little bit they don't necessarily have to come in a senior developer package and it doesn't have to be a really formal arrangement time spent working with other junior or mid-level devs who are also solidifying their skills and understanding can be incredibly helpful because you're both actively hunting for the answer into the problem working with someone at a similar skill level to you means that the balance of knowledge and understanding is more equal so it's a totally different dynamic than when you're working with a senior who might already see the solution to the problem and is simply nudging you towards that right path and pull your weight keep in mind that the relationship you establish with a mentor is a two-way street this person is happily investing their time in your education and that time could be spent with their family on their own projects on client work or just relaxing so it's really important that you're pulling your weight it should be very clear to them that this is a priority to you because they're doing you a favor by working with you and investing in your learning know what you want to work on and if you have specific questions have them ready to go over don't expect them to always have a planned out lesson or topics to cover I mean they might but they might not it's on you so if you need help figuring out what to work on or you don't have a project to dig into make having that conversation be what you do what you cover during your meeting so all this networking and showing up and mentor hunting has another big positive result you start meeting the people that you'd be working with that companies and this gives you a huge edge as you're starting out because it means you're not flying blind anymore it means you have a better understanding of the companies in your area you'll have a better idea which ones might be interested in bringing on a junior and which teams might really and which teams have people you really enjoy being around rather than primarily talking to people in HR like you probably would in the initial interview stages at a big company you'll actually having you're actually having conversations with the people who are on the engineering teams that you'd like to be a part of it also means that you have an in at the company someone who knows who knows you and can let the hiring department know that your resume is headed their way this is also knowledge that can be a huge help in figuring out what kind of environment you're looking for in a workplace which will help you be strategic about finding a company that's a good fit be honest with yourself about the type of company that will be the best fit for you so you can set yourself up for success you want your first job to be a positive experience that allows you to get your bearings and learn as much as you can so do your research and understand how to place yourself to get the best career launch you can there are three general bucket types that many companies fall into product companies they do one thing and they do it well and established product company may be a better it might be better able to absorb the extra time and mentor hours that a junior needs but it can likely and they can likely let you focus on one area on one project this really gives you time to dive deeply and understand the code base you're working in and solidify the skills and language used in that part of the project you're working on if you crave action a bigger company that focuses on one large project may move a little more slowly than you'd like a consultancy may have more opportunities to try new skills and work on a range of very different projects for different clients while also providing great insight into client management but moving from client to client can slow down your learning pace and balancing billable hours on client projects for juniors can be tricky this is such a tempting idea the startup you're getting a seat on a rocket ship right as it takes off and is going to launch a bazillion dollar empire because that's how all startups go right so startups are fast-paced and exciting which could mean that you find yourself struggling to keep up with the speed that features need to be shipped if you love a challenge and are comfortable taking risks and you learn well under pressure that might be a good thing and good news the odds are great that wherever kind of company land there will be a ping-pong table so don't freak out it's okay and a few other factors to consider about companies size a large company will have more wiggle room to allow you to to give you time to focus on learning rather than billable project work and you have more people to pair with as you're working it might be easier to get lost in the flow of a big team though so make sure that you're advocating for yourself to get the support mentorship and working opportunities that you need by improve to keep improving your skills a smaller company will probably need you to dive right in and be productive and it's likely that you'll have chances to work with everyone on the team there's no hiding at a small shop if you're having an unproductive day though so make sure that you speak up and if you're not making progress and you need a hand let someone know the pace of the team the pace the team moves might also be pretty quick so speak up if you need them to slow down and explain something to you the ratio of juniors to seniors teams where the only junior in a sea of seniors can be really fun to be a part of because things just get done and it's like magic but it can be a little tricky to help your teammates really understand that you're not you're not understanding something fundamental that they just assume is either common knowledge or just painfully obvious so don't be shy about asking questions and keep asking questions until they have drilled down to the level that you needed to get to to understand teams that aren't used to having a newbie on board can unintentionally overlook explaining things that are confusing or unfamiliar to you so just keep speaking up because this might very well be an educational experience for everyone involved teams with the mix of seniors and seniors and juniors to mid-level and mid-level developers show that they're retaining experienced people and investing in up-and-comers it will also allow you great opportunities to work with people who are similar similar skill level to you and people who are significantly more experienced the more experienced team members that will be used to working with newbies and the newbies who are used to working with people on a big range of skill levels you likely have opportunities down the road to help teach the new junior hires and that's a great way to improve your own skills as well a team that's primarily juniors with one or two mid-level or senior engineers is probably not the best place for a newbie you won't be in it you don't want to be in a situation where you're suddenly the most experienced person on the team and once you've found a place on a team find your go-to person to work with when you need a hand well most people most people I've worked with are more than happy to help there are certain people who absolutely love teaching and really enjoy working with up-and-coming team members find those people and work with them as much as you can they're awesome at drilling down and discover the gaps in your foundational knowledge and they can help you fill them a good way to figure out who's happy to help and who loves to teach is to pay careful attention to how they pair with you the helpful the helper will get you through the problem successfully but they may speed through explaining why they made the choices they made and they may not think to prioritize giving you the opportunity to take a crack at the solution one tip to get the most out of working with this kind of team member is to be mindful that it's easy to start learning on them too hard when you get stuck because you know that they'll just get you unstuck quickly and you won't be sitting there feeling like your brain is melting for too long so just be mindful that you're staying engaged and active in the hunt for the solution when you work with them the teacher will probably be prompting you to figure out the answers for yourself as you working and encouraging you to make the key decisions even if that means you sometimes end up wandering down dead ends this helps you truly grasp why the best solution is the best solution the teacher will help you build a rock solid foundation and a true understanding of what you're building at the end of the day though being on a team with people who want to help you figure things out or invested in your growth is really what you're looking for and to help with that have people review your code yes it can be uncomfortable and yes you might get called out in a fairly public way for doing something pretty strange but doing getting critical input about the code that you're writing will make you a better more mindful developer it teaches you new techniques that you may not have known or weren't sure how to use and it teaches you not to push up code that you haven't reviewed yourself and it helps you hone your spidey sense about what's good or at least good enough and what's not and it makes you a stronger person when you're pairing with your team members when you have opportunities to pair make sure you're driving as often as possible really advocate strongly for this even if the problem you're working on is over your head and actually especially when the problem is over your head you should be the one who's doing the typing you'll absorb so much more and be much more conscious of what's going on when you're the one actually writing the code working on a problem that's tough to get your head around with someone when someone else is typing is can be brutally hard to follow for hours on end and even despite your best efforts it's easy to accidentally slip out of being engaged you need to absolutely be actively engaged in participating in what's happening driving also gives you more opportunities to nail down your keyboard shortcuts and solidify good workflow processes it also gives you a lot of opportunities to ask questions this seems really obvious but it can be really hard to do if you're confused or lost say so pairing or working solo don't let yourself get away with not letting your team know when something is unclear or you're confused it can be really hard to admit that you aren't following a conversation or a concept but saying nothing implies that you understand and that can get you into trouble asking questions sooner than later keeps you moving forward on your tasks and keeps you from wasting time being confused and frustrated your team would rather make sure you understand something now rather than having to explain it to you when hours or days have been spent trying to be stuck spinning your wheels on it already and when you get an explanation be sure to write everything down do your best to make sure that your team members don't have to explain the same thing over and over this will probably also probably have to happen occasionally they will have to explain things to you repeatedly sometimes but do whatever you can to minimize how often that needs to happen and for the times when you aren't pairing writing out the steps you need to go through on tasks before you start them gives you an opportunity to make sure you really understand the story you're working on and have a game plan about where to start and where you want to end up having this roadmap will also help you if you need to explain where you are in the process in the event that you need to pull someone in as you're working as you're getting established on your team there will likely be certain languages or parts of the stack that come more naturally to you that's great and really work hard to get them locked in but don't neglect the areas that aren't quite so easy and keep pushing yourself to understand them even if you don't do that work as frequently pushing yourself outside of your comfort zone is really important so I'm sure that you've all seen some form of that like learning to program chart there's like this steep initial I can do all the things and then it's followed by this like very steep downturn of all my god what's going on and then there's this sort of long drawn-out battle to figure it out and then there's sort of culminates in this gradual ascent into being a magical wizard developer and this Viking education chart is one of my favorite representations of this curve because it really hits on the emotional roller coaster the so that I associate at least with each one of these phases so at my office we've had some pretty funny conversations about the desert of despair just like that long sad section in the middle and how it's good to be in the upswing of awesome in at least one area so you have sort of like a safety net and so there's this place you can go and work effectively and feel like you're making solid contributions to the team but you still have to be comfortable and feel okay about heading back down into the desert to learn more things like you have to know as a junior you have to know that you can get stuck in the desert work your way out put on some more sunscreen and then happily wander back in again because frankly that's the job if you've never been down there you can't really know if this is a career you want to be in so the takeaway from that is don't be tear don't be afraid to be terrible at something sometimes you have to be willing to spend some time being bad at it before you can get good at it and help make sure that happens try to set learning objectives for yourself it's really easy to get complacent and just stick to the things that are comfortable and make sense because being in the desert is a tough thing to do it's hard it's hard to be down there and be getting your butt kicked repeatedly but it feels so much better to be doing things you understand well but if you sit set goals and assign yourself homework you can help make sure that you are keeping up your learning momentum and keep stretching yourself outside of your comfort zone and that means you have to continue learning outside of the office if you hit something at work that you don't know about build it at home if there's something you're interested in but aren't doing at work build it at home these projects give you places to make and break things without worry about burning through company time as well as giving you code that you 100% own and opportunities to try techniques that might not be practical on larger projects and hey maybe those people you meet at meetups will come and help you and last but not least be kind to yourself so we've talked about how important human connections are in getting a solid start as a junior but don't forget about the social investments you're making in yourself this is a career path that is full of learning peaks plateaus and valleys and sometimes it can feel pretty brutal out there what night what it might not be terribly obvious when you work with more experienced engineers is that everyone has felt that way at some point and it's just that eventually you have the experience and understanding to see upcoming challenges as an adventure rather than a blockade when you start your first job it can be a huge shock of to find out how draining writing code for eight hours straight is and there are times when you plan to head home at five hop back online and spend a few hours on your own project but you just can't muster the energy to do it that's okay really it can be hard to make yourself take time off when it seems like so many people eat drink and breathe code but keep this in mind this is a marathon and it's likely that they've been training a lot longer than you have it takes time to build up that endurance so take rest days let yourself unplug think of it as mental cross training taking breaks and being mindful for signs of burnout and making time for the things outside of code that you love make you a stronger developer finding the balance of work learning and life that works best for you will make you a happier healthier person and that bleeds over into all the other social investments that you make from successful networking to finding a mentor to invest time in your learning to landing a place on your first team taking care of yourself will have a positive impact on everything else thank you